@adaptic/backend-legacy 0.0.903 → 0.0.905

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 (229) hide show
  1. package/ABTest.cjs +291 -63
  2. package/Account.cjs +291 -63
  3. package/AccountLinkingRequest.cjs +291 -63
  4. package/Action.cjs +291 -63
  5. package/Alert.cjs +291 -63
  6. package/Allocation.cjs +291 -63
  7. package/AlpacaAccount.cjs +291 -63
  8. package/AnalyticsConfiguration.cjs +291 -63
  9. package/AnalyticsSnapshot.cjs +291 -63
  10. package/Asset.cjs +291 -63
  11. package/AuditLog.cjs +291 -63
  12. package/Authenticator.cjs +291 -63
  13. package/Configuration.cjs +291 -63
  14. package/ConflictEvent.cjs +291 -63
  15. package/ConnectionHealthSnapshot.cjs +291 -63
  16. package/Customer.cjs +291 -63
  17. package/DeadLetterMessage.cjs +291 -63
  18. package/EconomicEvent.cjs +291 -63
  19. package/Event.cjs +291 -63
  20. package/EventSnapshot.cjs +291 -63
  21. package/FeatureImportanceAnalysis.cjs +291 -63
  22. package/InstitutionalFlowSignal.cjs +291 -63
  23. package/InstitutionalHolding.cjs +291 -63
  24. package/InstitutionalSentimentAlerts.cjs +291 -63
  25. package/InstitutionalSentimentErrors.cjs +291 -63
  26. package/InstitutionalSentimentHistory.cjs +291 -63
  27. package/InstitutionalSentimentMetrics.cjs +291 -63
  28. package/InviteToken.cjs +291 -63
  29. package/LinkedProvider.cjs +291 -63
  30. package/MLTrainingData.cjs +291 -63
  31. package/MarketSentiment.cjs +291 -63
  32. package/ModelArtifact.cjs +291 -63
  33. package/ModelVersion.cjs +291 -63
  34. package/ModelVersionArtifact.cjs +291 -63
  35. package/NewsArticle.cjs +291 -63
  36. package/NewsArticleAssetSentiment.cjs +291 -63
  37. package/OptionsContract.cjs +291 -63
  38. package/OptionsGreeksHistory.cjs +291 -63
  39. package/OptionsPosition.cjs +291 -63
  40. package/OptionsTradeExecution.cjs +291 -63
  41. package/PortfolioGreeksHistory.cjs +291 -63
  42. package/ScheduledOptionOrder.cjs +291 -63
  43. package/Session.cjs +291 -63
  44. package/SignalGeneratorMetrics.cjs +291 -63
  45. package/SignalLineage.cjs +291 -63
  46. package/SignalOutcome.cjs +291 -63
  47. package/SignalPriorityQueue.cjs +291 -63
  48. package/SyncEvent.cjs +291 -63
  49. package/SystemAlert.cjs +291 -63
  50. package/Trade.cjs +291 -63
  51. package/TradeAuditEvent.cjs +291 -63
  52. package/TradeExecutionHistory.cjs +291 -63
  53. package/User.cjs +291 -63
  54. package/VerificationToken.cjs +291 -63
  55. package/WaitlistEntry.cjs +291 -63
  56. package/esm/ABTest.d.ts.map +1 -1
  57. package/esm/ABTest.js.map +1 -1
  58. package/esm/ABTest.mjs +255 -27
  59. package/esm/Account.d.ts.map +1 -1
  60. package/esm/Account.js.map +1 -1
  61. package/esm/Account.mjs +255 -27
  62. package/esm/AccountLinkingRequest.d.ts.map +1 -1
  63. package/esm/AccountLinkingRequest.js.map +1 -1
  64. package/esm/AccountLinkingRequest.mjs +255 -27
  65. package/esm/Action.d.ts.map +1 -1
  66. package/esm/Action.js.map +1 -1
  67. package/esm/Action.mjs +255 -27
  68. package/esm/Alert.d.ts.map +1 -1
  69. package/esm/Alert.js.map +1 -1
  70. package/esm/Alert.mjs +255 -27
  71. package/esm/Allocation.d.ts.map +1 -1
  72. package/esm/Allocation.js.map +1 -1
  73. package/esm/Allocation.mjs +255 -27
  74. package/esm/AlpacaAccount.d.ts.map +1 -1
  75. package/esm/AlpacaAccount.js.map +1 -1
  76. package/esm/AlpacaAccount.mjs +255 -27
  77. package/esm/AnalyticsConfiguration.d.ts.map +1 -1
  78. package/esm/AnalyticsConfiguration.js.map +1 -1
  79. package/esm/AnalyticsConfiguration.mjs +255 -27
  80. package/esm/AnalyticsSnapshot.d.ts.map +1 -1
  81. package/esm/AnalyticsSnapshot.js.map +1 -1
  82. package/esm/AnalyticsSnapshot.mjs +255 -27
  83. package/esm/Asset.d.ts.map +1 -1
  84. package/esm/Asset.js.map +1 -1
  85. package/esm/Asset.mjs +255 -27
  86. package/esm/AuditLog.d.ts.map +1 -1
  87. package/esm/AuditLog.js.map +1 -1
  88. package/esm/AuditLog.mjs +255 -27
  89. package/esm/Authenticator.d.ts.map +1 -1
  90. package/esm/Authenticator.js.map +1 -1
  91. package/esm/Authenticator.mjs +255 -27
  92. package/esm/Configuration.d.ts.map +1 -1
  93. package/esm/Configuration.js.map +1 -1
  94. package/esm/Configuration.mjs +255 -27
  95. package/esm/ConflictEvent.d.ts.map +1 -1
  96. package/esm/ConflictEvent.js.map +1 -1
  97. package/esm/ConflictEvent.mjs +255 -27
  98. package/esm/ConnectionHealthSnapshot.d.ts.map +1 -1
  99. package/esm/ConnectionHealthSnapshot.js.map +1 -1
  100. package/esm/ConnectionHealthSnapshot.mjs +255 -27
  101. package/esm/Customer.d.ts.map +1 -1
  102. package/esm/Customer.js.map +1 -1
  103. package/esm/Customer.mjs +255 -27
  104. package/esm/DeadLetterMessage.d.ts.map +1 -1
  105. package/esm/DeadLetterMessage.js.map +1 -1
  106. package/esm/DeadLetterMessage.mjs +255 -27
  107. package/esm/EconomicEvent.d.ts.map +1 -1
  108. package/esm/EconomicEvent.js.map +1 -1
  109. package/esm/EconomicEvent.mjs +255 -27
  110. package/esm/Event.d.ts.map +1 -1
  111. package/esm/Event.js.map +1 -1
  112. package/esm/Event.mjs +255 -27
  113. package/esm/EventSnapshot.d.ts.map +1 -1
  114. package/esm/EventSnapshot.js.map +1 -1
  115. package/esm/EventSnapshot.mjs +255 -27
  116. package/esm/FeatureImportanceAnalysis.d.ts.map +1 -1
  117. package/esm/FeatureImportanceAnalysis.js.map +1 -1
  118. package/esm/FeatureImportanceAnalysis.mjs +255 -27
  119. package/esm/InstitutionalFlowSignal.d.ts.map +1 -1
  120. package/esm/InstitutionalFlowSignal.js.map +1 -1
  121. package/esm/InstitutionalFlowSignal.mjs +255 -27
  122. package/esm/InstitutionalHolding.d.ts.map +1 -1
  123. package/esm/InstitutionalHolding.js.map +1 -1
  124. package/esm/InstitutionalHolding.mjs +255 -27
  125. package/esm/InstitutionalSentimentAlerts.d.ts.map +1 -1
  126. package/esm/InstitutionalSentimentAlerts.js.map +1 -1
  127. package/esm/InstitutionalSentimentAlerts.mjs +255 -27
  128. package/esm/InstitutionalSentimentErrors.d.ts.map +1 -1
  129. package/esm/InstitutionalSentimentErrors.js.map +1 -1
  130. package/esm/InstitutionalSentimentErrors.mjs +255 -27
  131. package/esm/InstitutionalSentimentHistory.d.ts.map +1 -1
  132. package/esm/InstitutionalSentimentHistory.js.map +1 -1
  133. package/esm/InstitutionalSentimentHistory.mjs +255 -27
  134. package/esm/InstitutionalSentimentMetrics.d.ts.map +1 -1
  135. package/esm/InstitutionalSentimentMetrics.js.map +1 -1
  136. package/esm/InstitutionalSentimentMetrics.mjs +255 -27
  137. package/esm/InviteToken.d.ts.map +1 -1
  138. package/esm/InviteToken.js.map +1 -1
  139. package/esm/InviteToken.mjs +255 -27
  140. package/esm/LinkedProvider.d.ts.map +1 -1
  141. package/esm/LinkedProvider.js.map +1 -1
  142. package/esm/LinkedProvider.mjs +255 -27
  143. package/esm/MLTrainingData.d.ts.map +1 -1
  144. package/esm/MLTrainingData.js.map +1 -1
  145. package/esm/MLTrainingData.mjs +255 -27
  146. package/esm/MarketSentiment.d.ts.map +1 -1
  147. package/esm/MarketSentiment.js.map +1 -1
  148. package/esm/MarketSentiment.mjs +255 -27
  149. package/esm/ModelArtifact.d.ts.map +1 -1
  150. package/esm/ModelArtifact.js.map +1 -1
  151. package/esm/ModelArtifact.mjs +255 -27
  152. package/esm/ModelVersion.d.ts.map +1 -1
  153. package/esm/ModelVersion.js.map +1 -1
  154. package/esm/ModelVersion.mjs +255 -27
  155. package/esm/ModelVersionArtifact.d.ts.map +1 -1
  156. package/esm/ModelVersionArtifact.js.map +1 -1
  157. package/esm/ModelVersionArtifact.mjs +255 -27
  158. package/esm/NewsArticle.d.ts.map +1 -1
  159. package/esm/NewsArticle.js.map +1 -1
  160. package/esm/NewsArticle.mjs +255 -27
  161. package/esm/NewsArticleAssetSentiment.d.ts.map +1 -1
  162. package/esm/NewsArticleAssetSentiment.js.map +1 -1
  163. package/esm/NewsArticleAssetSentiment.mjs +255 -27
  164. package/esm/OptionsContract.d.ts.map +1 -1
  165. package/esm/OptionsContract.js.map +1 -1
  166. package/esm/OptionsContract.mjs +255 -27
  167. package/esm/OptionsGreeksHistory.d.ts.map +1 -1
  168. package/esm/OptionsGreeksHistory.js.map +1 -1
  169. package/esm/OptionsGreeksHistory.mjs +255 -27
  170. package/esm/OptionsPosition.d.ts.map +1 -1
  171. package/esm/OptionsPosition.js.map +1 -1
  172. package/esm/OptionsPosition.mjs +255 -27
  173. package/esm/OptionsTradeExecution.d.ts.map +1 -1
  174. package/esm/OptionsTradeExecution.js.map +1 -1
  175. package/esm/OptionsTradeExecution.mjs +255 -27
  176. package/esm/PortfolioGreeksHistory.d.ts.map +1 -1
  177. package/esm/PortfolioGreeksHistory.js.map +1 -1
  178. package/esm/PortfolioGreeksHistory.mjs +255 -27
  179. package/esm/ScheduledOptionOrder.d.ts.map +1 -1
  180. package/esm/ScheduledOptionOrder.js.map +1 -1
  181. package/esm/ScheduledOptionOrder.mjs +255 -27
  182. package/esm/Session.d.ts.map +1 -1
  183. package/esm/Session.js.map +1 -1
  184. package/esm/Session.mjs +255 -27
  185. package/esm/SignalGeneratorMetrics.d.ts.map +1 -1
  186. package/esm/SignalGeneratorMetrics.js.map +1 -1
  187. package/esm/SignalGeneratorMetrics.mjs +255 -27
  188. package/esm/SignalLineage.d.ts.map +1 -1
  189. package/esm/SignalLineage.js.map +1 -1
  190. package/esm/SignalLineage.mjs +255 -27
  191. package/esm/SignalOutcome.d.ts.map +1 -1
  192. package/esm/SignalOutcome.js.map +1 -1
  193. package/esm/SignalOutcome.mjs +255 -27
  194. package/esm/SignalPriorityQueue.d.ts.map +1 -1
  195. package/esm/SignalPriorityQueue.js.map +1 -1
  196. package/esm/SignalPriorityQueue.mjs +255 -27
  197. package/esm/SyncEvent.d.ts.map +1 -1
  198. package/esm/SyncEvent.js.map +1 -1
  199. package/esm/SyncEvent.mjs +255 -27
  200. package/esm/SystemAlert.d.ts.map +1 -1
  201. package/esm/SystemAlert.js.map +1 -1
  202. package/esm/SystemAlert.mjs +255 -27
  203. package/esm/Trade.d.ts.map +1 -1
  204. package/esm/Trade.js.map +1 -1
  205. package/esm/Trade.mjs +255 -27
  206. package/esm/TradeAuditEvent.d.ts.map +1 -1
  207. package/esm/TradeAuditEvent.js.map +1 -1
  208. package/esm/TradeAuditEvent.mjs +255 -27
  209. package/esm/TradeExecutionHistory.d.ts.map +1 -1
  210. package/esm/TradeExecutionHistory.js.map +1 -1
  211. package/esm/TradeExecutionHistory.mjs +255 -27
  212. package/esm/User.d.ts.map +1 -1
  213. package/esm/User.js.map +1 -1
  214. package/esm/User.mjs +255 -27
  215. package/esm/VerificationToken.d.ts.map +1 -1
  216. package/esm/VerificationToken.js.map +1 -1
  217. package/esm/VerificationToken.mjs +255 -27
  218. package/esm/WaitlistEntry.d.ts.map +1 -1
  219. package/esm/WaitlistEntry.js.map +1 -1
  220. package/esm/WaitlistEntry.mjs +255 -27
  221. package/esm/middleware/audit-logger.d.ts +0 -7
  222. package/esm/middleware/audit-logger.d.ts.map +1 -1
  223. package/esm/middleware/audit-logger.js.map +1 -1
  224. package/esm/middleware/audit-logger.mjs +5 -3
  225. package/esm/prismaClient.d.ts.map +1 -1
  226. package/esm/prismaClient.js.map +1 -1
  227. package/esm/prismaClient.mjs +38 -9
  228. package/package.json +1 -1
  229. package/prismaClient.cjs +38 -9
package/Session.cjs CHANGED
@@ -146,7 +146,7 @@ exports.Session = {
146
146
  * @returns The created Session or null.
147
147
  */
148
148
  async create(props, globalClient) {
149
- var _a, _b, _c, _d, _e;
149
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
150
150
  // Maximum number of retries for database connection issues
151
151
  const MAX_RETRIES = 3;
152
152
  let retryCount = 0;
@@ -511,21 +511,52 @@ exports.Session = {
511
511
  }
512
512
  catch (error) {
513
513
  lastError = error;
514
+ // Check for constraint violations FIRST - these are NEVER retryable
515
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
516
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
517
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
518
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
519
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
520
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
521
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
522
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
523
+ if (isConstraintViolation) {
524
+ const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
525
+ logger_1.logger.error("Non-retryable constraint violation in createOneSession", {
526
+ operation: 'createOneSession',
527
+ model: 'Session',
528
+ error: String(error),
529
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
530
+ errorCategory: 'CONSTRAINT_VIOLATION',
531
+ isRetryable: false,
532
+ });
533
+ throw error;
534
+ }
514
535
  // Check if this is a database connection error that we should retry
515
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
516
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
517
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
518
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
519
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
536
+ const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
537
+ ((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
538
+ ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
539
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
540
+ (error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
520
541
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
521
542
  retryCount++;
522
543
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
523
- logger_1.logger.warn("Database connection error, retrying...");
544
+ logger_1.logger.warn("Database connection error in createOneSession, retrying...", {
545
+ operation: 'createOneSession',
546
+ model: 'Session',
547
+ attempt: retryCount,
548
+ maxRetries: MAX_RETRIES,
549
+ });
524
550
  await new Promise(resolve => setTimeout(resolve, delay));
525
551
  continue;
526
552
  }
527
- // Log the error and rethrow
528
- logger_1.logger.error("Database error occurred", { error: String(error) });
553
+ // Log structured error details and rethrow
554
+ logger_1.logger.error("Database create operation failed", {
555
+ operation: 'createOneSession',
556
+ model: 'Session',
557
+ error: String(error),
558
+ isRetryable: isConnectionError,
559
+ });
529
560
  throw error;
530
561
  }
531
562
  }
@@ -540,7 +571,7 @@ exports.Session = {
540
571
  * @returns The count of created records or null.
541
572
  */
542
573
  async createMany(props, globalClient) {
543
- var _a, _b, _c, _d, _e;
574
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
544
575
  // Maximum number of retries for database connection issues
545
576
  const MAX_RETRIES = 3;
546
577
  let retryCount = 0;
@@ -586,21 +617,52 @@ exports.Session = {
586
617
  }
587
618
  catch (error) {
588
619
  lastError = error;
620
+ // Check for constraint violations FIRST - these are NEVER retryable
621
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
622
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
623
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
624
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
625
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
626
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
627
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
628
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
629
+ if (isConstraintViolation) {
630
+ const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
631
+ logger_1.logger.error("Non-retryable constraint violation in createManySession", {
632
+ operation: 'createManySession',
633
+ model: 'Session',
634
+ error: String(error),
635
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
636
+ errorCategory: 'CONSTRAINT_VIOLATION',
637
+ isRetryable: false,
638
+ });
639
+ throw error;
640
+ }
589
641
  // Check if this is a database connection error that we should retry
590
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
591
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
592
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
593
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
594
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
642
+ const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
643
+ ((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
644
+ ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
645
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
646
+ (error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
595
647
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
596
648
  retryCount++;
597
649
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
598
- logger_1.logger.warn("Database connection error, retrying...");
650
+ logger_1.logger.warn("Database connection error in createManySession, retrying...", {
651
+ operation: 'createManySession',
652
+ model: 'Session',
653
+ attempt: retryCount,
654
+ maxRetries: MAX_RETRIES,
655
+ });
599
656
  await new Promise(resolve => setTimeout(resolve, delay));
600
657
  continue;
601
658
  }
602
- // Log the error and rethrow
603
- logger_1.logger.error("Database error occurred", { error: String(error) });
659
+ // Log structured error details and rethrow
660
+ logger_1.logger.error("Database createMany operation failed", {
661
+ operation: 'createManySession',
662
+ model: 'Session',
663
+ error: String(error),
664
+ isRetryable: isConnectionError,
665
+ });
604
666
  throw error;
605
667
  }
606
668
  }
@@ -615,7 +677,7 @@ exports.Session = {
615
677
  * @returns The updated Session or null.
616
678
  */
617
679
  async update(props, globalClient) {
618
- var _a, _b, _c, _d, _e;
680
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
619
681
  // Maximum number of retries for database connection issues
620
682
  const MAX_RETRIES = 3;
621
683
  let retryCount = 0;
@@ -1758,21 +1820,55 @@ exports.Session = {
1758
1820
  }
1759
1821
  catch (error) {
1760
1822
  lastError = error;
1823
+ // Check for constraint violations FIRST - these are NEVER retryable
1824
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
1825
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
1826
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
1827
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
1828
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
1829
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
1830
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
1831
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
1832
+ if (isConstraintViolation) {
1833
+ const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
1834
+ logger_1.logger.error("Non-retryable constraint violation in updateOneSession", {
1835
+ operation: 'updateOneSession',
1836
+ model: 'Session',
1837
+ error: String(error),
1838
+ recordId: props.id,
1839
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
1840
+ errorCategory: 'CONSTRAINT_VIOLATION',
1841
+ isRetryable: false,
1842
+ });
1843
+ throw error;
1844
+ }
1761
1845
  // Check if this is a database connection error that we should retry
1762
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
1763
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
1764
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
1765
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
1766
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
1846
+ const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
1847
+ ((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
1848
+ ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
1849
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
1850
+ (error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
1767
1851
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
1768
1852
  retryCount++;
1769
1853
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
1770
- logger_1.logger.warn("Database connection error, retrying...");
1854
+ logger_1.logger.warn("Database connection error in updateOneSession, retrying...", {
1855
+ operation: 'updateOneSession',
1856
+ model: 'Session',
1857
+ attempt: retryCount,
1858
+ maxRetries: MAX_RETRIES,
1859
+ recordId: props.id,
1860
+ });
1771
1861
  await new Promise(resolve => setTimeout(resolve, delay));
1772
1862
  continue;
1773
1863
  }
1774
- // Log the error and rethrow
1775
- logger_1.logger.error("Database error occurred", { error: String(error) });
1864
+ // Log structured error details and rethrow
1865
+ logger_1.logger.error("Database update operation failed", {
1866
+ operation: 'updateOneSession',
1867
+ model: 'Session',
1868
+ error: String(error),
1869
+ recordId: props.id,
1870
+ isRetryable: isConnectionError,
1871
+ });
1776
1872
  throw error;
1777
1873
  }
1778
1874
  }
@@ -1787,7 +1883,7 @@ exports.Session = {
1787
1883
  * @returns The updated Session or null.
1788
1884
  */
1789
1885
  async upsert(props, globalClient) {
1790
- var _a, _b, _c, _d, _e;
1886
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
1791
1887
  // Maximum number of retries for database connection issues
1792
1888
  const MAX_RETRIES = 3;
1793
1889
  let retryCount = 0;
@@ -3244,21 +3340,55 @@ exports.Session = {
3244
3340
  }
3245
3341
  catch (error) {
3246
3342
  lastError = error;
3343
+ // Check for constraint violations FIRST - these are NEVER retryable
3344
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
3345
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
3346
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
3347
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
3348
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
3349
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
3350
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
3351
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
3352
+ if (isConstraintViolation) {
3353
+ const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
3354
+ logger_1.logger.error("Non-retryable constraint violation in upsertOneSession", {
3355
+ operation: 'upsertOneSession',
3356
+ model: 'Session',
3357
+ error: String(error),
3358
+ recordId: props.id,
3359
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
3360
+ errorCategory: 'CONSTRAINT_VIOLATION',
3361
+ isRetryable: false,
3362
+ });
3363
+ throw error;
3364
+ }
3247
3365
  // Check if this is a database connection error that we should retry
3248
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
3249
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
3250
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
3251
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
3252
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
3366
+ const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
3367
+ ((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
3368
+ ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
3369
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
3370
+ (error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
3253
3371
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
3254
3372
  retryCount++;
3255
3373
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
3256
- logger_1.logger.warn("Database connection error, retrying...");
3374
+ logger_1.logger.warn("Database connection error in upsertOneSession, retrying...", {
3375
+ operation: 'upsertOneSession',
3376
+ model: 'Session',
3377
+ attempt: retryCount,
3378
+ maxRetries: MAX_RETRIES,
3379
+ recordId: props.id,
3380
+ });
3257
3381
  await new Promise(resolve => setTimeout(resolve, delay));
3258
3382
  continue;
3259
3383
  }
3260
- // Log the error and rethrow
3261
- logger_1.logger.error("Database error occurred", { error: String(error) });
3384
+ // Log structured error details and rethrow
3385
+ logger_1.logger.error("Database upsert operation failed", {
3386
+ operation: 'upsertOneSession',
3387
+ model: 'Session',
3388
+ error: String(error),
3389
+ recordId: props.id,
3390
+ isRetryable: isConnectionError,
3391
+ });
3262
3392
  throw error;
3263
3393
  }
3264
3394
  }
@@ -3273,7 +3403,7 @@ exports.Session = {
3273
3403
  * @returns The count of created records or null.
3274
3404
  */
3275
3405
  async updateMany(props, globalClient) {
3276
- var _a, _b, _c, _d, _e;
3406
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
3277
3407
  // Maximum number of retries for database connection issues
3278
3408
  const MAX_RETRIES = 3;
3279
3409
  let retryCount = 0;
@@ -4416,21 +4546,52 @@ exports.Session = {
4416
4546
  }
4417
4547
  catch (error) {
4418
4548
  lastError = error;
4549
+ // Check for constraint violations FIRST - these are NEVER retryable
4550
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
4551
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
4552
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
4553
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
4554
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
4555
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
4556
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('P2002')) ||
4557
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2003'));
4558
+ if (isConstraintViolation) {
4559
+ const constraintMatch = (_j = error.message) === null || _j === void 0 ? void 0 : _j.match(/constraint\s+"([^"]+)"/);
4560
+ logger_1.logger.error("Non-retryable constraint violation in updateManySession", {
4561
+ operation: 'updateManySession',
4562
+ model: 'Session',
4563
+ error: String(error),
4564
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
4565
+ errorCategory: 'CONSTRAINT_VIOLATION',
4566
+ isRetryable: false,
4567
+ });
4568
+ throw error;
4569
+ }
4419
4570
  // Check if this is a database connection error that we should retry
4420
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
4421
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
4422
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
4423
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
4424
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
4571
+ const isConnectionError = ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('Server has closed the connection')) ||
4572
+ ((_l = error.message) === null || _l === void 0 ? void 0 : _l.includes('Cannot reach database server')) ||
4573
+ ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Connection timed out')) ||
4574
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Accelerate')) || // Prisma Accelerate proxy errors
4575
+ (error.networkError && ((_p = error.networkError.message) === null || _p === void 0 ? void 0 : _p.includes('Failed to fetch')));
4425
4576
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
4426
4577
  retryCount++;
4427
4578
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
4428
- logger_1.logger.warn("Database connection error, retrying...");
4579
+ logger_1.logger.warn("Database connection error in updateManySession, retrying...", {
4580
+ operation: 'updateManySession',
4581
+ model: 'Session',
4582
+ attempt: retryCount,
4583
+ maxRetries: MAX_RETRIES,
4584
+ });
4429
4585
  await new Promise(resolve => setTimeout(resolve, delay));
4430
4586
  continue;
4431
4587
  }
4432
- // Log the error and rethrow
4433
- logger_1.logger.error("Database error occurred", { error: String(error) });
4588
+ // Log structured error details and rethrow
4589
+ logger_1.logger.error("Database updateMany operation failed", {
4590
+ operation: 'updateManySession',
4591
+ model: 'Session',
4592
+ error: String(error),
4593
+ isRetryable: isConnectionError,
4594
+ });
4434
4595
  throw error;
4435
4596
  }
4436
4597
  }
@@ -4445,7 +4606,7 @@ exports.Session = {
4445
4606
  * @returns The deleted Session or null.
4446
4607
  */
4447
4608
  async delete(props, globalClient) {
4448
- var _a, _b, _c, _d, _e;
4609
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
4449
4610
  // Maximum number of retries for database connection issues
4450
4611
  const MAX_RETRIES = 3;
4451
4612
  let retryCount = 0;
@@ -4489,21 +4650,58 @@ exports.Session = {
4489
4650
  }
4490
4651
  catch (error) {
4491
4652
  lastError = error;
4653
+ // Check for constraint violations FIRST - these are NEVER retryable
4654
+ // (e.g., foreign key constraints preventing deletion)
4655
+ const isConstraintViolation = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('violates check constraint')) ||
4656
+ ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('violates unique constraint')) ||
4657
+ ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('violates foreign key constraint')) ||
4658
+ ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unique constraint')) ||
4659
+ ((_e = error.message) === null || _e === void 0 ? void 0 : _e.includes('23514')) ||
4660
+ ((_f = error.message) === null || _f === void 0 ? void 0 : _f.includes('23505')) ||
4661
+ ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('23503')) ||
4662
+ ((_h = error.message) === null || _h === void 0 ? void 0 : _h.includes('P2002')) ||
4663
+ ((_j = error.message) === null || _j === void 0 ? void 0 : _j.includes('P2003')) ||
4664
+ ((_k = error.message) === null || _k === void 0 ? void 0 : _k.includes('P2014'));
4665
+ if (isConstraintViolation) {
4666
+ const constraintMatch = (_l = error.message) === null || _l === void 0 ? void 0 : _l.match(/constraint\s+"([^"]+)"/);
4667
+ logger_1.logger.error("Non-retryable constraint violation in deleteOneSession", {
4668
+ operation: 'deleteOneSession',
4669
+ model: 'Session',
4670
+ error: String(error),
4671
+ recordId: props.id,
4672
+ constraintName: constraintMatch ? constraintMatch[1] : undefined,
4673
+ errorCategory: 'CONSTRAINT_VIOLATION',
4674
+ isRetryable: false,
4675
+ });
4676
+ throw error;
4677
+ }
4492
4678
  // Check if this is a database connection error that we should retry
4493
- const isConnectionError = ((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Server has closed the connection')) ||
4494
- ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('Cannot reach database server')) ||
4495
- ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('Connection timed out')) ||
4496
- ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('Accelerate')) || // Prisma Accelerate proxy errors
4497
- (error.networkError && ((_e = error.networkError.message) === null || _e === void 0 ? void 0 : _e.includes('Failed to fetch')));
4679
+ const isConnectionError = ((_m = error.message) === null || _m === void 0 ? void 0 : _m.includes('Server has closed the connection')) ||
4680
+ ((_o = error.message) === null || _o === void 0 ? void 0 : _o.includes('Cannot reach database server')) ||
4681
+ ((_p = error.message) === null || _p === void 0 ? void 0 : _p.includes('Connection timed out')) ||
4682
+ ((_q = error.message) === null || _q === void 0 ? void 0 : _q.includes('Accelerate')) || // Prisma Accelerate proxy errors
4683
+ (error.networkError && ((_r = error.networkError.message) === null || _r === void 0 ? void 0 : _r.includes('Failed to fetch')));
4498
4684
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
4499
4685
  retryCount++;
4500
4686
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
4501
- logger_1.logger.warn("Database connection error, retrying...");
4687
+ logger_1.logger.warn("Database connection error in deleteOneSession, retrying...", {
4688
+ operation: 'deleteOneSession',
4689
+ model: 'Session',
4690
+ attempt: retryCount,
4691
+ maxRetries: MAX_RETRIES,
4692
+ recordId: props.id,
4693
+ });
4502
4694
  await new Promise(resolve => setTimeout(resolve, delay));
4503
4695
  continue;
4504
4696
  }
4505
- // Log the error and rethrow
4506
- logger_1.logger.error("Database error occurred", { error: String(error) });
4697
+ // Log structured error details and rethrow
4698
+ logger_1.logger.error("Database delete operation failed", {
4699
+ operation: 'deleteOneSession',
4700
+ model: 'Session',
4701
+ error: String(error),
4702
+ recordId: props.id,
4703
+ isRetryable: isConnectionError,
4704
+ });
4507
4705
  throw error;
4508
4706
  }
4509
4707
  }
@@ -4573,12 +4771,22 @@ exports.Session = {
4573
4771
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
4574
4772
  retryCount++;
4575
4773
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
4576
- logger_1.logger.warn("Database connection error, retrying...");
4774
+ logger_1.logger.warn("Database connection error in getSession, retrying...", {
4775
+ operation: 'getSession',
4776
+ model: 'Session',
4777
+ attempt: retryCount,
4778
+ maxRetries: MAX_RETRIES,
4779
+ });
4577
4780
  await new Promise(resolve => setTimeout(resolve, delay));
4578
4781
  continue;
4579
4782
  }
4580
- // Log the error and rethrow
4581
- logger_1.logger.error("Database error occurred", { error: String(error) });
4783
+ // Log structured error details and rethrow
4784
+ logger_1.logger.error("Database get operation failed", {
4785
+ operation: 'getSession',
4786
+ model: 'Session',
4787
+ error: String(error),
4788
+ isRetryable: isConnectionError,
4789
+ });
4582
4790
  throw error;
4583
4791
  }
4584
4792
  }
@@ -4636,12 +4844,22 @@ exports.Session = {
4636
4844
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
4637
4845
  retryCount++;
4638
4846
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
4639
- logger_1.logger.warn("Database connection error, retrying...");
4847
+ logger_1.logger.warn("Database connection error in getAllSession, retrying...", {
4848
+ operation: 'getAllSession',
4849
+ model: 'Session',
4850
+ attempt: retryCount,
4851
+ maxRetries: MAX_RETRIES,
4852
+ });
4640
4853
  await new Promise(resolve => setTimeout(resolve, delay));
4641
4854
  continue;
4642
4855
  }
4643
- // Log the error and rethrow
4644
- logger_1.logger.error("Database error occurred", { error: String(error) });
4856
+ // Log structured error details and rethrow
4857
+ logger_1.logger.error("Database getAll operation failed", {
4858
+ operation: 'getAllSession',
4859
+ model: 'Session',
4860
+ error: String(error),
4861
+ isRetryable: isConnectionError,
4862
+ });
4645
4863
  throw error;
4646
4864
  }
4647
4865
  }
@@ -4718,12 +4936,22 @@ exports.Session = {
4718
4936
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
4719
4937
  retryCount++;
4720
4938
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
4721
- logger_1.logger.warn("Database connection error, retrying...");
4939
+ logger_1.logger.warn("Database connection error in findManySession, retrying...", {
4940
+ operation: 'findManySession',
4941
+ model: 'Session',
4942
+ attempt: retryCount,
4943
+ maxRetries: MAX_RETRIES,
4944
+ });
4722
4945
  await new Promise(resolve => setTimeout(resolve, delay));
4723
4946
  continue;
4724
4947
  }
4725
- // Log the error and rethrow
4726
- logger_1.logger.error("Database error occurred", { error: String(error) });
4948
+ // Log structured error details and rethrow
4949
+ logger_1.logger.error("Database findMany operation failed", {
4950
+ operation: 'findManySession',
4951
+ model: 'Session',
4952
+ error: String(error),
4953
+ isRetryable: isConnectionError,
4954
+ });
4727
4955
  throw error;
4728
4956
  }
4729
4957
  }