@finatic/client 0.9.0 → 0.9.1

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 (689) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/LICENSE +39 -0
  3. package/README.md +54 -425
  4. package/dist/index.d.ts +7329 -1579
  5. package/dist/index.js +8110 -6114
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +8047 -6085
  8. package/dist/index.mjs.map +1 -1
  9. package/package.json +77 -33
  10. package/dist/custom/FinaticConnect.d.ts +0 -19
  11. package/dist/custom/FinaticConnect.d.ts.map +0 -1
  12. package/dist/custom/FinaticConnect.js +0 -24
  13. package/dist/custom/FinaticConnect.js.map +0 -1
  14. package/dist/custom/index.d.ts +0 -8
  15. package/dist/custom/index.d.ts.map +0 -1
  16. package/dist/custom/index.js +0 -20
  17. package/dist/custom/index.js.map +0 -1
  18. package/dist/custom/utils/logger-patch.d.ts +0 -13
  19. package/dist/custom/utils/logger-patch.d.ts.map +0 -1
  20. package/dist/custom/utils/logger-patch.js +0 -72
  21. package/dist/custom/utils/logger-patch.js.map +0 -1
  22. package/dist/custom/wrappers/brokers.d.ts +0 -17
  23. package/dist/custom/wrappers/brokers.d.ts.map +0 -1
  24. package/dist/custom/wrappers/brokers.js +0 -22
  25. package/dist/custom/wrappers/brokers.js.map +0 -1
  26. package/dist/custom/wrappers/market-data.d.ts +0 -13
  27. package/dist/custom/wrappers/market-data.d.ts.map +0 -1
  28. package/dist/custom/wrappers/market-data.js +0 -19
  29. package/dist/custom/wrappers/market-data.js.map +0 -1
  30. package/dist/custom/wrappers/session.d.ts +0 -16
  31. package/dist/custom/wrappers/session.d.ts.map +0 -1
  32. package/dist/custom/wrappers/session.js +0 -21
  33. package/dist/custom/wrappers/session.js.map +0 -1
  34. package/dist/generated/FinaticConnect.d.ts +0 -282
  35. package/dist/generated/FinaticConnect.d.ts.map +0 -1
  36. package/dist/generated/FinaticConnect.js +0 -890
  37. package/dist/generated/FinaticConnect.js.map +0 -1
  38. package/dist/generated/api/brokers-api.d.ts +0 -1126
  39. package/dist/generated/api/brokers-api.d.ts.map +0 -1
  40. package/dist/generated/api/brokers-api.js +0 -1430
  41. package/dist/generated/api/brokers-api.js.map +0 -1
  42. package/dist/generated/api/market-data-api.d.ts +0 -118
  43. package/dist/generated/api/market-data-api.d.ts.map +0 -1
  44. package/dist/generated/api/market-data-api.js +0 -155
  45. package/dist/generated/api/market-data-api.js.map +0 -1
  46. package/dist/generated/api/session-api.d.ts +0 -395
  47. package/dist/generated/api/session-api.d.ts.map +0 -1
  48. package/dist/generated/api/session-api.js +0 -577
  49. package/dist/generated/api/session-api.js.map +0 -1
  50. package/dist/generated/api.d.ts +0 -14
  51. package/dist/generated/api.d.ts.map +0 -1
  52. package/dist/generated/api.js +0 -31
  53. package/dist/generated/api.js.map +0 -1
  54. package/dist/generated/base.d.ts +0 -43
  55. package/dist/generated/base.d.ts.map +0 -1
  56. package/dist/generated/base.js +0 -48
  57. package/dist/generated/base.js.map +0 -1
  58. package/dist/generated/common.d.ts +0 -29
  59. package/dist/generated/common.d.ts.map +0 -1
  60. package/dist/generated/common.js +0 -110
  61. package/dist/generated/common.js.map +0 -1
  62. package/dist/generated/config.d.ts +0 -89
  63. package/dist/generated/config.d.ts.map +0 -1
  64. package/dist/generated/config.js +0 -85
  65. package/dist/generated/config.js.map +0 -1
  66. package/dist/generated/configuration.d.ts +0 -99
  67. package/dist/generated/configuration.d.ts.map +0 -1
  68. package/dist/generated/configuration.js +0 -50
  69. package/dist/generated/configuration.js.map +0 -1
  70. package/dist/generated/models/account-status.d.ts +0 -16
  71. package/dist/generated/models/account-status.d.ts.map +0 -1
  72. package/dist/generated/models/account-status.js +0 -22
  73. package/dist/generated/models/account-status.js.map +0 -1
  74. package/dist/generated/models/account-type.d.ts +0 -19
  75. package/dist/generated/models/account-type.d.ts.map +0 -1
  76. package/dist/generated/models/account-type.js +0 -25
  77. package/dist/generated/models/account-type.js.map +0 -1
  78. package/dist/generated/models/accountnumber.d.ts +0 -14
  79. package/dist/generated/models/accountnumber.d.ts.map +0 -1
  80. package/dist/generated/models/accountnumber.js +0 -16
  81. package/dist/generated/models/accountnumber.js.map +0 -1
  82. package/dist/generated/models/accounts.d.ts +0 -34
  83. package/dist/generated/models/accounts.d.ts.map +0 -1
  84. package/dist/generated/models/accounts.js +0 -16
  85. package/dist/generated/models/accounts.js.map +0 -1
  86. package/dist/generated/models/asset-type.d.ts +0 -18
  87. package/dist/generated/models/asset-type.d.ts.map +0 -1
  88. package/dist/generated/models/asset-type.js +0 -24
  89. package/dist/generated/models/asset-type.js.map +0 -1
  90. package/dist/generated/models/balances.d.ts +0 -28
  91. package/dist/generated/models/balances.d.ts.map +0 -1
  92. package/dist/generated/models/balances.js +0 -16
  93. package/dist/generated/models/balances.js.map +0 -1
  94. package/dist/generated/models/broker-connection-request.d.ts +0 -24
  95. package/dist/generated/models/broker-connection-request.d.ts.map +0 -1
  96. package/dist/generated/models/broker-connection-request.js +0 -16
  97. package/dist/generated/models/broker-connection-request.js.map +0 -1
  98. package/dist/generated/models/broker-connection-update-request.d.ts +0 -22
  99. package/dist/generated/models/broker-connection-update-request.d.ts.map +0 -1
  100. package/dist/generated/models/broker-connection-update-request.js +0 -16
  101. package/dist/generated/models/broker-connection-update-request.js.map +0 -1
  102. package/dist/generated/models/broker-info.d.ts +0 -29
  103. package/dist/generated/models/broker-info.d.ts.map +0 -1
  104. package/dist/generated/models/broker-info.js +0 -16
  105. package/dist/generated/models/broker-info.js.map +0 -1
  106. package/dist/generated/models/broker-permissions.d.ts +0 -25
  107. package/dist/generated/models/broker-permissions.d.ts.map +0 -1
  108. package/dist/generated/models/broker-permissions.js +0 -16
  109. package/dist/generated/models/broker-permissions.js.map +0 -1
  110. package/dist/generated/models/cancel-order-api-v1-brokers-orders-order-id-delete-request.d.ts +0 -26
  111. package/dist/generated/models/cancel-order-api-v1-brokers-orders-order-id-delete-request.d.ts.map +0 -1
  112. package/dist/generated/models/cancel-order-api-v1-brokers-orders-order-id-delete-request.js +0 -16
  113. package/dist/generated/models/cancel-order-api-v1-brokers-orders-order-id-delete-request.js.map +0 -1
  114. package/dist/generated/models/day-tif.d.ts +0 -21
  115. package/dist/generated/models/day-tif.d.ts.map +0 -1
  116. package/dist/generated/models/day-tif.js +0 -21
  117. package/dist/generated/models/day-tif.js.map +0 -1
  118. package/dist/generated/models/direct-auth-request.d.ts +0 -25
  119. package/dist/generated/models/direct-auth-request.d.ts.map +0 -1
  120. package/dist/generated/models/direct-auth-request.js +0 -16
  121. package/dist/generated/models/direct-auth-request.js.map +0 -1
  122. package/dist/generated/models/disconnect-action-result.d.ts +0 -20
  123. package/dist/generated/models/disconnect-action-result.d.ts.map +0 -1
  124. package/dist/generated/models/disconnect-action-result.js +0 -16
  125. package/dist/generated/models/disconnect-action-result.js.map +0 -1
  126. package/dist/generated/models/finatic-apiwarning.d.ts +0 -24
  127. package/dist/generated/models/finatic-apiwarning.d.ts.map +0 -1
  128. package/dist/generated/models/finatic-apiwarning.js +0 -16
  129. package/dist/generated/models/finatic-apiwarning.js.map +0 -1
  130. package/dist/generated/models/finatic-error.d.ts +0 -26
  131. package/dist/generated/models/finatic-error.d.ts.map +0 -1
  132. package/dist/generated/models/finatic-error.js +0 -16
  133. package/dist/generated/models/finatic-error.js.map +0 -1
  134. package/dist/generated/models/finatic-response-disconnect-action-result.d.ts +0 -38
  135. package/dist/generated/models/finatic-response-disconnect-action-result.d.ts.map +0 -1
  136. package/dist/generated/models/finatic-response-disconnect-action-result.js +0 -16
  137. package/dist/generated/models/finatic-response-disconnect-action-result.js.map +0 -1
  138. package/dist/generated/models/finatic-response-list-accounts.d.ts +0 -38
  139. package/dist/generated/models/finatic-response-list-accounts.d.ts.map +0 -1
  140. package/dist/generated/models/finatic-response-list-accounts.js +0 -16
  141. package/dist/generated/models/finatic-response-list-accounts.js.map +0 -1
  142. package/dist/generated/models/finatic-response-list-balances.d.ts +0 -38
  143. package/dist/generated/models/finatic-response-list-balances.d.ts.map +0 -1
  144. package/dist/generated/models/finatic-response-list-balances.js +0 -16
  145. package/dist/generated/models/finatic-response-list-balances.js.map +0 -1
  146. package/dist/generated/models/finatic-response-list-broker-info.d.ts +0 -38
  147. package/dist/generated/models/finatic-response-list-broker-info.d.ts.map +0 -1
  148. package/dist/generated/models/finatic-response-list-broker-info.js +0 -16
  149. package/dist/generated/models/finatic-response-list-broker-info.js.map +0 -1
  150. package/dist/generated/models/finatic-response-list-dict.d.ts +0 -41
  151. package/dist/generated/models/finatic-response-list-dict.d.ts.map +0 -1
  152. package/dist/generated/models/finatic-response-list-dict.js +0 -16
  153. package/dist/generated/models/finatic-response-list-dict.js.map +0 -1
  154. package/dist/generated/models/finatic-response-list-futures-historical-row.d.ts +0 -38
  155. package/dist/generated/models/finatic-response-list-futures-historical-row.d.ts.map +0 -1
  156. package/dist/generated/models/finatic-response-list-futures-historical-row.js +0 -16
  157. package/dist/generated/models/finatic-response-list-futures-historical-row.js.map +0 -1
  158. package/dist/generated/models/finatic-response-list-order-event-response.d.ts +0 -38
  159. package/dist/generated/models/finatic-response-list-order-event-response.d.ts.map +0 -1
  160. package/dist/generated/models/finatic-response-list-order-event-response.js +0 -16
  161. package/dist/generated/models/finatic-response-list-order-event-response.js.map +0 -1
  162. package/dist/generated/models/finatic-response-list-order-fill-response.d.ts +0 -38
  163. package/dist/generated/models/finatic-response-list-order-fill-response.d.ts.map +0 -1
  164. package/dist/generated/models/finatic-response-list-order-fill-response.js +0 -16
  165. package/dist/generated/models/finatic-response-list-order-fill-response.js.map +0 -1
  166. package/dist/generated/models/finatic-response-list-order-group-response.d.ts +0 -38
  167. package/dist/generated/models/finatic-response-list-order-group-response.d.ts.map +0 -1
  168. package/dist/generated/models/finatic-response-list-order-group-response.js +0 -16
  169. package/dist/generated/models/finatic-response-list-order-group-response.js.map +0 -1
  170. package/dist/generated/models/finatic-response-list-order-response.d.ts +0 -38
  171. package/dist/generated/models/finatic-response-list-order-response.d.ts.map +0 -1
  172. package/dist/generated/models/finatic-response-list-order-response.js +0 -16
  173. package/dist/generated/models/finatic-response-list-order-response.js.map +0 -1
  174. package/dist/generated/models/finatic-response-list-position-lot-fill-response.d.ts +0 -38
  175. package/dist/generated/models/finatic-response-list-position-lot-fill-response.d.ts.map +0 -1
  176. package/dist/generated/models/finatic-response-list-position-lot-fill-response.js +0 -16
  177. package/dist/generated/models/finatic-response-list-position-lot-fill-response.js.map +0 -1
  178. package/dist/generated/models/finatic-response-list-position-lot-response.d.ts +0 -38
  179. package/dist/generated/models/finatic-response-list-position-lot-response.d.ts.map +0 -1
  180. package/dist/generated/models/finatic-response-list-position-lot-response.js +0 -16
  181. package/dist/generated/models/finatic-response-list-position-lot-response.js.map +0 -1
  182. package/dist/generated/models/finatic-response-list-position-response.d.ts +0 -38
  183. package/dist/generated/models/finatic-response-list-position-response.d.ts.map +0 -1
  184. package/dist/generated/models/finatic-response-list-position-response.js +0 -16
  185. package/dist/generated/models/finatic-response-list-position-response.js.map +0 -1
  186. package/dist/generated/models/finatic-response-list-user-broker-connections.d.ts +0 -38
  187. package/dist/generated/models/finatic-response-list-user-broker-connections.d.ts.map +0 -1
  188. package/dist/generated/models/finatic-response-list-user-broker-connections.js +0 -16
  189. package/dist/generated/models/finatic-response-list-user-broker-connections.js.map +0 -1
  190. package/dist/generated/models/finatic-response-order-action-result.d.ts +0 -38
  191. package/dist/generated/models/finatic-response-order-action-result.d.ts.map +0 -1
  192. package/dist/generated/models/finatic-response-order-action-result.js +0 -16
  193. package/dist/generated/models/finatic-response-order-action-result.js.map +0 -1
  194. package/dist/generated/models/finatic-response-portal-url-response.d.ts +0 -18
  195. package/dist/generated/models/finatic-response-portal-url-response.d.ts.map +0 -1
  196. package/dist/generated/models/finatic-response-portal-url-response.js +0 -16
  197. package/dist/generated/models/finatic-response-portal-url-response.js.map +0 -1
  198. package/dist/generated/models/finatic-response-session-response-data.d.ts +0 -18
  199. package/dist/generated/models/finatic-response-session-response-data.d.ts.map +0 -1
  200. package/dist/generated/models/finatic-response-session-response-data.js +0 -16
  201. package/dist/generated/models/finatic-response-session-response-data.js.map +0 -1
  202. package/dist/generated/models/finatic-response-session-user-response.d.ts +0 -18
  203. package/dist/generated/models/finatic-response-session-user-response.d.ts.map +0 -1
  204. package/dist/generated/models/finatic-response-session-user-response.js +0 -16
  205. package/dist/generated/models/finatic-response-session-user-response.js.map +0 -1
  206. package/dist/generated/models/finatic-response-test-webhook-response.d.ts +0 -18
  207. package/dist/generated/models/finatic-response-test-webhook-response.d.ts.map +0 -1
  208. package/dist/generated/models/finatic-response-test-webhook-response.js +0 -16
  209. package/dist/generated/models/finatic-response-test-webhook-response.js.map +0 -1
  210. package/dist/generated/models/finatic-response-token-data.d.ts +0 -18
  211. package/dist/generated/models/finatic-response-token-data.d.ts.map +0 -1
  212. package/dist/generated/models/finatic-response-token-data.js +0 -16
  213. package/dist/generated/models/finatic-response-token-data.js.map +0 -1
  214. package/dist/generated/models/finatic-response-token-response-data.d.ts +0 -18
  215. package/dist/generated/models/finatic-response-token-response-data.d.ts.map +0 -1
  216. package/dist/generated/models/finatic-response-token-response-data.js +0 -16
  217. package/dist/generated/models/finatic-response-token-response-data.js.map +0 -1
  218. package/dist/generated/models/finatic-response-user-broker-connections.d.ts +0 -34
  219. package/dist/generated/models/finatic-response-user-broker-connections.d.ts.map +0 -1
  220. package/dist/generated/models/finatic-response-user-broker-connections.js +0 -16
  221. package/dist/generated/models/finatic-response-user-broker-connections.js.map +0 -1
  222. package/dist/generated/models/finaticapi-api-v1-routers-session-session-router-test-webhook-request.d.ts +0 -24
  223. package/dist/generated/models/finaticapi-api-v1-routers-session-session-router-test-webhook-request.d.ts.map +0 -1
  224. package/dist/generated/models/finaticapi-api-v1-routers-session-session-router-test-webhook-request.js +0 -16
  225. package/dist/generated/models/finaticapi-api-v1-routers-session-session-router-test-webhook-request.js.map +0 -1
  226. package/dist/generated/models/finaticapi-core-standard-models-abstract-responses-finatic-response.d.ts +0 -40
  227. package/dist/generated/models/finaticapi-core-standard-models-abstract-responses-finatic-response.d.ts.map +0 -1
  228. package/dist/generated/models/finaticapi-core-standard-models-abstract-responses-finatic-response.js +0 -16
  229. package/dist/generated/models/finaticapi-core-standard-models-abstract-responses-finatic-response.js.map +0 -1
  230. package/dist/generated/models/finaticapi-core-standard-models-finatic-response.d.ts +0 -20
  231. package/dist/generated/models/finaticapi-core-standard-models-finatic-response.d.ts.map +0 -1
  232. package/dist/generated/models/finaticapi-core-standard-models-finatic-response.js +0 -16
  233. package/dist/generated/models/finaticapi-core-standard-models-finatic-response.js.map +0 -1
  234. package/dist/generated/models/foktif.d.ts +0 -21
  235. package/dist/generated/models/foktif.d.ts.map +0 -1
  236. package/dist/generated/models/foktif.js +0 -21
  237. package/dist/generated/models/foktif.js.map +0 -1
  238. package/dist/generated/models/futures-historical-row.d.ts +0 -27
  239. package/dist/generated/models/futures-historical-row.d.ts.map +0 -1
  240. package/dist/generated/models/futures-historical-row.js +0 -16
  241. package/dist/generated/models/futures-historical-row.js.map +0 -1
  242. package/dist/generated/models/gtctif.d.ts +0 -21
  243. package/dist/generated/models/gtctif.d.ts.map +0 -1
  244. package/dist/generated/models/gtctif.js +0 -21
  245. package/dist/generated/models/gtctif.js.map +0 -1
  246. package/dist/generated/models/gtdtif.d.ts +0 -25
  247. package/dist/generated/models/gtdtif.d.ts.map +0 -1
  248. package/dist/generated/models/gtdtif.js +0 -21
  249. package/dist/generated/models/gtdtif.js.map +0 -1
  250. package/dist/generated/models/httpvalidation-error.d.ts +0 -16
  251. package/dist/generated/models/httpvalidation-error.d.ts.map +0 -1
  252. package/dist/generated/models/httpvalidation-error.js +0 -16
  253. package/dist/generated/models/httpvalidation-error.js.map +0 -1
  254. package/dist/generated/models/index.d.ts +0 -108
  255. package/dist/generated/models/index.d.ts.map +0 -1
  256. package/dist/generated/models/index.js +0 -125
  257. package/dist/generated/models/index.js.map +0 -1
  258. package/dist/generated/models/ioctif.d.ts +0 -21
  259. package/dist/generated/models/ioctif.d.ts.map +0 -1
  260. package/dist/generated/models/ioctif.js +0 -21
  261. package/dist/generated/models/ioctif.js.map +0 -1
  262. package/dist/generated/models/limit-order-modify-query-params.d.ts +0 -32
  263. package/dist/generated/models/limit-order-modify-query-params.d.ts.map +0 -1
  264. package/dist/generated/models/limit-order-modify-query-params.js +0 -21
  265. package/dist/generated/models/limit-order-modify-query-params.js.map +0 -1
  266. package/dist/generated/models/market-order-modify-query-params.d.ts +0 -31
  267. package/dist/generated/models/market-order-modify-query-params.d.ts.map +0 -1
  268. package/dist/generated/models/market-order-modify-query-params.js +0 -21
  269. package/dist/generated/models/market-order-modify-query-params.js.map +0 -1
  270. package/dist/generated/models/modify-order-api-v1-brokers-orders-order-id-patch-request.d.ts +0 -26
  271. package/dist/generated/models/modify-order-api-v1-brokers-orders-order-id-patch-request.d.ts.map +0 -1
  272. package/dist/generated/models/modify-order-api-v1-brokers-orders-order-id-patch-request.js +0 -16
  273. package/dist/generated/models/modify-order-api-v1-brokers-orders-order-id-patch-request.js.map +0 -1
  274. package/dist/generated/models/ninja-trader-limit-order-modify-query-params.d.ts +0 -38
  275. package/dist/generated/models/ninja-trader-limit-order-modify-query-params.d.ts.map +0 -1
  276. package/dist/generated/models/ninja-trader-limit-order-modify-query-params.js +0 -21
  277. package/dist/generated/models/ninja-trader-limit-order-modify-query-params.js.map +0 -1
  278. package/dist/generated/models/ninja-trader-limit-order-place-query-params.d.ts +0 -44
  279. package/dist/generated/models/ninja-trader-limit-order-place-query-params.d.ts.map +0 -1
  280. package/dist/generated/models/ninja-trader-limit-order-place-query-params.js +0 -30
  281. package/dist/generated/models/ninja-trader-limit-order-place-query-params.js.map +0 -1
  282. package/dist/generated/models/ninja-trader-market-order-modify-query-params.d.ts +0 -37
  283. package/dist/generated/models/ninja-trader-market-order-modify-query-params.d.ts.map +0 -1
  284. package/dist/generated/models/ninja-trader-market-order-modify-query-params.js +0 -21
  285. package/dist/generated/models/ninja-trader-market-order-modify-query-params.js.map +0 -1
  286. package/dist/generated/models/ninja-trader-market-order-place-query-params.d.ts +0 -43
  287. package/dist/generated/models/ninja-trader-market-order-place-query-params.d.ts.map +0 -1
  288. package/dist/generated/models/ninja-trader-market-order-place-query-params.js +0 -30
  289. package/dist/generated/models/ninja-trader-market-order-place-query-params.js.map +0 -1
  290. package/dist/generated/models/ninja-trader-order-cancel-query-params.d.ts +0 -26
  291. package/dist/generated/models/ninja-trader-order-cancel-query-params.d.ts.map +0 -1
  292. package/dist/generated/models/ninja-trader-order-cancel-query-params.js +0 -16
  293. package/dist/generated/models/ninja-trader-order-cancel-query-params.js.map +0 -1
  294. package/dist/generated/models/ninja-trader-order-cancel-request.d.ts +0 -21
  295. package/dist/generated/models/ninja-trader-order-cancel-request.d.ts.map +0 -1
  296. package/dist/generated/models/ninja-trader-order-cancel-request.js +0 -21
  297. package/dist/generated/models/ninja-trader-order-cancel-request.js.map +0 -1
  298. package/dist/generated/models/ninja-trader-order-modify-request.d.ts +0 -21
  299. package/dist/generated/models/ninja-trader-order-modify-request.d.ts.map +0 -1
  300. package/dist/generated/models/ninja-trader-order-modify-request.js +0 -21
  301. package/dist/generated/models/ninja-trader-order-modify-request.js.map +0 -1
  302. package/dist/generated/models/ninja-trader-order-place-request.d.ts +0 -24
  303. package/dist/generated/models/ninja-trader-order-place-request.d.ts.map +0 -1
  304. package/dist/generated/models/ninja-trader-order-place-request.js +0 -21
  305. package/dist/generated/models/ninja-trader-order-place-request.js.map +0 -1
  306. package/dist/generated/models/ninja-trader-stop-order-modify-query-params.d.ts +0 -38
  307. package/dist/generated/models/ninja-trader-stop-order-modify-query-params.d.ts.map +0 -1
  308. package/dist/generated/models/ninja-trader-stop-order-modify-query-params.js +0 -21
  309. package/dist/generated/models/ninja-trader-stop-order-modify-query-params.js.map +0 -1
  310. package/dist/generated/models/ninja-trader-stop-order-place-query-params.d.ts +0 -44
  311. package/dist/generated/models/ninja-trader-stop-order-place-query-params.d.ts.map +0 -1
  312. package/dist/generated/models/ninja-trader-stop-order-place-query-params.js +0 -30
  313. package/dist/generated/models/ninja-trader-stop-order-place-query-params.js.map +0 -1
  314. package/dist/generated/models/ninja-trader-trailing-stop-order-modify-query-params.d.ts +0 -38
  315. package/dist/generated/models/ninja-trader-trailing-stop-order-modify-query-params.d.ts.map +0 -1
  316. package/dist/generated/models/ninja-trader-trailing-stop-order-modify-query-params.js +0 -21
  317. package/dist/generated/models/ninja-trader-trailing-stop-order-modify-query-params.js.map +0 -1
  318. package/dist/generated/models/ninja-trader-trailing-stop-order-place-query-params.d.ts +0 -44
  319. package/dist/generated/models/ninja-trader-trailing-stop-order-place-query-params.d.ts.map +0 -1
  320. package/dist/generated/models/ninja-trader-trailing-stop-order-place-query-params.js +0 -30
  321. package/dist/generated/models/ninja-trader-trailing-stop-order-place-query-params.js.map +0 -1
  322. package/dist/generated/models/order-action-result.d.ts +0 -21
  323. package/dist/generated/models/order-action-result.d.ts.map +0 -1
  324. package/dist/generated/models/order-action-result.js +0 -16
  325. package/dist/generated/models/order-action-result.js.map +0 -1
  326. package/dist/generated/models/order-cancel-query-params.d.ts +0 -22
  327. package/dist/generated/models/order-cancel-query-params.d.ts.map +0 -1
  328. package/dist/generated/models/order-cancel-query-params.js +0 -16
  329. package/dist/generated/models/order-cancel-query-params.js.map +0 -1
  330. package/dist/generated/models/order-event-response.d.ts +0 -25
  331. package/dist/generated/models/order-event-response.d.ts.map +0 -1
  332. package/dist/generated/models/order-event-response.js +0 -16
  333. package/dist/generated/models/order-event-response.js.map +0 -1
  334. package/dist/generated/models/order-fill-response.d.ts +0 -24
  335. package/dist/generated/models/order-fill-response.d.ts.map +0 -1
  336. package/dist/generated/models/order-fill-response.js +0 -16
  337. package/dist/generated/models/order-fill-response.js.map +0 -1
  338. package/dist/generated/models/order-group-order.d.ts +0 -24
  339. package/dist/generated/models/order-group-order.d.ts.map +0 -1
  340. package/dist/generated/models/order-group-order.js +0 -16
  341. package/dist/generated/models/order-group-order.js.map +0 -1
  342. package/dist/generated/models/order-group-response.d.ts +0 -24
  343. package/dist/generated/models/order-group-response.d.ts.map +0 -1
  344. package/dist/generated/models/order-group-response.js +0 -16
  345. package/dist/generated/models/order-group-response.js.map +0 -1
  346. package/dist/generated/models/order-leg.d.ts +0 -22
  347. package/dist/generated/models/order-leg.d.ts.map +0 -1
  348. package/dist/generated/models/order-leg.js +0 -16
  349. package/dist/generated/models/order-leg.js.map +0 -1
  350. package/dist/generated/models/order-response.d.ts +0 -27
  351. package/dist/generated/models/order-response.d.ts.map +0 -1
  352. package/dist/generated/models/order-response.js +0 -16
  353. package/dist/generated/models/order-response.js.map +0 -1
  354. package/dist/generated/models/order-side.d.ts +0 -16
  355. package/dist/generated/models/order-side.d.ts.map +0 -1
  356. package/dist/generated/models/order-side.js +0 -22
  357. package/dist/generated/models/order-side.js.map +0 -1
  358. package/dist/generated/models/order-status.d.ts +0 -23
  359. package/dist/generated/models/order-status.d.ts.map +0 -1
  360. package/dist/generated/models/order-status.js +0 -29
  361. package/dist/generated/models/order-status.js.map +0 -1
  362. package/dist/generated/models/order.d.ts +0 -28
  363. package/dist/generated/models/order.d.ts.map +0 -1
  364. package/dist/generated/models/order.js +0 -16
  365. package/dist/generated/models/order.js.map +0 -1
  366. package/dist/generated/models/order1.d.ts +0 -28
  367. package/dist/generated/models/order1.d.ts.map +0 -1
  368. package/dist/generated/models/order1.js +0 -16
  369. package/dist/generated/models/order1.js.map +0 -1
  370. package/dist/generated/models/order2.d.ts +0 -28
  371. package/dist/generated/models/order2.d.ts.map +0 -1
  372. package/dist/generated/models/order2.js +0 -16
  373. package/dist/generated/models/order2.js.map +0 -1
  374. package/dist/generated/models/order3.d.ts +0 -28
  375. package/dist/generated/models/order3.d.ts.map +0 -1
  376. package/dist/generated/models/order3.js +0 -16
  377. package/dist/generated/models/order3.js.map +0 -1
  378. package/dist/generated/models/order4.d.ts +0 -28
  379. package/dist/generated/models/order4.d.ts.map +0 -1
  380. package/dist/generated/models/order4.js +0 -16
  381. package/dist/generated/models/order4.js.map +0 -1
  382. package/dist/generated/models/order5.d.ts +0 -28
  383. package/dist/generated/models/order5.d.ts.map +0 -1
  384. package/dist/generated/models/order5.js +0 -16
  385. package/dist/generated/models/order5.js.map +0 -1
  386. package/dist/generated/models/place-order-api-v1-brokers-orders-post-request.d.ts +0 -26
  387. package/dist/generated/models/place-order-api-v1-brokers-orders-post-request.d.ts.map +0 -1
  388. package/dist/generated/models/place-order-api-v1-brokers-orders-post-request.js +0 -16
  389. package/dist/generated/models/place-order-api-v1-brokers-orders-post-request.js.map +0 -1
  390. package/dist/generated/models/portal-url-response.d.ts +0 -21
  391. package/dist/generated/models/portal-url-response.d.ts.map +0 -1
  392. package/dist/generated/models/portal-url-response.js +0 -16
  393. package/dist/generated/models/portal-url-response.js.map +0 -1
  394. package/dist/generated/models/position-lot-fill-response.d.ts +0 -23
  395. package/dist/generated/models/position-lot-fill-response.d.ts.map +0 -1
  396. package/dist/generated/models/position-lot-fill-response.js +0 -16
  397. package/dist/generated/models/position-lot-fill-response.js.map +0 -1
  398. package/dist/generated/models/position-lot-response.d.ts +0 -27
  399. package/dist/generated/models/position-lot-response.d.ts.map +0 -1
  400. package/dist/generated/models/position-lot-response.js +0 -16
  401. package/dist/generated/models/position-lot-response.js.map +0 -1
  402. package/dist/generated/models/position-response.d.ts +0 -62
  403. package/dist/generated/models/position-response.d.ts.map +0 -1
  404. package/dist/generated/models/position-response.js +0 -16
  405. package/dist/generated/models/position-response.js.map +0 -1
  406. package/dist/generated/models/position-status.d.ts +0 -16
  407. package/dist/generated/models/position-status.d.ts.map +0 -1
  408. package/dist/generated/models/position-status.js +0 -22
  409. package/dist/generated/models/position-status.js.map +0 -1
  410. package/dist/generated/models/public-account-type-enum.d.ts +0 -17
  411. package/dist/generated/models/public-account-type-enum.d.ts.map +0 -1
  412. package/dist/generated/models/public-account-type-enum.js +0 -23
  413. package/dist/generated/models/public-account-type-enum.js.map +0 -1
  414. package/dist/generated/models/public-asset-type-enum.d.ts +0 -20
  415. package/dist/generated/models/public-asset-type-enum.d.ts.map +0 -1
  416. package/dist/generated/models/public-asset-type-enum.js +0 -26
  417. package/dist/generated/models/public-asset-type-enum.js.map +0 -1
  418. package/dist/generated/models/public-connection-status-enum.d.ts +0 -20
  419. package/dist/generated/models/public-connection-status-enum.d.ts.map +0 -1
  420. package/dist/generated/models/public-connection-status-enum.js +0 -26
  421. package/dist/generated/models/public-connection-status-enum.js.map +0 -1
  422. package/dist/generated/models/public-order-side-enum.d.ts +0 -16
  423. package/dist/generated/models/public-order-side-enum.d.ts.map +0 -1
  424. package/dist/generated/models/public-order-side-enum.js +0 -22
  425. package/dist/generated/models/public-order-side-enum.js.map +0 -1
  426. package/dist/generated/models/public-order-status-enum.d.ts +0 -24
  427. package/dist/generated/models/public-order-status-enum.d.ts.map +0 -1
  428. package/dist/generated/models/public-order-status-enum.js +0 -30
  429. package/dist/generated/models/public-order-status-enum.js.map +0 -1
  430. package/dist/generated/models/public-position-status-enum.d.ts +0 -17
  431. package/dist/generated/models/public-position-status-enum.d.ts.map +0 -1
  432. package/dist/generated/models/public-position-status-enum.js +0 -23
  433. package/dist/generated/models/public-position-status-enum.js.map +0 -1
  434. package/dist/generated/models/robinhood-limit-order-place-query-params.d.ts +0 -37
  435. package/dist/generated/models/robinhood-limit-order-place-query-params.d.ts.map +0 -1
  436. package/dist/generated/models/robinhood-limit-order-place-query-params.js +0 -30
  437. package/dist/generated/models/robinhood-limit-order-place-query-params.js.map +0 -1
  438. package/dist/generated/models/robinhood-market-order-place-query-params.d.ts +0 -36
  439. package/dist/generated/models/robinhood-market-order-place-query-params.d.ts.map +0 -1
  440. package/dist/generated/models/robinhood-market-order-place-query-params.js +0 -30
  441. package/dist/generated/models/robinhood-market-order-place-query-params.js.map +0 -1
  442. package/dist/generated/models/robinhood-order-cancel-request.d.ts +0 -21
  443. package/dist/generated/models/robinhood-order-cancel-request.d.ts.map +0 -1
  444. package/dist/generated/models/robinhood-order-cancel-request.js +0 -21
  445. package/dist/generated/models/robinhood-order-cancel-request.js.map +0 -1
  446. package/dist/generated/models/robinhood-order-modify-request.d.ts +0 -21
  447. package/dist/generated/models/robinhood-order-modify-request.d.ts.map +0 -1
  448. package/dist/generated/models/robinhood-order-modify-request.js +0 -21
  449. package/dist/generated/models/robinhood-order-modify-request.js.map +0 -1
  450. package/dist/generated/models/robinhood-order-place-request.d.ts +0 -24
  451. package/dist/generated/models/robinhood-order-place-request.d.ts.map +0 -1
  452. package/dist/generated/models/robinhood-order-place-request.js +0 -21
  453. package/dist/generated/models/robinhood-order-place-request.js.map +0 -1
  454. package/dist/generated/models/robinhood-stop-order-place-query-params.d.ts +0 -37
  455. package/dist/generated/models/robinhood-stop-order-place-query-params.d.ts.map +0 -1
  456. package/dist/generated/models/robinhood-stop-order-place-query-params.js +0 -30
  457. package/dist/generated/models/robinhood-stop-order-place-query-params.js.map +0 -1
  458. package/dist/generated/models/robinhood-trailing-stop-order-place-query-params.d.ts +0 -37
  459. package/dist/generated/models/robinhood-trailing-stop-order-place-query-params.d.ts.map +0 -1
  460. package/dist/generated/models/robinhood-trailing-stop-order-place-query-params.js +0 -30
  461. package/dist/generated/models/robinhood-trailing-stop-order-place-query-params.js.map +0 -1
  462. package/dist/generated/models/session-link-request.d.ts +0 -19
  463. package/dist/generated/models/session-link-request.d.ts.map +0 -1
  464. package/dist/generated/models/session-link-request.js +0 -16
  465. package/dist/generated/models/session-link-request.js.map +0 -1
  466. package/dist/generated/models/session-response-data.d.ts +0 -39
  467. package/dist/generated/models/session-response-data.d.ts.map +0 -1
  468. package/dist/generated/models/session-response-data.js +0 -16
  469. package/dist/generated/models/session-response-data.js.map +0 -1
  470. package/dist/generated/models/session-start-request.d.ts +0 -18
  471. package/dist/generated/models/session-start-request.d.ts.map +0 -1
  472. package/dist/generated/models/session-start-request.js +0 -16
  473. package/dist/generated/models/session-start-request.js.map +0 -1
  474. package/dist/generated/models/session-status.d.ts +0 -22
  475. package/dist/generated/models/session-status.d.ts.map +0 -1
  476. package/dist/generated/models/session-status.js +0 -28
  477. package/dist/generated/models/session-status.js.map +0 -1
  478. package/dist/generated/models/session-user-response.d.ts +0 -45
  479. package/dist/generated/models/session-user-response.d.ts.map +0 -1
  480. package/dist/generated/models/session-user-response.js +0 -16
  481. package/dist/generated/models/session-user-response.js.map +0 -1
  482. package/dist/generated/models/stop-order-modify-query-params.d.ts +0 -32
  483. package/dist/generated/models/stop-order-modify-query-params.d.ts.map +0 -1
  484. package/dist/generated/models/stop-order-modify-query-params.js +0 -21
  485. package/dist/generated/models/stop-order-modify-query-params.js.map +0 -1
  486. package/dist/generated/models/tasty-trade-limit-order-modify-query-params.d.ts +0 -38
  487. package/dist/generated/models/tasty-trade-limit-order-modify-query-params.d.ts.map +0 -1
  488. package/dist/generated/models/tasty-trade-limit-order-modify-query-params.js +0 -21
  489. package/dist/generated/models/tasty-trade-limit-order-modify-query-params.js.map +0 -1
  490. package/dist/generated/models/tasty-trade-limit-order-place-query-params.d.ts +0 -55
  491. package/dist/generated/models/tasty-trade-limit-order-place-query-params.d.ts.map +0 -1
  492. package/dist/generated/models/tasty-trade-limit-order-place-query-params.js +0 -40
  493. package/dist/generated/models/tasty-trade-limit-order-place-query-params.js.map +0 -1
  494. package/dist/generated/models/tasty-trade-market-order-modify-query-params.d.ts +0 -37
  495. package/dist/generated/models/tasty-trade-market-order-modify-query-params.d.ts.map +0 -1
  496. package/dist/generated/models/tasty-trade-market-order-modify-query-params.js +0 -21
  497. package/dist/generated/models/tasty-trade-market-order-modify-query-params.js.map +0 -1
  498. package/dist/generated/models/tasty-trade-market-order-place-query-params.d.ts +0 -54
  499. package/dist/generated/models/tasty-trade-market-order-place-query-params.d.ts.map +0 -1
  500. package/dist/generated/models/tasty-trade-market-order-place-query-params.js +0 -40
  501. package/dist/generated/models/tasty-trade-market-order-place-query-params.js.map +0 -1
  502. package/dist/generated/models/tasty-trade-order-cancel-query-params.d.ts +0 -26
  503. package/dist/generated/models/tasty-trade-order-cancel-query-params.d.ts.map +0 -1
  504. package/dist/generated/models/tasty-trade-order-cancel-query-params.js +0 -16
  505. package/dist/generated/models/tasty-trade-order-cancel-query-params.js.map +0 -1
  506. package/dist/generated/models/tasty-trade-order-cancel-request.d.ts +0 -21
  507. package/dist/generated/models/tasty-trade-order-cancel-request.d.ts.map +0 -1
  508. package/dist/generated/models/tasty-trade-order-cancel-request.js +0 -21
  509. package/dist/generated/models/tasty-trade-order-cancel-request.js.map +0 -1
  510. package/dist/generated/models/tasty-trade-order-modify-request.d.ts +0 -21
  511. package/dist/generated/models/tasty-trade-order-modify-request.d.ts.map +0 -1
  512. package/dist/generated/models/tasty-trade-order-modify-request.js +0 -21
  513. package/dist/generated/models/tasty-trade-order-modify-request.js.map +0 -1
  514. package/dist/generated/models/tasty-trade-order-place-request.d.ts +0 -24
  515. package/dist/generated/models/tasty-trade-order-place-request.d.ts.map +0 -1
  516. package/dist/generated/models/tasty-trade-order-place-request.js +0 -21
  517. package/dist/generated/models/tasty-trade-order-place-request.js.map +0 -1
  518. package/dist/generated/models/tasty-trade-stop-order-modify-query-params.d.ts +0 -38
  519. package/dist/generated/models/tasty-trade-stop-order-modify-query-params.d.ts.map +0 -1
  520. package/dist/generated/models/tasty-trade-stop-order-modify-query-params.js +0 -21
  521. package/dist/generated/models/tasty-trade-stop-order-modify-query-params.js.map +0 -1
  522. package/dist/generated/models/tasty-trade-stop-order-place-query-params.d.ts +0 -55
  523. package/dist/generated/models/tasty-trade-stop-order-place-query-params.d.ts.map +0 -1
  524. package/dist/generated/models/tasty-trade-stop-order-place-query-params.js +0 -40
  525. package/dist/generated/models/tasty-trade-stop-order-place-query-params.js.map +0 -1
  526. package/dist/generated/models/tasty-trade-trailing-stop-order-modify-query-params.d.ts +0 -38
  527. package/dist/generated/models/tasty-trade-trailing-stop-order-modify-query-params.d.ts.map +0 -1
  528. package/dist/generated/models/tasty-trade-trailing-stop-order-modify-query-params.js +0 -21
  529. package/dist/generated/models/tasty-trade-trailing-stop-order-modify-query-params.js.map +0 -1
  530. package/dist/generated/models/tasty-trade-trailing-stop-order-place-query-params.d.ts +0 -55
  531. package/dist/generated/models/tasty-trade-trailing-stop-order-place-query-params.d.ts.map +0 -1
  532. package/dist/generated/models/tasty-trade-trailing-stop-order-place-query-params.js +0 -40
  533. package/dist/generated/models/tasty-trade-trailing-stop-order-place-query-params.js.map +0 -1
  534. package/dist/generated/models/test-webhook-response.d.ts +0 -35
  535. package/dist/generated/models/test-webhook-response.d.ts.map +0 -1
  536. package/dist/generated/models/test-webhook-response.js +0 -16
  537. package/dist/generated/models/test-webhook-response.js.map +0 -1
  538. package/dist/generated/models/timeinforce.d.ts +0 -31
  539. package/dist/generated/models/timeinforce.d.ts.map +0 -1
  540. package/dist/generated/models/timeinforce.js +0 -16
  541. package/dist/generated/models/timeinforce.js.map +0 -1
  542. package/dist/generated/models/token-data.d.ts +0 -45
  543. package/dist/generated/models/token-data.d.ts.map +0 -1
  544. package/dist/generated/models/token-data.js +0 -16
  545. package/dist/generated/models/token-data.js.map +0 -1
  546. package/dist/generated/models/token-response-data.d.ts +0 -25
  547. package/dist/generated/models/token-response-data.d.ts.map +0 -1
  548. package/dist/generated/models/token-response-data.js +0 -16
  549. package/dist/generated/models/token-response-data.js.map +0 -1
  550. package/dist/generated/models/trailing-stop-order-modify-query-params.d.ts +0 -32
  551. package/dist/generated/models/trailing-stop-order-modify-query-params.d.ts.map +0 -1
  552. package/dist/generated/models/trailing-stop-order-modify-query-params.js +0 -21
  553. package/dist/generated/models/trailing-stop-order-modify-query-params.js.map +0 -1
  554. package/dist/generated/models/user-broker-connections.d.ts +0 -28
  555. package/dist/generated/models/user-broker-connections.d.ts.map +0 -1
  556. package/dist/generated/models/user-broker-connections.js +0 -16
  557. package/dist/generated/models/user-broker-connections.js.map +0 -1
  558. package/dist/generated/models/validation-error-loc-inner.d.ts +0 -14
  559. package/dist/generated/models/validation-error-loc-inner.d.ts.map +0 -1
  560. package/dist/generated/models/validation-error-loc-inner.js +0 -16
  561. package/dist/generated/models/validation-error-loc-inner.js.map +0 -1
  562. package/dist/generated/models/validation-error.d.ts +0 -18
  563. package/dist/generated/models/validation-error.d.ts.map +0 -1
  564. package/dist/generated/models/validation-error.js +0 -16
  565. package/dist/generated/models/validation-error.js.map +0 -1
  566. package/dist/generated/portal/PortalUI.d.ts +0 -28
  567. package/dist/generated/portal/PortalUI.d.ts.map +0 -1
  568. package/dist/generated/portal/PortalUI.js +0 -139
  569. package/dist/generated/portal/PortalUI.js.map +0 -1
  570. package/dist/generated/utils/cache.d.ts +0 -16
  571. package/dist/generated/utils/cache.d.ts.map +0 -1
  572. package/dist/generated/utils/cache.js +0 -56
  573. package/dist/generated/utils/cache.js.map +0 -1
  574. package/dist/generated/utils/enum-coercion.d.ts +0 -24
  575. package/dist/generated/utils/enum-coercion.d.ts.map +0 -1
  576. package/dist/generated/utils/enum-coercion.js +0 -49
  577. package/dist/generated/utils/enum-coercion.js.map +0 -1
  578. package/dist/generated/utils/error-handling.d.ts +0 -35
  579. package/dist/generated/utils/error-handling.d.ts.map +0 -1
  580. package/dist/generated/utils/error-handling.js +0 -75
  581. package/dist/generated/utils/error-handling.js.map +0 -1
  582. package/dist/generated/utils/events.d.ts +0 -18
  583. package/dist/generated/utils/events.d.ts.map +0 -1
  584. package/dist/generated/utils/events.js +0 -60
  585. package/dist/generated/utils/events.js.map +0 -1
  586. package/dist/generated/utils/index.d.ts +0 -17
  587. package/dist/generated/utils/index.d.ts.map +0 -1
  588. package/dist/generated/utils/index.js +0 -33
  589. package/dist/generated/utils/index.js.map +0 -1
  590. package/dist/generated/utils/interceptors.d.ts +0 -40
  591. package/dist/generated/utils/interceptors.d.ts.map +0 -1
  592. package/dist/generated/utils/interceptors.js +0 -76
  593. package/dist/generated/utils/interceptors.js.map +0 -1
  594. package/dist/generated/utils/logger.d.ts +0 -21
  595. package/dist/generated/utils/logger.d.ts.map +0 -1
  596. package/dist/generated/utils/logger.js +0 -292
  597. package/dist/generated/utils/logger.js.map +0 -1
  598. package/dist/generated/utils/plain-object.d.ts +0 -22
  599. package/dist/generated/utils/plain-object.d.ts.map +0 -1
  600. package/dist/generated/utils/plain-object.js +0 -51
  601. package/dist/generated/utils/plain-object.js.map +0 -1
  602. package/dist/generated/utils/request-id.d.ts +0 -10
  603. package/dist/generated/utils/request-id.d.ts.map +0 -1
  604. package/dist/generated/utils/request-id.js +0 -24
  605. package/dist/generated/utils/request-id.js.map +0 -1
  606. package/dist/generated/utils/retry.d.ts +0 -20
  607. package/dist/generated/utils/retry.d.ts.map +0 -1
  608. package/dist/generated/utils/retry.js +0 -83
  609. package/dist/generated/utils/retry.js.map +0 -1
  610. package/dist/generated/utils/url-utils.d.ts +0 -23
  611. package/dist/generated/utils/url-utils.d.ts.map +0 -1
  612. package/dist/generated/utils/url-utils.js +0 -64
  613. package/dist/generated/utils/url-utils.js.map +0 -1
  614. package/dist/generated/utils/validation.d.ts +0 -20
  615. package/dist/generated/utils/validation.d.ts.map +0 -1
  616. package/dist/generated/utils/validation.js +0 -103
  617. package/dist/generated/utils/validation.js.map +0 -1
  618. package/dist/generated/wrappers/brokers.d.ts +0 -1107
  619. package/dist/generated/wrappers/brokers.d.ts.map +0 -1
  620. package/dist/generated/wrappers/brokers.js +0 -3076
  621. package/dist/generated/wrappers/brokers.js.map +0 -1
  622. package/dist/generated/wrappers/index.d.ts +0 -8
  623. package/dist/generated/wrappers/index.d.ts.map +0 -1
  624. package/dist/generated/wrappers/index.js +0 -13
  625. package/dist/generated/wrappers/index.js.map +0 -1
  626. package/dist/generated/wrappers/market-data.d.ts +0 -37
  627. package/dist/generated/wrappers/market-data.d.ts.map +0 -1
  628. package/dist/generated/wrappers/market-data.js +0 -134
  629. package/dist/generated/wrappers/market-data.js.map +0 -1
  630. package/dist/generated/wrappers/session.d.ts +0 -394
  631. package/dist/generated/wrappers/session.d.ts.map +0 -1
  632. package/dist/generated/wrappers/session.js +0 -1232
  633. package/dist/generated/wrappers/session.js.map +0 -1
  634. package/dist/index.d.ts.map +0 -1
  635. package/dist/types/core/client/ApiClient.d.ts +0 -270
  636. package/dist/types/core/client/FinaticConnect.d.ts +0 -332
  637. package/dist/types/core/portal/PortalUI.d.ts +0 -37
  638. package/dist/types/index.d.ts +0 -12
  639. package/dist/types/lib/logger/index.d.ts +0 -2
  640. package/dist/types/lib/logger/logger.d.ts +0 -4
  641. package/dist/types/lib/logger/logger.types.d.ts +0 -28
  642. package/dist/types/mocks/MockApiClient.d.ts +0 -171
  643. package/dist/types/mocks/MockDataProvider.d.ts +0 -139
  644. package/dist/types/mocks/MockFactory.d.ts +0 -53
  645. package/dist/types/mocks/utils.d.ts +0 -24
  646. package/dist/types/themes/portalPresets.d.ts +0 -9
  647. package/dist/types/types/api/auth.d.ts +0 -93
  648. package/dist/types/types/api/broker.d.ts +0 -421
  649. package/dist/types/types/api/core.d.ts +0 -46
  650. package/dist/types/types/api/errors.d.ts +0 -31
  651. package/dist/types/types/api/orders.d.ts +0 -39
  652. package/dist/types/types/api/portfolio.d.ts +0 -55
  653. package/dist/types/types/common/pagination.d.ts +0 -33
  654. package/dist/types/types/connect.d.ts +0 -58
  655. package/dist/types/types/index.d.ts +0 -13
  656. package/dist/types/types/portal.d.ts +0 -204
  657. package/dist/types/types/ui/theme.d.ts +0 -104
  658. package/dist/types/utils/brokerUtils.d.ts +0 -30
  659. package/dist/types/utils/errors.d.ts +0 -45
  660. package/dist/types/utils/events.d.ts +0 -12
  661. package/dist/types/utils/themeUtils.d.ts +0 -34
  662. package/src/core/client/ApiClient.ts +0 -2004
  663. package/src/core/client/FinaticConnect.ts +0 -1606
  664. package/src/core/portal/PortalUI.ts +0 -335
  665. package/src/index.d.ts +0 -23
  666. package/src/index.ts +0 -100
  667. package/src/lib/logger/index.ts +0 -3
  668. package/src/lib/logger/logger.ts +0 -332
  669. package/src/lib/logger/logger.types.ts +0 -34
  670. package/src/mocks/MockApiClient.ts +0 -1058
  671. package/src/mocks/MockDataProvider.ts +0 -986
  672. package/src/mocks/MockFactory.ts +0 -97
  673. package/src/mocks/utils.ts +0 -133
  674. package/src/themes/portalPresets.ts +0 -1307
  675. package/src/types/api/auth.ts +0 -112
  676. package/src/types/api/broker.ts +0 -461
  677. package/src/types/api/core.ts +0 -53
  678. package/src/types/api/errors.ts +0 -35
  679. package/src/types/api/orders.ts +0 -45
  680. package/src/types/api/portfolio.ts +0 -59
  681. package/src/types/common/pagination.ts +0 -164
  682. package/src/types/connect.ts +0 -56
  683. package/src/types/index.ts +0 -25
  684. package/src/types/portal.ts +0 -214
  685. package/src/types/ui/theme.ts +0 -105
  686. package/src/utils/brokerUtils.ts +0 -104
  687. package/src/utils/errors.ts +0 -104
  688. package/src/utils/events.ts +0 -66
  689. package/src/utils/themeUtils.ts +0 -165
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/lib/logger/logger.ts","../src/types/common/pagination.ts","../src/types/api/auth.ts","../src/utils/errors.ts","../src/core/client/ApiClient.ts","../src/utils/events.ts","../src/core/portal/PortalUI.ts","../src/mocks/MockDataProvider.ts","../src/mocks/MockApiClient.ts","../src/mocks/utils.ts","../src/mocks/MockFactory.ts","../src/themes/portalPresets.ts","../src/utils/themeUtils.ts","../src/utils/brokerUtils.ts","../src/core/client/FinaticConnect.ts"],"sourcesContent":["import { Logger, LoggerExtra, LoggerMetadata, LoggerOptions, LogLevel, LogVerbosity } from './logger.types';\n\nconst LOG_LEVEL_ORDER: Record<Exclude<LogLevel, 'silent'>, number> = {\n error: 0,\n warn: 1,\n info: 2,\n debug: 3,\n};\n\nconst LEVEL_TO_CONSOLE: Record<Exclude<LogLevel, 'silent'>, keyof Console> = {\n error: 'error',\n warn: 'warn',\n info: 'info',\n debug: 'debug',\n};\n\nconst DEFAULT_LOGGER_NAME = 'FinaticLogger';\n\nconst parseLogLevel = (value: unknown, fallback: LogLevel): LogLevel => {\n if (typeof value !== 'string') {\n return fallback;\n }\n\n const normalized = value.toLowerCase().trim() as LogLevel;\n if (normalized === 'silent' || normalized === 'error' || normalized === 'warn' || normalized === 'info' || normalized === 'debug') {\n return normalized;\n }\n\n return fallback;\n};\n\nconst parseVerbosity = (value: unknown, fallback: LogVerbosity): LogVerbosity => {\n if (typeof value !== 'string' && typeof value !== 'number') {\n return fallback;\n }\n\n const numeric = typeof value === 'number' ? value : Number.parseInt(value, 10);\n if (Number.isNaN(numeric)) {\n return fallback;\n }\n\n if (numeric <= 0) {\n return 0;\n }\n\n if (numeric >= 3) {\n return 3;\n }\n\n return numeric as LogVerbosity;\n};\n\nconst resolveEnv = (key: string): string | undefined => {\n try {\n if (typeof process !== 'undefined' && process.env && typeof process.env[key] === 'string') {\n return process.env[key];\n }\n } catch {\n // ignore\n }\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const metaEnv = typeof import.meta !== 'undefined' ? (import.meta as any).env : undefined;\n if (metaEnv && typeof metaEnv[key] === 'string') {\n return metaEnv[key];\n }\n } catch {\n // ignore\n }\n\n try {\n if (typeof globalThis !== 'undefined') {\n const value = (globalThis as Record<string, unknown>)[key];\n if (typeof value === 'string') {\n return value;\n }\n }\n } catch {\n // ignore\n }\n\n return undefined;\n};\n\nconst resolveDefaultLogLevel = (explicitLevel?: LogLevel): LogLevel => {\n if (explicitLevel) {\n return explicitLevel;\n }\n\n const envLevel =\n resolveEnv('FINATIC_LOG_LEVEL') ||\n resolveEnv('VITE_FINATIC_LOG_LEVEL') ||\n resolveEnv('NEXT_PUBLIC_FINATIC_LOG_LEVEL') ||\n resolveEnv('NEXT_FINATIC_LOG_LEVEL') ||\n resolveEnv('REACT_APP_FINATIC_LOG_LEVEL') ||\n resolveEnv('NUXT_PUBLIC_FINATIC_LOG_LEVEL') ||\n resolveEnv('NX_FINATIC_LOG_LEVEL');\n\n if (envLevel) {\n return parseLogLevel(envLevel, 'silent');\n }\n\n return 'silent';\n};\n\nconst resolveVerbosity = (): LogVerbosity => {\n const envVerbosity =\n resolveEnv('FINATIC_LOG_VERBOSITY') ||\n resolveEnv('VITE_FINATIC_LOG_VERBOSITY') ||\n resolveEnv('NEXT_PUBLIC_FINATIC_LOG_VERBOSITY') ||\n resolveEnv('NEXT_FINATIC_LOG_VERBOSITY') ||\n resolveEnv('REACT_APP_FINATIC_LOG_VERBOSITY') ||\n resolveEnv('NUXT_PUBLIC_FINATIC_LOG_VERBOSITY') ||\n resolveEnv('NX_FINATIC_LOG_VERBOSITY');\n\n if (envVerbosity) {\n return parseVerbosity(envVerbosity, 1);\n }\n\n return 1;\n};\n\nconst resolveBaseMetadata = (): LoggerMetadata => {\n const base: LoggerMetadata = {\n timestamp: new Date().toISOString(),\n };\n\n try {\n if (typeof globalThis !== 'undefined') {\n if (typeof (globalThis as Window).location !== 'undefined') {\n base.host = (globalThis as Window).location.hostname;\n }\n if (typeof (globalThis as Window).navigator !== 'undefined') {\n base.user_agent = (globalThis as Window).navigator.userAgent;\n }\n }\n } catch {\n // ignore\n }\n\n try {\n if (typeof process !== 'undefined') {\n base.pid = process.pid;\n }\n } catch {\n // ignore\n }\n\n return base;\n};\n\nconst normalizeError = (error: unknown): Record<string, unknown> | undefined => {\n if (!error) {\n return undefined;\n }\n\n if (error instanceof Error) {\n return {\n type: error.name,\n message: error.message,\n stacktrace: error.stack,\n };\n }\n\n if (typeof error === 'object') {\n return { ...(error as Record<string, unknown>) };\n }\n\n return {\n type: 'Error',\n message: String(error),\n };\n};\n\nconst shouldLog = (requestedLevel: Exclude<LogLevel, 'silent'>, currentLevel: LogLevel): boolean => {\n if (currentLevel === 'silent') {\n return false;\n }\n\n const currentOrder = LOG_LEVEL_ORDER[currentLevel];\n const requestedOrder = LOG_LEVEL_ORDER[requestedLevel];\n\n return requestedOrder <= currentOrder;\n};\n\nconst buildPayload = (\n name: string,\n level: Exclude<LogLevel, 'silent'>,\n message: string,\n defaultMetadata: LoggerMetadata | undefined,\n extra: LoggerExtra | undefined,\n verbosity: LogVerbosity,\n): Record<string, unknown> => {\n const payload: Record<string, unknown> = {\n timestamp: new Date().toISOString(),\n message,\n };\n\n if (verbosity >= 1 && extra) {\n if (extra.module) {\n payload.module = extra.module;\n }\n if (extra.function) {\n payload.function = extra.function;\n }\n }\n\n if (verbosity >= 2) {\n if (extra?.duration_ms !== undefined) {\n payload.duration_ms = extra.duration_ms;\n }\n if (extra?.event) {\n payload.event = extra.event;\n }\n if (extra?.error) {\n payload.error = normalizeError(extra.error);\n }\n }\n\n if (verbosity >= 3) {\n payload.level = level.toUpperCase();\n payload.name = name;\n const baseMetadata = resolveBaseMetadata();\n const mergedMetadata: LoggerMetadata = {\n ...baseMetadata,\n ...(defaultMetadata || {}),\n ...(extra?.metadata || {}),\n };\n if (Object.keys(mergedMetadata).length > 0) {\n payload.metadata = mergedMetadata;\n }\n }\n\n const restKeys = ['module', 'function', 'event', 'duration_ms', 'error', 'metadata'];\n if (extra) {\n Object.entries(extra).forEach(([key, value]) => {\n if (!restKeys.includes(key) && value !== undefined) {\n payload[key] = value;\n }\n });\n }\n\n return payload;\n};\n\nconst consoleWrite = (\n consoleLevel: keyof Console,\n name: string,\n level: Exclude<LogLevel, 'silent'>,\n message: string,\n payload: Record<string, unknown>,\n): void => {\n if (typeof console === 'undefined' || typeof console[consoleLevel] !== 'function') {\n return;\n }\n\n const prefix = `${level.toUpperCase()}: ${name} || ${message}`;\n console[consoleLevel](prefix, payload);\n};\n\nexport const setupLogger = (nameOrOptions: string | LoggerOptions, level?: LogLevel, defaultMetadata?: LoggerMetadata): Logger => {\n const options: LoggerOptions =\n typeof nameOrOptions === 'string'\n ? {\n name: nameOrOptions,\n level,\n defaultMetadata,\n }\n : nameOrOptions;\n\n const loggerName = options.name || DEFAULT_LOGGER_NAME;\n let currentLevel: LogLevel = resolveDefaultLogLevel(options.level);\n const loggerDefaultMetadata = options.defaultMetadata;\n const verbosity = resolveVerbosity();\n\n const log = (requestedLevel: Exclude<LogLevel, 'silent'>, message: string, extra?: LoggerExtra) => {\n if (!shouldLog(requestedLevel, currentLevel)) {\n return;\n }\n\n const payload = buildPayload(loggerName, requestedLevel, message, loggerDefaultMetadata, extra, verbosity);\n consoleWrite(LEVEL_TO_CONSOLE[requestedLevel], loggerName, requestedLevel, message, payload);\n };\n\n return {\n getLevel: () => currentLevel,\n setLevel: (nextLevel: LogLevel) => {\n currentLevel = nextLevel;\n },\n debug: (message: string, extra?: LoggerExtra) => log('debug', message, extra),\n info: (message: string, extra?: LoggerExtra) => log('info', message, extra),\n warn: (message: string, extra?: LoggerExtra) => log('warn', message, extra),\n error: (message: string, extra?: LoggerExtra) => log('error', message, extra),\n exception: (message: string, error: unknown, extra?: LoggerExtra) => {\n log('error', message, {\n ...extra,\n error,\n event: extra?.event || 'exception',\n });\n },\n };\n};\n\nexport const buildLoggerExtra = (metadata: LoggerMetadata): LoggerExtra => ({\n metadata,\n});\n\nexport const logStartEnd =\n (logger: Logger) =>\n <Args extends unknown[], ReturnType>(fn: (...args: Args) => ReturnType | Promise<ReturnType>) =>\n async (...args: Args): Promise<ReturnType> => {\n const start = Date.now();\n const functionName = fn.name || 'anonymous';\n logger.debug('START', { module: 'logStartEnd', function: functionName, event: 'start' });\n\n try {\n const result = await fn(...args);\n const duration = Date.now() - start;\n logger.info('END', { module: 'logStartEnd', function: functionName, event: 'end', duration_ms: duration });\n return result;\n } catch (error) {\n const duration = Date.now() - start;\n logger.exception('EXCEPTION', error, {\n module: 'logStartEnd',\n function: functionName,\n duration_ms: duration,\n });\n throw error;\n }\n };\n\n","/**\n * Pagination-related types and classes\n */\n\nimport { setupLogger, buildLoggerExtra, LoggerExtra } from '../../lib/logger';\n\nconst paginationLogger = setupLogger('FinaticClientSDK.Pagination', undefined, {\n codebase: 'FinaticClientSDK',\n});\n\nconst buildPaginationExtra = (functionName: string, metadata?: Record<string, unknown>): LoggerExtra => ({\n module: 'PaginatedResult',\n function: functionName,\n ...(metadata ? buildLoggerExtra(metadata) : {}),\n});\n\nexport interface ApiPaginationInfo {\n has_more: boolean;\n next_offset: number;\n current_offset: number;\n limit: number;\n}\n\nexport interface PaginationMetadata {\n hasMore: boolean;\n nextOffset: number;\n currentOffset: number;\n limit: number;\n currentPage: number;\n hasNext: boolean;\n hasPrevious: boolean;\n}\n\nexport class PaginatedResult<T> {\n public readonly data: T;\n public readonly metadata: PaginationMetadata;\n private navigationCallback?: (offset: number, limit: number) => Promise<PaginatedResult<T>>;\n\n constructor(\n data: T,\n paginationInfo: ApiPaginationInfo,\n navigationCallback?: (offset: number, limit: number) => Promise<PaginatedResult<T>>\n ) {\n this.data = data;\n this.navigationCallback = navigationCallback;\n this.metadata = {\n hasMore: paginationInfo.has_more,\n nextOffset: paginationInfo.next_offset,\n currentOffset: paginationInfo.current_offset,\n limit: paginationInfo.limit,\n currentPage: Math.floor(paginationInfo.current_offset / paginationInfo.limit) + 1,\n hasNext: paginationInfo.has_more,\n hasPrevious: paginationInfo.current_offset > 0,\n };\n }\n\n get hasNext(): boolean {\n return this.metadata.hasNext;\n }\n\n get hasPrevious(): boolean {\n return this.metadata.hasPrevious;\n }\n\n get currentPage(): number {\n return this.metadata.currentPage;\n }\n\n async nextPage(): Promise<PaginatedResult<T> | null> {\n if (!this.hasNext || !this.navigationCallback) {\n return null;\n }\n\n try {\n return await this.navigationCallback(this.metadata.nextOffset, this.metadata.limit);\n } catch (error) {\n paginationLogger.exception('Error fetching next page', error, buildPaginationExtra('nextPage', {\n next_offset: this.metadata.nextOffset,\n limit: this.metadata.limit,\n }));\n return null;\n }\n }\n\n async previousPage(): Promise<PaginatedResult<T> | null> {\n if (!this.hasPrevious || !this.navigationCallback) {\n return null;\n }\n\n const previousOffset = Math.max(0, this.metadata.currentOffset - this.metadata.limit);\n try {\n return await this.navigationCallback(previousOffset, this.metadata.limit);\n } catch (error) {\n paginationLogger.exception('Error fetching previous page', error, buildPaginationExtra('previousPage', {\n previous_offset: previousOffset,\n limit: this.metadata.limit,\n }));\n return null;\n }\n }\n\n async goToPage(pageNumber: number): Promise<PaginatedResult<T> | null> {\n if (!this.navigationCallback || pageNumber < 1) {\n return null;\n }\n\n const offset = (pageNumber - 1) * this.metadata.limit;\n try {\n return await this.navigationCallback(offset, this.metadata.limit);\n } catch (error) {\n paginationLogger.exception('Error fetching page', error, buildPaginationExtra('goToPage', {\n page_number: pageNumber,\n offset,\n limit: this.metadata.limit,\n }));\n return null;\n }\n }\n\n async firstPage(): Promise<PaginatedResult<T> | null> {\n if (!this.navigationCallback) {\n return null;\n }\n\n try {\n return await this.navigationCallback(0, this.metadata.limit);\n } catch (error) {\n paginationLogger.exception('Error fetching first page', error, buildPaginationExtra('firstPage', {\n limit: this.metadata.limit,\n }));\n return null;\n }\n }\n\n async lastPage(): Promise<PaginatedResult<T> | null> {\n if (!this.navigationCallback) {\n return null;\n }\n\n const findLast = async (page: PaginatedResult<T>): Promise<PaginatedResult<T>> => {\n if (!page.hasNext) {\n return page;\n }\n const nextPage = await page.nextPage();\n if (!nextPage) {\n return page;\n }\n return findLast(nextPage);\n };\n\n try {\n return await findLast(this);\n } catch (error) {\n paginationLogger.exception('Error fetching last page', error, buildPaginationExtra('lastPage', {\n limit: this.metadata.limit,\n }));\n return null;\n }\n }\n\n getPaginationInfo(): string {\n return `Page ${this.currentPage} (${this.metadata.currentOffset + 1}-${this.metadata.currentOffset + this.metadata.limit})`;\n }\n} ","/**\n * Authentication-related types\n */\n\nexport interface SessionInitResponse {\n success: boolean;\n message: string;\n data: {\n one_time_token: string;\n expires_at: string;\n };\n}\n\n// SessionResponseData moved below to match backend response format\n\n// SessionStartResponse removed - using SessionResponse instead\n\nexport interface OtpRequestResponse {\n success: boolean;\n message: string;\n data: boolean;\n}\n\nexport interface OtpVerifyResponse {\n success: boolean;\n message: string;\n data: {\n access_token: string;\n refresh_token: string;\n user_id: string;\n expires_in: number;\n scope: string;\n token_type: 'Bearer';\n };\n}\n\nexport interface UserToken {\n user_id: string;\n // Removed token fields - we no longer use Supabase tokens in the SDK\n}\n\nexport interface SessionValidationResponse {\n valid: boolean;\n company_id: string;\n status: string;\n is_sandbox: boolean; // Whether this session is in sandbox mode\n environment: string; // Environment context (production or sandbox)\n}\n\nexport interface SessionAuthenticateResponse {\n success: boolean;\n message: string;\n data: {\n access_token: string;\n refresh_token: string;\n };\n}\n\nexport interface RefreshTokenRequest {\n refresh_token: string;\n}\n\nexport interface RefreshTokenResponse {\n success: boolean;\n response_data: {\n access_token: string;\n refresh_token: string;\n expires_at: string;\n company_id: string;\n company_name: string;\n email_verified: boolean;\n };\n message: string;\n}\n\nexport interface TokenInfo {\n accessToken: string;\n refreshToken: string;\n expiresAt: string;\n userId?: string;\n}\n\nexport interface SessionResponseData {\n session_id: string;\n company_id: string;\n status: string;\n expires_at: string;\n user_id?: string | null;\n auto_login?: boolean;\n}\n\nexport interface SessionResponse {\n success: boolean;\n message: string;\n data: SessionResponseData;\n}\n\nexport enum SessionState {\n PENDING = 'PENDING',\n AUTHENTICATING = 'AUTHENTICATING',\n ACTIVE = 'ACTIVE',\n COMPLETED = 'COMPLETED',\n EXPIRED = 'EXPIRED',\n}\n\nexport type SessionStatus = SessionState;\n\nexport interface DeviceInfo {\n ip_address: string;\n user_agent: string;\n fingerprint: string;\n} ","export class BaseError extends Error {\n constructor(\n message: string,\n public readonly code: string = 'UNKNOWN_ERROR'\n ) {\n super(message);\n this.name = this.constructor.name;\n }\n}\n\nexport class ApiError extends BaseError {\n constructor(\n public readonly status: number,\n message: string,\n public readonly details?: Record<string, any>\n ) {\n super(message, `API_ERROR_${status}`);\n this.name = 'ApiError';\n }\n}\n\nexport class SessionError extends ApiError {\n constructor(message: string, details?: Record<string, any>) {\n super(400, message, details);\n this.name = 'SessionError';\n }\n}\n\nexport class AuthenticationError extends ApiError {\n constructor(message: string, details?: Record<string, any>) {\n super(401, message, details);\n this.name = 'AuthenticationError';\n }\n}\n\nexport class AuthorizationError extends ApiError {\n constructor(message: string, details?: Record<string, any>) {\n super(403, message, details);\n this.name = 'AuthorizationError';\n }\n}\n\nexport class RateLimitError extends ApiError {\n constructor(message: string, details?: Record<string, any>) {\n super(429, message, details);\n this.name = 'RateLimitError';\n }\n}\n\nexport class TokenError extends BaseError {\n constructor(message: string) {\n super(message, 'TOKEN_ERROR');\n this.name = 'TokenError';\n }\n}\n\nexport class ValidationError extends BaseError {\n constructor(message: string) {\n super(message, 'VALIDATION_ERROR');\n this.name = 'ValidationError';\n }\n}\n\nexport class NetworkError extends BaseError {\n constructor(message: string) {\n super(message, 'NETWORK_ERROR');\n this.name = 'NetworkError';\n }\n}\n\nexport class SecurityError extends BaseError {\n constructor(message: string) {\n super(message, 'SECURITY_ERROR');\n this.name = 'SecurityError';\n }\n}\n\nexport class CompanyAccessError extends ApiError {\n constructor(message: string, details?: Record<string, any>) {\n super(403, message, details);\n this.name = 'CompanyAccessError';\n }\n}\n\nexport class OrderError extends ApiError {\n constructor(message: string, details?: Record<string, any>) {\n super(500, message, details);\n this.name = 'OrderError';\n }\n}\n\nexport class OrderValidationError extends ApiError {\n constructor(message: string, details?: Record<string, any>) {\n super(400, message, details);\n this.name = 'OrderValidationError';\n }\n}\n\nexport class TradingNotEnabledError extends ApiError {\n constructor(message: string, details?: Record<string, any>) {\n super(403, message, details);\n this.name = 'TradingNotEnabledError';\n }\n}\n","import { Order } from '../../types/api/orders';\nimport {\n BrokerInfo,\n BrokerAccount,\n BrokerOrder,\n BrokerPosition,\n BrokerBalance,\n BrokerDataOptions,\n DisconnectCompanyResponse,\n} from '../../types/api/broker';\nimport { BrokerOrderParams, BrokerExtras } from '../../types/api/broker';\nimport { CryptoOrderOptions, OptionsOrderOptions, OrderResponse } from '../../types/api/orders';\nimport { BrokerConnection } from '../../types/api/broker';\nimport {\n OrdersFilter,\n PositionsFilter,\n AccountsFilter,\n BalancesFilter,\n OrderFill,\n OrderEvent,\n OrderGroup,\n PositionLot,\n PositionLotFill,\n OrderFillsFilter,\n OrderEventsFilter,\n OrderGroupsFilter,\n PositionLotsFilter,\n PositionLotFillsFilter,\n} from '../../types/api/broker';\nimport { TradingContext } from '../../types/api/orders';\nimport { ApiPaginationInfo, PaginatedResult } from '../../types/common/pagination';\nimport { ApiResponse } from '../../types/api/core';\nimport { PortalUrlResponse } from '../../types/api/core';\nimport { setupLogger, buildLoggerExtra, LoggerExtra } from '../../lib/logger';\nimport {\n DeviceInfo,\n SessionState,\n TokenInfo,\n SessionResponse,\n SessionResponseData,\n OtpRequestResponse,\n OtpVerifyResponse,\n SessionValidationResponse,\n SessionAuthenticateResponse,\n UserToken,\n RefreshTokenRequest,\n RefreshTokenResponse,\n} from '../../types/api/auth';\nimport {\n ApiError,\n SessionError,\n AuthenticationError,\n AuthorizationError,\n RateLimitError,\n CompanyAccessError,\n OrderError,\n OrderValidationError,\n TradingNotEnabledError,\n} from '../../utils/errors';\n// Supabase import removed - SDK no longer depends on Supabase\n\nexport class ApiClient {\n private readonly baseUrl: string;\n protected readonly deviceInfo?: DeviceInfo;\n protected currentSessionState: SessionState | null = null;\n protected currentSessionId: string | null = null;\n private tradingContext: TradingContext = {};\n\n // Session management (no Supabase needed)\n\n // Session and company context\n private companyId: string | null = null;\n private csrfToken: string | null = null;\n private readonly logger = setupLogger('FinaticClientSDK.ApiClient', undefined, {\n codebase: 'FinaticClientSDK',\n });\n\n private buildLoggerExtra(functionName: string, metadata?: Record<string, unknown>): LoggerExtra {\n return {\n module: 'ApiClient',\n function: functionName,\n ...(metadata ? buildLoggerExtra(metadata) : {}),\n };\n }\n\n constructor(baseUrl: string, deviceInfo?: DeviceInfo) {\n this.baseUrl = baseUrl;\n this.deviceInfo = deviceInfo;\n // Ensure baseUrl doesn't end with a slash\n this.baseUrl = baseUrl.replace(/\\/$/, '');\n // Append /api/v1 if not already present\n if (!this.baseUrl.includes('/api/v1')) {\n this.baseUrl = `${this.baseUrl}/api/v1`;\n }\n\n // No Supabase initialization needed - SDK is clean\n }\n\n // Supabase initialization removed - SDK no longer depends on Supabase\n\n /**\n * Set session context (session ID, company ID, CSRF token)\n */\n setSessionContext(sessionId: string, companyId: string, csrfToken?: string): void {\n this.currentSessionId = sessionId;\n this.companyId = companyId;\n this.csrfToken = csrfToken || null;\n }\n\n /**\n * Get the current session ID\n */\n getCurrentSessionId(): string | null {\n return this.currentSessionId;\n }\n\n /**\n * Get the current company ID\n */\n getCurrentCompanyId(): string | null {\n return this.companyId;\n }\n\n /**\n * Get the current CSRF token\n */\n getCurrentCsrfToken(): string | null {\n return this.csrfToken;\n }\n\n /**\n * Get a valid access token (session-based auth - no tokens needed)\n */\n async getValidAccessToken(): Promise<string> {\n // Session-based auth - return empty token as we use session headers\n return '';\n }\n\n // Token expiration check removed - session-based auth doesn't use expiring tokens\n\n // Supabase refresh method removed - SDK no longer uses Supabase tokens\n\n /**\n * Perform the actual Supabase session refresh\n */\n // Supabase refresh method removed - SDK no longer uses Supabase tokens\n\n /**\n * Clear session tokens (useful for logout)\n */\n clearTokens(): void {\n // Session-based auth - no tokens to clear\n }\n\n /**\n * Get current session info (for debugging/testing) - session-based auth\n */\n getTokenInfo(): { accessToken: string; refreshToken: string; expiresAt: number } | null {\n // Session-based auth - no tokens to return\n return null;\n }\n\n /**\n * Make a request to the API.\n */\n protected async request<T>(\n path: string,\n options: {\n method: string;\n headers?: Record<string, string>;\n body?: any;\n params?: Record<string, string>;\n }\n ): Promise<T> {\n // Ensure path starts with a slash\n const normalizedPath = path.startsWith('/') ? path : `/${path}`;\n const url = new URL(`${this.baseUrl}${normalizedPath}`);\n\n if (options.params) {\n Object.entries(options.params).forEach(([key, value]) => {\n url.searchParams.append(key, value);\n });\n }\n\n // Get Supabase JWT token\n const accessToken = await this.getValidAccessToken();\n\n // Build comprehensive headers object with all available session data\n const comprehensiveHeaders: Record<string, string> = {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${accessToken}`,\n };\n\n // Add device info if available\n if (this.deviceInfo) {\n comprehensiveHeaders['X-Device-Info'] = JSON.stringify({\n ip_address: this.deviceInfo.ip_address || '',\n user_agent: this.deviceInfo.user_agent || '',\n fingerprint: this.deviceInfo.fingerprint || '',\n });\n }\n\n // Add session headers if available (filter out empty values)\n if (this.currentSessionId && this.currentSessionId.trim() !== '') {\n comprehensiveHeaders['X-Session-ID'] = this.currentSessionId;\n comprehensiveHeaders['Session-ID'] = this.currentSessionId;\n }\n\n if (this.companyId && this.companyId.trim() !== '') {\n comprehensiveHeaders['X-Company-ID'] = this.companyId;\n }\n\n if (this.csrfToken && this.csrfToken.trim() !== '') {\n comprehensiveHeaders['X-CSRF-Token'] = this.csrfToken;\n }\n\n // Add any additional headers from options (these will override defaults)\n if (options.headers) {\n Object.entries(options.headers).forEach(([key, value]) => {\n if (value !== undefined && value !== null && value.trim() !== '') {\n comprehensiveHeaders[key] = value;\n }\n });\n }\n\n // Safari-specific fix: Ensure all headers are explicitly set and not empty\n // Safari can be strict about header formatting and empty values\n const safariSafeHeaders: Record<string, string> = {};\n Object.entries(comprehensiveHeaders).forEach(([key, value]) => {\n if (value && value.trim() !== '') {\n // Ensure header names are properly formatted for Safari\n const normalizedKey = key.trim();\n const normalizedValue = value.trim();\n safariSafeHeaders[normalizedKey] = normalizedValue;\n }\n });\n\n this.logger.debug('Dispatching API request', this.buildLoggerExtra('request', {\n url: url.toString(),\n method: options.method,\n has_body: Boolean(options.body),\n }));\n\n const response = await fetch(url.toString(), {\n method: options.method,\n headers: safariSafeHeaders,\n body: options.body ? JSON.stringify(options.body) : undefined,\n });\n\n this.logger.debug('Received API response', this.buildLoggerExtra('request', {\n url: url.toString(),\n status: response.status,\n }));\n\n if (!response.ok) {\n const error = await response.json();\n const apiError = this.handleError(response.status, error);\n this.logger.exception('API request failed', apiError, this.buildLoggerExtra('request', {\n url: url.toString(),\n status: response.status,\n }));\n throw apiError;\n }\n\n const data = await response.json();\n\n // Check if the response has a success field and it's false\n if (data && typeof data === 'object' && 'success' in data && data.success === false) {\n // For order endpoints, provide more context\n const isOrderEndpoint = path.includes('/brokers/orders');\n if (isOrderEndpoint) {\n // Add context that this is an order-related error\n data._isOrderError = true;\n }\n const apiError = this.handleError(data.status_code || 500, data);\n this.logger.exception('API response indicated failure', apiError, this.buildLoggerExtra('request', {\n url: url.toString(),\n status: data.status_code || 500,\n }));\n throw apiError;\n }\n\n // Check if the response has a status_code field indicating an error (4xx or 5xx)\n if (data && typeof data === 'object' && 'status_code' in data && data.status_code >= 400) {\n const apiError = this.handleError(data.status_code, data);\n this.logger.exception('API status code error', apiError, this.buildLoggerExtra('request', {\n url: url.toString(),\n status: data.status_code,\n }));\n throw apiError;\n }\n\n // Check if the response has errors field with content\n if (\n data &&\n typeof data === 'object' &&\n 'errors' in data &&\n data.errors &&\n Array.isArray(data.errors) &&\n data.errors.length > 0\n ) {\n const apiError = this.handleError(data.status_code || 500, data);\n this.logger.exception('API response contained errors', apiError, this.buildLoggerExtra('request', {\n url: url.toString(),\n status: data.status_code || 500,\n }));\n throw apiError;\n }\n\n return data;\n }\n\n /**\n * Handle API errors. This method can be overridden by language-specific implementations.\n */\n protected handleError(status: number, error: any): ApiError {\n // Extract message from the error object with multiple fallback options\n let message = 'API request failed';\n\n if (error && typeof error === 'object') {\n // Try different possible message fields\n message =\n error.message ||\n error.detail?.message ||\n error.error?.message ||\n error.errors?.[0]?.message ||\n (typeof error.errors === 'string' ? error.errors : null) ||\n 'API request failed';\n }\n\n // Check if this is an order-related error (either from order endpoints or order validation)\n const isOrderError =\n error._isOrderError ||\n message.includes('ORDER_FAILED') ||\n message.includes('AUTH_ERROR') ||\n message.includes('not found or not available for trading') ||\n message.includes('Symbol') ||\n (error.errors &&\n Array.isArray(error.errors) &&\n error.errors.some(\n (e: any) =>\n e.category === 'INVALID_ORDER' ||\n e.message?.includes('Symbol') ||\n e.message?.includes('not available for trading')\n ));\n\n if (isOrderError) {\n // Check if this is a validation error (400 status with specific validation messages)\n const isValidationError =\n status === 400 &&\n (message.includes('not found or not available for trading') ||\n message.includes('Symbol') ||\n (error.errors &&\n Array.isArray(error.errors) &&\n error.errors.some(\n (e: any) =>\n e.category === 'INVALID_ORDER' ||\n e.message?.includes('Symbol') ||\n e.message?.includes('not available for trading')\n )));\n\n if (isValidationError) {\n return new OrderValidationError(message, error);\n }\n\n // For order placement errors, provide more specific error messages\n if (message.includes('ORDER_FAILED') || message.includes('AUTH_ERROR')) {\n // Extract the specific error from the nested structure\n const orderErrorMatch = message.match(/\\[([^\\]]+)\\]/g);\n if (orderErrorMatch && orderErrorMatch.length > 0) {\n // Take the last error in the chain (most specific)\n const specificError = orderErrorMatch[orderErrorMatch.length - 1].replace(/[[\\]]/g, '');\n message = `Order failed: ${specificError}`;\n }\n }\n\n // Use OrderError for order-related failures\n return new OrderError(message, error);\n }\n\n switch (status) {\n case 400:\n return new SessionError(message, error);\n case 401:\n return new AuthenticationError(\n message || 'Unauthorized: Invalid or missing session token',\n error\n );\n case 403:\n if (error.detail?.code === 'NO_COMPANY_ACCESS') {\n return new CompanyAccessError(\n error.detail.message || 'No broker connections found for this company',\n error.detail\n );\n }\n if (error.detail?.code === 'TRADING_NOT_ENABLED') {\n return new TradingNotEnabledError(\n error.detail.message || 'Trading is not enabled for your company',\n error.detail\n );\n }\n return new AuthorizationError(\n message || 'Forbidden: No access to the requested data',\n error\n );\n case 404:\n return new ApiError(\n status,\n message || 'Not found: The requested data does not exist',\n error\n );\n case 429:\n return new RateLimitError(message || 'Rate limit exceeded', error);\n case 500:\n return new ApiError(status, message || 'Internal server error', error);\n default:\n return new ApiError(status, message || 'API request failed', error);\n }\n }\n\n // Session Management\n async startSession(token: string, userId?: string): Promise<SessionResponse> {\n const response = await this.request<SessionResponse>('/session/start', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'One-Time-Token': token,\n 'X-Device-Info': JSON.stringify({\n ip_address: this.deviceInfo?.ip_address || '',\n user_agent: this.deviceInfo?.user_agent || '',\n fingerprint: this.deviceInfo?.fingerprint || '',\n }),\n },\n body: {\n user_id: userId,\n },\n });\n\n // Store session ID and set state to ACTIVE\n this.currentSessionId = response.data.session_id;\n this.currentSessionState = SessionState.ACTIVE;\n\n return response;\n }\n\n // OTP Flow\n async requestOtp(sessionId: string, email: string): Promise<OtpRequestResponse> {\n return this.request<OtpRequestResponse>('/auth/otp/request', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-Session-ID': sessionId,\n 'X-Device-Info': JSON.stringify({\n ip_address: this.deviceInfo?.ip_address || '',\n user_agent: this.deviceInfo?.user_agent || '',\n fingerprint: this.deviceInfo?.fingerprint || '',\n }),\n },\n body: {\n email,\n },\n });\n }\n\n async verifyOtp(sessionId: string, otp: string): Promise<OtpVerifyResponse> {\n const response = await this.request<OtpVerifyResponse>('/auth/otp/verify', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-Session-ID': sessionId,\n 'X-Device-Info': JSON.stringify({\n ip_address: this.deviceInfo?.ip_address || '',\n user_agent: this.deviceInfo?.user_agent || '',\n fingerprint: this.deviceInfo?.fingerprint || '',\n }),\n },\n body: {\n otp,\n },\n });\n\n // OTP verification successful - tokens are handled by Supabase client\n if (response.success && response.data) {\n // Note: Supabase JWT will be handled by the Supabase client\n // The backend now creates/retrieves Supabase users and returns session info\n }\n\n return response;\n }\n\n // Direct Authentication\n async authenticateDirectly(\n sessionId: string,\n userId: string\n ): Promise<SessionAuthenticateResponse> {\n // Ensure session is active before authenticating\n if (this.currentSessionState !== SessionState.ACTIVE) {\n throw new SessionError('Session must be in ACTIVE state to authenticate');\n }\n\n const response = await this.request<SessionAuthenticateResponse>('/session/authenticate', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Session-ID': sessionId,\n 'X-Session-ID': sessionId,\n 'X-Device-Info': JSON.stringify({\n ip_address: this.deviceInfo?.ip_address || '',\n user_agent: this.deviceInfo?.user_agent || '',\n fingerprint: this.deviceInfo?.fingerprint || '',\n }),\n },\n body: {\n session_id: sessionId,\n user_id: userId,\n },\n });\n\n // Store tokens after successful direct authentication\n if (response.success && response.data) {\n // Session-based auth - no token storage needed\n }\n\n return response;\n }\n\n // Portal Management\n /**\n * Get the portal URL for an active session\n * @param sessionId The session identifier\n * @returns Portal URL response\n * @throws SessionError if session is not in ACTIVE state\n */\n public async getPortalUrl(sessionId: string): Promise<PortalUrlResponse> {\n if (this.currentSessionState !== SessionState.ACTIVE) {\n throw new SessionError('Session must be in ACTIVE state to get portal URL');\n }\n\n return this.request<PortalUrlResponse>('/session/portal', {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'Session-ID': sessionId,\n 'X-Session-ID': sessionId,\n 'X-Device-Info': JSON.stringify({\n ip_address: this.deviceInfo?.ip_address || '',\n user_agent: this.deviceInfo?.user_agent || '',\n fingerprint: this.deviceInfo?.fingerprint || '',\n }),\n },\n });\n }\n\n async completePortalSession(sessionId: string): Promise<PortalUrlResponse> {\n return this.request<PortalUrlResponse>(`/portal/${sessionId}/complete`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n }\n\n // Portfolio Management\n\n async getOrders(): Promise<{ data: Order[] }> {\n const accessToken = await this.getValidAccessToken();\n return this.request<{ data: Order[] }>('/brokers/data/orders', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n });\n }\n\n // Enhanced Trading Methods with Session Management\n async placeBrokerOrder(\n params: Partial<BrokerOrderParams> & {\n symbol: string;\n orderQty: number;\n action: 'Buy' | 'Sell';\n orderType: 'Market' | 'Limit' | 'Stop' | 'StopLimit';\n assetType: 'equity' | 'equity_option' | 'crypto' | 'forex' | 'future' | 'future_option';\n },\n extras: BrokerExtras = {},\n connection_id?: string\n ): Promise<OrderResponse> {\n const accessToken = await this.getValidAccessToken();\n\n // Get broker and account from context or params\n const broker = params.broker || this.tradingContext.broker;\n const accountNumber = params.accountNumber || this.tradingContext.accountNumber;\n\n if (!broker) {\n throw new Error('Broker not set. Call setBroker() or pass broker parameter.');\n }\n\n if (!accountNumber) {\n throw new Error('Account not set. Call setAccount() or pass accountNumber parameter.');\n }\n\n // Merge context with provided parameters\n const fullParams: BrokerOrderParams = {\n broker:\n ((params.broker || this.tradingContext.broker) as\n | 'robinhood'\n | 'tasty_trade'\n | 'ninja_trader') ||\n (() => {\n throw new Error('Broker not set. Call setBroker() or pass broker parameter.');\n })(),\n accountNumber:\n params.accountNumber ||\n this.tradingContext.accountNumber ||\n (() => {\n throw new Error('Account not set. Call setAccount() or pass accountNumber parameter.');\n })(),\n symbol: params.symbol,\n orderQty: params.orderQty,\n action: params.action,\n orderType: params.orderType,\n assetType: params.assetType,\n timeInForce: params.timeInForce || 'day',\n price: params.price,\n stopPrice: params.stopPrice,\n order_id: params.order_id,\n };\n\n // Build request body with camelCase parameter names\n const requestBody = this.buildOrderRequestBody(fullParams, extras);\n\n // Add query parameters if connection_id is provided\n const queryParams: Record<string, string> = {};\n if (connection_id) {\n queryParams.connection_id = connection_id;\n }\n\n return this.request<OrderResponse>('/brokers/orders', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${accessToken}`,\n 'Session-ID': this.currentSessionId || '',\n 'X-Session-ID': this.currentSessionId || '',\n 'X-Device-Info': JSON.stringify(this.deviceInfo),\n },\n body: requestBody,\n params: queryParams,\n });\n }\n\n async cancelBrokerOrder(\n orderId: string,\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n extras: any = {},\n connection_id?: string\n ): Promise<OrderResponse> {\n const accessToken = await this.getValidAccessToken();\n\n const selectedBroker = broker || this.tradingContext.broker;\n if (!selectedBroker) {\n throw new Error('Broker not set. Call setBroker() or pass broker parameter.');\n }\n\n const accountNumber = this.tradingContext.accountNumber;\n\n // Build query parameters as required by API documentation\n const queryParams: Record<string, string> = {};\n\n // Add optional parameters if available\n if (accountNumber) {\n queryParams.account_number = accountNumber.toString();\n }\n if (connection_id) {\n queryParams.connection_id = connection_id;\n }\n\n // Build optional request body if extras are provided\n let body: any = undefined;\n if (Object.keys(extras).length > 0) {\n body = {\n broker: selectedBroker,\n order: {\n order_id: orderId,\n account_number: accountNumber,\n ...extras,\n },\n };\n }\n\n return this.request<OrderResponse>(`/brokers/orders/${orderId}`, {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json',\n 'Session-ID': this.currentSessionId || '',\n 'X-Session-ID': this.currentSessionId || '',\n 'X-Device-Info': JSON.stringify(this.deviceInfo),\n },\n body,\n params: queryParams,\n });\n }\n\n async modifyBrokerOrder(\n orderId: string,\n params: Partial<BrokerOrderParams>,\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n extras: any = {},\n connection_id?: string\n ): Promise<OrderResponse> {\n const accessToken = await this.getValidAccessToken();\n\n const selectedBroker = broker || this.tradingContext.broker;\n if (!selectedBroker) {\n throw new Error('Broker not set. Call setBroker() or pass broker parameter.');\n }\n\n // Build request body with camelCase parameter names and include broker\n const requestBody = this.buildModifyRequestBody(params, extras, selectedBroker);\n\n // Add query parameters if connection_id is provided\n const queryParams: Record<string, string> = {};\n if (connection_id) {\n queryParams.connection_id = connection_id;\n }\n\n return this.request<OrderResponse>(`/brokers/orders/${orderId}`, {\n method: 'PATCH',\n headers: {\n 'Content-Type': 'application/json',\n 'Session-ID': this.currentSessionId || '',\n 'X-Session-ID': this.currentSessionId || '',\n 'X-Device-Info': JSON.stringify(this.deviceInfo),\n },\n body: requestBody,\n params: queryParams,\n });\n }\n\n // Context management methods\n setBroker(broker: 'robinhood' | 'tasty_trade' | 'ninja_trader'): void {\n this.tradingContext.broker = broker;\n // Clear account when broker changes\n this.tradingContext.accountNumber = undefined;\n this.tradingContext.accountId = undefined;\n }\n\n setAccount(accountNumber: string, accountId?: string): void {\n this.tradingContext.accountNumber = accountNumber;\n this.tradingContext.accountId = accountId;\n }\n\n\n // Stock convenience methods\n async placeStockMarketOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {},\n connection_id?: string\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n symbol,\n orderQty,\n action,\n orderType: 'Market',\n assetType: 'equity',\n timeInForce: 'day',\n broker,\n accountNumber,\n },\n extras,\n connection_id\n );\n }\n\n async placeStockLimitOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n price: number,\n timeInForce: 'day' | 'gtc' = 'gtc',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {},\n connection_id?: string\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n symbol,\n orderQty,\n action,\n orderType: 'Limit',\n assetType: 'equity',\n price,\n timeInForce,\n broker,\n accountNumber,\n },\n extras,\n connection_id\n );\n }\n\n async placeStockStopOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n stopPrice: number,\n timeInForce: 'day' | 'gtc' = 'day',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {},\n connection_id?: string\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n symbol,\n orderQty,\n action,\n orderType: 'Stop',\n assetType: 'equity',\n stopPrice,\n timeInForce,\n broker,\n accountNumber,\n },\n extras,\n connection_id\n );\n }\n\n // Crypto convenience methods\n async placeCryptoMarketOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n options: CryptoOrderOptions = {},\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n symbol,\n orderQty,\n action,\n orderType: 'Market',\n assetType: 'crypto',\n timeInForce: 'day',\n broker,\n accountNumber,\n ...options,\n },\n extras\n );\n }\n\n async placeCryptoLimitOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n price: number,\n timeInForce: 'day' | 'gtc' = 'gtc',\n options: CryptoOrderOptions = {},\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n symbol,\n orderQty,\n action,\n orderType: 'Limit',\n assetType: 'crypto',\n price,\n timeInForce,\n broker,\n accountNumber,\n ...options,\n },\n extras\n );\n }\n\n // Options convenience methods\n async placeOptionsMarketOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n options: OptionsOrderOptions,\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n symbol,\n orderQty,\n action,\n orderType: 'Market',\n assetType: 'equity_option',\n timeInForce: 'day',\n broker,\n accountNumber,\n ...options,\n },\n extras\n );\n }\n\n async placeOptionsLimitOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n price: number,\n options: OptionsOrderOptions,\n timeInForce: 'day' | 'gtc' = 'gtc',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n symbol,\n orderQty,\n action,\n orderType: 'Limit',\n assetType: 'equity_option',\n price,\n timeInForce,\n broker,\n accountNumber,\n ...options,\n },\n extras\n );\n }\n\n // Futures convenience methods\n async placeFuturesMarketOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n symbol,\n orderQty,\n action,\n orderType: 'Market',\n assetType: 'future',\n timeInForce: 'day',\n broker,\n accountNumber,\n },\n extras\n );\n }\n\n async placeFuturesLimitOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n price: number,\n timeInForce: 'day' | 'gtc' = 'gtc',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n symbol,\n orderQty,\n action,\n orderType: 'Limit',\n assetType: 'future',\n price,\n timeInForce,\n broker,\n accountNumber,\n },\n extras\n );\n }\n\n private buildOrderRequestBody(params: BrokerOrderParams, extras: BrokerExtras = {}) {\n const baseOrder: any = {\n order_id: params.order_id,\n orderType: params.orderType,\n assetType: params.assetType,\n action: params.action,\n timeInForce: params.timeInForce,\n accountNumber: params.accountNumber,\n symbol: params.symbol,\n orderQty: params.orderQty,\n };\n\n if (params.price !== undefined) baseOrder.price = params.price;\n if (params.stopPrice !== undefined) baseOrder.stopPrice = params.stopPrice;\n\n // Apply broker-specific defaults – map camelCase extras property keys to snake_case before merging\n const brokerExtras = this.applyBrokerDefaults(params.broker, extras);\n\n return {\n broker: params.broker,\n order: {\n ...baseOrder,\n ...brokerExtras,\n },\n };\n }\n\n private buildModifyRequestBody(params: Partial<BrokerOrderParams>, extras: any, broker: string) {\n const order: any = {};\n\n if (params.order_id !== undefined) order.order_id = params.order_id;\n if (params.orderType !== undefined) order.orderType = params.orderType;\n if (params.assetType !== undefined) order.assetType = params.assetType;\n if (params.action !== undefined) order.action = params.action;\n if (params.timeInForce !== undefined) order.timeInForce = params.timeInForce;\n if (params.accountNumber !== undefined) order.accountNumber = params.accountNumber;\n if (params.symbol !== undefined) order.symbol = params.symbol;\n if (params.orderQty !== undefined) order.orderQty = params.orderQty;\n if (params.price !== undefined) order.price = params.price;\n if (params.stopPrice !== undefined) order.stopPrice = params.stopPrice;\n\n // Apply broker-specific defaults (handles snake_case conversion)\n const brokerExtras = this.applyBrokerDefaults(broker, extras);\n\n return {\n broker,\n order: {\n ...order,\n ...brokerExtras,\n },\n };\n }\n\n private applyBrokerDefaults(broker: string, extras: any): any {\n // If the caller provided a broker-scoped extras object (e.g. { ninjaTrader: { ... } })\n // pull the nested object for easier processing.\n if (extras && typeof extras === 'object') {\n const scoped =\n broker === 'robinhood'\n ? extras.robinhood\n : broker === 'ninja_trader'\n ? extras.ninjaTrader\n : broker === 'tasty_trade'\n ? extras.tastyTrade\n : undefined;\n if (scoped) {\n extras = scoped;\n }\n }\n\n switch (broker) {\n case 'robinhood':\n return {\n ...extras,\n extendedHours: extras?.extendedHours ?? extras?.extended_hours ?? true,\n marketHours: extras?.marketHours ?? extras?.market_hours ?? 'regular_hours',\n trailType: extras?.trailType ?? extras?.trail_type ?? 'percentage',\n };\n case 'ninja_trader':\n return {\n ...extras,\n accountSpec: extras?.accountSpec ?? extras?.account_spec ?? '',\n isAutomated: extras?.isAutomated ?? extras?.is_automated ?? true,\n };\n case 'tasty_trade':\n return {\n ...extras,\n automatedSource: extras?.automatedSource ?? extras?.automated_source ?? true,\n };\n default:\n return extras;\n }\n }\n\n async getUserToken(sessionId: string): Promise<UserToken> {\n const accessToken = await this.getValidAccessToken();\n return this.request<UserToken>(`/session/${sessionId}/user`, {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n });\n }\n\n /**\n * Get the current session state\n */\n getCurrentSessionState(): SessionState | null {\n return this.currentSessionState;\n }\n\n /**\n * Refresh the current session to extend its lifetime\n * Note: This now uses Supabase session refresh instead of custom endpoint\n */\n async refreshSession(): Promise<{\n success: boolean;\n response_data: {\n session_id: string;\n company_id: string;\n status: string;\n expires_at: string;\n user_id: string;\n auto_login: boolean;\n };\n message: string;\n status_code: number;\n }> {\n if (!this.currentSessionId || !this.companyId) {\n throw new SessionError('No active session to refresh');\n }\n\n // Session-based auth - no token refresh needed\n\n // Return session info in expected format\n return {\n success: true,\n response_data: {\n session_id: this.currentSessionId,\n company_id: this.companyId,\n status: 'active',\n expires_at: new Date(Date.now() + 60 * 60 * 1000).toISOString(), // 1 hour from now\n user_id: '', // Session-based auth - user_id comes from session\n auto_login: false,\n },\n message: 'Session refreshed successfully',\n status_code: 200,\n };\n }\n\n // Broker Data Management\n async getBrokerList(): Promise<{\n _id: string;\n response_data: BrokerInfo[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n // Public endpoint - no auth required\n return this.request<{\n _id: string;\n response_data: BrokerInfo[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>('/brokers/', {\n method: 'GET',\n });\n }\n\n async getBrokerAccounts(options?: BrokerDataOptions): Promise<{\n _id: string;\n response_data: BrokerAccount[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n const params: Record<string, string> = {};\n\n if (options?.broker_name) {\n params.broker_id = options.broker_name;\n }\n if (options?.account_id) {\n params.account_id = options.account_id;\n }\n if (options?.symbol) {\n params.symbol = options.symbol;\n }\n\n return this.request<{\n _id: string;\n response_data: BrokerAccount[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>('/brokers/data/accounts', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n }\n\n async getBrokerOrders(options?: BrokerDataOptions): Promise<{\n _id: string;\n response_data: BrokerOrder[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n const params: Record<string, string> = {};\n\n if (options?.broker_name) {\n params.broker_id = options.broker_name;\n }\n if (options?.account_id) {\n params.account_id = options.account_id;\n }\n if (options?.symbol) {\n params.symbol = options.symbol;\n }\n\n return this.request<{\n _id: string;\n response_data: BrokerOrder[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>('/brokers/data/orders', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n }\n\n async getBrokerPositions(options?: BrokerDataOptions): Promise<{\n _id: string;\n response_data: BrokerPosition[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n const params: Record<string, string> = {};\n\n if (options?.broker_name) {\n params.broker_id = options.broker_name;\n }\n if (options?.account_id) {\n params.account_id = options.account_id;\n }\n if (options?.symbol) {\n params.symbol = options.symbol;\n }\n\n return this.request<{\n _id: string;\n response_data: BrokerPosition[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>('/brokers/data/positions', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n }\n\n async getBrokerBalances(options?: BrokerDataOptions): Promise<{\n _id: string;\n response_data: BrokerBalance[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n const params: Record<string, string> = {};\n\n if (options?.broker_name) {\n params.broker_id = options.broker_name;\n }\n if (options?.account_id) {\n params.account_id = options.account_id;\n }\n if (options?.symbol) {\n params.symbol = options.symbol;\n }\n\n return this.request<{\n _id: string;\n response_data: BrokerBalance[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>('/brokers/data/balances', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n }\n\n async getBrokerConnections(): Promise<{\n _id: string;\n response_data: BrokerConnection[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n return this.request<{\n _id: string;\n response_data: BrokerConnection[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>('/brokers/connections', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n });\n }\n\n async getBalances(filters?: any): Promise<{\n _id: string;\n response_data: any[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n const params = new URLSearchParams();\n if (filters) {\n Object.entries(filters).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n params.append(key, String(value));\n }\n });\n }\n\n const queryString = params.toString();\n const url = queryString ? `/brokers/data/balances?${queryString}` : '/brokers/data/balances';\n\n return this.request<{\n _id: string;\n response_data: any[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>(url, {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n });\n }\n\n // Page-based pagination methods\n async getBrokerOrdersPage(\n page: number = 1,\n perPage: number = 100,\n filters?: OrdersFilter\n ): Promise<PaginatedResult<BrokerOrder[]>> {\n const accessToken = await this.getValidAccessToken();\n const offset = (page - 1) * perPage;\n const params: Record<string, string> = {\n limit: perPage.toString(),\n offset: offset.toString(),\n };\n\n // Add filter parameters\n if (filters) {\n if (filters.broker_id) params.broker_id = filters.broker_id;\n if (filters.connection_id) params.connection_id = filters.connection_id;\n if (filters.account_id) params.account_id = filters.account_id;\n if (filters.symbol) params.symbol = filters.symbol;\n if (filters.status) params.status = filters.status;\n if (filters.side) params.side = filters.side;\n if (filters.asset_type) params.asset_type = filters.asset_type;\n if (filters.created_after) params.created_after = filters.created_after;\n if (filters.created_before) params.created_before = filters.created_before;\n }\n\n const response = await this.request<ApiResponse<BrokerOrder[]>>('/brokers/data/orders', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n\n // Create navigation callback for pagination\n const navigationCallback = async (\n newOffset: number,\n newLimit: number\n ): Promise<PaginatedResult<BrokerOrder[]>> => {\n const newParams: Record<string, string> = {\n limit: newLimit.toString(),\n offset: newOffset.toString(),\n };\n\n // Add filter parameters\n if (filters) {\n if (filters.broker_id) newParams.broker_id = filters.broker_id;\n if (filters.connection_id) newParams.connection_id = filters.connection_id;\n if (filters.account_id) newParams.account_id = filters.account_id;\n if (filters.symbol) newParams.symbol = filters.symbol;\n if (filters.status) newParams.status = filters.status;\n if (filters.side) newParams.side = filters.side;\n if (filters.asset_type) newParams.asset_type = filters.asset_type;\n if (filters.created_after) newParams.created_after = filters.created_after;\n if (filters.created_before) newParams.created_before = filters.created_before;\n }\n\n const newResponse = await this.request<ApiResponse<BrokerOrder[]>>('/brokers/data/orders', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params: newParams,\n });\n\n return new PaginatedResult(\n newResponse.response_data,\n newResponse.pagination || {\n has_more: false,\n next_offset: newOffset,\n current_offset: newOffset,\n limit: newLimit,\n },\n navigationCallback\n );\n };\n\n return new PaginatedResult(\n response.response_data,\n response.pagination || {\n has_more: false,\n next_offset: offset,\n current_offset: offset,\n limit: perPage,\n },\n navigationCallback\n );\n }\n\n async getBrokerAccountsPage(\n page: number = 1,\n perPage: number = 100,\n filters?: AccountsFilter\n ): Promise<PaginatedResult<BrokerAccount[]>> {\n const accessToken = await this.getValidAccessToken();\n const offset = (page - 1) * perPage;\n const params: Record<string, string> = {\n limit: perPage.toString(),\n offset: offset.toString(),\n };\n\n // Add filter parameters\n if (filters) {\n if (filters.broker_id) params.broker_id = filters.broker_id;\n if (filters.connection_id) params.connection_id = filters.connection_id;\n if (filters.account_type) params.account_type = filters.account_type;\n if (filters.status) params.status = filters.status;\n if (filters.currency) params.currency = filters.currency;\n }\n\n const response = await this.request<ApiResponse<BrokerAccount[]>>('/brokers/data/accounts', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n\n // Create navigation callback for pagination\n const navigationCallback = async (\n newOffset: number,\n newLimit: number\n ): Promise<PaginatedResult<BrokerAccount[]>> => {\n const newParams: Record<string, string> = {\n limit: newLimit.toString(),\n offset: newOffset.toString(),\n };\n\n // Add filter parameters\n if (filters) {\n if (filters.broker_id) newParams.broker_id = filters.broker_id;\n if (filters.connection_id) newParams.connection_id = filters.connection_id;\n if (filters.account_type) newParams.account_type = filters.account_type;\n if (filters.status) newParams.status = filters.status;\n if (filters.currency) newParams.currency = filters.currency;\n }\n\n const newResponse = await this.request<ApiResponse<BrokerAccount[]>>(\n '/brokers/data/accounts',\n {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params: newParams,\n }\n );\n\n return new PaginatedResult(\n newResponse.response_data,\n newResponse.pagination || {\n has_more: false,\n next_offset: newOffset,\n current_offset: newOffset,\n limit: newLimit,\n },\n navigationCallback\n );\n };\n\n return new PaginatedResult(\n response.response_data,\n response.pagination || {\n has_more: false,\n next_offset: offset,\n current_offset: offset,\n limit: perPage,\n },\n navigationCallback\n );\n }\n\n async getBrokerPositionsPage(\n page: number = 1,\n perPage: number = 100,\n filters?: PositionsFilter\n ): Promise<PaginatedResult<BrokerPosition[]>> {\n const accessToken = await this.getValidAccessToken();\n const offset = (page - 1) * perPage;\n const params: Record<string, string> = {\n limit: perPage.toString(),\n offset: offset.toString(),\n };\n\n // Add filter parameters\n if (filters) {\n if (filters.broker_id) params.broker_id = filters.broker_id;\n if (filters.account_id) params.account_id = filters.account_id;\n if (filters.symbol) params.symbol = filters.symbol;\n if (filters.position_status) params.position_status = filters.position_status;\n if (filters.side) params.side = filters.side;\n }\n\n const response = await this.request<ApiResponse<BrokerPosition[]>>('/brokers/data/positions', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n\n // Create navigation callback for pagination\n const navigationCallback = async (\n newOffset: number,\n newLimit: number\n ): Promise<PaginatedResult<BrokerPosition[]>> => {\n const newParams: Record<string, string> = {\n limit: newLimit.toString(),\n offset: newOffset.toString(),\n };\n\n // Add filter parameters\n if (filters) {\n if (filters.broker_id) newParams.broker_id = filters.broker_id;\n if (filters.account_id) newParams.account_id = filters.account_id;\n if (filters.symbol) newParams.symbol = filters.symbol;\n if (filters.position_status) newParams.position_status = filters.position_status;\n if (filters.side) newParams.side = filters.side;\n }\n\n const newResponse = await this.request<ApiResponse<BrokerPosition[]>>(\n '/brokers/data/positions',\n {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params: newParams,\n }\n );\n\n return new PaginatedResult(\n newResponse.response_data,\n newResponse.pagination || {\n has_more: false,\n next_offset: newOffset,\n current_offset: newOffset,\n limit: newLimit,\n },\n navigationCallback\n );\n };\n\n return new PaginatedResult(\n response.response_data,\n response.pagination || {\n has_more: false,\n next_offset: offset,\n current_offset: offset,\n limit: perPage,\n },\n navigationCallback\n );\n }\n\n async getBrokerBalancesPage(\n page: number = 1,\n perPage: number = 100,\n filters?: BalancesFilter\n ): Promise<PaginatedResult<BrokerBalance[]>> {\n const accessToken = await this.getValidAccessToken();\n const offset = (page - 1) * perPage;\n const params: Record<string, string> = {\n limit: perPage.toString(),\n offset: offset.toString(),\n };\n\n // Add filter parameters\n if (filters) {\n if (filters.broker_id) params.broker_id = filters.broker_id;\n if (filters.connection_id) params.connection_id = filters.connection_id;\n if (filters.account_id) params.account_id = filters.account_id;\n if (filters.is_end_of_day_snapshot !== undefined)\n params.is_end_of_day_snapshot = filters.is_end_of_day_snapshot.toString();\n if (filters.balance_created_after)\n params.balance_created_after = filters.balance_created_after;\n if (filters.balance_created_before)\n params.balance_created_before = filters.balance_created_before;\n if (filters.with_metadata !== undefined)\n params.with_metadata = filters.with_metadata.toString();\n }\n\n const response = await this.request<ApiResponse<BrokerBalance[]>>('/brokers/data/balances', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n\n // Create navigation callback for pagination\n const navigationCallback = async (\n newOffset: number,\n newLimit: number\n ): Promise<PaginatedResult<BrokerBalance[]>> => {\n const newParams: Record<string, string> = {\n limit: newLimit.toString(),\n offset: newOffset.toString(),\n };\n\n // Add filter parameters\n if (filters) {\n if (filters.broker_id) newParams.broker_id = filters.broker_id;\n if (filters.connection_id) newParams.connection_id = filters.connection_id;\n if (filters.account_id) newParams.account_id = filters.account_id;\n if (filters.is_end_of_day_snapshot !== undefined)\n newParams.is_end_of_day_snapshot = filters.is_end_of_day_snapshot.toString();\n if (filters.balance_created_after)\n newParams.balance_created_after = filters.balance_created_after;\n if (filters.balance_created_before)\n newParams.balance_created_before = filters.balance_created_before;\n if (filters.with_metadata !== undefined)\n newParams.with_metadata = filters.with_metadata.toString();\n }\n\n const newResponse = await this.request<ApiResponse<BrokerBalance[]>>(\n '/brokers/data/balances',\n {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params: newParams,\n }\n );\n\n return new PaginatedResult(\n newResponse.response_data,\n newResponse.pagination || {\n has_more: false,\n next_offset: newOffset,\n current_offset: newOffset,\n limit: newLimit,\n },\n navigationCallback\n );\n };\n\n return new PaginatedResult(\n response.response_data,\n response.pagination || {\n has_more: false,\n next_offset: offset,\n current_offset: offset,\n limit: perPage,\n },\n navigationCallback\n );\n }\n\n // Navigation methods\n async getNextPage<T>(\n previousResult: PaginatedResult<T>,\n fetchFunction: (offset: number, limit: number) => Promise<PaginatedResult<T>>\n ): Promise<PaginatedResult<T> | null> {\n if (!previousResult.hasNext) {\n return null;\n }\n\n return fetchFunction(previousResult.metadata.nextOffset, previousResult.metadata.limit);\n }\n\n /**\n * Check if this is a mock client\n * @returns false for real API client\n */\n isMockClient(): boolean {\n return false;\n }\n\n /**\n * Disconnect a company from a broker connection\n * @param connectionId - The connection ID to disconnect\n * @returns Promise with disconnect response\n */\n async disconnectCompany(connectionId: string): Promise<DisconnectCompanyResponse> {\n const accessToken = await this.getValidAccessToken();\n return this.request<DisconnectCompanyResponse>(`/brokers/disconnect/${connectionId}`, {\n method: 'DELETE',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n });\n }\n\n /**\n * Get order fills for a specific order\n * @param orderId - The order ID\n * @param filter - Optional filter parameters\n * @returns Promise with order fills response\n */\n async getOrderFills(\n orderId: string,\n filter?: OrderFillsFilter\n ): Promise<{\n _id: string;\n response_data: OrderFill[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n const params: Record<string, string> = {};\n\n if (filter?.connection_id) {\n params.connection_id = filter.connection_id;\n }\n if (filter?.limit) {\n params.limit = filter.limit.toString();\n }\n if (filter?.offset) {\n params.offset = filter.offset.toString();\n }\n\n return this.request<{\n _id: string;\n response_data: OrderFill[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>(`/brokers/data/orders/${orderId}/fills`, {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n }\n\n /**\n * Get order events for a specific order\n * @param orderId - The order ID\n * @param filter - Optional filter parameters\n * @returns Promise with order events response\n */\n async getOrderEvents(\n orderId: string,\n filter?: OrderEventsFilter\n ): Promise<{\n _id: string;\n response_data: OrderEvent[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n const params: Record<string, string> = {};\n\n if (filter?.connection_id) {\n params.connection_id = filter.connection_id;\n }\n if (filter?.limit) {\n params.limit = filter.limit.toString();\n }\n if (filter?.offset) {\n params.offset = filter.offset.toString();\n }\n\n return this.request<{\n _id: string;\n response_data: OrderEvent[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>(`/brokers/data/orders/${orderId}/events`, {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n }\n\n /**\n * Get order groups\n * @param filter - Optional filter parameters\n * @returns Promise with order groups response\n */\n async getOrderGroups(\n filter?: OrderGroupsFilter\n ): Promise<{\n _id: string;\n response_data: OrderGroup[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n const params: Record<string, string> = {};\n\n if (filter?.broker_id) {\n params.broker_id = filter.broker_id;\n }\n if (filter?.connection_id) {\n params.connection_id = filter.connection_id;\n }\n if (filter?.limit) {\n params.limit = filter.limit.toString();\n }\n if (filter?.offset) {\n params.offset = filter.offset.toString();\n }\n if (filter?.created_after) {\n params.created_after = filter.created_after;\n }\n if (filter?.created_before) {\n params.created_before = filter.created_before;\n }\n\n return this.request<{\n _id: string;\n response_data: OrderGroup[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>('/brokers/data/orders/groups', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n }\n\n /**\n * Get position lots (tax lots for positions)\n * @param filter - Optional filter parameters\n * @returns Promise with position lots response\n */\n async getPositionLots(\n filter?: PositionLotsFilter\n ): Promise<{\n _id: string;\n response_data: PositionLot[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n const params: Record<string, string> = {};\n\n if (filter?.broker_id) {\n params.broker_id = filter.broker_id;\n }\n if (filter?.connection_id) {\n params.connection_id = filter.connection_id;\n }\n if (filter?.account_id) {\n params.account_id = filter.account_id;\n }\n if (filter?.symbol) {\n params.symbol = filter.symbol;\n }\n if (filter?.position_id) {\n params.position_id = filter.position_id;\n }\n if (filter?.limit) {\n params.limit = filter.limit.toString();\n }\n if (filter?.offset) {\n params.offset = filter.offset.toString();\n }\n\n return this.request<{\n _id: string;\n response_data: PositionLot[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>('/brokers/data/positions/lots', {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n }\n\n /**\n * Get position lot fills for a specific lot\n * @param lotId - The position lot ID\n * @param filter - Optional filter parameters\n * @returns Promise with position lot fills response\n */\n async getPositionLotFills(\n lotId: string,\n filter?: PositionLotFillsFilter\n ): Promise<{\n _id: string;\n response_data: PositionLotFill[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n const params: Record<string, string> = {};\n\n if (filter?.connection_id) {\n params.connection_id = filter.connection_id;\n }\n if (filter?.limit) {\n params.limit = filter.limit.toString();\n }\n if (filter?.offset) {\n params.offset = filter.offset.toString();\n }\n\n return this.request<{\n _id: string;\n response_data: PositionLotFill[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }>(`/brokers/data/positions/lots/${lotId}/fills`, {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n params,\n });\n }\n}\n","import { setupLogger, buildLoggerExtra } from '../lib/logger';\n\ntype EventCallback = (...args: any[]) => void;\n\nconst eventsLogger = setupLogger('FinaticClientSDK.Events', undefined, {\n codebase: 'FinaticClientSDK',\n});\n\nexport class EventEmitter {\n private events: Map<string, Set<EventCallback>> = new Map();\n\n public on(event: string, callback: EventCallback): void {\n if (!this.events.has(event)) {\n this.events.set(event, new Set());\n }\n this.events.get(event)!.add(callback);\n }\n\n public off(event: string, callback: EventCallback): void {\n if (this.events.has(event)) {\n this.events.get(event)!.delete(callback);\n }\n }\n\n public once(event: string, callback: EventCallback): void {\n const onceCallback = (...args: any[]) => {\n callback(...args);\n this.off(event, onceCallback);\n };\n this.on(event, onceCallback);\n }\n\n public emit(event: string, ...args: any[]): void {\n if (this.events.has(event)) {\n this.events.get(event)!.forEach(callback => {\n try {\n callback(...args);\n } catch (error) {\n eventsLogger.exception('Error in event handler', error, {\n module: 'EventEmitter',\n function: 'emit',\n ...buildLoggerExtra({\n event_name: event,\n }),\n });\n }\n });\n }\n }\n\n public removeAllListeners(event?: string): void {\n if (event) {\n this.events.delete(event);\n } else {\n this.events.clear();\n }\n }\n\n public listenerCount(event: string): number {\n return this.events.get(event)?.size || 0;\n }\n\n public listeners(event: string): EventCallback[] {\n return Array.from(this.events.get(event) || []);\n }\n}\n","import { setupLogger, buildLoggerExtra, LoggerExtra } from '../../lib/logger';\n\nconst portalLogger = setupLogger('FinaticClientSDK.PortalUI', undefined, {\n codebase: 'FinaticClientSDK',\n});\n\nexport class PortalUI {\n private iframe: HTMLIFrameElement | null = null;\n private container: HTMLDivElement | null = null;\n private messageHandler: ((event: MessageEvent) => void) | null = null;\n private sessionId: string | null = null;\n private portalOrigin: string | null = null;\n private options?: {\n onSuccess?: (userId: string, tokens?: { access_token?: string; refresh_token?: string }) => void;\n onError?: (error: Error) => void;\n onClose?: () => void;\n onEvent?: (type: string, data: any) => void;\n };\n private originalBodyStyle: string | null = null;\n\n private readonly logger = portalLogger;\n\n constructor(portalUrl: string) {\n this.createContainer();\n }\n\n private buildLoggerExtra(functionName: string, metadata?: Record<string, unknown>): LoggerExtra {\n return {\n module: 'PortalUI',\n function: functionName,\n ...(metadata ? buildLoggerExtra(metadata) : {}),\n };\n }\n\n private createContainer(): void {\n this.logger.debug('Creating portal container and iframe', this.buildLoggerExtra('createContainer'));\n this.container = document.createElement('div');\n this.container.style.cssText = `\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.5);\n display: none;\n z-index: 9999;\n `;\n\n this.iframe = document.createElement('iframe');\n // Let the portal handle its own styling - only set essential attributes\n this.iframe.style.cssText = `\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 90%;\n max-width: 500px;\n height: 90%;\n max-height: 600px;\n border: none;\n border-radius: 24px;\n `;\n\n // Set security headers\n this.iframe.setAttribute('sandbox', 'allow-scripts allow-forms allow-popups allow-same-origin');\n this.iframe.setAttribute('referrerpolicy', 'strict-origin-when-cross-origin');\n this.iframe.setAttribute(\n 'allow',\n 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture'\n );\n\n // Add CSP meta tag to allow Google Fonts and other required resources\n const meta = document.createElement('meta');\n meta.setAttribute('http-equiv', 'Content-Security-Policy');\n meta.setAttribute(\n 'content',\n `\n default-src 'self' https:;\n style-src 'self' 'unsafe-inline' https: https://fonts.googleapis.com https://fonts.gstatic.com https://cdn.jsdelivr.net;\n font-src 'self' https://fonts.gstatic.com;\n img-src 'self' data: https:;\n script-src 'self' 'unsafe-inline' 'unsafe-eval' https:;\n connect-src 'self' https:;\n frame-src 'self' https:;\n `\n .replace(/\\s+/g, ' ')\n .trim()\n );\n this.iframe.contentDocument?.head.appendChild(meta);\n\n this.container.appendChild(this.iframe);\n document.body.appendChild(this.container);\n this.logger.debug('Portal container and iframe created successfully', this.buildLoggerExtra('createContainer'));\n }\n\n /**\n * Lock background scrolling by setting overflow: hidden on body\n */\n private lockScroll(): void {\n if (typeof document !== 'undefined' && document.body) {\n // Store original body style to restore later\n this.originalBodyStyle = document.body.style.cssText;\n\n // Add overflow: hidden to prevent scrolling\n document.body.style.overflow = 'hidden';\n document.body.style.position = 'fixed';\n document.body.style.width = '100%';\n document.body.style.top = `-${window.scrollY}px`;\n\n this.logger.debug('Background scroll locked', this.buildLoggerExtra('lockScroll'));\n }\n }\n\n /**\n * Unlock background scrolling by restoring original body style\n */\n private unlockScroll(): void {\n if (typeof document !== 'undefined' && document.body && this.originalBodyStyle !== null) {\n // Restore original body style\n document.body.style.cssText = this.originalBodyStyle;\n\n // Restore scroll position\n const scrollY = document.body.style.top;\n document.body.style.position = '';\n document.body.style.top = '';\n window.scrollTo(0, parseInt(scrollY || '0') * -1);\n\n this.originalBodyStyle = null;\n this.logger.debug('Background scroll unlocked', this.buildLoggerExtra('unlockScroll'));\n }\n }\n\n public show(\n url: string,\n sessionId: string,\n options: {\n onSuccess?: (userId: string) => void;\n onError?: (error: Error) => void;\n onClose?: () => void;\n onEvent?: (type: string, data: any) => void;\n } = {}\n ): void {\n if (!this.iframe || !this.container) {\n this.createContainer();\n }\n\n // Set portalOrigin to the actual portal URL's origin\n try {\n this.portalOrigin = new URL(url).origin;\n } catch (e) {\n this.portalOrigin = null;\n }\n\n this.sessionId = sessionId;\n this.options = options;\n this.container!.style.display = 'block';\n this.iframe!.src = url;\n\n // Lock background scrolling\n this.lockScroll();\n\n // Set up message handler\n this.messageHandler = this.handleMessage.bind(this);\n window.addEventListener('message', this.messageHandler);\n }\n\n public hide(): void {\n if (this.container) {\n this.container.style.display = 'none';\n }\n if (this.iframe) {\n this.iframe.src = '';\n }\n if (this.messageHandler) {\n window.removeEventListener('message', this.messageHandler);\n this.messageHandler = null;\n }\n this.sessionId = null;\n\n // Unlock background scrolling\n this.unlockScroll();\n }\n\n private handleMessage(event: MessageEvent): void {\n // Verify origin matches the portal URL\n if (!this.portalOrigin || event.origin !== this.portalOrigin) {\n this.logger.warn('Received message from unauthorized origin', this.buildLoggerExtra('handleMessage', {\n received_origin: event.origin,\n expected_origin: this.portalOrigin || 'unknown',\n }));\n return;\n }\n\n const { type, userId, access_token, refresh_token, error, height, data } = event.data;\n this.logger.debug('Received portal message', this.buildLoggerExtra('handleMessage', {\n message_type: type,\n has_data: Boolean(data),\n }));\n\n switch (type) {\n case 'portal-success': {\n // Handle both direct userId and data.userId formats\n const successUserId = userId || (data && data.userId);\n const tokens = {\n access_token: access_token || (data && data.access_token),\n refresh_token: refresh_token || (data && data.refresh_token)\n };\n this.handlePortalSuccess(successUserId, tokens);\n break;\n }\n\n case 'portal-error': {\n // Handle both direct error and data.message formats\n const errorMessage = error || (data && data.message);\n this.handlePortalError(errorMessage);\n break;\n }\n\n case 'portal-close':\n this.handlePortalClose();\n break;\n\n case 'event':\n this.handleGenericEvent(data);\n break;\n\n case 'resize':\n this.handleResize(height);\n break;\n\n // Legacy support for old message types\n case 'success':\n this.handleSuccess(userId);\n break;\n\n case 'error':\n this.handleError(error);\n break;\n\n case 'close':\n this.handleClose();\n break;\n\n default:\n this.logger.warn('Received unhandled message type', this.buildLoggerExtra('handleMessage', {\n message_type: type,\n }));\n }\n }\n\n private handlePortalSuccess(userId: string, tokens?: { access_token?: string; refresh_token?: string }): void {\n if (!userId) {\n this.logger.error('Missing userId in portal-success message', this.buildLoggerExtra('handlePortalSuccess'));\n return;\n }\n\n this.logger.info('Portal success - user connected', this.buildLoggerExtra('handlePortalSuccess', {\n user_id_present: Boolean(userId),\n tokens_provided: Boolean(tokens?.access_token && tokens?.refresh_token),\n }));\n if (tokens?.access_token && tokens?.refresh_token) {\n this.logger.debug('Tokens received for user', this.buildLoggerExtra('handlePortalSuccess', {\n tokens_provided: true,\n }));\n }\n\n // Pass userId to parent (SDK will handle tokens internally)\n this.options?.onSuccess?.(userId, tokens);\n }\n\n private handlePortalError(error: string): void {\n this.logger.error('Portal error received', this.buildLoggerExtra('handlePortalError', {\n error_message: error,\n }));\n this.options?.onError?.(new Error(error || 'Unknown portal error'));\n }\n\n private handlePortalClose(): void {\n this.logger.info('Portal closed by user', this.buildLoggerExtra('handlePortalClose'));\n this.options?.onClose?.();\n this.hide();\n }\n\n private handleGenericEvent(data: any): void {\n if (!data || !data.type) {\n this.logger.warn('Invalid event data received', this.buildLoggerExtra('handleGenericEvent', {\n has_type: Boolean(data?.type),\n }));\n return;\n }\n\n this.logger.debug('Generic event received', this.buildLoggerExtra('handleGenericEvent', {\n event_type: data.type,\n payload_present: Boolean(data.data),\n }));\n\n // Emit the event to be handled by the SDK\n // This will be implemented in FinaticConnect\n if (this.options?.onEvent) {\n this.options.onEvent(data.type, data.data);\n }\n }\n\n private handleSuccess(userId: string): void {\n if (!userId) {\n this.logger.error('Missing required fields in success message', this.buildLoggerExtra('handleSuccess'));\n return;\n }\n\n // Pass userId to parent\n this.options?.onSuccess?.(userId);\n }\n\n private handleError(error: string): void {\n this.logger.error('Received portal error message', this.buildLoggerExtra('handleError', {\n error_message: error,\n }));\n this.options?.onError?.(new Error(error || 'Unknown error'));\n }\n\n private handleClose(): void {\n this.logger.debug('Received close message', this.buildLoggerExtra('handleClose'));\n this.options?.onClose?.();\n this.hide();\n }\n\n private handleResize(height: number): void {\n if (height && this.iframe) {\n this.logger.debug('Received resize message', this.buildLoggerExtra('handleResize', {\n height,\n }));\n this.iframe.style.height = `${height}px`;\n }\n }\n}\n","import { v4 as uuidv4 } from 'uuid';\n\n// Import types from the main API types\nimport { Order, OrderResponse } from '../types/api/orders';\nimport { \n BrokerInfo,\n BrokerAccount,\n BrokerOrder,\n BrokerPosition,\n BrokerBalance,\n BrokerConnection,\n OrdersFilter,\n PositionsFilter,\n AccountsFilter,\n BalancesFilter,\n BrokerDataOrder,\n BrokerDataPosition,\n BrokerDataAccount,\n BrokerOrderParams,\n DisconnectCompanyResponse,\n} from '../types/api/broker';\nimport { \n SessionResponse,\n OtpRequestResponse,\n OtpVerifyResponse,\n SessionValidationResponse,\n SessionAuthenticateResponse,\n UserToken,\n RefreshTokenResponse,\n SessionState,\n} from '../types/api/auth';\nimport { PortalUrlResponse } from '../types/api/core';\n\n/**\n * Configuration for mock behavior\n */\nexport interface MockConfig {\n delay?: number;\n scenario?: MockScenario;\n customData?: Record<string, any>;\n mockApiOnly?: boolean;\n}\n\n/**\n * Different mock scenarios for testing\n */\nexport type MockScenario = 'success' | 'error' | 'network_error' | 'rate_limit' | 'auth_failure';\n\n/**\n * Mock data provider for Finatic API endpoints\n */\nexport class MockDataProvider {\n private config: MockConfig;\n private sessionData: Map<string, any> = new Map();\n private userTokens: Map<string, UserToken> = new Map();\n\n constructor(config: MockConfig = {}) {\n this.config = {\n delay: config.delay || this.getRandomDelay(50, 200),\n scenario: config.scenario || 'success',\n customData: config.customData || {},\n };\n }\n\n /**\n * Get a random delay between min and max milliseconds\n */\n private getRandomDelay(min: number, max: number): number {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n }\n\n /**\n * Simulate network delay\n */\n async simulateDelay(): Promise<void> {\n const delay = this.config.delay || this.getRandomDelay(50, 200);\n await new Promise(resolve => setTimeout(resolve, delay));\n }\n\n /**\n * Generate a realistic session ID\n */\n private generateSessionId(): string {\n return `session_${uuidv4().replace(/-/g, '')}`;\n }\n\n /**\n * Generate a realistic user ID\n */\n private generateUserId(): string {\n return `user_${uuidv4().replace(/-/g, '').substring(0, 8)}`;\n }\n\n /**\n * Generate a realistic company ID\n */\n private generateCompanyId(): string {\n return `company_${uuidv4().replace(/-/g, '').substring(0, 8)}`;\n }\n\n /**\n * Generate mock tokens\n */\n private generateTokens(userId: string): UserToken {\n const accessToken = `mock_access_${uuidv4().replace(/-/g, '')}`;\n const refreshToken = `mock_refresh_${uuidv4().replace(/-/g, '')}`;\n\n return {\n user_id: userId,\n // Removed token fields - we no longer use Supabase tokens in the SDK\n };\n }\n\n // Authentication & Session Management Mocks\n\n async mockStartSession(token: string, userId?: string): Promise<SessionResponse> {\n await this.simulateDelay();\n\n const sessionId = this.generateSessionId();\n const companyId = this.generateCompanyId();\n const actualUserId = userId || this.generateUserId();\n\n const sessionData = {\n session_id: sessionId,\n state: SessionState.ACTIVE,\n company_id: companyId,\n status: 'active',\n expires_at: new Date(Date.now() + 30 * 60 * 1000).toISOString(), // 30 minutes\n user_id: actualUserId,\n auto_login: false,\n };\n\n this.sessionData.set(sessionId, sessionData);\n\n return {\n success: true,\n data: sessionData,\n message: 'Session started successfully',\n };\n }\n\n async mockRequestOtp(sessionId: string, email: string): Promise<OtpRequestResponse> {\n await this.simulateDelay();\n\n return {\n success: true,\n message: 'OTP sent successfully',\n data: true,\n };\n }\n\n async mockVerifyOtp(sessionId: string, otp: string): Promise<OtpVerifyResponse> {\n await this.simulateDelay();\n\n const userId = this.generateUserId();\n const tokens = this.generateTokens(userId);\n\n this.userTokens.set(userId, tokens);\n\n return {\n success: true,\n message: 'OTP verified successfully',\n data: {\n access_token: '', // No longer using Supabase tokens\n refresh_token: '', // No longer using Supabase tokens\n user_id: userId,\n expires_in: 0, // No token expiration for session-based auth\n scope: 'api:access',\n token_type: 'Bearer',\n },\n };\n }\n\n async mockAuthenticateDirectly(\n sessionId: string,\n userId: string\n ): Promise<SessionAuthenticateResponse> {\n await this.simulateDelay();\n\n const tokens = this.generateTokens(userId);\n this.userTokens.set(userId, tokens);\n\n return {\n success: true,\n message: 'Authentication successful',\n data: {\n access_token: '', // No longer using Supabase tokens\n refresh_token: '', // No longer using Supabase tokens\n },\n };\n }\n\n async mockGetPortalUrl(sessionId: string): Promise<PortalUrlResponse> {\n await this.simulateDelay();\n const scenario = this.getScenario();\n if (scenario === 'error') {\n return {\n success: false,\n message: 'Failed to retrieve portal URL (mock error)',\n data: { portal_url: '' },\n };\n }\n if (scenario === 'network_error') {\n throw new Error('Network error (mock)');\n }\n if (scenario === 'rate_limit') {\n return {\n success: false,\n message: 'Rate limit exceeded (mock)',\n data: { portal_url: '' },\n };\n }\n if (scenario === 'auth_failure') {\n return {\n success: false,\n message: 'Authentication failed (mock)',\n data: { portal_url: '' },\n };\n }\n // Default: success\n return {\n success: true,\n message: 'Portal URL retrieved successfully',\n data: {\n portal_url: 'http://localhost:3000/mock-portal',\n },\n };\n }\n\n async mockValidatePortalSession(\n sessionId: string,\n signature: string\n ): Promise<SessionValidationResponse> {\n await this.simulateDelay();\n\n return {\n valid: true,\n company_id: this.generateCompanyId(),\n status: 'active',\n is_sandbox: false,\n environment: 'production',\n };\n }\n\n async mockCompletePortalSession(sessionId: string): Promise<PortalUrlResponse> {\n await this.simulateDelay();\n\n return {\n success: true,\n message: 'Portal session completed successfully',\n data: {\n portal_url: `https://portal.finatic.dev/complete/${sessionId}`,\n },\n };\n }\n\n async mockRefreshToken(refreshToken: string): Promise<RefreshTokenResponse> {\n await this.simulateDelay();\n\n const newAccessToken = `mock_access_${uuidv4().replace(/-/g, '')}`;\n const newRefreshToken = `mock_refresh_${uuidv4().replace(/-/g, '')}`;\n\n return {\n success: true,\n response_data: {\n access_token: newAccessToken,\n refresh_token: newRefreshToken,\n expires_at: new Date(Date.now() + 3600 * 1000).toISOString(),\n company_id: this.generateCompanyId(),\n company_name: 'Mock Company',\n email_verified: true,\n },\n message: 'Token refreshed successfully',\n };\n }\n\n // Broker Management Mocks\n\n async mockGetBrokerList(): Promise<{\n _id: string;\n response_data: BrokerInfo[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n await this.simulateDelay();\n\n const brokers: BrokerInfo[] = [\n {\n id: 'alpaca',\n name: 'alpaca',\n display_name: 'Alpaca',\n description: 'Commission-free stock trading and crypto',\n website: 'https://alpaca.markets',\n features: ['stocks', 'crypto', 'fractional_shares', 'api_trading'],\n auth_type: 'api_key',\n logo_path: '/logos/alpaca.png',\n is_active: true,\n },\n {\n id: 'robinhood',\n name: 'robinhood',\n display_name: 'Robinhood',\n description: 'Commission-free stock and options trading',\n website: 'https://robinhood.com',\n features: ['stocks', 'options', 'crypto', 'fractional_shares'],\n auth_type: 'oauth',\n logo_path: '/logos/robinhood.png',\n is_active: true,\n },\n {\n id: 'tasty_trade',\n name: 'tasty_trade',\n display_name: 'TastyTrade',\n description: 'Options and futures trading platform',\n website: 'https://tastytrade.com',\n features: ['options', 'futures', 'stocks'],\n auth_type: 'oauth',\n logo_path: '/logos/tastytrade.png',\n is_active: true,\n },\n {\n id: 'ninja_trader',\n name: 'ninja_trader',\n display_name: 'NinjaTrader',\n description: 'Advanced futures and forex trading platform',\n website: 'https://ninjatrader.com',\n features: ['futures', 'forex', 'options'],\n auth_type: 'api_key',\n logo_path: '/logos/ninjatrader.png',\n is_active: true,\n },\n ];\n\n return {\n _id: uuidv4(),\n response_data: brokers,\n message: 'Broker list retrieved successfully',\n status_code: 200,\n warnings: null,\n errors: null,\n };\n }\n\n async mockGetBrokerAccounts(): Promise<{\n _id: string;\n response_data: BrokerAccount[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n await this.simulateDelay();\n\n const accounts: BrokerAccount[] = [\n {\n id: uuidv4(),\n user_broker_connection_id: uuidv4(),\n broker_provided_account_id: '123456789',\n account_name: 'Individual Account',\n account_type: 'individual',\n currency: 'USD',\n cash_balance: 15000.5,\n buying_power: 45000.0,\n status: 'active',\n created_at: new Date().toISOString(),\n updated_at: new Date().toISOString(),\n last_synced_at: new Date().toISOString(),\n positions_synced_at: new Date().toISOString(),\n orders_synced_at: new Date().toISOString(),\n balances_synced_at: new Date().toISOString(),\n account_created_at: new Date(Date.now() - 365 * 24 * 60 * 60 * 1000).toISOString(), // 1 year ago\n account_updated_at: new Date().toISOString(),\n account_first_trade_at: new Date(Date.now() - 300 * 24 * 60 * 60 * 1000).toISOString(), // 300 days ago\n },\n {\n id: uuidv4(),\n user_broker_connection_id: uuidv4(),\n broker_provided_account_id: '987654321',\n account_name: 'IRA Account',\n account_type: 'ira',\n currency: 'USD',\n cash_balance: 25000.75,\n buying_power: 75000.0,\n status: 'active',\n created_at: new Date().toISOString(),\n updated_at: new Date().toISOString(),\n last_synced_at: new Date().toISOString(),\n positions_synced_at: new Date().toISOString(),\n orders_synced_at: new Date().toISOString(),\n balances_synced_at: new Date().toISOString(),\n account_created_at: new Date(Date.now() - 730 * 24 * 60 * 60 * 1000).toISOString(), // 2 years ago\n account_updated_at: new Date().toISOString(),\n account_first_trade_at: new Date(Date.now() - 700 * 24 * 60 * 60 * 1000).toISOString(), // 700 days ago\n },\n ];\n\n return {\n _id: uuidv4(),\n response_data: accounts,\n message: 'Broker accounts retrieved successfully',\n status_code: 200,\n warnings: null,\n errors: null,\n };\n }\n\n async mockGetBrokerConnections(): Promise<{\n _id: string;\n response_data: BrokerConnection[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n await this.simulateDelay();\n\n const connections: BrokerConnection[] = [\n {\n id: uuidv4(),\n broker_id: 'robinhood',\n user_id: this.generateUserId(),\n company_id: this.generateCompanyId(),\n status: 'connected',\n connected_at: new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString(), // 7 days ago\n last_synced_at: new Date().toISOString(),\n permissions: {\n read: true,\n write: true,\n },\n metadata: {\n nickname: 'My Robinhood',\n },\n needs_reauth: false,\n },\n {\n id: uuidv4(),\n broker_id: 'tasty_trade',\n user_id: this.generateUserId(),\n company_id: this.generateCompanyId(),\n status: 'connected',\n connected_at: new Date(Date.now() - 3 * 24 * 60 * 60 * 1000).toISOString(), // 3 days ago\n last_synced_at: new Date().toISOString(),\n permissions: {\n read: true,\n write: false,\n },\n metadata: {\n nickname: 'Tasty Options',\n },\n needs_reauth: false,\n },\n ];\n\n return {\n _id: uuidv4(),\n response_data: connections,\n message: 'Broker connections retrieved successfully',\n status_code: 200,\n warnings: null,\n errors: null,\n };\n }\n\n // Portfolio & Trading Mocks\n\n\n\n async mockGetOrders(filter?: OrdersFilter): Promise<{ data: Order[] }> {\n await this.simulateDelay();\n\n const mockOrders: Order[] = [\n {\n symbol: 'AAPL',\n side: 'buy',\n quantity: 100,\n type_: 'market',\n timeInForce: 'day',\n },\n {\n symbol: 'TSLA',\n side: 'sell',\n quantity: 50,\n type_: 'limit',\n price: 250.0,\n timeInForce: 'day',\n },\n ];\n\n // Apply filters if provided\n let filteredOrders = mockOrders;\n if (filter) {\n filteredOrders = this.applyOrderFilters(mockOrders, filter);\n }\n\n return { data: filteredOrders };\n }\n\n async mockGetBrokerOrders(filter?: OrdersFilter): Promise<{ data: BrokerDataOrder[] }> {\n await this.simulateDelay();\n\n // Determine how many orders to generate based on limit parameter\n const limit = filter?.limit || 100;\n const maxLimit = Math.min(limit, 1000); // Cap at 1000\n const count = Math.max(1, maxLimit); // At least 1\n\n // Generate diverse mock orders based on requested count\n const mockOrders: BrokerDataOrder[] = this.generateMockOrders(count);\n\n // Apply filters if provided\n let filteredOrders = mockOrders;\n if (filter) {\n filteredOrders = this.applyBrokerOrderFilters(mockOrders, filter);\n }\n\n return {\n data: filteredOrders,\n };\n }\n\n async mockGetBrokerPositions(filter?: PositionsFilter): Promise<{ data: BrokerDataPosition[] }> {\n await this.simulateDelay();\n\n // Determine how many positions to generate based on limit parameter\n const limit = filter?.limit || 100;\n const maxLimit = Math.min(limit, 1000); // Cap at 1000\n const count = Math.max(1, maxLimit); // At least 1\n\n // Generate diverse mock positions based on requested count\n const mockPositions: BrokerDataPosition[] = this.generateMockPositions(count);\n\n // Apply filters if provided\n let filteredPositions = mockPositions;\n if (filter) {\n filteredPositions = this.applyBrokerPositionFilters(mockPositions, filter);\n }\n\n return {\n data: filteredPositions,\n };\n }\n\n async mockGetBrokerBalances(filter?: BalancesFilter): Promise<{ data: BrokerBalance[] }> {\n await this.simulateDelay();\n\n // Determine how many balances to generate based on limit parameter\n const limit = filter?.limit || 100;\n const maxLimit = Math.min(limit, 1000); // Cap at 1000\n\n const mockBalances: BrokerBalance[] = [];\n for (let i = 0; i < maxLimit; i++) {\n const totalCashValue = Math.random() * 100000 + 10000; // $10k - $110k\n const netLiquidationValue = totalCashValue * (0.8 + Math.random() * 0.4); // ±20% variation\n const initialMargin = netLiquidationValue * 0.1; // 10% of net liquidation\n const maintenanceMargin = initialMargin * 0.8; // 80% of initial margin\n const availableToWithdraw = totalCashValue * 0.9; // 90% of cash available\n const totalRealizedPnl = (Math.random() - 0.5) * 10000; // -$5k to +$5k\n\n const balance: BrokerBalance = {\n id: `balance_${i + 1}`,\n account_id: `account_${Math.floor(Math.random() * 3) + 1}`,\n total_cash_value: totalCashValue,\n net_liquidation_value: netLiquidationValue,\n initial_margin: initialMargin,\n maintenance_margin: maintenanceMargin,\n available_to_withdraw: availableToWithdraw,\n total_realized_pnl: totalRealizedPnl,\n balance_created_at: new Date(Date.now() - Math.random() * 7 * 24 * 60 * 60 * 1000).toISOString(),\n balance_updated_at: new Date().toISOString(),\n is_end_of_day_snapshot: Math.random() > 0.7, // 30% chance of being EOD snapshot\n raw_payload: {\n broker_specific_data: {\n margin_ratio: netLiquidationValue / initialMargin,\n day_trading_buying_power: availableToWithdraw * 4,\n overnight_buying_power: availableToWithdraw * 2,\n },\n },\n created_at: new Date(Date.now() - Math.random() * 30 * 24 * 60 * 60 * 1000).toISOString(),\n updated_at: new Date().toISOString(),\n };\n\n mockBalances.push(balance);\n }\n\n // Apply filters if provided\n let filteredBalances = mockBalances;\n if (filter) {\n filteredBalances = this.applyBrokerBalanceFilters(mockBalances, filter);\n }\n\n return {\n data: filteredBalances,\n };\n }\n\n async mockGetBrokerDataAccounts(filter?: AccountsFilter): Promise<{ data: BrokerAccount[] }> {\n await this.simulateDelay();\n\n // Determine how many accounts to generate based on limit parameter\n const limit = filter?.limit || 100;\n const maxLimit = Math.min(limit, 1000); // Cap at 1000\n const count = Math.max(1, maxLimit); // At least 1\n\n // Generate diverse mock accounts based on requested count\n const mockAccounts: BrokerAccount[] = this.generateMockAccounts(count);\n\n // Apply filters if provided\n let filteredAccounts = mockAccounts;\n if (filter) {\n filteredAccounts = this.applyBrokerAccountFilters(mockAccounts, filter);\n }\n\n return {\n data: filteredAccounts,\n };\n }\n\n async mockPlaceOrder(order: BrokerOrderParams): Promise<OrderResponse> {\n // Simulate API delay\n await new Promise(resolve => setTimeout(resolve, 100));\n\n // Generate a mock order ID\n const orderId = `mock_order_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;\n\n return {\n success: true,\n response_data: {\n orderId: orderId,\n status: 'pending',\n broker: order.broker,\n accountNumber: order.accountNumber,\n symbol: order.symbol,\n orderType: order.orderType,\n assetType: order.assetType,\n action: order.action,\n quantity: order.orderQty,\n price: order.price,\n stopPrice: order.stopPrice,\n timeInForce: order.timeInForce,\n },\n message: 'Order placed successfully',\n status_code: 200,\n };\n }\n\n // Utility methods\n\n /**\n * Get stored session data\n */\n getSessionData(sessionId: string): any {\n return this.sessionData.get(sessionId);\n }\n\n /**\n * Get stored user token\n */\n getUserToken(sessionId: string): UserToken | undefined {\n return this.userTokens.get(sessionId);\n }\n\n /**\n * Clear all stored data\n */\n clearData(): void {\n this.sessionData.clear();\n this.userTokens.clear();\n }\n\n /**\n * Update configuration\n */\n updateConfig(config: Partial<MockConfig>): void {\n this.config = { ...this.config, ...config };\n }\n\n setScenario(scenario: MockScenario) {\n this.config.scenario = scenario;\n }\n getScenario(): MockScenario {\n return this.config.scenario || 'success';\n }\n\n // Helper methods to apply filters\n private applyOrderFilters(orders: Order[], filter: OrdersFilter): Order[] {\n return orders.filter(order => {\n if (filter.symbol && order.symbol !== filter.symbol) return false;\n if (filter.side && order.side !== filter.side) return false;\n return true;\n });\n }\n\n private applyBrokerOrderFilters(\n orders: BrokerDataOrder[],\n filter: OrdersFilter\n ): BrokerDataOrder[] {\n return orders.filter(order => {\n if (filter.broker_id && order.broker_id !== filter.broker_id) return false;\n if (filter.connection_id && order.connection_id !== filter.connection_id) return false;\n if (filter.account_id && order.account_id !== filter.account_id) return false;\n if (filter.symbol && order.symbol !== filter.symbol) return false;\n if (filter.status && order.status !== filter.status) return false;\n if (filter.side && order.side !== filter.side) return false;\n if (filter.asset_type && order.asset_type !== filter.asset_type) return false;\n if (filter.created_after && new Date(order.created_at) < new Date(filter.created_after))\n return false;\n if (filter.created_before && new Date(order.created_at) > new Date(filter.created_before))\n return false;\n return true;\n });\n }\n\n private applyBrokerPositionFilters(\n positions: BrokerDataPosition[],\n filter: PositionsFilter\n ): BrokerDataPosition[] {\n return positions.filter(position => {\n if (filter.broker_id && position.broker_id !== filter.broker_id) return false;\n if (filter.connection_id && position.connection_id !== filter.connection_id) return false;\n if (filter.account_id && position.account_id !== filter.account_id) return false;\n if (filter.symbol && position.symbol !== filter.symbol) return false;\n if (filter.side && position.side !== filter.side) return false;\n if (filter.asset_type && position.asset_type !== filter.asset_type) return false;\n if (filter.position_status && position.position_status !== filter.position_status)\n return false;\n if (filter.updated_after && new Date(position.updated_at) < new Date(filter.updated_after))\n return false;\n if (filter.updated_before && new Date(position.updated_at) > new Date(filter.updated_before))\n return false;\n return true;\n });\n }\n\n private applyBrokerAccountFilters(\n accounts: BrokerAccount[],\n filter: AccountsFilter\n ): BrokerAccount[] {\n return accounts.filter(account => {\n if (filter.broker_id && account.user_broker_connection_id !== filter.connection_id) return false;\n if (filter.connection_id && account.user_broker_connection_id !== filter.connection_id) return false;\n if (filter.account_type && account.account_type !== filter.account_type) return false;\n if (filter.status && account.status !== filter.status) return false;\n if (filter.currency && account.currency !== filter.currency) return false;\n return true;\n });\n }\n\n private applyBrokerBalanceFilters(\n balances: BrokerBalance[],\n filter: BalancesFilter\n ): BrokerBalance[] {\n return balances.filter(balance => {\n if (filter.account_id && balance.account_id !== filter.account_id) return false;\n if (filter.is_end_of_day_snapshot !== undefined && balance.is_end_of_day_snapshot !== filter.is_end_of_day_snapshot) return false;\n if (filter.balance_created_after && balance.balance_created_at && new Date(balance.balance_created_at) < new Date(filter.balance_created_after)) return false;\n if (filter.balance_created_before && balance.balance_created_at && new Date(balance.balance_created_at) > new Date(filter.balance_created_before)) return false;\n return true;\n });\n }\n\n /**\n * Generate mock orders with diverse data\n */\n private generateMockOrders(count: number): BrokerDataOrder[] {\n const orders: BrokerDataOrder[] = [];\n const symbols = [\n 'AAPL',\n 'TSLA',\n 'MSFT',\n 'GOOGL',\n 'AMZN',\n 'META',\n 'NVDA',\n 'NFLX',\n 'SPY',\n 'QQQ',\n 'IWM',\n 'VTI',\n 'BTC',\n 'ETH',\n 'ADA',\n ];\n const brokers = ['robinhood', 'alpaca', 'tasty_trade', 'ninja_trader'];\n const orderTypes = ['market', 'limit', 'stop', 'stop_limit'] as const;\n const sides = ['buy', 'sell'] as const;\n const statuses = ['filled', 'pending', 'cancelled', 'rejected', 'partially_filled'] as const;\n const assetTypes = ['stock', 'option', 'crypto', 'future'] as const;\n\n for (let i = 0; i < count; i++) {\n const symbol = symbols[Math.floor(Math.random() * symbols.length)];\n const broker = brokers[Math.floor(Math.random() * brokers.length)];\n const orderType = orderTypes[Math.floor(Math.random() * orderTypes.length)];\n const side = sides[Math.floor(Math.random() * sides.length)];\n const status = statuses[Math.floor(Math.random() * statuses.length)];\n const assetType = assetTypes[Math.floor(Math.random() * assetTypes.length)];\n const quantity = Math.floor(Math.random() * 1000) + 1;\n const price = Math.random() * 500 + 10;\n const isFilled = status === 'filled' || status === 'partially_filled';\n const filledQuantity = isFilled ? Math.floor(quantity * (0.5 + Math.random() * 0.5)) : 0;\n const filledAvgPrice = isFilled ? price * (0.95 + Math.random() * 0.1) : 0;\n\n orders.push({\n id: uuidv4(),\n broker_id: broker,\n connection_id: uuidv4(),\n account_id: `account_${Math.floor(Math.random() * 1000000)}`,\n order_id: `order_${String(i + 1).padStart(6, '0')}`,\n symbol,\n order_type: orderType,\n side,\n quantity,\n price,\n status,\n asset_type: assetType,\n created_at: new Date(Date.now() - Math.random() * 30 * 24 * 60 * 60 * 1000).toISOString(), // Random date within last 30 days\n updated_at: new Date().toISOString(),\n filled_at: isFilled ? new Date().toISOString() : undefined,\n filled_quantity: filledQuantity,\n filled_avg_price: filledAvgPrice,\n });\n }\n\n return orders;\n }\n\n /**\n * Generate mock positions with diverse data\n */\n private generateMockPositions(count: number): BrokerDataPosition[] {\n const positions: BrokerDataPosition[] = [];\n const symbols = [\n 'AAPL',\n 'TSLA',\n 'MSFT',\n 'GOOGL',\n 'AMZN',\n 'META',\n 'NVDA',\n 'NFLX',\n 'SPY',\n 'QQQ',\n 'IWM',\n 'VTI',\n 'BTC',\n 'ETH',\n 'ADA',\n ];\n const brokers = ['robinhood', 'alpaca', 'tasty_trade', 'ninja_trader'];\n const sides = ['long', 'short'] as const;\n const assetTypes = ['stock', 'option', 'crypto', 'future'] as const;\n const positionStatuses = ['open', 'closed'] as const;\n\n for (let i = 0; i < count; i++) {\n const symbol = symbols[Math.floor(Math.random() * symbols.length)];\n const broker = brokers[Math.floor(Math.random() * brokers.length)];\n const side = sides[Math.floor(Math.random() * sides.length)];\n const assetType = assetTypes[Math.floor(Math.random() * assetTypes.length)];\n const positionStatus = positionStatuses[Math.floor(Math.random() * positionStatuses.length)];\n const quantity = Math.floor(Math.random() * 1000) + 1;\n const averagePrice = Math.random() * 500 + 10;\n const currentPrice = averagePrice * (0.8 + Math.random() * 0.4); // ±20% variation\n const marketValue = quantity * currentPrice;\n const costBasis = quantity * averagePrice;\n const unrealizedGainLoss = marketValue - costBasis;\n const unrealizedGainLossPercent = (unrealizedGainLoss / costBasis) * 100;\n\n positions.push({\n id: uuidv4(),\n broker_id: broker,\n connection_id: uuidv4(),\n account_id: `account_${Math.floor(Math.random() * 1000000)}`,\n symbol,\n asset_type: assetType,\n side,\n quantity,\n average_price: averagePrice,\n market_value: marketValue,\n cost_basis: costBasis,\n unrealized_gain_loss: unrealizedGainLoss,\n unrealized_gain_loss_percent: unrealizedGainLossPercent,\n current_price: currentPrice,\n last_price: currentPrice,\n last_price_updated_at: new Date().toISOString(),\n position_status: positionStatus,\n created_at: new Date(Date.now() - Math.random() * 30 * 24 * 60 * 60 * 1000).toISOString(), // Random date within last 30 days\n updated_at: new Date().toISOString(),\n });\n }\n\n return positions;\n }\n\n /**\n * Generate mock accounts with diverse data\n */\n private generateMockAccounts(count: number): BrokerAccount[] {\n const accounts: BrokerAccount[] = [];\n const brokers = ['robinhood', 'alpaca', 'tasty_trade', 'ninja_trader'];\n const accountTypes = ['margin', 'cash', 'crypto_wallet', 'live', 'sim'] as const;\n const statuses = ['active', 'inactive'] as const;\n const currencies = ['USD', 'EUR', 'GBP', 'CAD'];\n const accountNames = [\n 'Individual Account',\n 'Paper Trading',\n 'Retirement Account',\n 'Crypto Wallet',\n 'Margin Account',\n 'Cash Account',\n 'Trading Account',\n 'Investment Account',\n ];\n\n for (let i = 0; i < count; i++) {\n const broker = brokers[Math.floor(Math.random() * brokers.length)];\n const accountType = accountTypes[Math.floor(Math.random() * accountTypes.length)];\n const status = statuses[Math.floor(Math.random() * statuses.length)];\n const currency = currencies[Math.floor(Math.random() * currencies.length)];\n const accountName = accountNames[Math.floor(Math.random() * accountNames.length)];\n\n const cashBalance = Math.random() * 100000 + 1000;\n const buyingPower = cashBalance * (1 + Math.random() * 2); // 1-3x cash balance\n\n accounts.push({\n id: uuidv4(),\n user_broker_connection_id: uuidv4(),\n broker_provided_account_id: `account_${Math.floor(Math.random() * 1000000)}`,\n account_name: `${accountName} ${i + 1}`,\n account_type: accountType,\n currency,\n cash_balance: cashBalance,\n buying_power: buyingPower,\n status,\n created_at: new Date(Date.now() - Math.random() * 365 * 24 * 60 * 60 * 1000).toISOString(), // Random date within last year\n updated_at: new Date().toISOString(),\n last_synced_at: new Date().toISOString(),\n positions_synced_at: new Date().toISOString(),\n orders_synced_at: new Date().toISOString(),\n balances_synced_at: new Date().toISOString(),\n account_created_at: new Date(Date.now() - Math.random() * 730 * 24 * 60 * 60 * 1000).toISOString(), // Random date within last 2 years\n account_updated_at: new Date().toISOString(),\n account_first_trade_at: new Date(Date.now() - Math.random() * 500 * 24 * 60 * 60 * 1000).toISOString(), // Random date within last 500 days\n });\n }\n\n return accounts;\n }\n\n /**\n * Mock disconnect company method\n * @param connectionId - The connection ID to disconnect\n * @returns Promise with mock disconnect response\n */\n async mockDisconnectCompany(connectionId: string): Promise<DisconnectCompanyResponse> {\n // Simulate API delay\n await new Promise(resolve => setTimeout(resolve, 200));\n\n // Randomly decide if this will delete the connection or just remove company access\n const willDeleteConnection = Math.random() > 0.5;\n \n if (willDeleteConnection) {\n return {\n success: true,\n response_data: {\n connection_id: connectionId,\n action: 'connection_deleted',\n message: 'Company access removed and connection deleted (no companies remaining)',\n },\n message: 'Company access removed and connection deleted (no companies remaining)',\n status_code: 200,\n };\n } else {\n return {\n success: true,\n response_data: {\n connection_id: connectionId,\n action: 'company_access_removed',\n remaining_companies: Math.floor(Math.random() * 5) + 1, // 1-5 remaining companies\n message: 'Company access removed from connection',\n },\n message: 'Company access removed from connection',\n status_code: 200,\n };\n }\n }\n}\n","import { v4 as uuidv4 } from 'uuid';\n\n// Import types from the main API types\nimport {\n SessionResponse,\n OtpRequestResponse,\n OtpVerifyResponse,\n PortalUrlResponse,\n SessionValidationResponse,\n SessionAuthenticateResponse,\n UserToken,\n Order,\n BrokerInfo,\n BrokerAccount,\n BrokerOrder,\n BrokerPosition,\n BrokerBalance,\n BrokerConnection,\n BrokerDataOptions,\n BrokerOrderParams,\n BrokerExtras,\n CryptoOrderOptions,\n OptionsOrderOptions,\n OrderResponse,\n TradingContext,\n RefreshTokenRequest,\n RefreshTokenResponse,\n OrdersFilter,\n PositionsFilter,\n AccountsFilter,\n BalancesFilter,\n BrokerDataOrder,\n BrokerDataPosition,\n BrokerDataAccount,\n DisconnectCompanyResponse,\n} from '../types';\nimport { PaginatedResult } from '../types';\nimport { DeviceInfo, SessionState, TokenInfo } from '../types/api/auth';\nimport {\n ApiError,\n SessionError,\n AuthenticationError,\n AuthorizationError,\n RateLimitError,\n CompanyAccessError,\n OrderError,\n OrderValidationError,\n} from '../utils/errors';\nimport { MockDataProvider, MockConfig } from './MockDataProvider';\nimport { setupLogger, buildLoggerExtra, LoggerExtra } from '../lib/logger';\n\nconst mockApiLogger = setupLogger('FinaticClientSDK.MockApiClient', undefined, {\n codebase: 'FinaticClientSDK',\n});\n\n/**\n * Mock API Client that implements the same interface as the real ApiClient\n * but returns mock data instead of making HTTP requests\n */\nexport class MockApiClient {\n private readonly baseUrl: string;\n protected readonly deviceInfo?: DeviceInfo;\n protected currentSessionState: SessionState | null = null;\n protected currentSessionId: string | null = null;\n private tradingContext: TradingContext = {};\n\n // Token management\n private tokenInfo: TokenInfo | null = null;\n private refreshPromise: Promise<TokenInfo> | null = null;\n private readonly REFRESH_BUFFER_MINUTES = 5;\n\n // Session and company context\n private companyId: string | null = null;\n private csrfToken: string | null = null;\n\n // Mock data provider\n private mockDataProvider: MockDataProvider;\n private readonly mockApiOnly: boolean;\n private readonly logger = mockApiLogger;\n\n private buildLoggerExtra(functionName: string, metadata?: Record<string, unknown>): LoggerExtra {\n return {\n module: 'MockApiClient',\n function: functionName,\n ...(metadata ? buildLoggerExtra(metadata) : {}),\n };\n }\n\n constructor(baseUrl: string, deviceInfo?: DeviceInfo, mockConfig?: MockConfig) {\n this.baseUrl = baseUrl;\n this.deviceInfo = deviceInfo;\n this.mockApiOnly = mockConfig?.mockApiOnly || false;\n this.mockDataProvider = new MockDataProvider(mockConfig);\n\n // Log that mocks are being used\n if (this.mockApiOnly) {\n this.logger.info('Using mock API client (API only, real portal)', this.buildLoggerExtra('constructor', {\n mock_api_only: true,\n }));\n } else {\n this.logger.info('Using mock API client', this.buildLoggerExtra('constructor', {\n mock_api_only: false,\n }));\n }\n }\n\n /**\n * Store tokens after successful authentication\n */\n setTokens(accessToken: string, refreshToken: string, expiresAt: string, userId?: string): void {\n this.tokenInfo = {\n accessToken,\n refreshToken,\n expiresAt,\n userId,\n };\n }\n\n /**\n * Get the current access token, refreshing if necessary\n */\n async getValidAccessToken(): Promise<string> {\n if (!this.tokenInfo) {\n throw new AuthenticationError('No tokens available. Please authenticate first.');\n }\n\n // Check if token is expired or about to expire\n if (this.isTokenExpired()) {\n await this.refreshTokens();\n }\n\n return this.tokenInfo.accessToken;\n }\n\n /**\n * Check if the current token is expired or about to expire\n */\n private isTokenExpired(): boolean {\n if (!this.tokenInfo) return true;\n\n const expiryTime = new Date(this.tokenInfo.expiresAt).getTime();\n const currentTime = Date.now();\n const bufferTime = this.REFRESH_BUFFER_MINUTES * 60 * 1000;\n\n return currentTime >= expiryTime - bufferTime;\n }\n\n /**\n * Refresh the access token using the refresh token\n */\n private async refreshTokens(): Promise<void> {\n if (!this.tokenInfo) {\n throw new AuthenticationError('No refresh token available.');\n }\n\n // If a refresh is already in progress, wait for it\n if (this.refreshPromise) {\n await this.refreshPromise;\n return;\n }\n\n // Start a new refresh\n this.refreshPromise = this.performTokenRefresh();\n\n try {\n await this.refreshPromise;\n } finally {\n this.refreshPromise = null;\n }\n }\n\n /**\n * Perform the actual token refresh request\n */\n private async performTokenRefresh(): Promise<TokenInfo> {\n if (!this.tokenInfo) {\n throw new AuthenticationError('No refresh token available.');\n }\n\n try {\n const response = await this.mockDataProvider.mockRefreshToken(this.tokenInfo.refreshToken);\n\n // Update stored tokens\n this.tokenInfo = {\n accessToken: response.response_data.access_token,\n refreshToken: response.response_data.refresh_token,\n expiresAt: response.response_data.expires_at,\n userId: this.tokenInfo.userId,\n };\n\n return this.tokenInfo;\n } catch (error) {\n // Clear tokens on refresh failure\n this.tokenInfo = null;\n throw new AuthenticationError(\n 'Token refresh failed. Please re-authenticate.',\n error as Record<string, any>\n );\n }\n }\n\n /**\n * Clear stored tokens (useful for logout)\n */\n clearTokens(): void {\n this.tokenInfo = null;\n this.refreshPromise = null;\n }\n\n /**\n * Get current token info (for debugging/testing)\n */\n getTokenInfo(): TokenInfo | null {\n return this.tokenInfo ? { ...this.tokenInfo } : null;\n }\n\n /**\n * Set session context (session ID, company ID, CSRF token)\n */\n setSessionContext(sessionId: string, companyId: string, csrfToken?: string): void {\n this.currentSessionId = sessionId;\n this.companyId = companyId;\n this.csrfToken = csrfToken || null;\n }\n\n /**\n * Get the current session ID\n */\n getCurrentSessionId(): string | null {\n return this.currentSessionId;\n }\n\n /**\n * Get the current company ID\n */\n getCurrentCompanyId(): string | null {\n return this.companyId;\n }\n\n /**\n * Get the current CSRF token\n */\n getCurrentCsrfToken(): string | null {\n return this.csrfToken;\n }\n\n // Session Management\n async startSession(token: string, userId?: string): Promise<SessionResponse> {\n const response = await this.mockDataProvider.mockStartSession(token, userId);\n\n // Store session ID and set state to ACTIVE\n this.currentSessionId = response.data.session_id;\n this.currentSessionState = SessionState.ACTIVE;\n\n return response;\n }\n\n // OTP Flow\n async requestOtp(sessionId: string, email: string): Promise<OtpRequestResponse> {\n return this.mockDataProvider.mockRequestOtp(sessionId, email);\n }\n\n async verifyOtp(sessionId: string, otp: string): Promise<OtpVerifyResponse> {\n const response = await this.mockDataProvider.mockVerifyOtp(sessionId, otp);\n\n // Store tokens after successful OTP verification\n if (response.success && response.data) {\n const expiresAt = new Date(Date.now() + response.data.expires_in * 1000).toISOString();\n this.setTokens(\n response.data.access_token,\n response.data.refresh_token,\n expiresAt,\n response.data.user_id\n );\n }\n\n return response;\n }\n\n // Direct Authentication\n async authenticateDirectly(\n sessionId: string,\n userId: string\n ): Promise<SessionAuthenticateResponse> {\n // Ensure session is active before authenticating\n if (this.currentSessionState !== SessionState.ACTIVE) {\n throw new SessionError('Session must be in ACTIVE state to authenticate');\n }\n\n const response = await this.mockDataProvider.mockAuthenticateDirectly(sessionId, userId);\n\n // Store tokens after successful direct authentication\n if (response.success && response.data) {\n // For direct auth, we don't get expires_in, so we'll set a default 1-hour expiry\n const expiresAt = new Date(Date.now() + 60 * 60 * 1000).toISOString(); // 1 hour\n this.setTokens(response.data.access_token, response.data.refresh_token, expiresAt, userId);\n }\n\n return response;\n }\n\n // Portal Management\n async getPortalUrl(sessionId: string): Promise<PortalUrlResponse> {\n if (this.currentSessionState !== SessionState.ACTIVE) {\n throw new SessionError('Session must be in ACTIVE state to get portal URL');\n }\n\n // If in mockApiOnly mode, return the real portal URL\n if (this.mockApiOnly) {\n return {\n success: true,\n message: 'Portal URL retrieved successfully',\n data: {\n portal_url: 'http://localhost:5173/companies',\n },\n };\n }\n\n return this.mockDataProvider.mockGetPortalUrl(sessionId);\n }\n\n async validatePortalSession(\n sessionId: string,\n signature: string\n ): Promise<SessionValidationResponse> {\n return this.mockDataProvider.mockValidatePortalSession(sessionId, signature);\n }\n\n async completePortalSession(sessionId: string): Promise<PortalUrlResponse> {\n return this.mockDataProvider.mockCompletePortalSession(sessionId);\n }\n\n // Portfolio Management\n\n async getOrders(filter?: OrdersFilter): Promise<{ data: Order[] }> {\n const accessToken = await this.getValidAccessToken();\n return this.mockDataProvider.mockGetOrders(filter);\n }\n\n async placeOrder(order: BrokerOrderParams): Promise<void> {\n const accessToken = await this.getValidAccessToken();\n await this.mockDataProvider.mockPlaceOrder(order);\n }\n\n // Enhanced Trading Methods with Session Management\n async placeBrokerOrder(\n params: Partial<BrokerOrderParams> & {\n symbol: string;\n orderQty: number;\n action: 'Buy' | 'Sell';\n orderType: 'Market' | 'Limit' | 'Stop' | 'StopLimit';\n assetType: 'equity' | 'equity_option' | 'crypto' | 'forex' | 'future' | 'future_option';\n },\n extras: BrokerExtras = {},\n connection_id?: string\n ): Promise<OrderResponse> {\n const accessToken = await this.getValidAccessToken();\n\n // Debug logging\n this.logger.debug('placeBrokerOrder parameters', this.buildLoggerExtra('placeBrokerOrder', {\n has_params_broker: Boolean(params.broker),\n has_context_broker: Boolean(this.tradingContext.broker),\n has_params_account: Boolean(params.accountNumber),\n has_context_account: Boolean(this.tradingContext.accountNumber),\n }));\n\n const fullParams: BrokerOrderParams = {\n broker:\n ((params.broker || this.tradingContext.broker) as\n | 'robinhood'\n | 'tasty_trade'\n | 'ninja_trader') ||\n (() => {\n throw new Error('Broker not set. Call setBroker() or pass broker parameter.');\n })(),\n accountNumber:\n params.accountNumber ||\n this.tradingContext.accountNumber ||\n (() => {\n throw new Error('Account not set. Call setAccount() or pass accountNumber parameter.');\n })(),\n symbol: params.symbol,\n orderQty: params.orderQty,\n action: params.action,\n orderType: params.orderType,\n assetType: params.assetType,\n timeInForce: params.timeInForce || 'day',\n price: params.price,\n stopPrice: params.stopPrice,\n order_id: params.order_id,\n };\n\n this.logger.debug('placeBrokerOrder normalized parameters', this.buildLoggerExtra('placeBrokerOrder', {\n broker: fullParams.broker,\n account_number_present: Boolean(fullParams.accountNumber),\n symbol: fullParams.symbol,\n order_type: fullParams.orderType,\n asset_type: fullParams.assetType,\n }));\n return this.mockDataProvider.mockPlaceOrder(fullParams);\n }\n\n async cancelBrokerOrder(\n orderId: string,\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n extras: any = {},\n connection_id?: string\n ): Promise<OrderResponse> {\n // Mock successful cancellation\n return {\n success: true,\n response_data: {\n orderId: orderId,\n status: 'cancelled',\n broker: broker || this.tradingContext.broker,\n },\n message: 'Order cancelled successfully',\n status_code: 200,\n };\n }\n\n async modifyBrokerOrder(\n orderId: string,\n params: Partial<BrokerOrderParams>,\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n extras: any = {},\n connection_id?: string\n ): Promise<OrderResponse> {\n // Mock successful modification\n return {\n success: true,\n response_data: {\n orderId: orderId,\n status: 'modified',\n broker: broker || this.tradingContext.broker,\n ...params,\n },\n message: 'Order modified successfully',\n status_code: 200,\n };\n }\n\n // Context management methods\n setBroker(broker: 'robinhood' | 'tasty_trade' | 'ninja_trader'): void {\n this.tradingContext.broker = broker;\n // Clear account when broker changes\n this.tradingContext.accountNumber = undefined;\n this.tradingContext.accountId = undefined;\n }\n\n setAccount(accountNumber: string, accountId?: string): void {\n this.logger.debug('setAccount invoked', this.buildLoggerExtra('setAccount', {\n account_number: accountNumber,\n account_id_present: Boolean(accountId),\n had_existing_account: Boolean(this.tradingContext.accountNumber),\n }));\n this.tradingContext.accountNumber = accountNumber;\n this.tradingContext.accountId = accountId;\n this.logger.debug('setAccount updated context', this.buildLoggerExtra('setAccount', {\n broker: this.tradingContext.broker,\n account_number_present: Boolean(this.tradingContext.accountNumber),\n account_id_present: Boolean(this.tradingContext.accountId),\n }));\n }\n\n\n // Stock convenience methods\n async placeStockMarketOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n broker,\n accountNumber,\n symbol,\n orderQty,\n action,\n orderType: 'Market',\n assetType: 'equity',\n timeInForce: 'day',\n },\n extras\n );\n }\n\n async placeStockLimitOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n price: number,\n timeInForce: 'day' | 'gtc' = 'gtc',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n broker,\n accountNumber,\n symbol,\n orderQty,\n action,\n orderType: 'Limit',\n assetType: 'equity',\n timeInForce,\n price,\n },\n extras\n );\n }\n\n async placeStockStopOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n stopPrice: number,\n timeInForce: 'day' | 'gtc' = 'day',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n broker,\n accountNumber,\n symbol,\n orderQty,\n action,\n orderType: 'Stop',\n assetType: 'equity',\n timeInForce,\n stopPrice,\n },\n extras\n );\n }\n\n // Crypto convenience methods\n async placeCryptoMarketOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n options: CryptoOrderOptions = {},\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n const orderParams: Partial<BrokerOrderParams> & {\n symbol: string;\n orderQty: number;\n action: 'Buy' | 'Sell';\n orderType: 'Market';\n assetType: 'crypto';\n } = {\n broker,\n accountNumber,\n symbol,\n orderQty: options.quantity || orderQty,\n action,\n orderType: 'Market',\n assetType: 'crypto',\n timeInForce: 'gtc', // Crypto typically uses GTC\n };\n\n return this.placeBrokerOrder(orderParams, extras);\n }\n\n async placeCryptoLimitOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n price: number,\n timeInForce: 'day' | 'gtc' = 'gtc',\n options: CryptoOrderOptions = {},\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n const orderParams: Partial<BrokerOrderParams> & {\n symbol: string;\n orderQty: number;\n action: 'Buy' | 'Sell';\n orderType: 'Limit';\n assetType: 'crypto';\n } = {\n broker,\n accountNumber,\n symbol,\n orderQty: options.quantity || orderQty,\n action,\n orderType: 'Limit',\n assetType: 'crypto',\n timeInForce,\n price,\n };\n\n return this.placeBrokerOrder(orderParams, extras);\n }\n\n // Options convenience methods\n async placeOptionsMarketOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n options: OptionsOrderOptions,\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n const orderParams: Partial<BrokerOrderParams> & {\n symbol: string;\n orderQty: number;\n action: 'Buy' | 'Sell';\n orderType: 'Market';\n assetType: 'equity_option';\n } = {\n broker,\n accountNumber,\n symbol,\n orderQty,\n action,\n orderType: 'Market',\n assetType: 'equity_option',\n timeInForce: 'day',\n };\n\n return this.placeBrokerOrder(orderParams, extras);\n }\n\n async placeOptionsLimitOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n price: number,\n options: OptionsOrderOptions,\n timeInForce: 'day' | 'gtc' = 'gtc',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n const orderParams: Partial<BrokerOrderParams> & {\n symbol: string;\n orderQty: number;\n action: 'Buy' | 'Sell';\n orderType: 'Limit';\n assetType: 'equity_option';\n } = {\n broker,\n accountNumber,\n symbol,\n orderQty,\n action,\n orderType: 'Limit',\n assetType: 'equity_option',\n timeInForce,\n price,\n };\n\n return this.placeBrokerOrder(orderParams, extras);\n }\n\n // Futures convenience methods\n async placeFuturesMarketOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n broker,\n accountNumber,\n symbol,\n orderQty,\n action,\n orderType: 'Market',\n assetType: 'future',\n timeInForce: 'day',\n },\n extras\n );\n }\n\n async placeFuturesLimitOrder(\n symbol: string,\n orderQty: number,\n action: 'Buy' | 'Sell',\n price: number,\n timeInForce: 'day' | 'gtc' = 'gtc',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string,\n extras: BrokerExtras = {}\n ): Promise<OrderResponse> {\n return this.placeBrokerOrder(\n {\n broker,\n accountNumber,\n symbol,\n orderQty,\n action,\n orderType: 'Limit',\n assetType: 'future',\n timeInForce,\n price,\n },\n extras\n );\n }\n\n async getUserToken(sessionId: string): Promise<UserToken> {\n const token = this.mockDataProvider.getUserToken(sessionId);\n if (!token) {\n throw new AuthenticationError('User token not found');\n }\n return token;\n }\n\n getCurrentSessionState(): SessionState | null {\n return this.currentSessionState;\n }\n\n // Broker Data Management\n async getBrokerList(): Promise<{\n _id: string;\n response_data: BrokerInfo[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n // Public in mock mode as well - no auth required\n return this.mockDataProvider.mockGetBrokerList();\n }\n\n async getBrokerAccounts(options?: BrokerDataOptions): Promise<{\n _id: string;\n response_data: BrokerAccount[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n return this.mockDataProvider.mockGetBrokerAccounts();\n }\n\n async getBrokerOrders(options?: BrokerDataOptions): Promise<{\n _id: string;\n response_data: BrokerOrder[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n // Return empty orders for now - keeping original interface\n return {\n _id: uuidv4(),\n response_data: [],\n message: 'Broker orders retrieved successfully',\n status_code: 200,\n warnings: null,\n errors: null,\n };\n }\n\n async getBrokerPositions(options?: BrokerDataOptions): Promise<{\n _id: string;\n response_data: BrokerPosition[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n // Return empty positions for now - keeping original interface\n return {\n _id: uuidv4(),\n response_data: [],\n message: 'Broker positions retrieved successfully',\n status_code: 200,\n warnings: null,\n errors: null,\n };\n }\n\n // New broker data methods with filtering support\n async getBrokerOrdersWithFilter(filter?: OrdersFilter): Promise<{ data: BrokerDataOrder[] }> {\n return this.mockDataProvider.mockGetBrokerOrders(filter);\n }\n\n async getBrokerPositionsWithFilter(\n filter?: PositionsFilter\n ): Promise<{ data: BrokerDataPosition[] }> {\n return this.mockDataProvider.mockGetBrokerPositions(filter);\n }\n\n async getBrokerBalancesWithFilter(filter?: BalancesFilter): Promise<{ data: BrokerBalance[] }> {\n return this.mockDataProvider.mockGetBrokerBalances(filter);\n }\n\n async getBrokerDataAccountsWithFilter(\n filter?: AccountsFilter\n ): Promise<{ data: BrokerAccount[] }> {\n return this.mockDataProvider.mockGetBrokerDataAccounts(filter);\n }\n\n // Page-based pagination methods\n async getBrokerOrdersPage(\n page: number = 1,\n perPage: number = 100,\n filters?: OrdersFilter\n ): Promise<PaginatedResult<BrokerDataOrder[]>> {\n const mockOrders = await this.mockDataProvider.mockGetBrokerOrders(filters);\n const orders = mockOrders.data;\n\n // Simulate pagination\n const startIndex = (page - 1) * perPage;\n const endIndex = startIndex + perPage;\n const paginatedOrders = orders.slice(startIndex, endIndex);\n\n const hasMore = endIndex < orders.length;\n const nextOffset = hasMore ? endIndex : startIndex;\n\n // Create navigation callback for mock pagination\n const navigationCallback = async (\n newOffset: number,\n newLimit: number\n ): Promise<PaginatedResult<BrokerDataOrder[]>> => {\n const newStartIndex = newOffset;\n const newEndIndex = newStartIndex + newLimit;\n const newPaginatedOrders = orders.slice(newStartIndex, newEndIndex);\n const newHasMore = newEndIndex < orders.length;\n const newNextOffset = newHasMore ? newEndIndex : newStartIndex;\n\n return new PaginatedResult(\n newPaginatedOrders,\n {\n has_more: newHasMore,\n next_offset: newNextOffset,\n current_offset: newStartIndex,\n limit: newLimit,\n },\n navigationCallback\n );\n };\n\n return new PaginatedResult(\n paginatedOrders,\n {\n has_more: hasMore,\n next_offset: nextOffset,\n current_offset: startIndex,\n limit: perPage,\n },\n navigationCallback\n );\n }\n\n async getBrokerAccountsPage(\n page: number = 1,\n perPage: number = 100,\n filters?: AccountsFilter\n ): Promise<PaginatedResult<BrokerAccount[]>> {\n const mockAccounts = await this.mockDataProvider.mockGetBrokerDataAccounts(filters);\n const accounts = mockAccounts.data;\n\n // Simulate pagination\n const startIndex = (page - 1) * perPage;\n const endIndex = startIndex + perPage;\n const paginatedAccounts = accounts.slice(startIndex, endIndex);\n\n const hasMore = endIndex < accounts.length;\n const nextOffset = hasMore ? endIndex : startIndex;\n\n // Create navigation callback for mock pagination\n const navigationCallback = async (\n newOffset: number,\n newLimit: number\n ): Promise<PaginatedResult<BrokerAccount[]>> => {\n const newStartIndex = newOffset;\n const newEndIndex = newStartIndex + newLimit;\n const newPaginatedAccounts = accounts.slice(newStartIndex, newEndIndex);\n const newHasMore = newEndIndex < accounts.length;\n const newNextOffset = newHasMore ? newEndIndex : newStartIndex;\n\n return new PaginatedResult(\n newPaginatedAccounts,\n {\n has_more: newHasMore,\n next_offset: newNextOffset,\n current_offset: newStartIndex,\n limit: newLimit,\n },\n navigationCallback\n );\n };\n\n return new PaginatedResult(\n paginatedAccounts,\n {\n has_more: hasMore,\n next_offset: nextOffset,\n current_offset: startIndex,\n limit: perPage,\n },\n navigationCallback\n );\n }\n\n async getBrokerPositionsPage(\n page: number = 1,\n perPage: number = 100,\n filters?: PositionsFilter\n ): Promise<PaginatedResult<BrokerDataPosition[]>> {\n const mockPositions = await this.mockDataProvider.mockGetBrokerPositions(filters);\n const positions = mockPositions.data;\n\n // Simulate pagination\n const startIndex = (page - 1) * perPage;\n const endIndex = startIndex + perPage;\n const paginatedPositions = positions.slice(startIndex, endIndex);\n\n const hasMore = endIndex < positions.length;\n const nextOffset = hasMore ? endIndex : startIndex;\n\n // Create navigation callback for mock pagination\n const navigationCallback = async (\n newOffset: number,\n newLimit: number\n ): Promise<PaginatedResult<BrokerDataPosition[]>> => {\n const newStartIndex = newOffset;\n const newEndIndex = newStartIndex + newLimit;\n const newPaginatedPositions = positions.slice(newStartIndex, newEndIndex);\n const newHasMore = newEndIndex < positions.length;\n const newNextOffset = newHasMore ? newEndIndex : newStartIndex;\n\n return new PaginatedResult(\n newPaginatedPositions,\n {\n has_more: newHasMore,\n next_offset: newNextOffset,\n current_offset: newStartIndex,\n limit: newLimit,\n },\n navigationCallback\n );\n };\n\n return new PaginatedResult(\n paginatedPositions,\n {\n has_more: hasMore,\n next_offset: nextOffset,\n current_offset: startIndex,\n limit: perPage,\n },\n navigationCallback\n );\n }\n\n async getBrokerBalancesPage(\n page: number = 1,\n perPage: number = 100,\n filters?: BalancesFilter\n ): Promise<PaginatedResult<BrokerBalance[]>> {\n const mockBalances = await this.mockDataProvider.mockGetBrokerBalances(filters);\n const balances = mockBalances.data;\n\n // Simulate pagination\n const startIndex = (page - 1) * perPage;\n const endIndex = startIndex + perPage;\n const paginatedBalances = balances.slice(startIndex, endIndex);\n\n const hasMore = endIndex < balances.length;\n const nextOffset = hasMore ? endIndex : startIndex;\n\n // Create navigation callback for mock pagination\n const navigationCallback = async (\n newOffset: number,\n newLimit: number\n ): Promise<PaginatedResult<BrokerBalance[]>> => {\n const newStartIndex = newOffset;\n const newEndIndex = newStartIndex + newLimit;\n const newPaginatedBalances = balances.slice(newStartIndex, newEndIndex);\n const newHasMore = newEndIndex < balances.length;\n const newNextOffset = newHasMore ? newEndIndex : newStartIndex;\n\n return new PaginatedResult(\n newPaginatedBalances,\n {\n has_more: newHasMore,\n next_offset: newNextOffset,\n current_offset: newStartIndex,\n limit: newLimit,\n },\n navigationCallback\n );\n };\n\n return new PaginatedResult(\n paginatedBalances,\n {\n has_more: hasMore,\n next_offset: nextOffset,\n current_offset: startIndex,\n limit: perPage,\n },\n navigationCallback\n );\n }\n\n async getBrokerConnections(): Promise<{\n _id: string;\n response_data: BrokerConnection[];\n message: string;\n status_code: number;\n warnings: null;\n errors: null;\n }> {\n const accessToken = await this.getValidAccessToken();\n return this.mockDataProvider.mockGetBrokerConnections();\n }\n\n /**\n * Mock disconnect company method\n * @param connectionId - The connection ID to disconnect\n * @returns Promise with mock disconnect response\n */\n async disconnectCompany(connectionId: string): Promise<DisconnectCompanyResponse> {\n const accessToken = await this.getValidAccessToken();\n return this.mockDataProvider.mockDisconnectCompany(connectionId);\n }\n\n // Utility methods for mock system\n getMockDataProvider(): MockDataProvider {\n return this.mockDataProvider;\n }\n\n clearMockData(): void {\n this.mockDataProvider.clearData();\n }\n\n /**\n * Check if this is a mock client\n * @returns true if this is a mock client\n */\n isMockClient(): boolean {\n return true;\n }\n}\n","/**\n * Utility functions for mock system environment detection\n */\n\n// Type declarations for Node.js environment\n// Note: process is already declared globally in Node.js types\n\n/**\n * Check if mocks should be used based on environment variables\n * Supports both browser and Node.js environments\n */\nexport function shouldUseMocks(): boolean {\n // Check Node.js environment\n if (typeof process !== 'undefined' && process?.env) {\n return (\n process.env.FINATIC_USE_MOCKS === 'true' ||\n process.env.NEXT_PUBLIC_FINATIC_USE_MOCKS === 'true'\n );\n }\n\n // Check browser environment\n if (typeof window !== 'undefined') {\n // Check global variable\n if ((window as any).FINATIC_USE_MOCKS === 'true') {\n return true;\n }\n\n // Check Next.js public environment variables\n if ((window as any).NEXT_PUBLIC_FINATIC_USE_MOCKS === 'true') {\n return true;\n }\n\n // Check localStorage\n try {\n return localStorage.getItem('FINATIC_USE_MOCKS') === 'true';\n } catch (error) {\n // localStorage might not be available\n return false;\n }\n }\n\n return false;\n}\n\n/**\n * Set mock mode in the current environment\n */\nexport function setMockMode(enabled: boolean): void {\n // Set in Node.js environment\n if (typeof process !== 'undefined' && process?.env) {\n process.env.FINATIC_USE_MOCKS = enabled ? 'true' : 'false';\n }\n\n // Set in browser environment\n if (typeof window !== 'undefined') {\n (window as any).FINATIC_USE_MOCKS = enabled ? 'true' : 'false';\n\n try {\n if (enabled) {\n localStorage.setItem('FINATIC_USE_MOCKS', 'true');\n } else {\n localStorage.removeItem('FINATIC_USE_MOCKS');\n }\n } catch (error) {\n // localStorage might not be available\n }\n }\n}\n\n/**\n * Check if only API should be mocked (but portal should use real URL)\n */\nexport function shouldMockApiOnly(): boolean {\n // Check Node.js environment\n if (typeof process !== 'undefined' && process?.env) {\n return (\n process.env.FINATIC_MOCK_API_ONLY === 'true' ||\n process.env.NEXT_PUBLIC_FINATIC_MOCK_API_ONLY === 'true'\n );\n }\n\n // Check browser environment\n if (typeof window !== 'undefined') {\n // Check global variable\n if ((window as any).FINATIC_MOCK_API_ONLY === 'true') {\n return true;\n }\n\n // Check Next.js public environment variables\n if ((window as any).NEXT_PUBLIC_FINATIC_MOCK_API_ONLY === 'true') {\n return true;\n }\n\n // Check localStorage\n try {\n return localStorage.getItem('FINATIC_MOCK_API_ONLY') === 'true';\n } catch (error) {\n // localStorage might not be available\n return false;\n }\n }\n\n return false;\n}\n\n/**\n * Get mock configuration from environment\n */\nexport function getMockConfig(): { enabled: boolean; delay?: number; mockApiOnly?: boolean } {\n const enabled = shouldUseMocks();\n const mockApiOnly = shouldMockApiOnly();\n\n let delay: number | undefined;\n\n // Check for custom delay in Node.js\n if (typeof process !== 'undefined' && process?.env?.FINATIC_MOCK_DELAY) {\n delay = parseInt(process.env.FINATIC_MOCK_DELAY, 10);\n }\n\n // Check for custom delay in browser\n if (typeof window !== 'undefined') {\n try {\n const storedDelay = localStorage.getItem('FINATIC_MOCK_DELAY');\n if (storedDelay) {\n delay = parseInt(storedDelay, 10);\n }\n } catch (error) {\n // localStorage might not be available\n }\n }\n\n return { enabled, delay, mockApiOnly };\n}\n","import { ApiClient } from '../core/client/ApiClient';\nimport { MockApiClient } from './MockApiClient';\nimport { MockConfig } from './MockDataProvider';\nimport { shouldUseMocks, shouldMockApiOnly, getMockConfig } from './utils';\nimport { DeviceInfo } from '../types';\n\n/**\n * Factory class for creating API clients (real or mock)\n */\nexport class MockFactory {\n /**\n * Create an API client based on environment configuration\n * @param baseUrl - The base URL for the API\n * @param deviceInfo - Optional device information\n * @param mockConfig - Optional mock configuration (only used if mocks are enabled)\n * @returns ApiClient or MockApiClient instance\n */\n static createApiClient(\n baseUrl: string,\n deviceInfo?: DeviceInfo,\n mockConfig?: MockConfig\n ): ApiClient | MockApiClient {\n const useMocks = shouldUseMocks();\n const mockApiOnly = shouldMockApiOnly();\n\n if (useMocks || mockApiOnly) {\n // Merge environment config with provided config\n const envConfig = getMockConfig();\n const finalConfig: MockConfig = {\n delay: mockConfig?.delay || envConfig.delay,\n scenario: mockConfig?.scenario || 'success',\n customData: mockConfig?.customData || {},\n mockApiOnly: mockApiOnly, // Pass this flag to the mock client\n };\n\n return new MockApiClient(baseUrl, deviceInfo, finalConfig);\n } else {\n return new ApiClient(baseUrl, deviceInfo);\n }\n }\n\n /**\n * Force create a mock API client regardless of environment settings\n * @param baseUrl - The base URL for the API\n * @param deviceInfo - Optional device information\n * @param mockConfig - Optional mock configuration\n * @returns MockApiClient instance\n */\n static createMockApiClient(\n baseUrl: string,\n deviceInfo?: DeviceInfo,\n mockConfig?: MockConfig\n ): MockApiClient {\n return new MockApiClient(baseUrl, deviceInfo, mockConfig);\n }\n\n /**\n * Force create a real API client regardless of environment settings\n * @param baseUrl - The base URL for the API\n * @param deviceInfo - Optional device information\n * @returns ApiClient instance\n */\n static createRealApiClient(baseUrl: string, deviceInfo?: DeviceInfo): ApiClient {\n return new ApiClient(baseUrl, deviceInfo);\n }\n\n /**\n * Check if mocks are currently enabled\n * @returns boolean indicating if mocks are enabled\n */\n static isMockMode(): boolean {\n return shouldUseMocks();\n }\n\n /**\n * Get current mock configuration\n * @returns Mock configuration object\n */\n static getMockConfig(): { enabled: boolean; delay?: number } {\n return getMockConfig();\n }\n}\n\n/**\n * Convenience function to create an API client\n * @param baseUrl - The base URL for the API\n * @param deviceInfo - Optional device information\n * @param mockConfig - Optional mock configuration\n * @returns ApiClient or MockApiClient instance\n */\nexport function createMockApiClient(\n baseUrl: string,\n deviceInfo?: DeviceInfo,\n mockConfig?: MockConfig\n): ApiClient | MockApiClient {\n return MockFactory.createApiClient(baseUrl, deviceInfo, mockConfig);\n}\n","import { PortalThemeConfig } from '../types/portal';\n\n// Dark theme (default Finatic theme)\nexport const darkTheme: PortalThemeConfig = {\n mode: 'dark',\n colors: {\n background: {\n primary: '#000000',\n secondary: '#1a1a1a',\n tertiary: '#2a2a2a',\n accent: 'rgba(0, 255, 255, 0.1)',\n glass: 'rgba(255, 255, 255, 0.05)',\n },\n status: {\n connected: '#00FFFF',\n disconnected: '#EF4444',\n warning: '#F59E0B',\n pending: '#8B5CF6',\n error: '#EF4444',\n success: '#00FFFF',\n },\n text: {\n primary: '#FFFFFF',\n secondary: '#CBD5E1',\n muted: '#94A3B8',\n inverse: '#000000',\n },\n border: {\n primary: 'rgba(0, 255, 255, 0.2)',\n secondary: 'rgba(255, 255, 255, 0.1)',\n hover: 'rgba(0, 255, 255, 0.4)',\n focus: 'rgba(0, 255, 255, 0.6)',\n accent: '#00FFFF',\n },\n input: {\n background: '#1a1a1a',\n border: 'rgba(0, 255, 255, 0.2)',\n borderFocus: '#00FFFF',\n text: '#FFFFFF',\n placeholder: '#94A3B8',\n },\n button: {\n primary: {\n background: '#00FFFF',\n text: '#000000',\n hover: '#00E6E6',\n active: '#00CCCC',\n },\n secondary: {\n background: 'transparent',\n text: '#00FFFF',\n border: '#00FFFF',\n hover: 'rgba(0, 255, 255, 0.1)',\n active: 'rgba(0, 255, 255, 0.2)',\n },\n },\n },\n typography: {\n fontFamily: {\n primary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n secondary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n },\n fontSize: {\n xs: '0.75rem',\n sm: '0.875rem',\n base: '1rem',\n lg: '1.125rem',\n xl: '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n },\n fontWeight: {\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n },\n lineHeight: {\n tight: '1.25',\n normal: '1.5',\n relaxed: '1.75',\n },\n },\n spacing: {\n xs: '0.25rem',\n sm: '0.5rem',\n md: '1rem',\n lg: '1.5rem',\n xl: '2rem',\n '2xl': '3rem',\n '3xl': '4rem',\n },\n layout: {\n containerMaxWidth: '1440px',\n gridGap: '1rem',\n cardPadding: '1.5rem',\n borderRadius: {\n sm: '0.25rem',\n md: '0.5rem',\n lg: '0.75rem',\n xl: '1rem',\n '2xl': '1.5rem',\n full: '9999px',\n },\n },\n components: {\n brokerCard: {\n width: '100%',\n height: '180px',\n logoSize: '64px',\n padding: '1.5rem',\n },\n statusIndicator: {\n size: '22px',\n glowIntensity: 0.9,\n },\n modal: {\n background: 'rgba(0, 0, 0, 0.95)',\n backdrop: 'rgba(0, 0, 0, 0.8)',\n },\n brokerCardModern: {\n width: '150px',\n height: '150px',\n padding: '16px',\n logoSize: '48px',\n statusSize: '22px',\n },\n connectButton: {\n width: '120px',\n height: '120px',\n },\n themeSwitcher: {\n indicatorSize: '24px',\n },\n },\n effects: {\n glassmorphism: {\n enabled: true,\n blur: '12px',\n opacity: 0.15,\n border: 'rgba(0, 255, 255, 0.3)',\n },\n animations: {\n enabled: true,\n duration: {\n fast: '150ms',\n normal: '300ms',\n slow: '500ms',\n },\n easing: {\n default: 'cubic-bezier(0.4, 0, 0.2, 1)',\n smooth: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',\n bounce: 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',\n },\n },\n shadows: {\n sm: '0 1px 2px rgba(0, 0, 0, 0.5)',\n md: '0 4px 6px rgba(0, 0, 0, 0.6)',\n lg: '0 10px 15px rgba(0, 0, 0, 0.7)',\n xl: '0 20px 25px rgba(0, 0, 0, 0.8)',\n card: '0px 4px 12px rgba(0, 0, 0, 0.6), 0 0 20px rgba(0, 255, 255, 0.2)',\n cardHover: '0px 4px 24px rgba(0, 255, 255, 0.3), 0 0 30px rgba(0, 255, 255, 0.25)',\n glow: '0 0 20px rgba(0, 255, 255, 0.8)',\n focus: '0 0 0 2px #00FFFF, 0 0 8px 2px rgba(0, 255, 255, 0.8)',\n },\n },\n branding: {\n primaryColor: '#00FFFF',\n },\n glow: {\n primary: 'rgba(0, 255, 255, 0.4)',\n secondary: 'rgba(0, 255, 255, 0.6)',\n card: 'rgba(0, 255, 255, 0.2)',\n cardHover: 'rgba(0, 255, 255, 0.3)',\n button: 'rgba(0, 255, 255, 0.6)',\n focus: 'rgba(0, 255, 255, 0.8)',\n scrollbar: 'rgba(0, 255, 255, 0.4)',\n },\n gradients: {\n start: 'rgba(0, 255, 255, 0.08)',\n end: 'rgba(0, 255, 255, 0.03)',\n hoverStart: 'rgba(0, 255, 255, 0.15)',\n hoverEnd: 'rgba(0, 255, 255, 0.08)',\n },\n};\n\n// Light theme with cyan accents\nexport const lightTheme: PortalThemeConfig = {\n mode: 'light',\n colors: {\n background: {\n primary: '#FFFFFF',\n secondary: '#F8FAFC',\n tertiary: '#F1F5F9',\n accent: 'rgba(0, 255, 255, 0.1)',\n glass: 'rgba(0, 0, 0, 0.05)',\n },\n status: {\n connected: '#00FFFF',\n disconnected: '#EF4444',\n warning: '#F59E0B',\n pending: '#8B5CF6',\n error: '#EF4444',\n success: '#00FFFF',\n },\n text: {\n primary: '#1E293B',\n secondary: '#64748B',\n muted: '#94A3B8',\n inverse: '#FFFFFF',\n },\n border: {\n primary: 'rgba(0, 255, 255, 0.2)',\n secondary: 'rgba(0, 0, 0, 0.1)',\n hover: 'rgba(0, 255, 255, 0.4)',\n focus: 'rgba(0, 255, 255, 0.6)',\n accent: '#00FFFF',\n },\n input: {\n background: '#FFFFFF',\n border: 'rgba(0, 255, 255, 0.2)',\n borderFocus: '#00FFFF',\n text: '#1E293B',\n placeholder: '#94A3B8',\n },\n button: {\n primary: {\n background: '#00FFFF',\n text: '#000000',\n hover: '#00E6E6',\n active: '#00CCCC',\n },\n secondary: {\n background: 'transparent',\n text: '#00FFFF',\n border: '#00FFFF',\n hover: 'rgba(0, 255, 255, 0.1)',\n active: 'rgba(0, 255, 255, 0.2)',\n },\n },\n },\n typography: {\n fontFamily: {\n primary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n secondary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n },\n fontSize: {\n xs: '0.75rem',\n sm: '0.875rem',\n base: '1rem',\n lg: '1.125rem',\n xl: '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n },\n fontWeight: {\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n },\n lineHeight: {\n tight: '1.25',\n normal: '1.5',\n relaxed: '1.75',\n },\n },\n spacing: {\n xs: '0.25rem',\n sm: '0.5rem',\n md: '1rem',\n lg: '1.5rem',\n xl: '2rem',\n '2xl': '3rem',\n '3xl': '4rem',\n },\n layout: {\n containerMaxWidth: '1440px',\n gridGap: '1rem',\n cardPadding: '1.5rem',\n borderRadius: {\n sm: '0.25rem',\n md: '0.5rem',\n lg: '0.75rem',\n xl: '1rem',\n '2xl': '1.5rem',\n full: '9999px',\n },\n },\n components: {\n brokerCard: {\n width: '100%',\n height: '180px',\n logoSize: '64px',\n padding: '1.5rem',\n },\n statusIndicator: {\n size: '22px',\n glowIntensity: 0.9,\n },\n modal: {\n background: 'rgba(255, 255, 255, 0.95)',\n backdrop: 'rgba(0, 0, 0, 0.5)',\n },\n },\n effects: {\n glassmorphism: {\n enabled: true,\n blur: '12px',\n opacity: 0.15,\n border: 'rgba(0, 255, 255, 0.3)',\n },\n animations: {\n enabled: true,\n duration: {\n fast: '150ms',\n normal: '300ms',\n slow: '500ms',\n },\n easing: {\n default: 'cubic-bezier(0.4, 0, 0.2, 1)',\n smooth: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',\n bounce: 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',\n },\n },\n shadows: {\n sm: '0 1px 2px rgba(0, 0, 0, 0.1)',\n md: '0 4px 6px rgba(0, 0, 0, 0.1)',\n lg: '0 10px 15px rgba(0, 0, 0, 0.1)',\n xl: '0 20px 25px rgba(0, 0, 0, 0.1)',\n card: '0px 4px 12px rgba(0, 0, 0, 0.1), 0 0 20px rgba(0, 255, 255, 0.2)',\n cardHover: '0px 4px 24px rgba(0, 255, 255, 0.3), 0 0 30px rgba(0, 255, 255, 0.25)',\n glow: '0 0 20px rgba(0, 255, 255, 0.8)',\n focus: '0 0 0 2px #00FFFF, 0 0 8px 2px rgba(0, 255, 255, 0.8)',\n },\n },\n branding: {\n primaryColor: '#00FFFF',\n },\n glow: {\n primary: 'rgba(0, 255, 255, 0.4)',\n secondary: 'rgba(0, 255, 255, 0.6)',\n card: 'rgba(0, 255, 255, 0.2)',\n cardHover: 'rgba(0, 255, 255, 0.3)',\n button: 'rgba(0, 255, 255, 0.6)',\n focus: 'rgba(0, 255, 255, 0.8)',\n scrollbar: 'rgba(0, 255, 255, 0.4)',\n },\n gradients: {\n start: 'rgba(0, 255, 255, 0.08)',\n end: 'rgba(0, 255, 255, 0.03)',\n hoverStart: 'rgba(0, 255, 255, 0.15)',\n hoverEnd: 'rgba(0, 255, 255, 0.08)',\n },\n};\n\n// Corporate blue theme\nexport const corporateBlueTheme: PortalThemeConfig = {\n mode: 'dark',\n colors: {\n background: {\n primary: '#1E293B',\n secondary: '#334155',\n tertiary: '#475569',\n accent: 'rgba(59, 130, 246, 0.1)',\n glass: 'rgba(255, 255, 255, 0.05)',\n },\n status: {\n connected: '#3B82F6',\n disconnected: '#EF4444',\n warning: '#F59E0B',\n pending: '#8B5CF6',\n error: '#EF4444',\n success: '#10B981',\n },\n text: {\n primary: '#F8FAFC',\n secondary: '#CBD5E1',\n muted: '#94A3B8',\n inverse: '#1E293B',\n },\n border: {\n primary: 'rgba(59, 130, 246, 0.2)',\n secondary: 'rgba(255, 255, 255, 0.1)',\n hover: 'rgba(59, 130, 246, 0.4)',\n focus: 'rgba(59, 130, 246, 0.6)',\n accent: '#3B82F6',\n },\n input: {\n background: '#334155',\n border: 'rgba(59, 130, 246, 0.2)',\n borderFocus: '#3B82F6',\n text: '#F8FAFC',\n placeholder: '#94A3B8',\n },\n button: {\n primary: {\n background: '#3B82F6',\n text: '#FFFFFF',\n hover: '#2563EB',\n active: '#1D4ED8',\n },\n secondary: {\n background: 'transparent',\n text: '#3B82F6',\n border: '#3B82F6',\n hover: 'rgba(59, 130, 246, 0.1)',\n active: 'rgba(59, 130, 246, 0.2)',\n },\n },\n },\n typography: {\n fontFamily: {\n primary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n secondary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n },\n fontSize: {\n xs: '0.75rem',\n sm: '0.875rem',\n base: '1rem',\n lg: '1.125rem',\n xl: '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n },\n fontWeight: {\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n },\n lineHeight: {\n tight: '1.25',\n normal: '1.5',\n relaxed: '1.75',\n },\n },\n spacing: {\n xs: '0.25rem',\n sm: '0.5rem',\n md: '1rem',\n lg: '1.5rem',\n xl: '2rem',\n '2xl': '3rem',\n '3xl': '4rem',\n },\n layout: {\n containerMaxWidth: '1440px',\n gridGap: '1rem',\n cardPadding: '1.5rem',\n borderRadius: {\n sm: '0.25rem',\n md: '0.5rem',\n lg: '0.75rem',\n xl: '1rem',\n '2xl': '1.5rem',\n full: '9999px',\n },\n },\n components: {\n brokerCard: {\n width: '100%',\n height: '180px',\n logoSize: '64px',\n padding: '1.5rem',\n },\n statusIndicator: {\n size: '22px',\n glowIntensity: 0.9,\n },\n modal: {\n background: 'rgba(0, 0, 0, 0.95)',\n backdrop: 'rgba(0, 0, 0, 0.8)',\n },\n brokerCardModern: {\n width: '150px',\n height: '150px',\n padding: '16px',\n logoSize: '48px',\n statusSize: '22px',\n },\n connectButton: {\n width: '120px',\n height: '120px',\n },\n themeSwitcher: {\n indicatorSize: '24px',\n },\n },\n effects: {\n glassmorphism: {\n enabled: true,\n blur: '12px',\n opacity: 0.15,\n border: 'rgba(59, 130, 246, 0.3)',\n },\n animations: {\n enabled: true,\n duration: {\n fast: '150ms',\n normal: '300ms',\n slow: '500ms',\n },\n easing: {\n default: 'cubic-bezier(0.4, 0, 0.2, 1)',\n smooth: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',\n bounce: 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',\n },\n },\n shadows: {\n sm: '0 1px 2px rgba(0, 0, 0, 0.5)',\n md: '0 4px 6px rgba(0, 0, 0, 0.6)',\n lg: '0 10px 15px rgba(0, 0, 0, 0.7)',\n xl: '0 20px 25px rgba(0, 0, 0, 0.8)',\n card: '0px 4px 12px rgba(0, 0, 0, 0.6), 0 0 20px rgba(59, 130, 246, 0.2)',\n cardHover: '0px 4px 24px rgba(59, 130, 246, 0.3), 0 0 30px rgba(59, 130, 246, 0.25)',\n glow: '0 0 20px rgba(59, 130, 246, 0.8)',\n focus: '0 0 0 2px #3B82F6, 0 0 8px 2px rgba(59, 130, 246, 0.8)',\n },\n },\n branding: {\n primaryColor: '#3B82F6',\n },\n glow: {\n primary: 'rgba(59, 130, 246, 0.4)',\n secondary: 'rgba(59, 130, 246, 0.6)',\n card: 'rgba(59, 130, 246, 0.2)',\n cardHover: 'rgba(59, 130, 246, 0.3)',\n button: 'rgba(59, 130, 246, 0.6)',\n focus: 'rgba(59, 130, 246, 0.8)',\n scrollbar: 'rgba(59, 130, 246, 0.4)',\n },\n gradients: {\n start: 'rgba(59, 130, 246, 0.08)',\n end: 'rgba(59, 130, 246, 0.03)',\n hoverStart: 'rgba(59, 130, 246, 0.15)',\n hoverEnd: 'rgba(59, 130, 246, 0.08)',\n },\n};\n\n// Purple theme\nexport const purpleTheme: PortalThemeConfig = {\n mode: 'dark',\n colors: {\n background: {\n primary: '#1a1a1a',\n secondary: '#2a2a2a',\n tertiary: '#3a3a3a',\n accent: 'rgba(168, 85, 247, 0.1)',\n glass: 'rgba(255, 255, 255, 0.05)',\n },\n status: {\n connected: '#A855F7',\n disconnected: '#EF4444',\n warning: '#F59E0B',\n pending: '#8B5CF6',\n error: '#EF4444',\n success: '#10B981',\n },\n text: {\n primary: '#F8FAFC',\n secondary: '#CBD5E1',\n muted: '#94A3B8',\n inverse: '#1a1a1a',\n },\n border: {\n primary: 'rgba(168, 85, 247, 0.2)',\n secondary: 'rgba(255, 255, 255, 0.1)',\n hover: 'rgba(168, 85, 247, 0.4)',\n focus: 'rgba(168, 85, 247, 0.6)',\n accent: '#A855F7',\n },\n input: {\n background: '#334155',\n border: 'rgba(168, 85, 247, 0.2)',\n borderFocus: '#A855F7',\n text: '#F8FAFC',\n placeholder: '#94A3B8',\n },\n button: {\n primary: {\n background: '#A855F7',\n text: '#FFFFFF',\n hover: '#9333EA',\n active: '#7C3AED',\n },\n secondary: {\n background: 'transparent',\n text: '#A855F7',\n border: '#A855F7',\n hover: 'rgba(168, 85, 247, 0.1)',\n active: 'rgba(168, 85, 247, 0.2)',\n },\n },\n },\n typography: {\n fontFamily: {\n primary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n secondary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n },\n fontSize: {\n xs: '0.75rem',\n sm: '0.875rem',\n base: '1rem',\n lg: '1.125rem',\n xl: '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n },\n fontWeight: {\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n },\n lineHeight: {\n tight: '1.25',\n normal: '1.5',\n relaxed: '1.75',\n },\n },\n spacing: {\n xs: '0.25rem',\n sm: '0.5rem',\n md: '1rem',\n lg: '1.5rem',\n xl: '2rem',\n '2xl': '3rem',\n '3xl': '4rem',\n },\n layout: {\n containerMaxWidth: '1440px',\n gridGap: '1rem',\n cardPadding: '1.5rem',\n borderRadius: {\n sm: '0.25rem',\n md: '0.5rem',\n lg: '0.75rem',\n xl: '1rem',\n '2xl': '1.5rem',\n full: '9999px',\n },\n },\n components: {\n brokerCard: {\n width: '100%',\n height: '180px',\n logoSize: '64px',\n padding: '1.5rem',\n },\n statusIndicator: {\n size: '22px',\n glowIntensity: 0.9,\n },\n modal: {\n background: 'rgba(0, 0, 0, 0.95)',\n backdrop: 'rgba(0, 0, 0, 0.8)',\n },\n brokerCardModern: {\n width: '150px',\n height: '150px',\n padding: '16px',\n logoSize: '48px',\n statusSize: '22px',\n },\n connectButton: {\n width: '120px',\n height: '120px',\n },\n themeSwitcher: {\n indicatorSize: '24px',\n },\n },\n effects: {\n glassmorphism: {\n enabled: true,\n blur: '12px',\n opacity: 0.15,\n border: 'rgba(168, 85, 247, 0.3)',\n },\n animations: {\n enabled: true,\n duration: {\n fast: '150ms',\n normal: '300ms',\n slow: '500ms',\n },\n easing: {\n default: 'cubic-bezier(0.4, 0, 0.2, 1)',\n smooth: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',\n bounce: 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',\n },\n },\n shadows: {\n sm: '0 1px 2px rgba(0, 0, 0, 0.5)',\n md: '0 4px 6px rgba(0, 0, 0, 0.6)',\n lg: '0 10px 15px rgba(0, 0, 0, 0.7)',\n xl: '0 20px 25px rgba(0, 0, 0, 0.8)',\n card: '0px 4px 12px rgba(0, 0, 0, 0.6), 0 0 20px rgba(168, 85, 247, 0.2)',\n cardHover: '0px 4px 24px rgba(168, 85, 247, 0.3), 0 0 30px rgba(168, 85, 247, 0.25)',\n glow: '0 0 20px rgba(168, 85, 247, 0.8)',\n focus: '0 0 0 2px #A855F7, 0 0 8px 2px rgba(168, 85, 247, 0.8)',\n },\n },\n branding: {\n primaryColor: '#A855F7',\n },\n glow: {\n primary: 'rgba(168, 85, 247, 0.4)',\n secondary: 'rgba(168, 85, 247, 0.6)',\n card: 'rgba(168, 85, 247, 0.2)',\n cardHover: 'rgba(168, 85, 247, 0.3)',\n button: 'rgba(168, 85, 247, 0.6)',\n focus: 'rgba(168, 85, 247, 0.8)',\n scrollbar: 'rgba(168, 85, 247, 0.4)',\n },\n gradients: {\n start: 'rgba(168, 85, 247, 0.08)',\n end: 'rgba(168, 85, 247, 0.03)',\n hoverStart: 'rgba(168, 85, 247, 0.15)',\n hoverEnd: 'rgba(168, 85, 247, 0.08)',\n },\n};\n\n// Green theme\nexport const greenTheme: PortalThemeConfig = {\n mode: 'dark',\n colors: {\n background: {\n primary: '#1a1a1a',\n secondary: '#2a2a2a',\n tertiary: '#3a3a3a',\n accent: 'rgba(34, 197, 94, 0.1)',\n glass: 'rgba(255, 255, 255, 0.05)',\n },\n status: {\n connected: '#22C55E',\n disconnected: '#EF4444',\n warning: '#F59E0B',\n pending: '#8B5CF6',\n error: '#EF4444',\n success: '#22C55E',\n },\n text: {\n primary: '#F8FAFC',\n secondary: '#CBD5E1',\n muted: '#94A3B8',\n inverse: '#1a1a1a',\n },\n border: {\n primary: 'rgba(34, 197, 94, 0.2)',\n secondary: 'rgba(255, 255, 255, 0.1)',\n hover: 'rgba(34, 197, 94, 0.4)',\n focus: 'rgba(34, 197, 94, 0.6)',\n accent: '#22C55E',\n },\n input: {\n background: '#334155',\n border: 'rgba(34, 197, 94, 0.2)',\n borderFocus: '#22C55E',\n text: '#F8FAFC',\n placeholder: '#94A3B8',\n },\n button: {\n primary: {\n background: '#22C55E',\n text: '#FFFFFF',\n hover: '#16A34A',\n active: '#15803D',\n },\n secondary: {\n background: 'transparent',\n text: '#22C55E',\n border: '#22C55E',\n hover: 'rgba(34, 197, 94, 0.1)',\n active: 'rgba(34, 197, 94, 0.2)',\n },\n },\n },\n typography: {\n fontFamily: {\n primary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n secondary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n },\n fontSize: {\n xs: '0.75rem',\n sm: '0.875rem',\n base: '1rem',\n lg: '1.125rem',\n xl: '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n },\n fontWeight: {\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n },\n lineHeight: {\n tight: '1.25',\n normal: '1.5',\n relaxed: '1.75',\n },\n },\n spacing: {\n xs: '0.25rem',\n sm: '0.5rem',\n md: '1rem',\n lg: '1.5rem',\n xl: '2rem',\n '2xl': '3rem',\n '3xl': '4rem',\n },\n layout: {\n containerMaxWidth: '1440px',\n gridGap: '1rem',\n cardPadding: '1.5rem',\n borderRadius: {\n sm: '0.25rem',\n md: '0.5rem',\n lg: '0.75rem',\n xl: '1rem',\n '2xl': '1.5rem',\n full: '9999px',\n },\n },\n components: {\n brokerCard: {\n width: '100%',\n height: '180px',\n logoSize: '64px',\n padding: '1.5rem',\n },\n statusIndicator: {\n size: '22px',\n glowIntensity: 0.9,\n },\n modal: {\n background: 'rgba(0, 0, 0, 0.95)',\n backdrop: 'rgba(0, 0, 0, 0.8)',\n },\n brokerCardModern: {\n width: '150px',\n height: '150px',\n padding: '16px',\n logoSize: '48px',\n statusSize: '22px',\n },\n connectButton: {\n width: '120px',\n height: '120px',\n },\n themeSwitcher: {\n indicatorSize: '24px',\n },\n },\n effects: {\n glassmorphism: {\n enabled: true,\n blur: '12px',\n opacity: 0.15,\n border: 'rgba(34, 197, 94, 0.3)',\n },\n animations: {\n enabled: true,\n duration: {\n fast: '150ms',\n normal: '300ms',\n slow: '500ms',\n },\n easing: {\n default: 'cubic-bezier(0.4, 0, 0.2, 1)',\n smooth: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',\n bounce: 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',\n },\n },\n shadows: {\n sm: '0 1px 2px rgba(0, 0, 0, 0.5)',\n md: '0 4px 6px rgba(0, 0, 0, 0.6)',\n lg: '0 10px 15px rgba(0, 0, 0, 0.7)',\n xl: '0 20px 25px rgba(0, 0, 0, 0.8)',\n card: '0px 4px 12px rgba(0, 0, 0, 0.6), 0 0 20px rgba(34, 197, 94, 0.2)',\n cardHover: '0px 4px 24px rgba(34, 197, 94, 0.3), 0 0 30px rgba(34, 197, 94, 0.25)',\n glow: '0 0 20px rgba(34, 197, 94, 0.8)',\n focus: '0 0 0 2px #22C55E, 0 0 8px 2px rgba(34, 197, 94, 0.8)',\n },\n },\n branding: {\n primaryColor: '#22C55E',\n },\n glow: {\n primary: 'rgba(34, 197, 94, 0.4)',\n secondary: 'rgba(34, 197, 94, 0.6)',\n card: 'rgba(34, 197, 94, 0.2)',\n cardHover: 'rgba(34, 197, 94, 0.3)',\n button: 'rgba(34, 197, 94, 0.6)',\n focus: 'rgba(34, 197, 94, 0.8)',\n scrollbar: 'rgba(34, 197, 94, 0.4)',\n },\n gradients: {\n start: 'rgba(34, 197, 94, 0.08)',\n end: 'rgba(34, 197, 94, 0.03)',\n hoverStart: 'rgba(34, 197, 94, 0.15)',\n hoverEnd: 'rgba(34, 197, 94, 0.08)',\n },\n};\n\n// Orange theme\nexport const orangeTheme: PortalThemeConfig = {\n mode: 'dark',\n colors: {\n background: {\n primary: '#1a1a1a',\n secondary: '#2a2a2a',\n tertiary: '#3a3a3a',\n accent: 'rgba(249, 115, 22, 0.1)',\n glass: 'rgba(255, 255, 255, 0.05)',\n },\n status: {\n connected: '#F97316',\n disconnected: '#EF4444',\n warning: '#F59E0B',\n pending: '#8B5CF6',\n error: '#EF4444',\n success: '#10B981',\n },\n text: {\n primary: '#F8FAFC',\n secondary: '#CBD5E1',\n muted: '#94A3B8',\n inverse: '#1a1a1a',\n },\n border: {\n primary: 'rgba(249, 115, 22, 0.2)',\n secondary: 'rgba(255, 255, 255, 0.1)',\n hover: 'rgba(249, 115, 22, 0.4)',\n focus: 'rgba(249, 115, 22, 0.6)',\n accent: '#F97316',\n },\n input: {\n background: '#334155',\n border: 'rgba(249, 115, 22, 0.2)',\n borderFocus: '#F97316',\n text: '#F8FAFC',\n placeholder: '#94A3B8',\n },\n button: {\n primary: {\n background: '#F97316',\n text: '#FFFFFF',\n hover: '#EA580C',\n active: '#DC2626',\n },\n secondary: {\n background: 'transparent',\n text: '#F97316',\n border: '#F97316',\n hover: 'rgba(249, 115, 22, 0.1)',\n active: 'rgba(249, 115, 22, 0.2)',\n },\n },\n },\n typography: {\n fontFamily: {\n primary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n secondary: 'Orbitron, Futura, Inter, system-ui, sans-serif',\n },\n fontSize: {\n xs: '0.75rem',\n sm: '0.875rem',\n base: '1rem',\n lg: '1.125rem',\n xl: '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n },\n fontWeight: {\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n },\n lineHeight: {\n tight: '1.25',\n normal: '1.5',\n relaxed: '1.75',\n },\n },\n spacing: {\n xs: '0.25rem',\n sm: '0.5rem',\n md: '1rem',\n lg: '1.5rem',\n xl: '2rem',\n '2xl': '3rem',\n '3xl': '4rem',\n },\n layout: {\n containerMaxWidth: '1440px',\n gridGap: '1rem',\n cardPadding: '1.5rem',\n borderRadius: {\n sm: '0.25rem',\n md: '0.5rem',\n lg: '0.75rem',\n xl: '1rem',\n '2xl': '1.5rem',\n full: '9999px',\n },\n },\n components: {\n brokerCard: {\n width: '100%',\n height: '180px',\n logoSize: '64px',\n padding: '1.5rem',\n },\n statusIndicator: {\n size: '22px',\n glowIntensity: 0.9,\n },\n modal: {\n background: 'rgba(0, 0, 0, 0.95)',\n backdrop: 'rgba(0, 0, 0, 0.8)',\n },\n brokerCardModern: {\n width: '150px',\n height: '150px',\n padding: '16px',\n logoSize: '48px',\n statusSize: '22px',\n },\n connectButton: {\n width: '120px',\n height: '120px',\n },\n themeSwitcher: {\n indicatorSize: '24px',\n },\n },\n effects: {\n glassmorphism: {\n enabled: true,\n blur: '12px',\n opacity: 0.15,\n border: 'rgba(249, 115, 22, 0.3)',\n },\n animations: {\n enabled: true,\n duration: {\n fast: '150ms',\n normal: '300ms',\n slow: '500ms',\n },\n easing: {\n default: 'cubic-bezier(0.4, 0, 0.2, 1)',\n smooth: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',\n bounce: 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',\n },\n },\n shadows: {\n sm: '0 1px 2px rgba(0, 0, 0, 0.5)',\n md: '0 4px 6px rgba(0, 0, 0, 0.6)',\n lg: '0 10px 15px rgba(0, 0, 0, 0.7)',\n xl: '0 20px 25px rgba(0, 0, 0, 0.8)',\n card: '0px 4px 12px rgba(0, 0, 0, 0.6), 0 0 20px rgba(249, 115, 22, 0.2)',\n cardHover: '0px 4px 24px rgba(249, 115, 22, 0.3), 0 0 30px rgba(249, 115, 22, 0.25)',\n glow: '0 0 20px rgba(249, 115, 22, 0.8)',\n focus: '0 0 0 2px #F97316, 0 0 8px 2px rgba(249, 115, 22, 0.8)',\n },\n },\n branding: {\n primaryColor: '#F97316',\n },\n glow: {\n primary: 'rgba(249, 115, 22, 0.4)',\n secondary: 'rgba(249, 115, 22, 0.6)',\n card: 'rgba(249, 115, 22, 0.2)',\n cardHover: 'rgba(249, 115, 22, 0.3)',\n button: 'rgba(249, 115, 22, 0.6)',\n focus: 'rgba(249, 115, 22, 0.8)',\n scrollbar: 'rgba(249, 115, 22, 0.4)',\n },\n gradients: {\n start: 'rgba(249, 115, 22, 0.08)',\n end: 'rgba(249, 115, 22, 0.03)',\n hoverStart: 'rgba(249, 115, 22, 0.15)',\n hoverEnd: 'rgba(249, 115, 22, 0.08)',\n },\n};\n\n// StockAlgos theme - Clean professional theme matching StockAlgos website\nexport const stockAlgosTheme: PortalThemeConfig = {\n mode: 'light', // Light mode like StockAlgos website\n colors: {\n background: {\n primary: '#FFFFFF', // Clean white background\n secondary: '#FFFFFF', // Also white for consistency\n tertiary: '#F8FAFC', // Very light gray for subtle elevation\n accent: 'rgba(79, 70, 229, 0.05)', // Very subtle blue accent\n glass: '#FFFFFF', // Pure white, no transparency\n },\n status: {\n connected: '#10B981', // Green for positive/connected\n disconnected: '#EF4444', // Red for negative/disconnected \n warning: '#F59E0B', // Amber for warnings\n pending: '#6366F1', // Indigo for pending states\n error: '#EF4444', // Red for errors\n success: '#10B981', // Green for success\n },\n text: {\n primary: '#111827', // Very dark text for maximum contrast\n secondary: '#374151', // Dark gray for secondary text\n muted: '#6B7280', // Medium gray for muted text\n inverse: '#FFFFFF', // White for text on dark backgrounds\n },\n border: {\n primary: '#E5E7EB', // Light gray border\n secondary: '#F3F4F6', // Very light gray border\n hover: '#D1D5DB', // Slightly darker on hover\n focus: '#4F46E5', // Blue focus border\n accent: '#4F46E5', // Blue accent border\n },\n input: {\n background: '#FFFFFF', // White input background\n border: '#D1D5DB', // Slightly more visible light gray border\n borderFocus: '#4F46E5', // Blue focus border\n text: '#111827', // Darker text for better contrast\n placeholder: '#6B7280', // Darker placeholder for visibility\n },\n button: {\n primary: {\n background: '#4F46E5', // Blue primary button\n text: '#FFFFFF', // White text\n hover: '#4338CA', // Darker blue on hover\n active: '#3730A3', // Even darker on active\n },\n secondary: {\n background: '#FFFFFF', // White background\n text: '#4F46E5', // Blue text\n border: '#E5E7EB', // Light gray border\n hover: '#F8FAFC', // Very light gray on hover\n active: '#F1F5F9', // Light gray on active\n },\n },\n },\n typography: {\n fontFamily: {\n primary: 'Inter, system-ui, -apple-system, sans-serif', // Clean, modern font like StockAlgos\n secondary: 'Inter, system-ui, -apple-system, sans-serif',\n },\n fontSize: {\n xs: '0.75rem', // 12px\n sm: '0.875rem', // 14px\n base: '1rem', // 16px\n lg: '1.125rem', // 18px\n xl: '1.25rem', // 20px\n '2xl': '1.5rem', // 24px\n '3xl': '1.875rem', // 30px\n '4xl': '2.25rem', // 36px\n },\n fontWeight: {\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n },\n lineHeight: {\n tight: '1.25',\n normal: '1.5',\n relaxed: '1.75',\n },\n },\n spacing: {\n xs: '0.25rem', // 4px\n sm: '0.5rem', // 8px\n md: '1rem', // 16px\n lg: '1.5rem', // 24px\n xl: '2rem', // 32px\n '2xl': '3rem', // 48px\n '3xl': '4rem', // 64px\n },\n layout: {\n containerMaxWidth: '1440px',\n gridGap: '1rem',\n cardPadding: '1.5rem',\n borderRadius: {\n sm: '0.25rem', // 4px\n md: '0.5rem', // 8px\n lg: '0.75rem', // 12px\n xl: '1rem', // 16px\n '2xl': '1.5rem', // 24px\n full: '9999px',\n },\n },\n components: {\n brokerCard: {\n width: '100%',\n height: '180px',\n logoSize: '64px',\n padding: '1.5rem',\n },\n statusIndicator: {\n size: '22px',\n glowIntensity: 0.1, // Minimal glow for clean look\n },\n modal: {\n background: '#FFFFFF', // Pure white modal background\n backdrop: 'rgba(0, 0, 0, 0.4)', // Lighter backdrop\n },\n brokerCardModern: {\n width: '150px',\n height: '150px',\n padding: '16px',\n logoSize: '48px',\n statusSize: '22px',\n },\n connectButton: {\n width: '120px',\n height: '120px',\n },\n themeSwitcher: {\n indicatorSize: '24px',\n },\n },\n effects: {\n glassmorphism: {\n enabled: false, // Disable glass effects for clean look\n blur: '0px',\n opacity: 0,\n border: 'rgba(0, 0, 0, 0.1)',\n },\n animations: {\n enabled: true,\n duration: {\n fast: '150ms',\n normal: '200ms', // Faster, more subtle animations\n slow: '300ms',\n },\n easing: {\n default: 'cubic-bezier(0.4, 0, 0.2, 1)',\n smooth: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',\n bounce: 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',\n },\n },\n shadows: {\n sm: '0 1px 2px rgba(0, 0, 0, 0.05)', // Very subtle shadows\n md: '0 4px 6px rgba(0, 0, 0, 0.07)',\n lg: '0 10px 15px rgba(0, 0, 0, 0.1)',\n xl: '0 20px 25px rgba(0, 0, 0, 0.1)',\n card: '0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)', // Clean card shadow\n cardHover: '0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)', // Subtle hover shadow\n glow: '0 0 0px transparent', // No glow effects\n focus: '0 0 0 3px rgba(79, 70, 229, 0.1)', // Subtle focus ring\n },\n },\n branding: {\n logo: '/stockalgos-logo.png', // Custom logo path\n companyName: 'StockAlgos', // Company name\n favicon: '/stockalgos-favicon.ico', // Custom favicon\n primaryColor: '#4F46E5', // Indigo brand color\n },\n \n // Minimal glow effects\n glow: {\n primary: 'transparent',\n secondary: 'transparent',\n card: 'transparent',\n cardHover: 'rgba(79, 70, 229, 0.05)', // Very subtle\n button: 'transparent',\n focus: 'rgba(79, 70, 229, 0.1)',\n scrollbar: 'transparent',\n },\n \n // Minimal gradients\n gradients: {\n start: 'rgba(79, 70, 229, 0.02)',\n end: 'rgba(79, 70, 229, 0.01)',\n hoverStart: 'rgba(79, 70, 229, 0.05)',\n hoverEnd: 'rgba(79, 70, 229, 0.02)',\n },\n};\n\n// Theme preset mapping\nexport const portalThemePresets: Record<string, PortalThemeConfig> = {\n dark: darkTheme,\n light: lightTheme,\n corporateBlue: corporateBlueTheme,\n purple: purpleTheme,\n green: greenTheme,\n orange: orangeTheme,\n stockAlgos: stockAlgosTheme,\n};","import { PortalTheme, PortalThemeConfig } from '../types/portal';\nimport { portalThemePresets } from '../themes/portalPresets';\nimport { setupLogger, buildLoggerExtra, LoggerExtra } from '../lib/logger';\n\nconst themeLogger = setupLogger('FinaticClientSDK.ThemeUtils', undefined, {\n codebase: 'FinaticClientSDK',\n});\n\nconst buildThemeExtra = (functionName: string, metadata?: Record<string, unknown>): LoggerExtra => ({\n module: 'ThemeUtils',\n function: functionName,\n ...(metadata ? buildLoggerExtra(metadata) : {}),\n});\n\n/**\n * Generate a portal URL with theme parameters\n * @param baseUrl The base portal URL\n * @param theme The theme configuration\n * @returns The portal URL with theme parameters\n */\nexport function generatePortalThemeURL(baseUrl: string, theme?: PortalTheme): string {\n if (!theme) {\n return baseUrl;\n }\n\n try {\n const url = new URL(baseUrl);\n\n if (theme.preset) {\n // Use preset theme\n url.searchParams.set('theme', theme.preset);\n } else if (theme.custom) {\n // Use custom theme\n const encodedTheme = btoa(JSON.stringify(theme.custom));\n url.searchParams.set('theme', 'custom');\n url.searchParams.set('themeObject', encodedTheme);\n }\n\n return url.toString();\n } catch (error) {\n themeLogger.exception('Failed to generate theme URL', error, buildThemeExtra('generatePortalThemeURL', {\n base_url: baseUrl,\n has_theme: Boolean(theme),\n }));\n return baseUrl;\n }\n}\n\n/**\n * Generate a portal URL with theme parameters, appending to existing query params\n * @param baseUrl The base portal URL (may already have query parameters)\n * @param theme The theme configuration\n * @returns The portal URL with theme parameters appended\n */\nexport function appendThemeToURL(baseUrl: string, theme?: PortalTheme): string {\n if (!theme) {\n return baseUrl;\n }\n\n try {\n const url = new URL(baseUrl);\n\n if (theme.preset) {\n // Use preset theme\n url.searchParams.set('theme', theme.preset);\n } else if (theme.custom) {\n // Use custom theme\n const encodedTheme = btoa(JSON.stringify(theme.custom));\n url.searchParams.set('theme', 'custom');\n url.searchParams.set('themeObject', encodedTheme);\n }\n\n return url.toString();\n } catch (error) {\n themeLogger.exception('Failed to append theme to URL', error, buildThemeExtra('appendThemeToURL', {\n base_url: baseUrl,\n has_theme: Boolean(theme),\n }));\n return baseUrl;\n }\n}\n\n/**\n * Get a theme configuration by preset name\n * @param preset The preset theme name\n * @returns The theme configuration or undefined if not found\n */\nexport function getThemePreset(preset: string): PortalThemeConfig | undefined {\n return portalThemePresets[preset];\n}\n\n/**\n * Validate a custom theme configuration\n * @param theme The theme configuration to validate\n * @returns True if valid, false otherwise\n */\nexport function validateCustomTheme(theme: PortalThemeConfig): boolean {\n try {\n // Only validate what's provided - everything else gets defaults\n if (theme.mode && !['dark', 'light', 'auto'].includes(theme.mode)) {\n return false;\n }\n\n // If colors are provided, validate the structure\n if (theme.colors) {\n // Check that any provided color sections have valid structure\n const colorSections = ['background', 'status', 'text', 'border', 'input', 'button'];\n for (const section of colorSections) {\n const colorSection = theme.colors[section as keyof typeof theme.colors];\n if (colorSection && typeof colorSection !== 'object') {\n return false;\n }\n }\n }\n\n // If typography is provided, validate structure\n if (theme.typography) {\n if (theme.typography.fontSize && typeof theme.typography.fontSize !== 'object') {\n return false;\n }\n if (theme.typography.fontWeight && typeof theme.typography.fontWeight !== 'object') {\n return false;\n }\n }\n\n // If effects are provided, validate structure\n if (theme.effects) {\n if (theme.effects.animations && typeof theme.effects.animations !== 'object') {\n return false;\n }\n if (theme.effects.shadows && typeof theme.effects.shadows !== 'object') {\n return false;\n }\n }\n\n return true;\n } catch (error) {\n themeLogger.exception('Theme validation error', error, buildThemeExtra('validateCustomTheme'));\n return false;\n }\n}\n\n/**\n * Create a custom theme from a preset with modifications\n * @param preset The base preset theme\n * @param modifications Partial theme modifications\n * @returns The modified theme configuration\n */\nexport function createCustomThemeFromPreset(\n preset: string,\n modifications: Partial<PortalThemeConfig>\n): PortalThemeConfig | null {\n const baseTheme = getThemePreset(preset);\n if (!baseTheme) {\n themeLogger.warn('Preset theme not found', buildThemeExtra('createCustomThemeFromPreset', {\n preset,\n }));\n return null;\n }\n\n return {\n ...baseTheme,\n ...modifications,\n };\n}\n","/**\n * Broker filtering utility functions\n */\n\nimport { setupLogger, buildLoggerExtra, LoggerExtra } from '../lib/logger';\n\nconst brokerLogger = setupLogger('FinaticClientSDK.BrokerUtils', undefined, {\n codebase: 'FinaticClientSDK',\n});\n\nconst buildBrokerExtra = (functionName: string, metadata?: Record<string, unknown>): LoggerExtra => ({\n module: 'BrokerUtils',\n function: functionName,\n ...(metadata ? buildLoggerExtra(metadata) : {}),\n});\n\n// Supported broker names and their corresponding IDs (including aliases)\nconst SUPPORTED_BROKERS: Record<string, string> = {\n 'alpaca': 'alpaca',\n 'robinhood': 'robinhood',\n 'tasty_trade': 'tasty_trade',\n 'ninja_trader': 'ninja_trader',\n 'tradovate': 'tradovate', // Alias for ninja_trader\n 'interactive_brokers': 'interactive_brokers',\n};\n\n/**\n * Convert broker names to broker IDs, filtering out unsupported ones\n * @param brokerNames Array of broker names to convert\n * @returns Object containing valid broker IDs and any warnings about unsupported names\n */\nexport function convertBrokerNamesToIds(brokerNames: string[]): {\n brokerIds: string[];\n warnings: string[];\n} {\n const brokerIds: string[] = [];\n const warnings: string[] = [];\n\n for (const brokerName of brokerNames) {\n const brokerId = SUPPORTED_BROKERS[brokerName.toLowerCase()];\n if (brokerId) {\n brokerIds.push(brokerId);\n } else {\n warnings.push(`Broker name '${brokerName}' is not supported. Supported brokers: ${Object.keys(SUPPORTED_BROKERS).join(', ')}`);\n }\n }\n\n return { brokerIds, warnings };\n}\n\n/**\n * Append broker filter parameters to a portal URL\n * @param baseUrl The base portal URL (may already have query parameters)\n * @param brokerNames Array of broker names to filter by\n * @returns The portal URL with broker filter parameters appended\n */\nexport function appendBrokerFilterToURL(baseUrl: string, brokerNames?: string[]): string {\n if (!brokerNames || brokerNames.length === 0) {\n return baseUrl;\n }\n\n try {\n const url = new URL(baseUrl);\n const { brokerIds, warnings } = convertBrokerNamesToIds(brokerNames);\n\n // Log warnings for unsupported broker names\n warnings.forEach(warning =>\n brokerLogger.warn('Unsupported broker name provided', buildBrokerExtra('appendBrokerFilterToURL', {\n warning,\n })),\n );\n\n // Only add broker filter if we have valid broker IDs\n if (brokerIds.length > 0) {\n const encodedBrokers = btoa(JSON.stringify(brokerIds));\n url.searchParams.set('brokers', encodedBrokers);\n }\n\n return url.toString();\n } catch (error) {\n brokerLogger.exception('Failed to append broker filter to URL', error, buildBrokerExtra('appendBrokerFilterToURL', {\n base_url: baseUrl,\n brokers_count: brokerNames?.length ?? 0,\n }));\n return baseUrl;\n }\n}\n\n/**\n * Get list of supported broker names\n * @returns Array of supported broker names\n */\nexport function getSupportedBrokerNames(): string[] {\n return Object.keys(SUPPORTED_BROKERS);\n}\n\n/**\n * Check if a broker name is supported\n * @param brokerName The broker name to check\n * @returns True if the broker is supported, false otherwise\n */\nexport function isBrokerSupported(brokerName: string): boolean {\n return brokerName.toLowerCase() in SUPPORTED_BROKERS;\n}\n","import { EventEmitter } from '../../utils/events';\nimport { ApiClient } from './ApiClient';\nimport { PortalUI } from '../portal/PortalUI';\nimport { SessionError, AuthenticationError, CompanyAccessError, ApiError, ValidationError } from '../../utils/errors';\nimport { MockFactory } from '../../mocks/MockFactory';\nimport { PaginatedResult } from '../../types/common/pagination';\nimport { UserToken, SessionState } from '../../types/api/auth';\nimport { Order, OrderResponse, TradingContext } from '../../types/api/orders';\nimport {\n BrokerDataOptions,\n BrokerAccount,\n BrokerOrder,\n BrokerPosition,\n BrokerBalance,\n BrokerInfo,\n BrokerOrderParams,\n BrokerConnection,\n OrdersFilter,\n PositionsFilter,\n AccountsFilter,\n BalancesFilter,\n BrokerDataOrder,\n BrokerDataPosition,\n BrokerDataAccount,\n DisconnectCompanyResponse,\n} from '../../types/api/broker';\nimport { FinaticConnectOptions, PortalOptions } from '../../types/connect';\nimport { appendThemeToURL } from '../../utils/themeUtils';\nimport { appendBrokerFilterToURL } from '../../utils/brokerUtils';\nimport { setupLogger, buildLoggerExtra, LoggerExtra } from '../../lib/logger';\n\nconst finaticConnectLogger = setupLogger('FinaticClientSDK.FinaticConnect', undefined, {\n codebase: 'FinaticClientSDK',\n});\n\nconst makeFinaticConnectExtra = (functionName: string, metadata?: Record<string, unknown>): LoggerExtra => ({\n module: 'FinaticConnect',\n function: functionName,\n ...(metadata ? buildLoggerExtra(metadata) : {}),\n});\n// Supabase import removed - SDK no longer depends on Supabase\n\ninterface DeviceInfo {\n ip_address: string;\n user_agent: string;\n fingerprint: string;\n}\n\nexport class FinaticConnect extends EventEmitter {\n private static instance: FinaticConnect | null = null;\n private apiClient: ApiClient | any; // Allow both ApiClient and MockApiClient\n private portalUI: PortalUI;\n private options: FinaticConnectOptions;\n private userToken: UserToken | null = null;\n private sessionId: string | null = null;\n private companyId: string;\n private baseUrl: string;\n private readonly BROKER_LIST_CACHE_KEY = 'finatic_broker_list_cache';\n private readonly BROKER_LIST_CACHE_VERSION = '1.0';\n private readonly BROKER_LIST_CACHE_DURATION = 1000 * 60 * 60 * 24; // 24 hours in milliseconds\n private readonly deviceInfo?: DeviceInfo;\n private currentSessionState: string | null = null;\n\n // Session keep-alive mechanism\n private sessionKeepAliveInterval: ReturnType<typeof setInterval> | null = null;\n private readonly SESSION_KEEP_ALIVE_INTERVAL = 1000 * 60 * 5; // 5 minutes\n private readonly SESSION_VALIDATION_TIMEOUT = 1000 * 30; // 30 seconds\n private readonly SESSION_REFRESH_BUFFER_HOURS = 16; // Refresh session at 16 hours\n private sessionStartTime: number | null = null;\n\n private readonly logger = finaticConnectLogger;\n\n private buildLoggerExtra(functionName: string, metadata?: Record<string, unknown>): LoggerExtra {\n return {\n module: 'FinaticConnect',\n function: functionName,\n ...(metadata ? buildLoggerExtra(metadata) : {}),\n };\n }\n\n constructor(options: FinaticConnectOptions, deviceInfo?: DeviceInfo) {\n super();\n this.options = options;\n this.baseUrl = options.baseUrl || 'https://api.finatic.dev';\n this.apiClient = MockFactory.createApiClient(this.baseUrl, deviceInfo);\n this.portalUI = new PortalUI(this.baseUrl);\n this.deviceInfo = deviceInfo;\n\n // Extract company ID from token\n try {\n // Validate token exists\n if (!options.token) {\n throw new Error('Token is required but not provided');\n }\n\n // Check if token is in JWT format (contains dots)\n if (options.token.includes('.')) {\n const tokenParts = options.token.split('.');\n if (tokenParts.length === 3) {\n const payload = JSON.parse(atob(tokenParts[1]));\n this.companyId = payload.company_id;\n } else {\n throw new Error('Invalid JWT token format');\n }\n } else {\n // Handle UUID format token\n // For UUID tokens, we'll get the company_id from the session start response\n this.companyId = ''; // Will be set after session start\n }\n } catch (error: unknown) {\n if (error instanceof Error) {\n throw new Error('Failed to parse token: ' + error.message);\n } else {\n throw new Error('Failed to parse token: Unknown error');\n }\n }\n\n // Set up event listeners for callbacks\n if (this.options.onSuccess) {\n this.on('success', this.options.onSuccess);\n }\n if (this.options.onError) {\n this.on('error', this.options.onError);\n }\n if (this.options.onClose) {\n this.on('close', this.options.onClose);\n }\n\n // Register automatic session cleanup\n this.registerSessionCleanup();\n }\n\n private async linkUserToSession(userId: string): Promise<boolean> {\n try {\n if (!this.sessionId) {\n this.logger.error('No session ID available for user linking', this.buildLoggerExtra('linkUserToSession'));\n return false;\n }\n\n // Call API endpoint to authenticate user with session\n const response = await this.apiClient.request('/session/authenticate', {\n method: 'POST',\n body: {\n session_id: this.sessionId,\n user_id: userId,\n },\n });\n\n if (response.error) {\n this.logger.error('Failed to link user to session', {\n ...this.buildLoggerExtra('linkUserToSession', {\n session_id: this.sessionId,\n user_id: userId,\n }),\n error: response.error,\n });\n return false;\n }\n\n this.logger.info('User linked to session successfully', this.buildLoggerExtra('linkUserToSession', { session_id: this.sessionId, user_id: userId }));\n return true;\n } catch (error) {\n this.logger.exception('Error linking user to session', error, this.buildLoggerExtra('linkUserToSession', { session_id: this.sessionId, user_id: userId }));\n return false;\n }\n }\n\n /**\n * Store user ID for authentication state persistence\n * @param userId - The user ID to store\n */\n private storeUserId(userId: string): void {\n // Initialize userToken if it doesn't exist\n if (!this.userToken) {\n this.userToken = {\n user_id: userId,\n };\n } else {\n // Update existing userToken with new userId\n this.userToken.user_id = userId;\n }\n\n // Set user ID in ApiClient for session context\n this.apiClient.setSessionContext(this.sessionId || '', this.companyId, undefined);\n }\n\n /**\n * Check if the user is fully authenticated (has userId in session context)\n * @returns True if the user is fully authenticated and ready for API calls\n */\n public async isAuthenticated(): Promise<boolean> {\n // Check internal session context only - no localStorage dependency\n return this.userToken?.user_id !== undefined && this.userToken?.user_id !== null;\n }\n\n\n /**\n * Get user's orders with pagination and optional filtering\n * @param params - Query parameters including page, perPage, and filters\n * @returns Promise with paginated result that supports navigation\n */\n public async getOrders(\n page: number = 1,\n perPage: number = 100,\n options?: BrokerDataOptions,\n filters?: OrdersFilter\n ): Promise<PaginatedResult<BrokerDataOrder[]>> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n\n const result = await this.apiClient.getBrokerOrdersPage(page, perPage, filters);\n \n // Add navigation methods to the result\n const paginatedResult = result as any;\n paginatedResult.next_page = async () => {\n if (paginatedResult.hasNext) {\n return this.apiClient.getBrokerOrdersPage(page + 1, perPage, filters);\n }\n throw new Error('No next page available');\n };\n paginatedResult.previous_page = async () => {\n if (paginatedResult.has_previous) {\n return this.apiClient.getBrokerOrdersPage(page - 1, perPage, filters);\n }\n throw new Error('No previous page available');\n };\n \n return paginatedResult;\n }\n\n /**\n * Get user's positions with pagination and optional filtering\n * @param params - Query parameters including page, perPage, and filters\n * @returns Promise with paginated result that supports navigation\n */\n public async getPositions(\n page: number = 1,\n perPage: number = 100,\n options?: BrokerDataOptions,\n filters?: PositionsFilter\n ): Promise<PaginatedResult<BrokerDataPosition[]>> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n\n const result = await this.apiClient.getBrokerPositionsPage(page, perPage, filters);\n \n // Add navigation methods to the result\n const paginatedResult = result as any;\n paginatedResult.next_page = async () => {\n if (paginatedResult.hasNext) {\n return this.apiClient.getBrokerPositionsPage(page + 1, perPage, filters);\n }\n throw new Error('No next page available');\n };\n paginatedResult.previous_page = async () => {\n if (paginatedResult.has_previous) {\n return this.apiClient.getBrokerPositionsPage(page - 1, perPage, filters);\n }\n throw new Error('No previous page available');\n };\n \n return paginatedResult;\n }\n\n /**\n * Get user's accounts with pagination and optional filtering\n * @param params - Query parameters including page, perPage, and filters\n * @returns Promise with paginated result that supports navigation\n */\n public async getAccounts(\n page: number = 1,\n perPage: number = 100,\n options?: BrokerDataOptions,\n filters?: AccountsFilter\n ): Promise<PaginatedResult<BrokerDataAccount[]>> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n\n const result = await this.apiClient.getBrokerAccountsPage(page, perPage, filters);\n \n // Add navigation methods to the result\n const paginatedResult = result as any;\n paginatedResult.next_page = async () => {\n if (paginatedResult.hasNext) {\n return this.apiClient.getBrokerAccountsPage(page + 1, perPage, filters);\n }\n throw new Error('No next page available');\n };\n paginatedResult.previous_page = async () => {\n if (paginatedResult.has_previous) {\n return this.apiClient.getBrokerAccountsPage(page - 1, perPage, filters);\n }\n throw new Error('No previous page available');\n };\n \n return paginatedResult;\n }\n\n /**\n * Get user's balances with pagination and optional filtering\n * @param params - Query parameters including page, perPage, and filters\n * @returns Promise with paginated result that supports navigation\n */\n public async getBalances(\n page: number = 1,\n perPage: number = 100,\n options?: BrokerDataOptions,\n filters?: BalancesFilter\n ): Promise<PaginatedResult<BrokerBalance[]>> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n\n const result = await this.apiClient.getBrokerBalancesPage(page, perPage, filters);\n \n // Add navigation methods to the result\n const paginatedResult = result as any;\n paginatedResult.next_page = async () => {\n if (paginatedResult.hasNext) {\n return this.apiClient.getBrokerBalancesPage(page + 1, perPage, filters);\n }\n throw new Error('No next page available');\n };\n paginatedResult.previous_page = async () => {\n if (paginatedResult.has_previous) {\n return this.apiClient.getBrokerBalancesPage(page - 1, perPage, filters);\n }\n throw new Error('No previous page available');\n };\n \n return paginatedResult;\n }\n\n /**\n * Initialize the Finatic Connect SDK\n * @param token - The portal token from your backend\n * @param userId - Optional: The user ID if you have it from a previous session\n * @param options - Optional configuration including baseUrl\n * @returns FinaticConnect instance\n */\n public static async init(\n token: string,\n userId?: string | null | undefined,\n options?: { baseUrl?: string } | undefined\n ): Promise<FinaticConnect> {\n // Safari-specific fix: Clear instance if it exists but has no valid session\n // This prevents stale instances from interfering with new requests\n if (FinaticConnect.instance && !FinaticConnect.instance.sessionId) {\n finaticConnectLogger.debug('Clearing stale instance for Safari compatibility', makeFinaticConnectExtra('init'));\n FinaticConnect.instance = null;\n }\n\n if (!FinaticConnect.instance) {\n const connectOptions: FinaticConnectOptions = {\n token,\n baseUrl: options?.baseUrl || 'https://api.finatic.dev',\n onSuccess: undefined,\n onError: undefined,\n onClose: undefined,\n };\n\n // Generate device info\n const deviceInfo: DeviceInfo = {\n ip_address: '', // Will be set by the server\n user_agent: navigator.userAgent,\n fingerprint: btoa(\n [\n navigator.userAgent,\n navigator.language,\n new Date().getTimezoneOffset(),\n screen.width,\n screen.height,\n navigator.hardwareConcurrency,\n // @ts-expect-error - deviceMemory is not in the Navigator type but exists in modern browsers\n navigator.deviceMemory || 'unknown',\n ].join('|')\n ),\n };\n\n FinaticConnect.instance = new FinaticConnect(connectOptions, deviceInfo);\n\n // Start session and get session data\n const normalizedUserId = userId || undefined; // Convert null to undefined\n const startResponse = await FinaticConnect.instance.apiClient.startSession(\n token,\n normalizedUserId\n );\n FinaticConnect.instance.sessionId = startResponse.data.session_id;\n FinaticConnect.instance.companyId = startResponse.data.company_id || '';\n\n // Record session start time for automatic refresh\n FinaticConnect.instance.sessionStartTime = Date.now();\n\n // Set session context in API client\n if (\n FinaticConnect.instance.apiClient &&\n typeof FinaticConnect.instance.apiClient.setSessionContext === 'function'\n ) {\n FinaticConnect.instance.apiClient.setSessionContext(\n FinaticConnect.instance.sessionId,\n FinaticConnect.instance.companyId,\n startResponse.data.csrf_token // If available in response\n );\n }\n\n // If userId is provided, try to link user to session\n if (normalizedUserId) {\n try {\n // Try to link user to session via API\n const linked = await FinaticConnect.instance.linkUserToSession(normalizedUserId);\n if (linked) {\n // Store user ID for authentication state\n FinaticConnect.instance.storeUserId(normalizedUserId);\n // Emit success event\n FinaticConnect.instance.emit('success', normalizedUserId);\n } else {\n finaticConnectLogger.warn('Failed to link user to session during initialization', makeFinaticConnectExtra('init', { user_id: normalizedUserId }));\n }\n } catch (error) {\n FinaticConnect.instance.emit('error', error as Error);\n throw error;\n }\n }\n }\n return FinaticConnect.instance;\n }\n\n /**\n * Initialize the SDK with a user ID\n * @param userId - The user ID from a previous session\n */\n public async setUserId(userId: string): Promise<void> {\n await this.initializeWithUser(userId);\n }\n\n /**\n * Get the user and tokens for a completed session\n * @returns Promise with user information and tokens\n */\n\n private async initializeWithUser(userId: string): Promise<void> {\n try {\n if (!this.sessionId) {\n throw new SessionError('Session not initialized');\n }\n\n // Try to link user to session\n const linked = await this.linkUserToSession(userId);\n if (!linked) {\n this.logger.warn('Failed to link user to session during initialization', this.buildLoggerExtra('initializeWithUser', { user_id: userId }));\n // Don't throw error, just continue without authentication\n return;\n }\n\n // Store user ID for authentication state\n this.storeUserId(userId);\n\n this.emit('success', userId);\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Handle company access error by opening the portal\n * @param error The company access error\n * @param options Optional configuration for the portal\n */\n private async handleCompanyAccessError(\n error: CompanyAccessError,\n options?: {\n onSuccess?: (userId: string) => void;\n onError?: (error: Error) => void;\n onClose?: () => void;\n }\n ): Promise<void> {\n // Emit a specific event for company access errors\n this.emit('companyAccessError', error);\n\n // Open the portal to allow the user to connect a broker\n await this.openPortal(options);\n }\n\n /**\n * Open the portal for user authentication\n * @param options Optional configuration for the portal\n */\n public async openPortal(options?: PortalOptions): Promise<void> {\n try {\n if (!this.sessionId) {\n throw new SessionError('Session not initialized');\n }\n\n // Ensure session is active\n const sessionState = this.apiClient.getCurrentSessionState();\n if (sessionState !== SessionState.ACTIVE) {\n // If not active, try to start a new session\n const startResponse = await this.apiClient.startSession(this.options.token);\n this.sessionId = startResponse.data.session_id;\n this.companyId = startResponse.data.company_id || '';\n\n // Set session context in API client\n if (this.apiClient && typeof this.apiClient.setSessionContext === 'function') {\n this.apiClient.setSessionContext(\n this.sessionId,\n this.companyId,\n startResponse.data.csrf_token // If available in response\n );\n }\n\n // Session is now active\n this.currentSessionState = SessionState.ACTIVE;\n }\n\n // Get portal URL\n const portalResponse = await this.apiClient.getPortalUrl(this.sessionId);\n if (!portalResponse.data.portal_url) {\n throw new Error('Failed to get portal URL');\n }\n\n // Apply theme to portal URL if provided\n let themedPortalUrl = appendThemeToURL(portalResponse.data.portal_url, options?.theme);\n\n // Apply broker filter to portal URL if provided\n themedPortalUrl = appendBrokerFilterToURL(themedPortalUrl, options?.brokers);\n\n // Apply email parameter to portal URL if provided\n if (options?.email) {\n const url = new URL(themedPortalUrl);\n url.searchParams.set('email', options.email);\n themedPortalUrl = url.toString();\n }\n\n // Add session ID to portal URL so the portal can use it\n const url = new URL(themedPortalUrl);\n if (this.sessionId) {\n url.searchParams.set('session_id', this.sessionId);\n }\n if (this.companyId) {\n url.searchParams.set('company_id', this.companyId);\n }\n themedPortalUrl = url.toString();\n\n // Create portal UI if not exists\n if (!this.portalUI) {\n this.portalUI = new PortalUI(this.baseUrl);\n }\n\n // Show portal\n this.portalUI.show(themedPortalUrl, this.sessionId || '', {\n onSuccess: async (userId: string) => {\n try {\n if (!this.sessionId) {\n throw new SessionError('Session not initialized');\n }\n\n // Store the userId for authentication state\n this.storeUserId(userId);\n\n // Try to link user to session via API\n const linked = await this.linkUserToSession(userId);\n if (!linked) {\n this.logger.warn('Failed to link user to session, continuing with authentication', this.buildLoggerExtra('openPortal.onSuccess', { user_id: userId }));\n }\n\n // Emit portal success event\n this.emit('portal:success', userId);\n\n // Emit legacy success event\n this.emit('success', userId);\n options?.onSuccess?.(userId);\n } catch (error) {\n if (error instanceof CompanyAccessError) {\n // Handle company access error by opening the portal\n await this.handleCompanyAccessError(error, options);\n } else {\n this.emit('error', error as Error);\n options?.onError?.(error as Error);\n }\n }\n },\n onError: (error: Error) => {\n // Emit portal error event\n this.emit('portal:error', error);\n\n // Emit legacy error event\n this.emit('error', error);\n options?.onError?.(error);\n },\n onClose: () => {\n // Emit portal close event\n this.emit('portal:close');\n\n // Emit legacy close event\n this.emit('close');\n options?.onClose?.();\n },\n onEvent: (type: string, data: any) => {\n this.logger.debug('Portal event received', {\n ...this.buildLoggerExtra('openPortal.onEvent', {\n event_type: type,\n payload_present: Boolean(data),\n }),\n event: 'portal-event',\n });\n\n // Emit generic event\n this.emit('event', type, data);\n\n // Call the event callback\n options?.onEvent?.(type, data);\n },\n });\n } catch (error) {\n if (error instanceof CompanyAccessError) {\n // Handle company access error by opening the portal\n await this.handleCompanyAccessError(error, options);\n } else {\n this.emit('error', error as Error);\n options?.onError?.(error as Error);\n }\n }\n }\n\n /**\n * Close the Finatic Connect Portal\n */\n public closePortal(): void {\n this.portalUI.hide();\n this.emit('close');\n }\n\n /**\n * Initialize a new session\n * @param oneTimeToken - The one-time token from initSession\n */\n protected async startSession(oneTimeToken: string): Promise<void> {\n try {\n const response = await this.apiClient.startSession(oneTimeToken);\n this.sessionId = response.data.session_id;\n this.currentSessionState = response.data.state;\n\n // Set session context in API client\n if (this.apiClient && typeof this.apiClient.setSessionContext === 'function') {\n this.apiClient.setSessionContext(\n this.sessionId,\n this.companyId,\n response.data.csrf_token // If available in response\n );\n }\n\n // For non-direct auth, we need to wait for the session to be ACTIVE\n if (response.data.state === SessionState.PENDING) {\n // Session is now active\n this.currentSessionState = SessionState.ACTIVE;\n }\n } catch (error) {\n if (error instanceof SessionError) {\n throw new AuthenticationError('Failed to start session', error.details);\n }\n throw error;\n }\n }\n\n /**\n * Place a new order using the broker order API\n * @param order - Order details with broker context\n */\n public async placeOrder(order: BrokerOrderParams, extras?: BrokerExtras): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n // Use the order parameter directly since it's already BrokerOrderParams\n return await this.apiClient.placeBrokerOrder(\n order,\n extras || {},\n order.connection_id\n );\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Cancel a broker order\n * @param orderId - The order ID to cancel\n * @param broker - Optional broker override\n * @param connection_id - Optional connection ID for testing bypass\n */\n public async cancelOrder(\n orderId: string,\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n connection_id?: string\n ): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n return await this.apiClient.cancelBrokerOrder(orderId, broker, {}, connection_id);\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Modify a broker order\n * @param orderId - The order ID to modify\n * @param modifications - The modifications to apply\n * @param broker - Optional broker override\n * @param connection_id - Optional connection ID for testing bypass\n */\n public async modifyOrder(\n orderId: string,\n modifications: Partial<{\n symbol?: string;\n quantity?: number;\n price?: number;\n stopPrice?: number;\n timeInForce?: 'day' | 'gtc' | 'gtd' | 'ioc' | 'fok';\n orderType?: 'Market' | 'Limit' | 'Stop' | 'StopLimit';\n side?: 'Buy' | 'Sell';\n order_id?: string;\n }>,\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n connection_id?: string\n ): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n // Convert modifications to broker format\n const brokerModifications: Partial<BrokerOrderParams> = {};\n if (modifications.symbol) brokerModifications.symbol = modifications.symbol;\n if (modifications.quantity) brokerModifications.orderQty = modifications.quantity;\n if (modifications.price) brokerModifications.price = modifications.price;\n if (modifications.stopPrice) brokerModifications.stopPrice = modifications.stopPrice;\n if (modifications.timeInForce)\n brokerModifications.timeInForce = modifications.timeInForce as\n | 'day'\n | 'gtc'\n | 'gtd'\n | 'ioc'\n | 'fok';\n if (modifications.orderType) brokerModifications.orderType = modifications.orderType;\n if (modifications.side) brokerModifications.action = modifications.side;\n if (modifications.order_id) brokerModifications.order_id = modifications.order_id;\n\n return await this.apiClient.modifyBrokerOrder(\n orderId,\n brokerModifications,\n broker,\n {},\n connection_id\n );\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n\n /**\n * Place a stock market order (convenience method)\n */\n public async placeStockMarketOrder(\n symbol: string,\n quantity: number,\n side: 'buy' | 'sell',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string\n ): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n return await this.apiClient.placeStockMarketOrder(\n symbol,\n quantity,\n side === 'buy' ? 'Buy' : 'Sell',\n broker,\n accountNumber\n );\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Place a stock limit order (convenience method)\n */\n public async placeStockLimitOrder(\n symbol: string,\n quantity: number,\n side: 'buy' | 'sell',\n price: number,\n timeInForce: 'day' | 'gtc' = 'gtc',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string\n ): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n return await this.apiClient.placeStockLimitOrder(\n symbol,\n quantity,\n side === 'buy' ? 'Buy' : 'Sell',\n price,\n timeInForce,\n broker,\n accountNumber\n );\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Place a stock stop order (convenience method)\n */\n public async placeStockStopOrder(\n symbol: string,\n quantity: number,\n side: 'buy' | 'sell',\n stopPrice: number,\n timeInForce: 'day' | 'gtc' = 'gtc',\n broker?: 'robinhood' | 'tasty_trade' | 'ninja_trader',\n accountNumber?: string\n ): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n return await this.apiClient.placeStockStopOrder(\n symbol,\n quantity,\n side === 'buy' ? 'Buy' : 'Sell',\n stopPrice,\n timeInForce,\n broker,\n accountNumber\n );\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Place a crypto market order (convenience method)\n */\n public async placeCryptoMarketOrder(\n symbol: string,\n quantity: number,\n side: 'buy' | 'sell',\n broker?: 'coinbase' | 'binance' | 'kraken',\n accountNumber?: string\n ): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n return await this.apiClient.placeCryptoMarketOrder(\n symbol,\n quantity,\n side === 'buy' ? 'Buy' : 'Sell',\n broker,\n accountNumber\n );\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Place a crypto limit order (convenience method)\n */\n public async placeCryptoLimitOrder(\n symbol: string,\n quantity: number,\n side: 'buy' | 'sell',\n price: number,\n timeInForce: 'day' | 'gtc' = 'gtc',\n broker?: 'coinbase' | 'binance' | 'kraken',\n accountNumber?: string\n ): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n return await this.apiClient.placeCryptoLimitOrder(\n symbol,\n quantity,\n side === 'buy' ? 'Buy' : 'Sell',\n price,\n timeInForce,\n broker,\n accountNumber\n );\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Place an options market order (convenience method)\n */\n public async placeOptionsMarketOrder(\n symbol: string,\n quantity: number,\n side: 'buy' | 'sell',\n broker?: 'tasty_trade' | 'robinhood' | 'ninja_trader',\n accountNumber?: string\n ): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n return await this.apiClient.placeOptionsMarketOrder(\n symbol,\n quantity,\n side === 'buy' ? 'Buy' : 'Sell',\n broker,\n accountNumber\n );\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Place an options limit order (convenience method)\n */\n public async placeOptionsLimitOrder(\n symbol: string,\n quantity: number,\n side: 'buy' | 'sell',\n price: number,\n timeInForce: 'day' | 'gtc' = 'gtc',\n broker?: 'tasty_trade' | 'robinhood' | 'ninja_trader',\n accountNumber?: string\n ): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n return await this.apiClient.placeOptionsLimitOrder(\n symbol,\n quantity,\n side === 'buy' ? 'Buy' : 'Sell',\n price,\n timeInForce,\n broker,\n accountNumber\n );\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Place a futures market order (convenience method)\n */\n public async placeFuturesMarketOrder(\n symbol: string,\n quantity: number,\n side: 'buy' | 'sell',\n broker?: 'ninja_trader' | 'tasty_trade',\n accountNumber?: string\n ): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n return await this.apiClient.placeFuturesMarketOrder(\n symbol,\n quantity,\n side === 'buy' ? 'Buy' : 'Sell',\n broker,\n accountNumber\n );\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Place a futures limit order (convenience method)\n */\n public async placeFuturesLimitOrder(\n symbol: string,\n quantity: number,\n side: 'buy' | 'sell',\n price: number,\n timeInForce: 'day' | 'gtc' = 'gtc',\n broker?: 'ninja_trader' | 'tasty_trade',\n accountNumber?: string\n ): Promise<OrderResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n try {\n return await this.apiClient.placeFuturesLimitOrder(\n symbol,\n quantity,\n side === 'buy' ? 'Buy' : 'Sell',\n price,\n timeInForce,\n broker,\n accountNumber\n );\n } catch (error) {\n this.emit('error', error as Error);\n throw error;\n }\n }\n\n /**\n * Get the current user ID\n * @returns The current user ID or undefined if not authenticated\n * @throws AuthenticationError if user is not authenticated\n */\n public async getUserId(): Promise<string | null> {\n if (!(await this.isAuthenticated())) {\n return null;\n }\n if (!this.userToken?.user_id) {\n return null;\n }\n return this.userToken.user_id;\n }\n\n /**\n * Get list of supported brokers\n * @returns Promise with array of broker information\n */\n public async getBrokerList(): Promise<BrokerInfo[]> {\n // if (!this.isAuthenticated()) {\n // throw new AuthenticationError('Not authenticated');\n // }\n\n const response = await this.apiClient.getBrokerList();\n const baseUrl = this.baseUrl.replace('/api/v1', ''); // Remove /api/v1 to get the base URL\n\n // Transform the broker list to include full logo URLs\n return response.response_data.map((broker: BrokerInfo) => ({\n ...broker,\n logo_path: broker.logo_path ? `${baseUrl}${broker.logo_path}` : '',\n }));\n }\n\n /**\n * Get broker connections\n * @returns Promise with array of broker connections\n * @throws AuthenticationError if user is not authenticated\n */\n public async getBrokerConnections(): Promise<BrokerConnection[]> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n const response = await this.apiClient.getBrokerConnections();\n if (response.status_code !== 200) {\n throw new Error(response.message || 'Failed to retrieve broker connections');\n }\n return response.response_data;\n }\n\n // Abstract convenience methods\n /**\n * Get only open positions\n * @returns Promise with array of open positions\n */\n public async getOpenPositions(): Promise<BrokerDataPosition[]> {\n return this.getAllPositions({ position_status: 'open' });\n }\n\n /**\n * Get only filled orders\n * @returns Promise with array of filled orders\n */\n public async getFilledOrders(): Promise<BrokerDataOrder[]> {\n return this.getAllOrders({ status: 'filled' });\n }\n\n /**\n * Get only pending orders\n * @returns Promise with array of pending orders\n */\n public async getPendingOrders(): Promise<BrokerDataOrder[]> {\n return this.getAllOrders({ status: 'pending' });\n }\n\n /**\n * Get only active accounts\n * @returns Promise with array of active accounts\n */\n public async getActiveAccounts(): Promise<BrokerDataAccount[]> {\n return this.getAllAccounts({ status: 'active' });\n }\n\n /**\n * Get orders for a specific symbol\n * @param symbol - The symbol to filter by\n * @returns Promise with array of orders for the symbol\n */\n public async getOrdersBySymbol(symbol: string): Promise<BrokerDataOrder[]> {\n return this.getAllOrders({ symbol });\n }\n\n /**\n * Get positions for a specific symbol\n * @param symbol - The symbol to filter by\n * @returns Promise with array of positions for the symbol\n */\n public async getPositionsBySymbol(symbol: string): Promise<BrokerDataPosition[]> {\n return this.getAllPositions({ symbol });\n }\n\n /**\n * Get orders for a specific broker\n * @param brokerId - The broker ID to filter by\n * @returns Promise with array of orders for the broker\n */\n public async getOrdersByBroker(brokerId: string): Promise<BrokerDataOrder[]> {\n return this.getAllOrders({ broker_id: brokerId });\n }\n\n /**\n * Get positions for a specific broker\n * @param brokerId - The broker ID to filter by\n * @returns Promise with array of positions for the broker\n */\n public async getPositionsByBroker(brokerId: string): Promise<BrokerDataPosition[]> {\n return this.getAllPositions({ broker_id: brokerId });\n }\n\n // Pagination methods\n\n\n\n\n\n\n\n /**\n * Get all orders across all pages (convenience method)\n * @param filter - Optional filter parameters\n * @returns Promise with all orders\n */\n public async getAllOrders(filter?: OrdersFilter): Promise<BrokerDataOrder[]> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n\n const allData: BrokerDataOrder[] = [];\n let currentResult = await this.apiClient.getBrokerOrdersPage(1, 100, filter);\n\n while (currentResult) {\n allData.push(...currentResult.data);\n if (!currentResult.hasNext) break;\n const nextResult = await currentResult.nextPage();\n if (!nextResult) break;\n currentResult = nextResult;\n }\n\n return allData;\n }\n\n /**\n * Get all positions across all pages (convenience method)\n * @param filter - Optional filter parameters\n * @returns Promise with all positions\n */\n public async getAllPositions(filter?: PositionsFilter): Promise<BrokerDataPosition[]> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n\n const allData: BrokerDataPosition[] = [];\n let currentResult = await this.apiClient.getBrokerPositionsPage(1, 100, filter);\n\n while (currentResult) {\n allData.push(...currentResult.data);\n if (!currentResult.hasNext) break;\n const nextResult = await currentResult.nextPage();\n if (!nextResult) break;\n currentResult = nextResult;\n }\n\n return allData;\n }\n\n /**\n * Get all accounts across all pages (convenience method)\n * @param filter - Optional filter parameters\n * @returns Promise with all accounts\n */\n public async getAllAccounts(filter?: AccountsFilter): Promise<BrokerDataAccount[]> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n\n const allData: BrokerDataAccount[] = [];\n let currentResult = await this.apiClient.getBrokerAccountsPage(1, 100, filter);\n\n while (currentResult) {\n allData.push(...currentResult.data);\n if (!currentResult.hasNext) break;\n const nextResult = await currentResult.nextPage();\n if (!nextResult) break;\n currentResult = nextResult;\n }\n\n return allData;\n }\n\n public async getAllBalances(filter?: BalancesFilter): Promise<BrokerBalance[]> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n\n const allData: BrokerBalance[] = [];\n let currentResult = await this.apiClient.getBrokerBalancesPage(1, 100, filter);\n\n while (currentResult) {\n allData.push(...currentResult.data);\n if (!currentResult.hasNext) break;\n const nextResult = await currentResult.nextPage();\n if (!nextResult) break;\n currentResult = nextResult;\n }\n\n return allData;\n }\n\n /**\n * Register session management (but don't auto-cleanup for 24-hour sessions)\n */\n private registerSessionCleanup(): void {\n // Only cleanup on actual page unload (not visibility changes)\n // This prevents sessions from being closed when users switch tabs or apps\n window.addEventListener('beforeunload', this.handleSessionCleanup.bind(this));\n\n // Handle visibility changes for keep-alive management (but don't complete sessions)\n document.addEventListener('visibilitychange', this.handleVisibilityChange.bind(this));\n\n // Start session keep-alive mechanism\n this.startSessionKeepAlive();\n }\n\n /**\n * Start the session keep-alive mechanism\n */\n private startSessionKeepAlive(): void {\n if (this.sessionKeepAliveInterval) {\n clearInterval(this.sessionKeepAliveInterval);\n }\n\n this.sessionKeepAliveInterval = setInterval(() => {\n this.validateSessionKeepAlive();\n }, this.SESSION_KEEP_ALIVE_INTERVAL);\n\n this.logger.debug('Session keep-alive started', this.buildLoggerExtra('startSessionKeepAlive', { interval_ms: this.SESSION_KEEP_ALIVE_INTERVAL }));\n }\n\n /**\n * Stop the session keep-alive mechanism\n */\n private stopSessionKeepAlive(): void {\n if (this.sessionKeepAliveInterval) {\n clearInterval(this.sessionKeepAliveInterval);\n this.sessionKeepAliveInterval = null;\n this.logger.debug('Session keep-alive stopped', this.buildLoggerExtra('stopSessionKeepAlive'));\n }\n }\n\n /**\n * Validate session for keep-alive purposes and handle automatic refresh\n */\n private async validateSessionKeepAlive(): Promise<void> {\n if (!this.sessionId || !(await this.isAuthenticated())) {\n this.logger.debug('Session keep-alive skipped - no active session', this.buildLoggerExtra('validateSessionKeepAlive'));\n return;\n }\n\n try {\n this.logger.debug('Validating session for keep-alive', this.buildLoggerExtra('validateSessionKeepAlive', { session_id: this.sessionId }));\n\n // Check if we need to refresh the session (at 16 hours)\n if (this.shouldRefreshSession()) {\n await this.refreshSessionAutomatically();\n return;\n }\n\n // Session keep-alive - assume session is active if we have a session ID\n this.logger.debug('Session keep-alive successful', this.buildLoggerExtra('validateSessionKeepAlive', { session_id: this.sessionId }));\n this.currentSessionState = 'active';\n } catch (error) {\n this.logger.exception('Session keep-alive error', error, this.buildLoggerExtra('validateSessionKeepAlive', { session_id: this.sessionId }));\n // Don't throw errors during keep-alive - just log them\n }\n }\n\n /**\n * Check if the session should be refreshed (after 16 hours)\n */\n private shouldRefreshSession(): boolean {\n if (!this.sessionStartTime) {\n return false;\n }\n\n const sessionAgeHours = (Date.now() - this.sessionStartTime) / (1000 * 60 * 60);\n const hoursUntilRefresh = this.SESSION_REFRESH_BUFFER_HOURS - sessionAgeHours;\n\n if (hoursUntilRefresh <= 0) {\n this.logger.info('Session age threshold exceeded - triggering refresh', this.buildLoggerExtra('shouldRefreshSession', {\n session_age_hours: Number(sessionAgeHours.toFixed(1)),\n }));\n return true;\n }\n\n // Log when refresh will occur (every 5 minutes during keep-alive)\n if (hoursUntilRefresh <= 1) {\n this.logger.debug('Session refresh scheduled', this.buildLoggerExtra('shouldRefreshSession', {\n hours_until_refresh: Number(hoursUntilRefresh.toFixed(1)),\n }));\n }\n\n return false;\n }\n\n /**\n * Automatically refresh the session to extend its lifetime\n */\n private async refreshSessionAutomatically(): Promise<void> {\n if (!this.sessionId) {\n this.logger.warn('Cannot refresh session - missing session ID', this.buildLoggerExtra('refreshSessionAutomatically'));\n return;\n }\n\n try {\n this.logger.info('Automatically refreshing session', this.buildLoggerExtra('refreshSessionAutomatically', {\n session_id: this.sessionId,\n }));\n const response = await this.apiClient.refreshSession();\n\n if (response.success) {\n this.logger.info('Session automatically refreshed successfully', this.buildLoggerExtra('refreshSessionAutomatically', {\n session_id: this.sessionId,\n status: response.response_data.status,\n expires_at: response.response_data.expires_at,\n }));\n this.currentSessionState = response.response_data.status;\n\n // Update session start time to prevent immediate re-refresh\n this.sessionStartTime = Date.now();\n } else {\n this.logger.warn('Automatic session refresh failed', this.buildLoggerExtra('refreshSessionAutomatically', {\n session_id: this.sessionId,\n }));\n }\n } catch (error) {\n this.logger.exception('Automatic session refresh error', error, this.buildLoggerExtra('refreshSessionAutomatically', {\n session_id: this.sessionId,\n }));\n // Don't throw errors during automatic refresh - just log them\n }\n }\n\n /**\n * Handle session cleanup when page is unloading\n */\n private async handleSessionCleanup(): Promise<void> {\n this.stopSessionKeepAlive();\n if (this.sessionId) {\n await this.completeSession(this.sessionId);\n }\n }\n\n /**\n * Handle visibility change (mobile browsers)\n * Note: We don't complete sessions on visibility change for 24-hour sessions\n */\n private async handleVisibilityChange(): Promise<void> {\n // For 24-hour sessions, we don't want to complete sessions on visibility changes\n // This prevents sessions from being closed when users switch tabs or apps\n this.logger.debug('Page visibility changed', this.buildLoggerExtra('handleVisibilityChange', {\n visibility_state: document.visibilityState,\n }));\n\n // Only pause keep-alive when hidden, but don't complete the session\n if (document.visibilityState === 'hidden') {\n this.stopSessionKeepAlive();\n } else if (document.visibilityState === 'visible') {\n // Restart keep-alive when page becomes visible again\n this.startSessionKeepAlive();\n }\n }\n\n /**\n * Complete the session by calling the API\n * @param sessionId - The session ID to complete\n */\n private async completeSession(sessionId: string): Promise<void> {\n try {\n // Check if we're in mock mode (check if apiClient is a mock client)\n const isMockMode =\n this.apiClient &&\n typeof this.apiClient.isMockClient === 'function' &&\n this.apiClient.isMockClient();\n\n if (isMockMode) {\n // Mock the completion response\n this.logger.debug('Mock session completion', this.buildLoggerExtra('completeSession', { session_id: sessionId }));\n return;\n }\n\n // Real API call\n const response = await fetch(`${this.baseUrl}/portal/${sessionId}/complete`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (response.ok) {\n this.logger.info('Session completed successfully', this.buildLoggerExtra('completeSession', { session_id: sessionId }));\n } else {\n this.logger.warn('Failed to complete session', this.buildLoggerExtra('completeSession', {\n session_id: sessionId,\n response_status: response.status,\n }));\n }\n } catch (error) {\n // Silent failure - don't throw errors during cleanup\n this.logger.exception('Session cleanup failed', error, this.buildLoggerExtra('completeSession', { session_id: sessionId }));\n }\n }\n\n /**\n * Disconnect a company from a broker connection\n * @param connectionId - The connection ID to disconnect\n * @returns Promise with disconnect response\n * @throws AuthenticationError if user is not authenticated\n */\n public async disconnectCompany(connectionId: string): Promise<DisconnectCompanyResponse> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated. Please connect a broker first.');\n }\n if (!this.userToken?.user_id) {\n throw new AuthenticationError('No user ID available. Please connect a broker first.');\n }\n\n return this.apiClient.disconnectCompany(connectionId);\n }\n\n /**\n * Get order fills for a specific order\n * @param orderId - The order ID\n * @param filter - Optional filter parameters\n * @returns Promise with order fills response\n */\n public async getOrderFills(\n orderId: string,\n filter?: import('../../types/api/broker').OrderFillsFilter\n ): Promise<import('../../types/api/broker').OrderFill[]> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n const response = await this.apiClient.getOrderFills(orderId, filter);\n return response.response_data;\n }\n\n /**\n * Get order events for a specific order\n * @param orderId - The order ID\n * @param filter - Optional filter parameters\n * @returns Promise with order events response\n */\n public async getOrderEvents(\n orderId: string,\n filter?: import('../../types/api/broker').OrderEventsFilter\n ): Promise<import('../../types/api/broker').OrderEvent[]> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n const response = await this.apiClient.getOrderEvents(orderId, filter);\n return response.response_data;\n }\n\n /**\n * Get order groups\n * @param filter - Optional filter parameters\n * @returns Promise with order groups response\n */\n public async getOrderGroups(\n filter?: import('../../types/api/broker').OrderGroupsFilter\n ): Promise<import('../../types/api/broker').OrderGroup[]> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n const response = await this.apiClient.getOrderGroups(filter);\n return response.response_data;\n }\n\n /**\n * Get position lots (tax lots for positions)\n * @param filter - Optional filter parameters\n * @returns Promise with position lots response\n */\n public async getPositionLots(\n filter?: import('../../types/api/broker').PositionLotsFilter\n ): Promise<import('../../types/api/broker').PositionLot[]> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n const response = await this.apiClient.getPositionLots(filter);\n return response.response_data;\n }\n\n /**\n * Get position lot fills for a specific lot\n * @param lotId - The position lot ID\n * @param filter - Optional filter parameters\n * @returns Promise with position lot fills response\n */\n public async getPositionLotFills(\n lotId: string,\n filter?: import('../../types/api/broker').PositionLotFillsFilter\n ): Promise<import('../../types/api/broker').PositionLotFill[]> {\n if (!(await this.isAuthenticated())) {\n throw new AuthenticationError('User is not authenticated');\n }\n const response = await this.apiClient.getPositionLotFills(lotId, filter);\n return response.response_data;\n }\n\n // Duplicate getBalances method removed - using the paginated version above\n\n}\n"],"names":["uuidv4"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/generated/utils/request-id.ts","../src/generated/utils/retry.ts","../src/generated/utils/logger.ts","../src/generated/utils/error-handling.ts","../src/generated/utils/cache.ts","../src/generated/utils/interceptors.ts","../src/generated/utils/response-utils.ts","../src/generated/utils/enum-coercion.ts","../src/generated/utils/plain-object.ts","../src/generated/models/account-status.ts","../src/generated/models/broker-data-account-type-enum.ts","../src/generated/models/broker-data-asset-type-enum.ts","../src/generated/models/broker-data-order-side-enum.ts","../src/generated/models/broker-data-order-status-enum.ts","../src/generated/models/broker-data-position-status-enum.ts","../src/generated/models/fdxaccount-status.ts","../src/generated/models/fdxaccount-type.ts","../src/generated/models/fdxasset-type.ts","../src/generated/models/fdxbalance-type.ts","../src/generated/models/fdxorder-class.ts","../src/generated/models/fdxorder-event-type.ts","../src/generated/models/fdxorder-group-type.ts","../src/generated/models/fdxorder-side.ts","../src/generated/models/fdxorder-status.ts","../src/generated/models/fdxorder-type.ts","../src/generated/models/fdxposition-side.ts","../src/generated/models/fdxposition-status.ts","../src/generated/models/fdxsecurity-id-type.ts","../src/generated/models/fdxtime-in-force.ts","../src/generated/models/session-status.ts","../src/generated/wrappers/brokers.ts","../src/generated/wrappers/company.ts","../src/generated/wrappers/session.ts","../src/generated/utils/validation.ts","../src/generated/utils/url-utils.ts","../src/generated/utils/events.ts","../src/generated/config.ts","../src/generated/configuration.ts","../src/generated/portal/PortalUI.ts","../src/generated/base.ts","../src/generated/common.ts","../src/generated/api/session-api.ts","../src/generated/api/brokers-api.ts","../src/generated/api/company-api.ts","../src/generated/FinaticConnect.ts","../src/custom/FinaticConnect.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["_ValidationError","FinaticConnect","GeneratedFinaticConnect"],"mappings":"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"}