@adaptic/backend-legacy 0.0.960 → 0.0.961

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 (258) hide show
  1. package/ABTest.cjs +180 -66
  2. package/Account.cjs +180 -66
  3. package/AccountDecisionRecord.cjs +180 -66
  4. package/AccountLinkingRequest.cjs +180 -66
  5. package/Action.cjs +180 -66
  6. package/Alert.cjs +180 -66
  7. package/Allocation.cjs +180 -66
  8. package/AlpacaAccount.cjs +180 -66
  9. package/AnalyticsConfiguration.cjs +180 -66
  10. package/AnalyticsSnapshot.cjs +180 -66
  11. package/Asset.cjs +180 -66
  12. package/AuditLog.cjs +180 -66
  13. package/Authenticator.cjs +180 -66
  14. package/Configuration.cjs +180 -66
  15. package/ConflictEvent.cjs +180 -66
  16. package/ConnectionHealthSnapshot.cjs +180 -66
  17. package/Customer.cjs +180 -66
  18. package/DeadLetterMessage.cjs +180 -66
  19. package/DecisionMemorySummary.cjs +180 -66
  20. package/EconomicEvent.cjs +180 -66
  21. package/EquityBar.cjs +180 -66
  22. package/Event.cjs +180 -66
  23. package/EventSnapshot.cjs +180 -66
  24. package/FeatureImportanceAnalysis.cjs +180 -66
  25. package/InstitutionalFlowSignal.cjs +180 -66
  26. package/InstitutionalHolding.cjs +180 -66
  27. package/InstitutionalSentimentAlerts.cjs +180 -66
  28. package/InstitutionalSentimentErrors.cjs +180 -66
  29. package/InstitutionalSentimentHistory.cjs +180 -66
  30. package/InstitutionalSentimentMetrics.cjs +180 -66
  31. package/InviteToken.cjs +180 -66
  32. package/LinkedProvider.cjs +180 -66
  33. package/LlmConfiguration.cjs +180 -66
  34. package/MLModelVersion.cjs +180 -66
  35. package/MLTrainingData.cjs +180 -66
  36. package/MarketSentiment.cjs +180 -66
  37. package/ModelArtifact.cjs +180 -66
  38. package/ModelVersion.cjs +180 -66
  39. package/ModelVersionArtifact.cjs +180 -66
  40. package/NewsArticle.cjs +180 -66
  41. package/NewsArticleAssetSentiment.cjs +180 -66
  42. package/OptionsContract.cjs +180 -66
  43. package/OptionsGreeksHistory.cjs +180 -66
  44. package/OptionsPosition.cjs +180 -66
  45. package/OptionsPositionEvent.cjs +180 -66
  46. package/OptionsTradeExecution.cjs +180 -66
  47. package/PolicyOverlay.cjs +180 -66
  48. package/PortfolioGreeksHistory.cjs +180 -66
  49. package/ScheduledOptionOrder.cjs +180 -66
  50. package/Session.cjs +180 -66
  51. package/SignalGeneratorMetrics.cjs +180 -66
  52. package/SignalLineage.cjs +180 -66
  53. package/SignalOutcome.cjs +180 -66
  54. package/SignalPriorityQueue.cjs +180 -66
  55. package/SyncEvent.cjs +180 -66
  56. package/SystemAlert.cjs +180 -66
  57. package/Trade.cjs +180 -66
  58. package/TradeAuditEvent.cjs +180 -66
  59. package/TradeExecutionHistory.cjs +180 -66
  60. package/TradeOutcome.cjs +180 -66
  61. package/TradingPolicy.cjs +180 -66
  62. package/User.cjs +180 -66
  63. package/VerificationToken.cjs +180 -66
  64. package/WaitlistEntry.cjs +180 -66
  65. package/esm/ABTest.d.ts.map +1 -1
  66. package/esm/ABTest.js.map +1 -1
  67. package/esm/ABTest.mjs +180 -66
  68. package/esm/Account.d.ts.map +1 -1
  69. package/esm/Account.js.map +1 -1
  70. package/esm/Account.mjs +180 -66
  71. package/esm/AccountDecisionRecord.d.ts.map +1 -1
  72. package/esm/AccountDecisionRecord.js.map +1 -1
  73. package/esm/AccountDecisionRecord.mjs +180 -66
  74. package/esm/AccountLinkingRequest.d.ts.map +1 -1
  75. package/esm/AccountLinkingRequest.js.map +1 -1
  76. package/esm/AccountLinkingRequest.mjs +180 -66
  77. package/esm/Action.d.ts.map +1 -1
  78. package/esm/Action.js.map +1 -1
  79. package/esm/Action.mjs +180 -66
  80. package/esm/Alert.d.ts.map +1 -1
  81. package/esm/Alert.js.map +1 -1
  82. package/esm/Alert.mjs +180 -66
  83. package/esm/Allocation.d.ts.map +1 -1
  84. package/esm/Allocation.js.map +1 -1
  85. package/esm/Allocation.mjs +180 -66
  86. package/esm/AlpacaAccount.d.ts.map +1 -1
  87. package/esm/AlpacaAccount.js.map +1 -1
  88. package/esm/AlpacaAccount.mjs +180 -66
  89. package/esm/AnalyticsConfiguration.d.ts.map +1 -1
  90. package/esm/AnalyticsConfiguration.js.map +1 -1
  91. package/esm/AnalyticsConfiguration.mjs +180 -66
  92. package/esm/AnalyticsSnapshot.d.ts.map +1 -1
  93. package/esm/AnalyticsSnapshot.js.map +1 -1
  94. package/esm/AnalyticsSnapshot.mjs +180 -66
  95. package/esm/Asset.d.ts.map +1 -1
  96. package/esm/Asset.js.map +1 -1
  97. package/esm/Asset.mjs +180 -66
  98. package/esm/AuditLog.d.ts.map +1 -1
  99. package/esm/AuditLog.js.map +1 -1
  100. package/esm/AuditLog.mjs +180 -66
  101. package/esm/Authenticator.d.ts.map +1 -1
  102. package/esm/Authenticator.js.map +1 -1
  103. package/esm/Authenticator.mjs +180 -66
  104. package/esm/Configuration.d.ts.map +1 -1
  105. package/esm/Configuration.js.map +1 -1
  106. package/esm/Configuration.mjs +180 -66
  107. package/esm/ConflictEvent.d.ts.map +1 -1
  108. package/esm/ConflictEvent.js.map +1 -1
  109. package/esm/ConflictEvent.mjs +180 -66
  110. package/esm/ConnectionHealthSnapshot.d.ts.map +1 -1
  111. package/esm/ConnectionHealthSnapshot.js.map +1 -1
  112. package/esm/ConnectionHealthSnapshot.mjs +180 -66
  113. package/esm/Customer.d.ts.map +1 -1
  114. package/esm/Customer.js.map +1 -1
  115. package/esm/Customer.mjs +180 -66
  116. package/esm/DeadLetterMessage.d.ts.map +1 -1
  117. package/esm/DeadLetterMessage.js.map +1 -1
  118. package/esm/DeadLetterMessage.mjs +180 -66
  119. package/esm/DecisionMemorySummary.d.ts.map +1 -1
  120. package/esm/DecisionMemorySummary.js.map +1 -1
  121. package/esm/DecisionMemorySummary.mjs +180 -66
  122. package/esm/EconomicEvent.d.ts.map +1 -1
  123. package/esm/EconomicEvent.js.map +1 -1
  124. package/esm/EconomicEvent.mjs +180 -66
  125. package/esm/EquityBar.d.ts.map +1 -1
  126. package/esm/EquityBar.js.map +1 -1
  127. package/esm/EquityBar.mjs +180 -66
  128. package/esm/Event.d.ts.map +1 -1
  129. package/esm/Event.js.map +1 -1
  130. package/esm/Event.mjs +180 -66
  131. package/esm/EventSnapshot.d.ts.map +1 -1
  132. package/esm/EventSnapshot.js.map +1 -1
  133. package/esm/EventSnapshot.mjs +180 -66
  134. package/esm/FeatureImportanceAnalysis.d.ts.map +1 -1
  135. package/esm/FeatureImportanceAnalysis.js.map +1 -1
  136. package/esm/FeatureImportanceAnalysis.mjs +180 -66
  137. package/esm/InstitutionalFlowSignal.d.ts.map +1 -1
  138. package/esm/InstitutionalFlowSignal.js.map +1 -1
  139. package/esm/InstitutionalFlowSignal.mjs +180 -66
  140. package/esm/InstitutionalHolding.d.ts.map +1 -1
  141. package/esm/InstitutionalHolding.js.map +1 -1
  142. package/esm/InstitutionalHolding.mjs +180 -66
  143. package/esm/InstitutionalSentimentAlerts.d.ts.map +1 -1
  144. package/esm/InstitutionalSentimentAlerts.js.map +1 -1
  145. package/esm/InstitutionalSentimentAlerts.mjs +180 -66
  146. package/esm/InstitutionalSentimentErrors.d.ts.map +1 -1
  147. package/esm/InstitutionalSentimentErrors.js.map +1 -1
  148. package/esm/InstitutionalSentimentErrors.mjs +180 -66
  149. package/esm/InstitutionalSentimentHistory.d.ts.map +1 -1
  150. package/esm/InstitutionalSentimentHistory.js.map +1 -1
  151. package/esm/InstitutionalSentimentHistory.mjs +180 -66
  152. package/esm/InstitutionalSentimentMetrics.d.ts.map +1 -1
  153. package/esm/InstitutionalSentimentMetrics.js.map +1 -1
  154. package/esm/InstitutionalSentimentMetrics.mjs +180 -66
  155. package/esm/InviteToken.d.ts.map +1 -1
  156. package/esm/InviteToken.js.map +1 -1
  157. package/esm/InviteToken.mjs +180 -66
  158. package/esm/LinkedProvider.d.ts.map +1 -1
  159. package/esm/LinkedProvider.js.map +1 -1
  160. package/esm/LinkedProvider.mjs +180 -66
  161. package/esm/LlmConfiguration.d.ts.map +1 -1
  162. package/esm/LlmConfiguration.js.map +1 -1
  163. package/esm/LlmConfiguration.mjs +180 -66
  164. package/esm/MLModelVersion.d.ts.map +1 -1
  165. package/esm/MLModelVersion.js.map +1 -1
  166. package/esm/MLModelVersion.mjs +180 -66
  167. package/esm/MLTrainingData.d.ts.map +1 -1
  168. package/esm/MLTrainingData.js.map +1 -1
  169. package/esm/MLTrainingData.mjs +180 -66
  170. package/esm/MarketSentiment.d.ts.map +1 -1
  171. package/esm/MarketSentiment.js.map +1 -1
  172. package/esm/MarketSentiment.mjs +180 -66
  173. package/esm/ModelArtifact.d.ts.map +1 -1
  174. package/esm/ModelArtifact.js.map +1 -1
  175. package/esm/ModelArtifact.mjs +180 -66
  176. package/esm/ModelVersion.d.ts.map +1 -1
  177. package/esm/ModelVersion.js.map +1 -1
  178. package/esm/ModelVersion.mjs +180 -66
  179. package/esm/ModelVersionArtifact.d.ts.map +1 -1
  180. package/esm/ModelVersionArtifact.js.map +1 -1
  181. package/esm/ModelVersionArtifact.mjs +180 -66
  182. package/esm/NewsArticle.d.ts.map +1 -1
  183. package/esm/NewsArticle.js.map +1 -1
  184. package/esm/NewsArticle.mjs +180 -66
  185. package/esm/NewsArticleAssetSentiment.d.ts.map +1 -1
  186. package/esm/NewsArticleAssetSentiment.js.map +1 -1
  187. package/esm/NewsArticleAssetSentiment.mjs +180 -66
  188. package/esm/OptionsContract.d.ts.map +1 -1
  189. package/esm/OptionsContract.js.map +1 -1
  190. package/esm/OptionsContract.mjs +180 -66
  191. package/esm/OptionsGreeksHistory.d.ts.map +1 -1
  192. package/esm/OptionsGreeksHistory.js.map +1 -1
  193. package/esm/OptionsGreeksHistory.mjs +180 -66
  194. package/esm/OptionsPosition.d.ts.map +1 -1
  195. package/esm/OptionsPosition.js.map +1 -1
  196. package/esm/OptionsPosition.mjs +180 -66
  197. package/esm/OptionsPositionEvent.d.ts.map +1 -1
  198. package/esm/OptionsPositionEvent.js.map +1 -1
  199. package/esm/OptionsPositionEvent.mjs +180 -66
  200. package/esm/OptionsTradeExecution.d.ts.map +1 -1
  201. package/esm/OptionsTradeExecution.js.map +1 -1
  202. package/esm/OptionsTradeExecution.mjs +180 -66
  203. package/esm/PolicyOverlay.d.ts.map +1 -1
  204. package/esm/PolicyOverlay.js.map +1 -1
  205. package/esm/PolicyOverlay.mjs +180 -66
  206. package/esm/PortfolioGreeksHistory.d.ts.map +1 -1
  207. package/esm/PortfolioGreeksHistory.js.map +1 -1
  208. package/esm/PortfolioGreeksHistory.mjs +180 -66
  209. package/esm/ScheduledOptionOrder.d.ts.map +1 -1
  210. package/esm/ScheduledOptionOrder.js.map +1 -1
  211. package/esm/ScheduledOptionOrder.mjs +180 -66
  212. package/esm/Session.d.ts.map +1 -1
  213. package/esm/Session.js.map +1 -1
  214. package/esm/Session.mjs +180 -66
  215. package/esm/SignalGeneratorMetrics.d.ts.map +1 -1
  216. package/esm/SignalGeneratorMetrics.js.map +1 -1
  217. package/esm/SignalGeneratorMetrics.mjs +180 -66
  218. package/esm/SignalLineage.d.ts.map +1 -1
  219. package/esm/SignalLineage.js.map +1 -1
  220. package/esm/SignalLineage.mjs +180 -66
  221. package/esm/SignalOutcome.d.ts.map +1 -1
  222. package/esm/SignalOutcome.js.map +1 -1
  223. package/esm/SignalOutcome.mjs +180 -66
  224. package/esm/SignalPriorityQueue.d.ts.map +1 -1
  225. package/esm/SignalPriorityQueue.js.map +1 -1
  226. package/esm/SignalPriorityQueue.mjs +180 -66
  227. package/esm/SyncEvent.d.ts.map +1 -1
  228. package/esm/SyncEvent.js.map +1 -1
  229. package/esm/SyncEvent.mjs +180 -66
  230. package/esm/SystemAlert.d.ts.map +1 -1
  231. package/esm/SystemAlert.js.map +1 -1
  232. package/esm/SystemAlert.mjs +180 -66
  233. package/esm/Trade.d.ts.map +1 -1
  234. package/esm/Trade.js.map +1 -1
  235. package/esm/Trade.mjs +180 -66
  236. package/esm/TradeAuditEvent.d.ts.map +1 -1
  237. package/esm/TradeAuditEvent.js.map +1 -1
  238. package/esm/TradeAuditEvent.mjs +180 -66
  239. package/esm/TradeExecutionHistory.d.ts.map +1 -1
  240. package/esm/TradeExecutionHistory.js.map +1 -1
  241. package/esm/TradeExecutionHistory.mjs +180 -66
  242. package/esm/TradeOutcome.d.ts.map +1 -1
  243. package/esm/TradeOutcome.js.map +1 -1
  244. package/esm/TradeOutcome.mjs +180 -66
  245. package/esm/TradingPolicy.d.ts.map +1 -1
  246. package/esm/TradingPolicy.js.map +1 -1
  247. package/esm/TradingPolicy.mjs +180 -66
  248. package/esm/User.d.ts.map +1 -1
  249. package/esm/User.js.map +1 -1
  250. package/esm/User.mjs +180 -66
  251. package/esm/VerificationToken.d.ts.map +1 -1
  252. package/esm/VerificationToken.js.map +1 -1
  253. package/esm/VerificationToken.mjs +180 -66
  254. package/esm/WaitlistEntry.d.ts.map +1 -1
  255. package/esm/WaitlistEntry.js.map +1 -1
  256. package/esm/WaitlistEntry.mjs +180 -66
  257. package/esm/index.d.ts.map +1 -1
  258. package/package.json +1 -1
@@ -142,13 +142,28 @@ exports.AnalyticsConfiguration = {
142
142
  await new Promise(resolve => setTimeout(resolve, delay));
143
143
  continue;
144
144
  }
145
- // Log structured error details and rethrow
146
- logger_1.logger.error("Database create operation failed", {
147
- operation: 'createOneAnalyticsConfiguration',
148
- model: 'AnalyticsConfiguration',
149
- error: String(error),
150
- isRetryable: isConnectionError,
151
- });
145
+ // Log structured error details and rethrow.
146
+ // Demote transient failures to WARN with explicit transient+recoveryHint
147
+ // metadata so log analytics can distinguish recoverable upstream retries
148
+ // from true defects.
149
+ if (isConnectionError) {
150
+ logger_1.logger.warn("Database create operation failed (transient after retries)", {
151
+ operation: 'createOneAnalyticsConfiguration',
152
+ model: 'AnalyticsConfiguration',
153
+ error: String(error),
154
+ isRetryable: true,
155
+ transient: true,
156
+ recoveryHint: "Upstream caller should retry on next cycle",
157
+ });
158
+ }
159
+ else {
160
+ logger_1.logger.error("Database create operation failed", {
161
+ operation: 'createOneAnalyticsConfiguration',
162
+ model: 'AnalyticsConfiguration',
163
+ error: String(error),
164
+ isRetryable: false,
165
+ });
166
+ }
152
167
  throw error;
153
168
  }
154
169
  }
@@ -271,13 +286,25 @@ exports.AnalyticsConfiguration = {
271
286
  await new Promise(resolve => setTimeout(resolve, delay));
272
287
  continue;
273
288
  }
274
- // Log structured error details and rethrow
275
- logger_1.logger.error("Database createMany operation failed", {
276
- operation: 'createManyAnalyticsConfiguration',
277
- model: 'AnalyticsConfiguration',
278
- error: String(error),
279
- isRetryable: isConnectionError,
280
- });
289
+ // Log structured error details and rethrow (transient -> WARN).
290
+ if (isConnectionError) {
291
+ logger_1.logger.warn("Database createMany operation failed (transient after retries)", {
292
+ operation: 'createManyAnalyticsConfiguration',
293
+ model: 'AnalyticsConfiguration',
294
+ error: String(error),
295
+ isRetryable: true,
296
+ transient: true,
297
+ recoveryHint: "Upstream caller should retry on next cycle",
298
+ });
299
+ }
300
+ else {
301
+ logger_1.logger.error("Database createMany operation failed", {
302
+ operation: 'createManyAnalyticsConfiguration',
303
+ model: 'AnalyticsConfiguration',
304
+ error: String(error),
305
+ isRetryable: false,
306
+ });
307
+ }
281
308
  throw error;
282
309
  }
283
310
  }
@@ -419,14 +446,27 @@ exports.AnalyticsConfiguration = {
419
446
  await new Promise(resolve => setTimeout(resolve, delay));
420
447
  continue;
421
448
  }
422
- // Log structured error details and rethrow
423
- logger_1.logger.error("Database update operation failed", {
424
- operation: 'updateOneAnalyticsConfiguration',
425
- model: 'AnalyticsConfiguration',
426
- error: String(error),
427
- recordId: props.id,
428
- isRetryable: isConnectionError,
429
- });
449
+ // Log structured error details and rethrow (transient -> WARN).
450
+ if (isConnectionError) {
451
+ logger_1.logger.warn("Database update operation failed (transient after retries)", {
452
+ operation: 'updateOneAnalyticsConfiguration',
453
+ model: 'AnalyticsConfiguration',
454
+ error: String(error),
455
+ recordId: props.id,
456
+ isRetryable: true,
457
+ transient: true,
458
+ recoveryHint: "Upstream caller should retry on next cycle",
459
+ });
460
+ }
461
+ else {
462
+ logger_1.logger.error("Database update operation failed", {
463
+ operation: 'updateOneAnalyticsConfiguration',
464
+ model: 'AnalyticsConfiguration',
465
+ error: String(error),
466
+ recordId: props.id,
467
+ isRetryable: false,
468
+ });
469
+ }
430
470
  throw error;
431
471
  }
432
472
  }
@@ -570,14 +610,27 @@ exports.AnalyticsConfiguration = {
570
610
  await new Promise(resolve => setTimeout(resolve, delay));
571
611
  continue;
572
612
  }
573
- // Log structured error details and rethrow
574
- logger_1.logger.error("Database upsert operation failed", {
575
- operation: 'upsertOneAnalyticsConfiguration',
576
- model: 'AnalyticsConfiguration',
577
- error: String(error),
578
- recordId: props.id,
579
- isRetryable: isConnectionError,
580
- });
613
+ // Log structured error details and rethrow (transient -> WARN).
614
+ if (isConnectionError) {
615
+ logger_1.logger.warn("Database upsert operation failed (transient after retries)", {
616
+ operation: 'upsertOneAnalyticsConfiguration',
617
+ model: 'AnalyticsConfiguration',
618
+ error: String(error),
619
+ recordId: props.id,
620
+ isRetryable: true,
621
+ transient: true,
622
+ recoveryHint: "Upstream caller should retry on next cycle",
623
+ });
624
+ }
625
+ else {
626
+ logger_1.logger.error("Database upsert operation failed", {
627
+ operation: 'upsertOneAnalyticsConfiguration',
628
+ model: 'AnalyticsConfiguration',
629
+ error: String(error),
630
+ recordId: props.id,
631
+ isRetryable: false,
632
+ });
633
+ }
581
634
  throw error;
582
635
  }
583
636
  }
@@ -717,13 +770,25 @@ exports.AnalyticsConfiguration = {
717
770
  await new Promise(resolve => setTimeout(resolve, delay));
718
771
  continue;
719
772
  }
720
- // Log structured error details and rethrow
721
- logger_1.logger.error("Database updateMany operation failed", {
722
- operation: 'updateManyAnalyticsConfiguration',
723
- model: 'AnalyticsConfiguration',
724
- error: String(error),
725
- isRetryable: isConnectionError,
726
- });
773
+ // Log structured error details and rethrow (transient -> WARN).
774
+ if (isConnectionError) {
775
+ logger_1.logger.warn("Database updateMany operation failed (transient after retries)", {
776
+ operation: 'updateManyAnalyticsConfiguration',
777
+ model: 'AnalyticsConfiguration',
778
+ error: String(error),
779
+ isRetryable: true,
780
+ transient: true,
781
+ recoveryHint: "Upstream caller should retry on next cycle",
782
+ });
783
+ }
784
+ else {
785
+ logger_1.logger.error("Database updateMany operation failed", {
786
+ operation: 'updateManyAnalyticsConfiguration',
787
+ model: 'AnalyticsConfiguration',
788
+ error: String(error),
789
+ isRetryable: false,
790
+ });
791
+ }
727
792
  throw error;
728
793
  }
729
794
  }
@@ -846,14 +911,27 @@ exports.AnalyticsConfiguration = {
846
911
  await new Promise(resolve => setTimeout(resolve, delay));
847
912
  continue;
848
913
  }
849
- // Log structured error details and rethrow
850
- logger_1.logger.error("Database delete operation failed", {
851
- operation: 'deleteOneAnalyticsConfiguration',
852
- model: 'AnalyticsConfiguration',
853
- error: String(error),
854
- recordId: props.id,
855
- isRetryable: isConnectionError,
856
- });
914
+ // Log structured error details and rethrow (transient -> WARN).
915
+ if (isConnectionError) {
916
+ logger_1.logger.warn("Database delete operation failed (transient after retries)", {
917
+ operation: 'deleteOneAnalyticsConfiguration',
918
+ model: 'AnalyticsConfiguration',
919
+ error: String(error),
920
+ recordId: props.id,
921
+ isRetryable: true,
922
+ transient: true,
923
+ recoveryHint: "Upstream caller should retry on next cycle",
924
+ });
925
+ }
926
+ else {
927
+ logger_1.logger.error("Database delete operation failed", {
928
+ operation: 'deleteOneAnalyticsConfiguration',
929
+ model: 'AnalyticsConfiguration',
930
+ error: String(error),
931
+ recordId: props.id,
932
+ isRetryable: false,
933
+ });
934
+ }
857
935
  throw error;
858
936
  }
859
937
  }
@@ -953,13 +1031,25 @@ exports.AnalyticsConfiguration = {
953
1031
  await new Promise(resolve => setTimeout(resolve, delay));
954
1032
  continue;
955
1033
  }
956
- // Log structured error details and rethrow
957
- logger_1.logger.error("Database get operation failed", {
958
- operation: 'getAnalyticsConfiguration',
959
- model: 'AnalyticsConfiguration',
960
- error: String(error),
961
- isRetryable: isConnectionError,
962
- });
1034
+ // Log structured error details and rethrow (transient -> WARN).
1035
+ if (isConnectionError) {
1036
+ logger_1.logger.warn("Database get operation failed (transient after retries)", {
1037
+ operation: 'getAnalyticsConfiguration',
1038
+ model: 'AnalyticsConfiguration',
1039
+ error: String(error),
1040
+ isRetryable: true,
1041
+ transient: true,
1042
+ recoveryHint: "Upstream caller should retry on next cycle",
1043
+ });
1044
+ }
1045
+ else {
1046
+ logger_1.logger.error("Database get operation failed", {
1047
+ operation: 'getAnalyticsConfiguration',
1048
+ model: 'AnalyticsConfiguration',
1049
+ error: String(error),
1050
+ isRetryable: false,
1051
+ });
1052
+ }
963
1053
  throw error;
964
1054
  }
965
1055
  }
@@ -1046,13 +1136,25 @@ exports.AnalyticsConfiguration = {
1046
1136
  await new Promise(resolve => setTimeout(resolve, delay));
1047
1137
  continue;
1048
1138
  }
1049
- // Log structured error details and rethrow
1050
- logger_1.logger.error("Database getAll operation failed", {
1051
- operation: 'getAllAnalyticsConfiguration',
1052
- model: 'AnalyticsConfiguration',
1053
- error: String(error),
1054
- isRetryable: isConnectionError,
1055
- });
1139
+ // Log structured error details and rethrow (transient -> WARN).
1140
+ if (isConnectionError) {
1141
+ logger_1.logger.warn("Database getAll operation failed (transient after retries)", {
1142
+ operation: 'getAllAnalyticsConfiguration',
1143
+ model: 'AnalyticsConfiguration',
1144
+ error: String(error),
1145
+ isRetryable: true,
1146
+ transient: true,
1147
+ recoveryHint: "Upstream caller should retry on next cycle",
1148
+ });
1149
+ }
1150
+ else {
1151
+ logger_1.logger.error("Database getAll operation failed", {
1152
+ operation: 'getAllAnalyticsConfiguration',
1153
+ model: 'AnalyticsConfiguration',
1154
+ error: String(error),
1155
+ isRetryable: false,
1156
+ });
1157
+ }
1056
1158
  throw error;
1057
1159
  }
1058
1160
  }
@@ -1166,13 +1268,25 @@ exports.AnalyticsConfiguration = {
1166
1268
  await new Promise(resolve => setTimeout(resolve, delay));
1167
1269
  continue;
1168
1270
  }
1169
- // Log structured error details and rethrow
1170
- logger_1.logger.error("Database findMany operation failed", {
1171
- operation: 'findManyAnalyticsConfiguration',
1172
- model: 'AnalyticsConfiguration',
1173
- error: String(error),
1174
- isRetryable: isConnectionError,
1175
- });
1271
+ // Log structured error details and rethrow (transient -> WARN).
1272
+ if (isConnectionError) {
1273
+ logger_1.logger.warn("Database findMany operation failed (transient after retries)", {
1274
+ operation: 'findManyAnalyticsConfiguration',
1275
+ model: 'AnalyticsConfiguration',
1276
+ error: String(error),
1277
+ isRetryable: true,
1278
+ transient: true,
1279
+ recoveryHint: "Upstream caller should retry on next cycle",
1280
+ });
1281
+ }
1282
+ else {
1283
+ logger_1.logger.error("Database findMany operation failed", {
1284
+ operation: 'findManyAnalyticsConfiguration',
1285
+ model: 'AnalyticsConfiguration',
1286
+ error: String(error),
1287
+ isRetryable: false,
1288
+ });
1289
+ }
1176
1290
  throw error;
1177
1291
  }
1178
1292
  }
@@ -140,13 +140,28 @@ exports.AnalyticsSnapshot = {
140
140
  await new Promise(resolve => setTimeout(resolve, delay));
141
141
  continue;
142
142
  }
143
- // Log structured error details and rethrow
144
- logger_1.logger.error("Database create operation failed", {
145
- operation: 'createOneAnalyticsSnapshot',
146
- model: 'AnalyticsSnapshot',
147
- error: String(error),
148
- isRetryable: isConnectionError,
149
- });
143
+ // Log structured error details and rethrow.
144
+ // Demote transient failures to WARN with explicit transient+recoveryHint
145
+ // metadata so log analytics can distinguish recoverable upstream retries
146
+ // from true defects.
147
+ if (isConnectionError) {
148
+ logger_1.logger.warn("Database create operation failed (transient after retries)", {
149
+ operation: 'createOneAnalyticsSnapshot',
150
+ model: 'AnalyticsSnapshot',
151
+ error: String(error),
152
+ isRetryable: true,
153
+ transient: true,
154
+ recoveryHint: "Upstream caller should retry on next cycle",
155
+ });
156
+ }
157
+ else {
158
+ logger_1.logger.error("Database create operation failed", {
159
+ operation: 'createOneAnalyticsSnapshot',
160
+ model: 'AnalyticsSnapshot',
161
+ error: String(error),
162
+ isRetryable: false,
163
+ });
164
+ }
150
165
  throw error;
151
166
  }
152
167
  }
@@ -268,13 +283,25 @@ exports.AnalyticsSnapshot = {
268
283
  await new Promise(resolve => setTimeout(resolve, delay));
269
284
  continue;
270
285
  }
271
- // Log structured error details and rethrow
272
- logger_1.logger.error("Database createMany operation failed", {
273
- operation: 'createManyAnalyticsSnapshot',
274
- model: 'AnalyticsSnapshot',
275
- error: String(error),
276
- isRetryable: isConnectionError,
277
- });
286
+ // Log structured error details and rethrow (transient -> WARN).
287
+ if (isConnectionError) {
288
+ logger_1.logger.warn("Database createMany operation failed (transient after retries)", {
289
+ operation: 'createManyAnalyticsSnapshot',
290
+ model: 'AnalyticsSnapshot',
291
+ error: String(error),
292
+ isRetryable: true,
293
+ transient: true,
294
+ recoveryHint: "Upstream caller should retry on next cycle",
295
+ });
296
+ }
297
+ else {
298
+ logger_1.logger.error("Database createMany operation failed", {
299
+ operation: 'createManyAnalyticsSnapshot',
300
+ model: 'AnalyticsSnapshot',
301
+ error: String(error),
302
+ isRetryable: false,
303
+ });
304
+ }
278
305
  throw error;
279
306
  }
280
307
  }
@@ -415,14 +442,27 @@ exports.AnalyticsSnapshot = {
415
442
  await new Promise(resolve => setTimeout(resolve, delay));
416
443
  continue;
417
444
  }
418
- // Log structured error details and rethrow
419
- logger_1.logger.error("Database update operation failed", {
420
- operation: 'updateOneAnalyticsSnapshot',
421
- model: 'AnalyticsSnapshot',
422
- error: String(error),
423
- recordId: props.id,
424
- isRetryable: isConnectionError,
425
- });
445
+ // Log structured error details and rethrow (transient -> WARN).
446
+ if (isConnectionError) {
447
+ logger_1.logger.warn("Database update operation failed (transient after retries)", {
448
+ operation: 'updateOneAnalyticsSnapshot',
449
+ model: 'AnalyticsSnapshot',
450
+ error: String(error),
451
+ recordId: props.id,
452
+ isRetryable: true,
453
+ transient: true,
454
+ recoveryHint: "Upstream caller should retry on next cycle",
455
+ });
456
+ }
457
+ else {
458
+ logger_1.logger.error("Database update operation failed", {
459
+ operation: 'updateOneAnalyticsSnapshot',
460
+ model: 'AnalyticsSnapshot',
461
+ error: String(error),
462
+ recordId: props.id,
463
+ isRetryable: false,
464
+ });
465
+ }
426
466
  throw error;
427
467
  }
428
468
  }
@@ -563,14 +603,27 @@ exports.AnalyticsSnapshot = {
563
603
  await new Promise(resolve => setTimeout(resolve, delay));
564
604
  continue;
565
605
  }
566
- // Log structured error details and rethrow
567
- logger_1.logger.error("Database upsert operation failed", {
568
- operation: 'upsertOneAnalyticsSnapshot',
569
- model: 'AnalyticsSnapshot',
570
- error: String(error),
571
- recordId: props.id,
572
- isRetryable: isConnectionError,
573
- });
606
+ // Log structured error details and rethrow (transient -> WARN).
607
+ if (isConnectionError) {
608
+ logger_1.logger.warn("Database upsert operation failed (transient after retries)", {
609
+ operation: 'upsertOneAnalyticsSnapshot',
610
+ model: 'AnalyticsSnapshot',
611
+ error: String(error),
612
+ recordId: props.id,
613
+ isRetryable: true,
614
+ transient: true,
615
+ recoveryHint: "Upstream caller should retry on next cycle",
616
+ });
617
+ }
618
+ else {
619
+ logger_1.logger.error("Database upsert operation failed", {
620
+ operation: 'upsertOneAnalyticsSnapshot',
621
+ model: 'AnalyticsSnapshot',
622
+ error: String(error),
623
+ recordId: props.id,
624
+ isRetryable: false,
625
+ });
626
+ }
574
627
  throw error;
575
628
  }
576
629
  }
@@ -709,13 +762,25 @@ exports.AnalyticsSnapshot = {
709
762
  await new Promise(resolve => setTimeout(resolve, delay));
710
763
  continue;
711
764
  }
712
- // Log structured error details and rethrow
713
- logger_1.logger.error("Database updateMany operation failed", {
714
- operation: 'updateManyAnalyticsSnapshot',
715
- model: 'AnalyticsSnapshot',
716
- error: String(error),
717
- isRetryable: isConnectionError,
718
- });
765
+ // Log structured error details and rethrow (transient -> WARN).
766
+ if (isConnectionError) {
767
+ logger_1.logger.warn("Database updateMany operation failed (transient after retries)", {
768
+ operation: 'updateManyAnalyticsSnapshot',
769
+ model: 'AnalyticsSnapshot',
770
+ error: String(error),
771
+ isRetryable: true,
772
+ transient: true,
773
+ recoveryHint: "Upstream caller should retry on next cycle",
774
+ });
775
+ }
776
+ else {
777
+ logger_1.logger.error("Database updateMany operation failed", {
778
+ operation: 'updateManyAnalyticsSnapshot',
779
+ model: 'AnalyticsSnapshot',
780
+ error: String(error),
781
+ isRetryable: false,
782
+ });
783
+ }
719
784
  throw error;
720
785
  }
721
786
  }
@@ -838,14 +903,27 @@ exports.AnalyticsSnapshot = {
838
903
  await new Promise(resolve => setTimeout(resolve, delay));
839
904
  continue;
840
905
  }
841
- // Log structured error details and rethrow
842
- logger_1.logger.error("Database delete operation failed", {
843
- operation: 'deleteOneAnalyticsSnapshot',
844
- model: 'AnalyticsSnapshot',
845
- error: String(error),
846
- recordId: props.id,
847
- isRetryable: isConnectionError,
848
- });
906
+ // Log structured error details and rethrow (transient -> WARN).
907
+ if (isConnectionError) {
908
+ logger_1.logger.warn("Database delete operation failed (transient after retries)", {
909
+ operation: 'deleteOneAnalyticsSnapshot',
910
+ model: 'AnalyticsSnapshot',
911
+ error: String(error),
912
+ recordId: props.id,
913
+ isRetryable: true,
914
+ transient: true,
915
+ recoveryHint: "Upstream caller should retry on next cycle",
916
+ });
917
+ }
918
+ else {
919
+ logger_1.logger.error("Database delete operation failed", {
920
+ operation: 'deleteOneAnalyticsSnapshot',
921
+ model: 'AnalyticsSnapshot',
922
+ error: String(error),
923
+ recordId: props.id,
924
+ isRetryable: false,
925
+ });
926
+ }
849
927
  throw error;
850
928
  }
851
929
  }
@@ -944,13 +1022,25 @@ exports.AnalyticsSnapshot = {
944
1022
  await new Promise(resolve => setTimeout(resolve, delay));
945
1023
  continue;
946
1024
  }
947
- // Log structured error details and rethrow
948
- logger_1.logger.error("Database get operation failed", {
949
- operation: 'getAnalyticsSnapshot',
950
- model: 'AnalyticsSnapshot',
951
- error: String(error),
952
- isRetryable: isConnectionError,
953
- });
1025
+ // Log structured error details and rethrow (transient -> WARN).
1026
+ if (isConnectionError) {
1027
+ logger_1.logger.warn("Database get operation failed (transient after retries)", {
1028
+ operation: 'getAnalyticsSnapshot',
1029
+ model: 'AnalyticsSnapshot',
1030
+ error: String(error),
1031
+ isRetryable: true,
1032
+ transient: true,
1033
+ recoveryHint: "Upstream caller should retry on next cycle",
1034
+ });
1035
+ }
1036
+ else {
1037
+ logger_1.logger.error("Database get operation failed", {
1038
+ operation: 'getAnalyticsSnapshot',
1039
+ model: 'AnalyticsSnapshot',
1040
+ error: String(error),
1041
+ isRetryable: false,
1042
+ });
1043
+ }
954
1044
  throw error;
955
1045
  }
956
1046
  }
@@ -1037,13 +1127,25 @@ exports.AnalyticsSnapshot = {
1037
1127
  await new Promise(resolve => setTimeout(resolve, delay));
1038
1128
  continue;
1039
1129
  }
1040
- // Log structured error details and rethrow
1041
- logger_1.logger.error("Database getAll operation failed", {
1042
- operation: 'getAllAnalyticsSnapshot',
1043
- model: 'AnalyticsSnapshot',
1044
- error: String(error),
1045
- isRetryable: isConnectionError,
1046
- });
1130
+ // Log structured error details and rethrow (transient -> WARN).
1131
+ if (isConnectionError) {
1132
+ logger_1.logger.warn("Database getAll operation failed (transient after retries)", {
1133
+ operation: 'getAllAnalyticsSnapshot',
1134
+ model: 'AnalyticsSnapshot',
1135
+ error: String(error),
1136
+ isRetryable: true,
1137
+ transient: true,
1138
+ recoveryHint: "Upstream caller should retry on next cycle",
1139
+ });
1140
+ }
1141
+ else {
1142
+ logger_1.logger.error("Database getAll operation failed", {
1143
+ operation: 'getAllAnalyticsSnapshot',
1144
+ model: 'AnalyticsSnapshot',
1145
+ error: String(error),
1146
+ isRetryable: false,
1147
+ });
1148
+ }
1047
1149
  throw error;
1048
1150
  }
1049
1151
  }
@@ -1154,13 +1256,25 @@ exports.AnalyticsSnapshot = {
1154
1256
  await new Promise(resolve => setTimeout(resolve, delay));
1155
1257
  continue;
1156
1258
  }
1157
- // Log structured error details and rethrow
1158
- logger_1.logger.error("Database findMany operation failed", {
1159
- operation: 'findManyAnalyticsSnapshot',
1160
- model: 'AnalyticsSnapshot',
1161
- error: String(error),
1162
- isRetryable: isConnectionError,
1163
- });
1259
+ // Log structured error details and rethrow (transient -> WARN).
1260
+ if (isConnectionError) {
1261
+ logger_1.logger.warn("Database findMany operation failed (transient after retries)", {
1262
+ operation: 'findManyAnalyticsSnapshot',
1263
+ model: 'AnalyticsSnapshot',
1264
+ error: String(error),
1265
+ isRetryable: true,
1266
+ transient: true,
1267
+ recoveryHint: "Upstream caller should retry on next cycle",
1268
+ });
1269
+ }
1270
+ else {
1271
+ logger_1.logger.error("Database findMany operation failed", {
1272
+ operation: 'findManyAnalyticsSnapshot',
1273
+ model: 'AnalyticsSnapshot',
1274
+ error: String(error),
1275
+ isRetryable: false,
1276
+ });
1277
+ }
1164
1278
  throw error;
1165
1279
  }
1166
1280
  }