@finatic/client 0.0.142 → 0.9.0
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.
- package/dist/custom/FinaticConnect.d.ts +19 -0
- package/dist/custom/FinaticConnect.d.ts.map +1 -0
- package/dist/custom/FinaticConnect.js +24 -0
- package/dist/custom/FinaticConnect.js.map +1 -0
- package/dist/custom/index.d.ts +8 -0
- package/dist/custom/index.d.ts.map +1 -0
- package/dist/custom/index.js +20 -0
- package/dist/custom/index.js.map +1 -0
- package/dist/custom/utils/logger-patch.d.ts +13 -0
- package/dist/custom/utils/logger-patch.d.ts.map +1 -0
- package/dist/custom/utils/logger-patch.js +72 -0
- package/dist/custom/utils/logger-patch.js.map +1 -0
- package/dist/custom/wrappers/brokers.d.ts +17 -0
- package/dist/custom/wrappers/brokers.d.ts.map +1 -0
- package/dist/custom/wrappers/brokers.js +22 -0
- package/dist/custom/wrappers/brokers.js.map +1 -0
- package/dist/custom/wrappers/market-data.d.ts +13 -0
- package/dist/custom/wrappers/market-data.d.ts.map +1 -0
- package/dist/custom/wrappers/market-data.js +19 -0
- package/dist/custom/wrappers/market-data.js.map +1 -0
- package/dist/custom/wrappers/session.d.ts +16 -0
- package/dist/custom/wrappers/session.d.ts.map +1 -0
- package/dist/custom/wrappers/session.js +21 -0
- package/dist/custom/wrappers/session.js.map +1 -0
- package/dist/generated/FinaticConnect.d.ts +282 -0
- package/dist/generated/FinaticConnect.d.ts.map +1 -0
- package/dist/generated/FinaticConnect.js +890 -0
- package/dist/generated/FinaticConnect.js.map +1 -0
- package/dist/generated/api/brokers-api.d.ts +1126 -0
- package/dist/generated/api/brokers-api.d.ts.map +1 -0
- package/dist/generated/api/brokers-api.js +1430 -0
- package/dist/generated/api/brokers-api.js.map +1 -0
- package/dist/generated/api/market-data-api.d.ts +118 -0
- package/dist/generated/api/market-data-api.d.ts.map +1 -0
- package/dist/generated/api/market-data-api.js +155 -0
- package/dist/generated/api/market-data-api.js.map +1 -0
- package/dist/generated/api/session-api.d.ts +395 -0
- package/dist/generated/api/session-api.d.ts.map +1 -0
- package/dist/generated/api/session-api.js +577 -0
- package/dist/generated/api/session-api.js.map +1 -0
- package/dist/generated/api.d.ts +14 -0
- package/dist/generated/api.d.ts.map +1 -0
- package/dist/generated/api.js +31 -0
- package/dist/generated/api.js.map +1 -0
- package/dist/generated/base.d.ts +43 -0
- package/dist/generated/base.d.ts.map +1 -0
- package/dist/generated/base.js +48 -0
- package/dist/generated/base.js.map +1 -0
- package/dist/generated/common.d.ts +29 -0
- package/dist/generated/common.d.ts.map +1 -0
- package/dist/generated/common.js +110 -0
- package/dist/generated/common.js.map +1 -0
- package/dist/generated/config.d.ts +89 -0
- package/dist/generated/config.d.ts.map +1 -0
- package/dist/generated/config.js +85 -0
- package/dist/generated/config.js.map +1 -0
- package/dist/generated/configuration.d.ts +99 -0
- package/dist/generated/configuration.d.ts.map +1 -0
- package/dist/generated/configuration.js +50 -0
- package/dist/generated/configuration.js.map +1 -0
- package/dist/generated/models/account-status.d.ts +16 -0
- package/dist/generated/models/account-status.d.ts.map +1 -0
- package/dist/generated/models/account-status.js +22 -0
- package/dist/generated/models/account-status.js.map +1 -0
- package/dist/generated/models/account-type.d.ts +19 -0
- package/dist/generated/models/account-type.d.ts.map +1 -0
- package/dist/generated/models/account-type.js +25 -0
- package/dist/generated/models/account-type.js.map +1 -0
- package/dist/generated/models/accountnumber.d.ts +14 -0
- package/dist/generated/models/accountnumber.d.ts.map +1 -0
- package/dist/generated/models/accountnumber.js +16 -0
- package/dist/generated/models/accountnumber.js.map +1 -0
- package/dist/generated/models/accounts.d.ts +34 -0
- package/dist/generated/models/accounts.d.ts.map +1 -0
- package/dist/generated/models/accounts.js +16 -0
- package/dist/generated/models/accounts.js.map +1 -0
- package/dist/generated/models/asset-type.d.ts +18 -0
- package/dist/generated/models/asset-type.d.ts.map +1 -0
- package/dist/generated/models/asset-type.js +24 -0
- package/dist/generated/models/asset-type.js.map +1 -0
- package/dist/generated/models/balances.d.ts +28 -0
- package/dist/generated/models/balances.d.ts.map +1 -0
- package/dist/generated/models/balances.js +16 -0
- package/dist/generated/models/balances.js.map +1 -0
- package/dist/generated/models/broker-connection-request.d.ts +24 -0
- package/dist/generated/models/broker-connection-request.d.ts.map +1 -0
- package/dist/generated/models/broker-connection-request.js +16 -0
- package/dist/generated/models/broker-connection-request.js.map +1 -0
- package/dist/generated/models/broker-connection-update-request.d.ts +22 -0
- package/dist/generated/models/broker-connection-update-request.d.ts.map +1 -0
- package/dist/generated/models/broker-connection-update-request.js +16 -0
- package/dist/generated/models/broker-connection-update-request.js.map +1 -0
- package/dist/generated/models/broker-info.d.ts +29 -0
- package/dist/generated/models/broker-info.d.ts.map +1 -0
- package/dist/generated/models/broker-info.js +16 -0
- package/dist/generated/models/broker-info.js.map +1 -0
- package/dist/generated/models/broker-permissions.d.ts +25 -0
- package/dist/generated/models/broker-permissions.d.ts.map +1 -0
- package/dist/generated/models/broker-permissions.js +16 -0
- package/dist/generated/models/broker-permissions.js.map +1 -0
- package/dist/generated/models/cancel-order-api-v1-brokers-orders-order-id-delete-request.d.ts +26 -0
- package/dist/generated/models/cancel-order-api-v1-brokers-orders-order-id-delete-request.d.ts.map +1 -0
- package/dist/generated/models/cancel-order-api-v1-brokers-orders-order-id-delete-request.js +16 -0
- package/dist/generated/models/cancel-order-api-v1-brokers-orders-order-id-delete-request.js.map +1 -0
- package/dist/generated/models/day-tif.d.ts +21 -0
- package/dist/generated/models/day-tif.d.ts.map +1 -0
- package/dist/generated/models/day-tif.js +21 -0
- package/dist/generated/models/day-tif.js.map +1 -0
- package/dist/generated/models/direct-auth-request.d.ts +25 -0
- package/dist/generated/models/direct-auth-request.d.ts.map +1 -0
- package/dist/generated/models/direct-auth-request.js +16 -0
- package/dist/generated/models/direct-auth-request.js.map +1 -0
- package/dist/generated/models/disconnect-action-result.d.ts +20 -0
- package/dist/generated/models/disconnect-action-result.d.ts.map +1 -0
- package/dist/generated/models/disconnect-action-result.js +16 -0
- package/dist/generated/models/disconnect-action-result.js.map +1 -0
- package/dist/generated/models/finatic-apiwarning.d.ts +24 -0
- package/dist/generated/models/finatic-apiwarning.d.ts.map +1 -0
- package/dist/generated/models/finatic-apiwarning.js +16 -0
- package/dist/generated/models/finatic-apiwarning.js.map +1 -0
- package/dist/generated/models/finatic-error.d.ts +26 -0
- package/dist/generated/models/finatic-error.d.ts.map +1 -0
- package/dist/generated/models/finatic-error.js +16 -0
- package/dist/generated/models/finatic-error.js.map +1 -0
- package/dist/generated/models/finatic-response-disconnect-action-result.d.ts +38 -0
- package/dist/generated/models/finatic-response-disconnect-action-result.d.ts.map +1 -0
- package/dist/generated/models/finatic-response-disconnect-action-result.js +16 -0
- package/dist/generated/models/finatic-response-disconnect-action-result.js.map +1 -0
- package/dist/generated/models/finatic-response-list-accounts.d.ts +38 -0
- package/dist/generated/models/finatic-response-list-accounts.d.ts.map +1 -0
- package/dist/generated/models/finatic-response-list-accounts.js +16 -0
- package/dist/generated/models/finatic-response-list-accounts.js.map +1 -0
- package/dist/generated/models/finatic-response-list-balances.d.ts +38 -0
- package/dist/generated/models/finatic-response-list-balances.d.ts.map +1 -0
- package/dist/generated/models/finatic-response-list-balances.js +16 -0
- package/dist/generated/models/finatic-response-list-balances.js.map +1 -0
- package/dist/generated/models/finatic-response-list-broker-info.d.ts +38 -0
- package/dist/generated/models/finatic-response-list-broker-info.d.ts.map +1 -0
- package/dist/generated/models/finatic-response-list-broker-info.js +16 -0
- package/dist/generated/models/finatic-response-list-broker-info.js.map +1 -0
- package/dist/generated/models/finatic-response-list-dict.d.ts +41 -0
- package/dist/generated/models/finatic-response-list-dict.d.ts.map +1 -0
- package/dist/generated/models/finatic-response-list-dict.js +16 -0
- package/dist/generated/models/finatic-response-list-dict.js.map +1 -0
- package/dist/generated/models/finatic-response-list-futures-historical-row.d.ts +38 -0
- package/dist/generated/models/finatic-response-list-futures-historical-row.d.ts.map +1 -0
- package/dist/generated/models/finatic-response-list-futures-historical-row.js +16 -0
- package/dist/generated/models/finatic-response-list-futures-historical-row.js.map +1 -0
- package/dist/generated/models/finatic-response-list-order-event-response.d.ts +38 -0
- package/dist/generated/models/finatic-response-list-order-event-response.d.ts.map +1 -0
- package/dist/generated/models/finatic-response-list-order-event-response.js +16 -0
- package/dist/generated/models/finatic-response-list-order-event-response.js.map +1 -0
- package/dist/generated/models/finatic-response-list-order-fill-response.d.ts +38 -0
- package/dist/generated/models/finatic-response-list-order-fill-response.d.ts.map +1 -0
- package/dist/generated/models/finatic-response-list-order-fill-response.js +16 -0
- package/dist/generated/models/finatic-response-list-order-fill-response.js.map +1 -0
- package/dist/generated/models/finatic-response-list-order-group-response.d.ts +38 -0
- package/dist/generated/models/finatic-response-list-order-group-response.d.ts.map +1 -0
- package/dist/generated/models/finatic-response-list-order-group-response.js +16 -0
- package/dist/generated/models/finatic-response-list-order-group-response.js.map +1 -0
- package/dist/generated/models/finatic-response-list-order-response.d.ts +38 -0
- package/dist/generated/models/finatic-response-list-order-response.d.ts.map +1 -0
- package/dist/generated/models/finatic-response-list-order-response.js +16 -0
- package/dist/generated/models/finatic-response-list-order-response.js.map +1 -0
- package/dist/generated/models/finatic-response-list-position-lot-fill-response.d.ts +38 -0
- package/dist/generated/models/finatic-response-list-position-lot-fill-response.d.ts.map +1 -0
- package/dist/generated/models/finatic-response-list-position-lot-fill-response.js +16 -0
- package/dist/generated/models/finatic-response-list-position-lot-fill-response.js.map +1 -0
- package/dist/generated/models/finatic-response-list-position-lot-response.d.ts +38 -0
- package/dist/generated/models/finatic-response-list-position-lot-response.d.ts.map +1 -0
- package/dist/generated/models/finatic-response-list-position-lot-response.js +16 -0
- package/dist/generated/models/finatic-response-list-position-lot-response.js.map +1 -0
- package/dist/generated/models/finatic-response-list-position-response.d.ts +38 -0
- package/dist/generated/models/finatic-response-list-position-response.d.ts.map +1 -0
- package/dist/generated/models/finatic-response-list-position-response.js +16 -0
- package/dist/generated/models/finatic-response-list-position-response.js.map +1 -0
- package/dist/generated/models/finatic-response-list-user-broker-connections.d.ts +38 -0
- package/dist/generated/models/finatic-response-list-user-broker-connections.d.ts.map +1 -0
- package/dist/generated/models/finatic-response-list-user-broker-connections.js +16 -0
- package/dist/generated/models/finatic-response-list-user-broker-connections.js.map +1 -0
- package/dist/generated/models/finatic-response-order-action-result.d.ts +38 -0
- package/dist/generated/models/finatic-response-order-action-result.d.ts.map +1 -0
- package/dist/generated/models/finatic-response-order-action-result.js +16 -0
- package/dist/generated/models/finatic-response-order-action-result.js.map +1 -0
- package/dist/generated/models/finatic-response-portal-url-response.d.ts +18 -0
- package/dist/generated/models/finatic-response-portal-url-response.d.ts.map +1 -0
- package/dist/generated/models/finatic-response-portal-url-response.js +16 -0
- package/dist/generated/models/finatic-response-portal-url-response.js.map +1 -0
- package/dist/generated/models/finatic-response-session-response-data.d.ts +18 -0
- package/dist/generated/models/finatic-response-session-response-data.d.ts.map +1 -0
- package/dist/generated/models/finatic-response-session-response-data.js +16 -0
- package/dist/generated/models/finatic-response-session-response-data.js.map +1 -0
- package/dist/generated/models/finatic-response-session-user-response.d.ts +18 -0
- package/dist/generated/models/finatic-response-session-user-response.d.ts.map +1 -0
- package/dist/generated/models/finatic-response-session-user-response.js +16 -0
- package/dist/generated/models/finatic-response-session-user-response.js.map +1 -0
- package/dist/generated/models/finatic-response-test-webhook-response.d.ts +18 -0
- package/dist/generated/models/finatic-response-test-webhook-response.d.ts.map +1 -0
- package/dist/generated/models/finatic-response-test-webhook-response.js +16 -0
- package/dist/generated/models/finatic-response-test-webhook-response.js.map +1 -0
- package/dist/generated/models/finatic-response-token-data.d.ts +18 -0
- package/dist/generated/models/finatic-response-token-data.d.ts.map +1 -0
- package/dist/generated/models/finatic-response-token-data.js +16 -0
- package/dist/generated/models/finatic-response-token-data.js.map +1 -0
- package/dist/generated/models/finatic-response-token-response-data.d.ts +18 -0
- package/dist/generated/models/finatic-response-token-response-data.d.ts.map +1 -0
- package/dist/generated/models/finatic-response-token-response-data.js +16 -0
- package/dist/generated/models/finatic-response-token-response-data.js.map +1 -0
- package/dist/generated/models/finatic-response-user-broker-connections.d.ts +34 -0
- package/dist/generated/models/finatic-response-user-broker-connections.d.ts.map +1 -0
- package/dist/generated/models/finatic-response-user-broker-connections.js +16 -0
- package/dist/generated/models/finatic-response-user-broker-connections.js.map +1 -0
- package/dist/generated/models/finaticapi-api-v1-routers-session-session-router-test-webhook-request.d.ts +24 -0
- package/dist/generated/models/finaticapi-api-v1-routers-session-session-router-test-webhook-request.d.ts.map +1 -0
- package/dist/generated/models/finaticapi-api-v1-routers-session-session-router-test-webhook-request.js +16 -0
- package/dist/generated/models/finaticapi-api-v1-routers-session-session-router-test-webhook-request.js.map +1 -0
- package/dist/generated/models/finaticapi-core-standard-models-abstract-responses-finatic-response.d.ts +40 -0
- package/dist/generated/models/finaticapi-core-standard-models-abstract-responses-finatic-response.d.ts.map +1 -0
- package/dist/generated/models/finaticapi-core-standard-models-abstract-responses-finatic-response.js +16 -0
- package/dist/generated/models/finaticapi-core-standard-models-abstract-responses-finatic-response.js.map +1 -0
- package/dist/generated/models/finaticapi-core-standard-models-finatic-response.d.ts +20 -0
- package/dist/generated/models/finaticapi-core-standard-models-finatic-response.d.ts.map +1 -0
- package/dist/generated/models/finaticapi-core-standard-models-finatic-response.js +16 -0
- package/dist/generated/models/finaticapi-core-standard-models-finatic-response.js.map +1 -0
- package/dist/generated/models/foktif.d.ts +21 -0
- package/dist/generated/models/foktif.d.ts.map +1 -0
- package/dist/generated/models/foktif.js +21 -0
- package/dist/generated/models/foktif.js.map +1 -0
- package/dist/generated/models/futures-historical-row.d.ts +27 -0
- package/dist/generated/models/futures-historical-row.d.ts.map +1 -0
- package/dist/generated/models/futures-historical-row.js +16 -0
- package/dist/generated/models/futures-historical-row.js.map +1 -0
- package/dist/generated/models/gtctif.d.ts +21 -0
- package/dist/generated/models/gtctif.d.ts.map +1 -0
- package/dist/generated/models/gtctif.js +21 -0
- package/dist/generated/models/gtctif.js.map +1 -0
- package/dist/generated/models/gtdtif.d.ts +25 -0
- package/dist/generated/models/gtdtif.d.ts.map +1 -0
- package/dist/generated/models/gtdtif.js +21 -0
- package/dist/generated/models/gtdtif.js.map +1 -0
- package/dist/generated/models/httpvalidation-error.d.ts +16 -0
- package/dist/generated/models/httpvalidation-error.d.ts.map +1 -0
- package/dist/generated/models/httpvalidation-error.js +16 -0
- package/dist/generated/models/httpvalidation-error.js.map +1 -0
- package/dist/generated/models/index.d.ts +108 -0
- package/dist/generated/models/index.d.ts.map +1 -0
- package/dist/generated/models/index.js +125 -0
- package/dist/generated/models/index.js.map +1 -0
- package/dist/generated/models/ioctif.d.ts +21 -0
- package/dist/generated/models/ioctif.d.ts.map +1 -0
- package/dist/generated/models/ioctif.js +21 -0
- package/dist/generated/models/ioctif.js.map +1 -0
- package/dist/generated/models/limit-order-modify-query-params.d.ts +32 -0
- package/dist/generated/models/limit-order-modify-query-params.d.ts.map +1 -0
- package/dist/generated/models/limit-order-modify-query-params.js +21 -0
- package/dist/generated/models/limit-order-modify-query-params.js.map +1 -0
- package/dist/generated/models/market-order-modify-query-params.d.ts +31 -0
- package/dist/generated/models/market-order-modify-query-params.d.ts.map +1 -0
- package/dist/generated/models/market-order-modify-query-params.js +21 -0
- package/dist/generated/models/market-order-modify-query-params.js.map +1 -0
- package/dist/generated/models/modify-order-api-v1-brokers-orders-order-id-patch-request.d.ts +26 -0
- package/dist/generated/models/modify-order-api-v1-brokers-orders-order-id-patch-request.d.ts.map +1 -0
- package/dist/generated/models/modify-order-api-v1-brokers-orders-order-id-patch-request.js +16 -0
- package/dist/generated/models/modify-order-api-v1-brokers-orders-order-id-patch-request.js.map +1 -0
- package/dist/generated/models/ninja-trader-limit-order-modify-query-params.d.ts +38 -0
- package/dist/generated/models/ninja-trader-limit-order-modify-query-params.d.ts.map +1 -0
- package/dist/generated/models/ninja-trader-limit-order-modify-query-params.js +21 -0
- package/dist/generated/models/ninja-trader-limit-order-modify-query-params.js.map +1 -0
- package/dist/generated/models/ninja-trader-limit-order-place-query-params.d.ts +44 -0
- package/dist/generated/models/ninja-trader-limit-order-place-query-params.d.ts.map +1 -0
- package/dist/generated/models/ninja-trader-limit-order-place-query-params.js +30 -0
- package/dist/generated/models/ninja-trader-limit-order-place-query-params.js.map +1 -0
- package/dist/generated/models/ninja-trader-market-order-modify-query-params.d.ts +37 -0
- package/dist/generated/models/ninja-trader-market-order-modify-query-params.d.ts.map +1 -0
- package/dist/generated/models/ninja-trader-market-order-modify-query-params.js +21 -0
- package/dist/generated/models/ninja-trader-market-order-modify-query-params.js.map +1 -0
- package/dist/generated/models/ninja-trader-market-order-place-query-params.d.ts +43 -0
- package/dist/generated/models/ninja-trader-market-order-place-query-params.d.ts.map +1 -0
- package/dist/generated/models/ninja-trader-market-order-place-query-params.js +30 -0
- package/dist/generated/models/ninja-trader-market-order-place-query-params.js.map +1 -0
- package/dist/generated/models/ninja-trader-order-cancel-query-params.d.ts +26 -0
- package/dist/generated/models/ninja-trader-order-cancel-query-params.d.ts.map +1 -0
- package/dist/generated/models/ninja-trader-order-cancel-query-params.js +16 -0
- package/dist/generated/models/ninja-trader-order-cancel-query-params.js.map +1 -0
- package/dist/generated/models/ninja-trader-order-cancel-request.d.ts +21 -0
- package/dist/generated/models/ninja-trader-order-cancel-request.d.ts.map +1 -0
- package/dist/generated/models/ninja-trader-order-cancel-request.js +21 -0
- package/dist/generated/models/ninja-trader-order-cancel-request.js.map +1 -0
- package/dist/generated/models/ninja-trader-order-modify-request.d.ts +21 -0
- package/dist/generated/models/ninja-trader-order-modify-request.d.ts.map +1 -0
- package/dist/generated/models/ninja-trader-order-modify-request.js +21 -0
- package/dist/generated/models/ninja-trader-order-modify-request.js.map +1 -0
- package/dist/generated/models/ninja-trader-order-place-request.d.ts +24 -0
- package/dist/generated/models/ninja-trader-order-place-request.d.ts.map +1 -0
- package/dist/generated/models/ninja-trader-order-place-request.js +21 -0
- package/dist/generated/models/ninja-trader-order-place-request.js.map +1 -0
- package/dist/generated/models/ninja-trader-stop-order-modify-query-params.d.ts +38 -0
- package/dist/generated/models/ninja-trader-stop-order-modify-query-params.d.ts.map +1 -0
- package/dist/generated/models/ninja-trader-stop-order-modify-query-params.js +21 -0
- package/dist/generated/models/ninja-trader-stop-order-modify-query-params.js.map +1 -0
- package/dist/generated/models/ninja-trader-stop-order-place-query-params.d.ts +44 -0
- package/dist/generated/models/ninja-trader-stop-order-place-query-params.d.ts.map +1 -0
- package/dist/generated/models/ninja-trader-stop-order-place-query-params.js +30 -0
- package/dist/generated/models/ninja-trader-stop-order-place-query-params.js.map +1 -0
- package/dist/generated/models/ninja-trader-trailing-stop-order-modify-query-params.d.ts +38 -0
- package/dist/generated/models/ninja-trader-trailing-stop-order-modify-query-params.d.ts.map +1 -0
- package/dist/generated/models/ninja-trader-trailing-stop-order-modify-query-params.js +21 -0
- package/dist/generated/models/ninja-trader-trailing-stop-order-modify-query-params.js.map +1 -0
- package/dist/generated/models/ninja-trader-trailing-stop-order-place-query-params.d.ts +44 -0
- package/dist/generated/models/ninja-trader-trailing-stop-order-place-query-params.d.ts.map +1 -0
- package/dist/generated/models/ninja-trader-trailing-stop-order-place-query-params.js +30 -0
- package/dist/generated/models/ninja-trader-trailing-stop-order-place-query-params.js.map +1 -0
- package/dist/generated/models/order-action-result.d.ts +21 -0
- package/dist/generated/models/order-action-result.d.ts.map +1 -0
- package/dist/generated/models/order-action-result.js +16 -0
- package/dist/generated/models/order-action-result.js.map +1 -0
- package/dist/generated/models/order-cancel-query-params.d.ts +22 -0
- package/dist/generated/models/order-cancel-query-params.d.ts.map +1 -0
- package/dist/generated/models/order-cancel-query-params.js +16 -0
- package/dist/generated/models/order-cancel-query-params.js.map +1 -0
- package/dist/generated/models/order-event-response.d.ts +25 -0
- package/dist/generated/models/order-event-response.d.ts.map +1 -0
- package/dist/generated/models/order-event-response.js +16 -0
- package/dist/generated/models/order-event-response.js.map +1 -0
- package/dist/generated/models/order-fill-response.d.ts +24 -0
- package/dist/generated/models/order-fill-response.d.ts.map +1 -0
- package/dist/generated/models/order-fill-response.js +16 -0
- package/dist/generated/models/order-fill-response.js.map +1 -0
- package/dist/generated/models/order-group-order.d.ts +24 -0
- package/dist/generated/models/order-group-order.d.ts.map +1 -0
- package/dist/generated/models/order-group-order.js +16 -0
- package/dist/generated/models/order-group-order.js.map +1 -0
- package/dist/generated/models/order-group-response.d.ts +24 -0
- package/dist/generated/models/order-group-response.d.ts.map +1 -0
- package/dist/generated/models/order-group-response.js +16 -0
- package/dist/generated/models/order-group-response.js.map +1 -0
- package/dist/generated/models/order-leg.d.ts +22 -0
- package/dist/generated/models/order-leg.d.ts.map +1 -0
- package/dist/generated/models/order-leg.js +16 -0
- package/dist/generated/models/order-leg.js.map +1 -0
- package/dist/generated/models/order-response.d.ts +27 -0
- package/dist/generated/models/order-response.d.ts.map +1 -0
- package/dist/generated/models/order-response.js +16 -0
- package/dist/generated/models/order-response.js.map +1 -0
- package/dist/generated/models/order-side.d.ts +16 -0
- package/dist/generated/models/order-side.d.ts.map +1 -0
- package/dist/generated/models/order-side.js +22 -0
- package/dist/generated/models/order-side.js.map +1 -0
- package/dist/generated/models/order-status.d.ts +23 -0
- package/dist/generated/models/order-status.d.ts.map +1 -0
- package/dist/generated/models/order-status.js +29 -0
- package/dist/generated/models/order-status.js.map +1 -0
- package/dist/generated/models/order.d.ts +28 -0
- package/dist/generated/models/order.d.ts.map +1 -0
- package/dist/generated/models/order.js +16 -0
- package/dist/generated/models/order.js.map +1 -0
- package/dist/generated/models/order1.d.ts +28 -0
- package/dist/generated/models/order1.d.ts.map +1 -0
- package/dist/generated/models/order1.js +16 -0
- package/dist/generated/models/order1.js.map +1 -0
- package/dist/generated/models/order2.d.ts +28 -0
- package/dist/generated/models/order2.d.ts.map +1 -0
- package/dist/generated/models/order2.js +16 -0
- package/dist/generated/models/order2.js.map +1 -0
- package/dist/generated/models/order3.d.ts +28 -0
- package/dist/generated/models/order3.d.ts.map +1 -0
- package/dist/generated/models/order3.js +16 -0
- package/dist/generated/models/order3.js.map +1 -0
- package/dist/generated/models/order4.d.ts +28 -0
- package/dist/generated/models/order4.d.ts.map +1 -0
- package/dist/generated/models/order4.js +16 -0
- package/dist/generated/models/order4.js.map +1 -0
- package/dist/generated/models/order5.d.ts +28 -0
- package/dist/generated/models/order5.d.ts.map +1 -0
- package/dist/generated/models/order5.js +16 -0
- package/dist/generated/models/order5.js.map +1 -0
- package/dist/generated/models/place-order-api-v1-brokers-orders-post-request.d.ts +26 -0
- package/dist/generated/models/place-order-api-v1-brokers-orders-post-request.d.ts.map +1 -0
- package/dist/generated/models/place-order-api-v1-brokers-orders-post-request.js +16 -0
- package/dist/generated/models/place-order-api-v1-brokers-orders-post-request.js.map +1 -0
- package/dist/generated/models/portal-url-response.d.ts +21 -0
- package/dist/generated/models/portal-url-response.d.ts.map +1 -0
- package/dist/generated/models/portal-url-response.js +16 -0
- package/dist/generated/models/portal-url-response.js.map +1 -0
- package/dist/generated/models/position-lot-fill-response.d.ts +23 -0
- package/dist/generated/models/position-lot-fill-response.d.ts.map +1 -0
- package/dist/generated/models/position-lot-fill-response.js +16 -0
- package/dist/generated/models/position-lot-fill-response.js.map +1 -0
- package/dist/generated/models/position-lot-response.d.ts +27 -0
- package/dist/generated/models/position-lot-response.d.ts.map +1 -0
- package/dist/generated/models/position-lot-response.js +16 -0
- package/dist/generated/models/position-lot-response.js.map +1 -0
- package/dist/generated/models/position-response.d.ts +62 -0
- package/dist/generated/models/position-response.d.ts.map +1 -0
- package/dist/generated/models/position-response.js +16 -0
- package/dist/generated/models/position-response.js.map +1 -0
- package/dist/generated/models/position-status.d.ts +16 -0
- package/dist/generated/models/position-status.d.ts.map +1 -0
- package/dist/generated/models/position-status.js +22 -0
- package/dist/generated/models/position-status.js.map +1 -0
- package/dist/generated/models/public-account-type-enum.d.ts +17 -0
- package/dist/generated/models/public-account-type-enum.d.ts.map +1 -0
- package/dist/generated/models/public-account-type-enum.js +23 -0
- package/dist/generated/models/public-account-type-enum.js.map +1 -0
- package/dist/generated/models/public-asset-type-enum.d.ts +20 -0
- package/dist/generated/models/public-asset-type-enum.d.ts.map +1 -0
- package/dist/generated/models/public-asset-type-enum.js +26 -0
- package/dist/generated/models/public-asset-type-enum.js.map +1 -0
- package/dist/generated/models/public-connection-status-enum.d.ts +20 -0
- package/dist/generated/models/public-connection-status-enum.d.ts.map +1 -0
- package/dist/generated/models/public-connection-status-enum.js +26 -0
- package/dist/generated/models/public-connection-status-enum.js.map +1 -0
- package/dist/generated/models/public-order-side-enum.d.ts +16 -0
- package/dist/generated/models/public-order-side-enum.d.ts.map +1 -0
- package/dist/generated/models/public-order-side-enum.js +22 -0
- package/dist/generated/models/public-order-side-enum.js.map +1 -0
- package/dist/generated/models/public-order-status-enum.d.ts +24 -0
- package/dist/generated/models/public-order-status-enum.d.ts.map +1 -0
- package/dist/generated/models/public-order-status-enum.js +30 -0
- package/dist/generated/models/public-order-status-enum.js.map +1 -0
- package/dist/generated/models/public-position-status-enum.d.ts +17 -0
- package/dist/generated/models/public-position-status-enum.d.ts.map +1 -0
- package/dist/generated/models/public-position-status-enum.js +23 -0
- package/dist/generated/models/public-position-status-enum.js.map +1 -0
- package/dist/generated/models/robinhood-limit-order-place-query-params.d.ts +37 -0
- package/dist/generated/models/robinhood-limit-order-place-query-params.d.ts.map +1 -0
- package/dist/generated/models/robinhood-limit-order-place-query-params.js +30 -0
- package/dist/generated/models/robinhood-limit-order-place-query-params.js.map +1 -0
- package/dist/generated/models/robinhood-market-order-place-query-params.d.ts +36 -0
- package/dist/generated/models/robinhood-market-order-place-query-params.d.ts.map +1 -0
- package/dist/generated/models/robinhood-market-order-place-query-params.js +30 -0
- package/dist/generated/models/robinhood-market-order-place-query-params.js.map +1 -0
- package/dist/generated/models/robinhood-order-cancel-request.d.ts +21 -0
- package/dist/generated/models/robinhood-order-cancel-request.d.ts.map +1 -0
- package/dist/generated/models/robinhood-order-cancel-request.js +21 -0
- package/dist/generated/models/robinhood-order-cancel-request.js.map +1 -0
- package/dist/generated/models/robinhood-order-modify-request.d.ts +21 -0
- package/dist/generated/models/robinhood-order-modify-request.d.ts.map +1 -0
- package/dist/generated/models/robinhood-order-modify-request.js +21 -0
- package/dist/generated/models/robinhood-order-modify-request.js.map +1 -0
- package/dist/generated/models/robinhood-order-place-request.d.ts +24 -0
- package/dist/generated/models/robinhood-order-place-request.d.ts.map +1 -0
- package/dist/generated/models/robinhood-order-place-request.js +21 -0
- package/dist/generated/models/robinhood-order-place-request.js.map +1 -0
- package/dist/generated/models/robinhood-stop-order-place-query-params.d.ts +37 -0
- package/dist/generated/models/robinhood-stop-order-place-query-params.d.ts.map +1 -0
- package/dist/generated/models/robinhood-stop-order-place-query-params.js +30 -0
- package/dist/generated/models/robinhood-stop-order-place-query-params.js.map +1 -0
- package/dist/generated/models/robinhood-trailing-stop-order-place-query-params.d.ts +37 -0
- package/dist/generated/models/robinhood-trailing-stop-order-place-query-params.d.ts.map +1 -0
- package/dist/generated/models/robinhood-trailing-stop-order-place-query-params.js +30 -0
- package/dist/generated/models/robinhood-trailing-stop-order-place-query-params.js.map +1 -0
- package/dist/generated/models/session-link-request.d.ts +19 -0
- package/dist/generated/models/session-link-request.d.ts.map +1 -0
- package/dist/generated/models/session-link-request.js +16 -0
- package/dist/generated/models/session-link-request.js.map +1 -0
- package/dist/generated/models/session-response-data.d.ts +39 -0
- package/dist/generated/models/session-response-data.d.ts.map +1 -0
- package/dist/generated/models/session-response-data.js +16 -0
- package/dist/generated/models/session-response-data.js.map +1 -0
- package/dist/generated/models/session-start-request.d.ts +18 -0
- package/dist/generated/models/session-start-request.d.ts.map +1 -0
- package/dist/generated/models/session-start-request.js +16 -0
- package/dist/generated/models/session-start-request.js.map +1 -0
- package/dist/generated/models/session-status.d.ts +22 -0
- package/dist/generated/models/session-status.d.ts.map +1 -0
- package/dist/generated/models/session-status.js +28 -0
- package/dist/generated/models/session-status.js.map +1 -0
- package/dist/generated/models/session-user-response.d.ts +45 -0
- package/dist/generated/models/session-user-response.d.ts.map +1 -0
- package/dist/generated/models/session-user-response.js +16 -0
- package/dist/generated/models/session-user-response.js.map +1 -0
- package/dist/generated/models/stop-order-modify-query-params.d.ts +32 -0
- package/dist/generated/models/stop-order-modify-query-params.d.ts.map +1 -0
- package/dist/generated/models/stop-order-modify-query-params.js +21 -0
- package/dist/generated/models/stop-order-modify-query-params.js.map +1 -0
- package/dist/generated/models/tasty-trade-limit-order-modify-query-params.d.ts +38 -0
- package/dist/generated/models/tasty-trade-limit-order-modify-query-params.d.ts.map +1 -0
- package/dist/generated/models/tasty-trade-limit-order-modify-query-params.js +21 -0
- package/dist/generated/models/tasty-trade-limit-order-modify-query-params.js.map +1 -0
- package/dist/generated/models/tasty-trade-limit-order-place-query-params.d.ts +55 -0
- package/dist/generated/models/tasty-trade-limit-order-place-query-params.d.ts.map +1 -0
- package/dist/generated/models/tasty-trade-limit-order-place-query-params.js +40 -0
- package/dist/generated/models/tasty-trade-limit-order-place-query-params.js.map +1 -0
- package/dist/generated/models/tasty-trade-market-order-modify-query-params.d.ts +37 -0
- package/dist/generated/models/tasty-trade-market-order-modify-query-params.d.ts.map +1 -0
- package/dist/generated/models/tasty-trade-market-order-modify-query-params.js +21 -0
- package/dist/generated/models/tasty-trade-market-order-modify-query-params.js.map +1 -0
- package/dist/generated/models/tasty-trade-market-order-place-query-params.d.ts +54 -0
- package/dist/generated/models/tasty-trade-market-order-place-query-params.d.ts.map +1 -0
- package/dist/generated/models/tasty-trade-market-order-place-query-params.js +40 -0
- package/dist/generated/models/tasty-trade-market-order-place-query-params.js.map +1 -0
- package/dist/generated/models/tasty-trade-order-cancel-query-params.d.ts +26 -0
- package/dist/generated/models/tasty-trade-order-cancel-query-params.d.ts.map +1 -0
- package/dist/generated/models/tasty-trade-order-cancel-query-params.js +16 -0
- package/dist/generated/models/tasty-trade-order-cancel-query-params.js.map +1 -0
- package/dist/generated/models/tasty-trade-order-cancel-request.d.ts +21 -0
- package/dist/generated/models/tasty-trade-order-cancel-request.d.ts.map +1 -0
- package/dist/generated/models/tasty-trade-order-cancel-request.js +21 -0
- package/dist/generated/models/tasty-trade-order-cancel-request.js.map +1 -0
- package/dist/generated/models/tasty-trade-order-modify-request.d.ts +21 -0
- package/dist/generated/models/tasty-trade-order-modify-request.d.ts.map +1 -0
- package/dist/generated/models/tasty-trade-order-modify-request.js +21 -0
- package/dist/generated/models/tasty-trade-order-modify-request.js.map +1 -0
- package/dist/generated/models/tasty-trade-order-place-request.d.ts +24 -0
- package/dist/generated/models/tasty-trade-order-place-request.d.ts.map +1 -0
- package/dist/generated/models/tasty-trade-order-place-request.js +21 -0
- package/dist/generated/models/tasty-trade-order-place-request.js.map +1 -0
- package/dist/generated/models/tasty-trade-stop-order-modify-query-params.d.ts +38 -0
- package/dist/generated/models/tasty-trade-stop-order-modify-query-params.d.ts.map +1 -0
- package/dist/generated/models/tasty-trade-stop-order-modify-query-params.js +21 -0
- package/dist/generated/models/tasty-trade-stop-order-modify-query-params.js.map +1 -0
- package/dist/generated/models/tasty-trade-stop-order-place-query-params.d.ts +55 -0
- package/dist/generated/models/tasty-trade-stop-order-place-query-params.d.ts.map +1 -0
- package/dist/generated/models/tasty-trade-stop-order-place-query-params.js +40 -0
- package/dist/generated/models/tasty-trade-stop-order-place-query-params.js.map +1 -0
- package/dist/generated/models/tasty-trade-trailing-stop-order-modify-query-params.d.ts +38 -0
- package/dist/generated/models/tasty-trade-trailing-stop-order-modify-query-params.d.ts.map +1 -0
- package/dist/generated/models/tasty-trade-trailing-stop-order-modify-query-params.js +21 -0
- package/dist/generated/models/tasty-trade-trailing-stop-order-modify-query-params.js.map +1 -0
- package/dist/generated/models/tasty-trade-trailing-stop-order-place-query-params.d.ts +55 -0
- package/dist/generated/models/tasty-trade-trailing-stop-order-place-query-params.d.ts.map +1 -0
- package/dist/generated/models/tasty-trade-trailing-stop-order-place-query-params.js +40 -0
- package/dist/generated/models/tasty-trade-trailing-stop-order-place-query-params.js.map +1 -0
- package/dist/generated/models/test-webhook-response.d.ts +35 -0
- package/dist/generated/models/test-webhook-response.d.ts.map +1 -0
- package/dist/generated/models/test-webhook-response.js +16 -0
- package/dist/generated/models/test-webhook-response.js.map +1 -0
- package/dist/generated/models/timeinforce.d.ts +31 -0
- package/dist/generated/models/timeinforce.d.ts.map +1 -0
- package/dist/generated/models/timeinforce.js +16 -0
- package/dist/generated/models/timeinforce.js.map +1 -0
- package/dist/generated/models/token-data.d.ts +45 -0
- package/dist/generated/models/token-data.d.ts.map +1 -0
- package/dist/generated/models/token-data.js +16 -0
- package/dist/generated/models/token-data.js.map +1 -0
- package/dist/generated/models/token-response-data.d.ts +25 -0
- package/dist/generated/models/token-response-data.d.ts.map +1 -0
- package/dist/generated/models/token-response-data.js +16 -0
- package/dist/generated/models/token-response-data.js.map +1 -0
- package/dist/generated/models/trailing-stop-order-modify-query-params.d.ts +32 -0
- package/dist/generated/models/trailing-stop-order-modify-query-params.d.ts.map +1 -0
- package/dist/generated/models/trailing-stop-order-modify-query-params.js +21 -0
- package/dist/generated/models/trailing-stop-order-modify-query-params.js.map +1 -0
- package/dist/generated/models/user-broker-connections.d.ts +28 -0
- package/dist/generated/models/user-broker-connections.d.ts.map +1 -0
- package/dist/generated/models/user-broker-connections.js +16 -0
- package/dist/generated/models/user-broker-connections.js.map +1 -0
- package/dist/generated/models/validation-error-loc-inner.d.ts +14 -0
- package/dist/generated/models/validation-error-loc-inner.d.ts.map +1 -0
- package/dist/generated/models/validation-error-loc-inner.js +16 -0
- package/dist/generated/models/validation-error-loc-inner.js.map +1 -0
- package/dist/generated/models/validation-error.d.ts +18 -0
- package/dist/generated/models/validation-error.d.ts.map +1 -0
- package/dist/generated/models/validation-error.js +16 -0
- package/dist/generated/models/validation-error.js.map +1 -0
- package/dist/generated/portal/PortalUI.d.ts +28 -0
- package/dist/generated/portal/PortalUI.d.ts.map +1 -0
- package/dist/generated/portal/PortalUI.js +139 -0
- package/dist/generated/portal/PortalUI.js.map +1 -0
- package/dist/generated/utils/cache.d.ts +16 -0
- package/dist/generated/utils/cache.d.ts.map +1 -0
- package/dist/generated/utils/cache.js +56 -0
- package/dist/generated/utils/cache.js.map +1 -0
- package/dist/generated/utils/enum-coercion.d.ts +24 -0
- package/dist/generated/utils/enum-coercion.d.ts.map +1 -0
- package/dist/generated/utils/enum-coercion.js +49 -0
- package/dist/generated/utils/enum-coercion.js.map +1 -0
- package/dist/generated/utils/error-handling.d.ts +35 -0
- package/dist/generated/utils/error-handling.d.ts.map +1 -0
- package/dist/generated/utils/error-handling.js +75 -0
- package/dist/generated/utils/error-handling.js.map +1 -0
- package/dist/generated/utils/events.d.ts +18 -0
- package/dist/generated/utils/events.d.ts.map +1 -0
- package/dist/generated/utils/events.js +60 -0
- package/dist/generated/utils/events.js.map +1 -0
- package/dist/generated/utils/index.d.ts +17 -0
- package/dist/generated/utils/index.d.ts.map +1 -0
- package/dist/generated/utils/index.js +33 -0
- package/dist/generated/utils/index.js.map +1 -0
- package/dist/generated/utils/interceptors.d.ts +40 -0
- package/dist/generated/utils/interceptors.d.ts.map +1 -0
- package/dist/generated/utils/interceptors.js +76 -0
- package/dist/generated/utils/interceptors.js.map +1 -0
- package/dist/generated/utils/logger.d.ts +21 -0
- package/dist/generated/utils/logger.d.ts.map +1 -0
- package/dist/generated/utils/logger.js +292 -0
- package/dist/generated/utils/logger.js.map +1 -0
- package/dist/generated/utils/plain-object.d.ts +22 -0
- package/dist/generated/utils/plain-object.d.ts.map +1 -0
- package/dist/generated/utils/plain-object.js +51 -0
- package/dist/generated/utils/plain-object.js.map +1 -0
- package/dist/generated/utils/request-id.d.ts +10 -0
- package/dist/generated/utils/request-id.d.ts.map +1 -0
- package/dist/generated/utils/request-id.js +24 -0
- package/dist/generated/utils/request-id.js.map +1 -0
- package/dist/generated/utils/retry.d.ts +20 -0
- package/dist/generated/utils/retry.d.ts.map +1 -0
- package/dist/generated/utils/retry.js +83 -0
- package/dist/generated/utils/retry.js.map +1 -0
- package/dist/generated/utils/url-utils.d.ts +23 -0
- package/dist/generated/utils/url-utils.d.ts.map +1 -0
- package/dist/generated/utils/url-utils.js +64 -0
- package/dist/generated/utils/url-utils.js.map +1 -0
- package/dist/generated/utils/validation.d.ts +20 -0
- package/dist/generated/utils/validation.d.ts.map +1 -0
- package/dist/generated/utils/validation.js +103 -0
- package/dist/generated/utils/validation.js.map +1 -0
- package/dist/generated/wrappers/brokers.d.ts +1107 -0
- package/dist/generated/wrappers/brokers.d.ts.map +1 -0
- package/dist/generated/wrappers/brokers.js +3076 -0
- package/dist/generated/wrappers/brokers.js.map +1 -0
- package/dist/generated/wrappers/index.d.ts +8 -0
- package/dist/generated/wrappers/index.d.ts.map +1 -0
- package/dist/generated/wrappers/index.js +13 -0
- package/dist/generated/wrappers/index.js.map +1 -0
- package/dist/generated/wrappers/market-data.d.ts +37 -0
- package/dist/generated/wrappers/market-data.d.ts.map +1 -0
- package/dist/generated/wrappers/market-data.js +134 -0
- package/dist/generated/wrappers/market-data.js.map +1 -0
- package/dist/generated/wrappers/session.d.ts +394 -0
- package/dist/generated/wrappers/session.d.ts.map +1 -0
- package/dist/generated/wrappers/session.js +1232 -0
- package/dist/generated/wrappers/session.js.map +1 -0
- package/dist/index.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,890 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Main client class for Finatic Client SDK.
|
|
4
|
+
*
|
|
5
|
+
* This file is regenerated on each run - do not edit directly.
|
|
6
|
+
* For custom logic, extend this class or use custom wrappers.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.FinaticConnect = void 0;
|
|
10
|
+
const configuration_1 = require("./configuration");
|
|
11
|
+
const config_1 = require("./config");
|
|
12
|
+
const url_utils_1 = require("./utils/url-utils");
|
|
13
|
+
const events_1 = require("./utils/events");
|
|
14
|
+
const PortalUI_1 = require("./portal/PortalUI");
|
|
15
|
+
const brokers_api_1 = require("./api/brokers-api");
|
|
16
|
+
const session_api_1 = require("./api/session-api");
|
|
17
|
+
const brokers_1 = require("./wrappers/brokers");
|
|
18
|
+
const session_1 = require("./wrappers/session");
|
|
19
|
+
class FinaticConnect extends events_1.EventEmitter {
|
|
20
|
+
constructor(options) {
|
|
21
|
+
super(); // Initialize EventEmitter
|
|
22
|
+
this.options = options;
|
|
23
|
+
this.config = new configuration_1.Configuration({
|
|
24
|
+
basePath: options.baseUrl || 'https://api.finatic.dev',
|
|
25
|
+
});
|
|
26
|
+
this.sdkConfig = { ...config_1.defaultConfig, ...options.sdkConfig };
|
|
27
|
+
// Initialize logger
|
|
28
|
+
try {
|
|
29
|
+
const { getLogger } = require('./utils/logger');
|
|
30
|
+
this.logger = getLogger(this.sdkConfig);
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
// Fallback logger for browser environments where pino might not work correctly
|
|
34
|
+
this.logger = console;
|
|
35
|
+
}
|
|
36
|
+
this.brokers = new brokers_1.BrokersWrapper(new brokers_api_1.BrokersApi(this.config), this.config, this.sdkConfig);
|
|
37
|
+
this.session = new session_1.SessionWrapper(new session_api_1.SessionApi(this.config), this.config, this.sdkConfig);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Static initialization method - creates instance and starts session.
|
|
41
|
+
* This is the recommended way to initialize the Client SDK.
|
|
42
|
+
*/
|
|
43
|
+
static async init(token, userId, options) {
|
|
44
|
+
// Use console for static method logging (instance logger will be initialized in constructor)
|
|
45
|
+
const logger = console;
|
|
46
|
+
logger.debug?.('FinaticConnect.init() called', {
|
|
47
|
+
token: token ? `${token.substring(0, 20)}...` : 'missing',
|
|
48
|
+
userId,
|
|
49
|
+
hasOptions: !!options,
|
|
50
|
+
});
|
|
51
|
+
try {
|
|
52
|
+
// Access private instance via type assertion to base class
|
|
53
|
+
const baseClass = FinaticConnect;
|
|
54
|
+
// Clear instance if it exists but has no valid session (Safari compatibility)
|
|
55
|
+
if (baseClass.instance && !baseClass.instance.sessionId) {
|
|
56
|
+
logger.debug?.('Clearing existing instance without sessionId');
|
|
57
|
+
baseClass.instance = null;
|
|
58
|
+
}
|
|
59
|
+
let instance;
|
|
60
|
+
if (!baseClass.instance) {
|
|
61
|
+
logger.debug?.('Creating new FinaticConnect instance');
|
|
62
|
+
const connectOptions = {
|
|
63
|
+
token,
|
|
64
|
+
baseUrl: options?.baseUrl || 'https://api.finatic.dev',
|
|
65
|
+
...(options?.sdkConfig ? { sdkConfig: options.sdkConfig } : {}),
|
|
66
|
+
};
|
|
67
|
+
instance = new FinaticConnect(connectOptions);
|
|
68
|
+
baseClass.instance = instance;
|
|
69
|
+
// CRITICAL: Client SDK init() receives a one-time token directly (not an API key)
|
|
70
|
+
// Unlike Server SDK, Client SDK does NOT call _initSession() - it goes straight to _startSession()
|
|
71
|
+
logger.debug?.('Calling _startSession() inside init() with provided token');
|
|
72
|
+
await instance._startSession(token, userId);
|
|
73
|
+
logger.debug?.('_startSession() completed in init()');
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
logger.debug?.('Using existing FinaticConnect instance');
|
|
77
|
+
instance = baseClass.instance;
|
|
78
|
+
}
|
|
79
|
+
// Verify session was initialized correctly
|
|
80
|
+
const sessionId = instance.getSessionId();
|
|
81
|
+
if (!sessionId) {
|
|
82
|
+
const error = new Error('Session initialization failed: startSession() did not return a session_id. ' +
|
|
83
|
+
'Please check that the API endpoint returned a valid session response. ' +
|
|
84
|
+
'The network call to /api/v1/session/start may have failed or returned an invalid response.');
|
|
85
|
+
logger.error?.('FinaticConnect.init() failed - no sessionId', error, {});
|
|
86
|
+
throw error;
|
|
87
|
+
}
|
|
88
|
+
logger.debug?.('FinaticConnect.init() completed successfully', { sessionId });
|
|
89
|
+
return instance;
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
// Re-throw with more context if it's a session initialization error
|
|
93
|
+
if (error instanceof Error) {
|
|
94
|
+
if (error.message.includes('Session not initialized')) {
|
|
95
|
+
const enhancedError = new Error(`Failed to initialize Finatic session: ${error.message}. ` +
|
|
96
|
+
'This may indicate that startSession() was called but did not successfully create a session. ' +
|
|
97
|
+
'Please check the API response and ensure the one-time token is valid.');
|
|
98
|
+
logger.error?.('FinaticConnect.init() session initialization error', enhancedError, {});
|
|
99
|
+
throw enhancedError;
|
|
100
|
+
}
|
|
101
|
+
logger.error?.('FinaticConnect.init() error', error, {});
|
|
102
|
+
}
|
|
103
|
+
// Re-throw other errors as-is
|
|
104
|
+
throw error;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Start a session with a one-time token (internal/private).
|
|
109
|
+
*
|
|
110
|
+
* Note: Client SDK does NOT use _initSession() - the token passed to init() is already a one-time token.
|
|
111
|
+
* Only Server SDKs use _initSession() to convert API keys to one-time tokens.
|
|
112
|
+
*/
|
|
113
|
+
async _startSession(oneTimeToken, userId) {
|
|
114
|
+
const requestBody = userId !== undefined ? { user_id: userId } : {};
|
|
115
|
+
// Phase 2C: Use typed input object
|
|
116
|
+
const response = await this.session.startSession({
|
|
117
|
+
OneTimeToken: oneTimeToken,
|
|
118
|
+
body: requestBody,
|
|
119
|
+
});
|
|
120
|
+
// Phase 2C: Unwrap standard response structure
|
|
121
|
+
if (response.Error) {
|
|
122
|
+
throw new Error(response.Error.message || 'Failed to start session');
|
|
123
|
+
}
|
|
124
|
+
const data = response.success?.data;
|
|
125
|
+
const sessionId = data?.session_id || '';
|
|
126
|
+
const companyId = data?.company_id || '';
|
|
127
|
+
// csrf_token is not in SessionResponseData, get from response headers if available
|
|
128
|
+
const csrfToken = data?.csrf_token || '';
|
|
129
|
+
if (sessionId && companyId) {
|
|
130
|
+
this.setSessionContext(sessionId, companyId, csrfToken);
|
|
131
|
+
}
|
|
132
|
+
return { session_id: sessionId, company_id: companyId };
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Get portal URL with optional theme and broker filters.
|
|
136
|
+
* This is where URL manipulation happens (not in session wrapper).
|
|
137
|
+
* Returns the URL - app can use it as needed.
|
|
138
|
+
*
|
|
139
|
+
* Note: For Client SDK, use openPortal() to open in iframe directly.
|
|
140
|
+
*/
|
|
141
|
+
async getPortalUrl(options) {
|
|
142
|
+
if (!this.sessionId) {
|
|
143
|
+
throw new Error('Session not initialized. Call startSession() first.');
|
|
144
|
+
}
|
|
145
|
+
// Get raw portal URL from session wrapper
|
|
146
|
+
const response = await this.session.getPortalUrl({});
|
|
147
|
+
// Check for errors
|
|
148
|
+
if (response.Error) {
|
|
149
|
+
this.logger.error?.('Failed to get portal URL', new Error(response.Error.message), {
|
|
150
|
+
code: response.Error.code,
|
|
151
|
+
status: response.Error.status,
|
|
152
|
+
});
|
|
153
|
+
throw new Error(response.Error.message || 'Failed to get portal URL');
|
|
154
|
+
}
|
|
155
|
+
// Validate response structure
|
|
156
|
+
if (!response.success?.data?.portal_url) {
|
|
157
|
+
this.logger.error?.('Invalid portal URL response: missing data', new Error('Invalid response'), {});
|
|
158
|
+
throw new Error('Invalid portal URL response: missing portal_url');
|
|
159
|
+
}
|
|
160
|
+
let portalUrl = response.success.data.portal_url;
|
|
161
|
+
// Validate URL before manipulation
|
|
162
|
+
try {
|
|
163
|
+
new URL(portalUrl);
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
this.logger.error?.('Invalid portal URL from API', error, { portalUrl });
|
|
167
|
+
throw new Error(`Invalid portal URL received from API: ${portalUrl}`);
|
|
168
|
+
}
|
|
169
|
+
// Append theme if provided
|
|
170
|
+
if (options?.theme) {
|
|
171
|
+
portalUrl = (0, url_utils_1.appendThemeToURL)(portalUrl, options.theme);
|
|
172
|
+
}
|
|
173
|
+
// Append broker filter if provided
|
|
174
|
+
if (options?.brokers) {
|
|
175
|
+
portalUrl = (0, url_utils_1.appendBrokerFilterToURL)(portalUrl, options.brokers);
|
|
176
|
+
}
|
|
177
|
+
// Append email if provided
|
|
178
|
+
if (options?.email) {
|
|
179
|
+
const url = new URL(portalUrl);
|
|
180
|
+
url.searchParams.set('email', options.email);
|
|
181
|
+
portalUrl = url.toString();
|
|
182
|
+
}
|
|
183
|
+
// Append mode if provided (light or dark)
|
|
184
|
+
if (options?.mode) {
|
|
185
|
+
const url = new URL(portalUrl);
|
|
186
|
+
url.searchParams.set('mode', options.mode);
|
|
187
|
+
portalUrl = url.toString();
|
|
188
|
+
}
|
|
189
|
+
// Add session ID and company ID to URL
|
|
190
|
+
const url = new URL(portalUrl);
|
|
191
|
+
if (this.sessionId) {
|
|
192
|
+
url.searchParams.set('session_id', this.sessionId);
|
|
193
|
+
}
|
|
194
|
+
if (this.companyId) {
|
|
195
|
+
url.searchParams.set('company_id', this.companyId);
|
|
196
|
+
}
|
|
197
|
+
this.logger.debug?.('Portal URL generated', { portalUrl: url.toString() });
|
|
198
|
+
return url.toString();
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Open portal in iframe (Client SDK only).
|
|
202
|
+
* The portal handles user authentication and linking to session at the source of truth.
|
|
203
|
+
* This method just records the userId for SDK state.
|
|
204
|
+
*/
|
|
205
|
+
async openPortal(options) {
|
|
206
|
+
if (!this.sessionId) {
|
|
207
|
+
throw new Error('Session not initialized. Call startSession() first.');
|
|
208
|
+
}
|
|
209
|
+
// Get portal URL with all parameters
|
|
210
|
+
const portalUrl = await this.getPortalUrl(options);
|
|
211
|
+
// Create portal UI if not exists
|
|
212
|
+
if (!this.portalUI) {
|
|
213
|
+
this.portalUI = new PortalUI_1.PortalUI(this.options.baseUrl || 'https://api.finatic.dev');
|
|
214
|
+
}
|
|
215
|
+
// Show portal with event handlers
|
|
216
|
+
this.portalUI.show(portalUrl, this.sessionId, {
|
|
217
|
+
onSuccess: (userId) => {
|
|
218
|
+
// Store userId for SDK state (portal already linked user to session)
|
|
219
|
+
this.userId = userId;
|
|
220
|
+
// Emit portal success event
|
|
221
|
+
this.emit('portal:success', userId);
|
|
222
|
+
// Call optional callback
|
|
223
|
+
options?.onSuccess?.(userId);
|
|
224
|
+
},
|
|
225
|
+
onError: (error) => {
|
|
226
|
+
// Emit portal error event
|
|
227
|
+
this.emit('portal:error', error);
|
|
228
|
+
// Call optional callback
|
|
229
|
+
options?.onError?.(error);
|
|
230
|
+
},
|
|
231
|
+
onClose: () => {
|
|
232
|
+
// Emit portal close event
|
|
233
|
+
this.emit('portal:close');
|
|
234
|
+
// Call optional callback
|
|
235
|
+
options?.onClose?.();
|
|
236
|
+
},
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Close the portal iframe.
|
|
241
|
+
*/
|
|
242
|
+
closePortal() {
|
|
243
|
+
if (this.portalUI) {
|
|
244
|
+
this.portalUI.hide();
|
|
245
|
+
this.emit('portal:close');
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Get current user ID (set after portal authentication).
|
|
250
|
+
*/
|
|
251
|
+
getUserId() {
|
|
252
|
+
return this.userId;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Get session user information after portal authentication.
|
|
256
|
+
*/
|
|
257
|
+
async getSessionUser() {
|
|
258
|
+
if (!this.sessionId) {
|
|
259
|
+
throw new Error('Session not initialized. Call startSession() first.');
|
|
260
|
+
}
|
|
261
|
+
const response = await this.session.getSessionUser(this.sessionId);
|
|
262
|
+
return {
|
|
263
|
+
user_id: response.user_id || '',
|
|
264
|
+
company_id: response.company_id || this.companyId || '',
|
|
265
|
+
token_type: response.token_type || 'Bearer',
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Set session context for all wrappers.
|
|
270
|
+
*/
|
|
271
|
+
setSessionContext(sessionId, companyId, csrfToken) {
|
|
272
|
+
this.sessionId = sessionId;
|
|
273
|
+
this.companyId = companyId;
|
|
274
|
+
this.csrfToken = csrfToken;
|
|
275
|
+
// Update all wrappers with session context
|
|
276
|
+
this.brokers.setSessionContext(sessionId, companyId, csrfToken);
|
|
277
|
+
this.session.setSessionContext(sessionId, companyId, csrfToken);
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Get current session ID.
|
|
281
|
+
*/
|
|
282
|
+
getSessionId() {
|
|
283
|
+
return this.sessionId;
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Get current company ID.
|
|
287
|
+
*/
|
|
288
|
+
getCompanyId() {
|
|
289
|
+
return this.companyId;
|
|
290
|
+
}
|
|
291
|
+
// Phase 2C: _convertToPlainObject removed - now handled in generated methods via convertToPlainObject utility
|
|
292
|
+
/**
|
|
293
|
+
* Check if user is authenticated.
|
|
294
|
+
*/
|
|
295
|
+
isAuthenticated() {
|
|
296
|
+
return !!(this.userId && this.sessionId);
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Alias for isAuthenticated().
|
|
300
|
+
*/
|
|
301
|
+
isAuthed() {
|
|
302
|
+
return this.isAuthenticated();
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Get list of supported brokers.
|
|
306
|
+
* Phase 2C: Uses typed input objects and handles standard response structure.
|
|
307
|
+
*/
|
|
308
|
+
async getBrokerList() {
|
|
309
|
+
const response = await this.brokers.getBrokers({});
|
|
310
|
+
const brokers = response.success?.data || [];
|
|
311
|
+
const baseUrl = this.config.basePath?.replace('/api/v1', '') ||
|
|
312
|
+
this.options.baseUrl?.replace('/api/v1', '') ||
|
|
313
|
+
'https://api.finatic.dev';
|
|
314
|
+
// Transform broker list to include full logo URLs
|
|
315
|
+
return brokers.map((broker) => ({
|
|
316
|
+
...broker,
|
|
317
|
+
logo_path: broker.logo_path ? `${baseUrl}${broker.logo_path}` : '',
|
|
318
|
+
}));
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Get user's broker connections.
|
|
322
|
+
* Phase 2C: Uses typed input objects and handles standard response structure.
|
|
323
|
+
*/
|
|
324
|
+
async getBrokerConnections() {
|
|
325
|
+
const response = await this.brokers.listBrokerConnections({});
|
|
326
|
+
return response.success?.data || [];
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Get all accounts across all pages.
|
|
330
|
+
* Phase 2C: Uses typed input objects and handles standard response structure.
|
|
331
|
+
*/
|
|
332
|
+
async getAllAccounts(filter) {
|
|
333
|
+
const allData = [];
|
|
334
|
+
let offset = 0;
|
|
335
|
+
const limit = 100;
|
|
336
|
+
while (true) {
|
|
337
|
+
const response = await this.brokers.getAccounts({
|
|
338
|
+
brokerId: filter?.brokerId,
|
|
339
|
+
connectionId: filter?.connectionId,
|
|
340
|
+
accountType: filter?.accountType, // Will be coerced to enum
|
|
341
|
+
status: filter?.status, // Will be coerced to enum
|
|
342
|
+
currency: filter?.currency,
|
|
343
|
+
limit,
|
|
344
|
+
offset,
|
|
345
|
+
withMetadata: filter?.withMetadata,
|
|
346
|
+
});
|
|
347
|
+
const result = response.success?.data || [];
|
|
348
|
+
if (!result || result.length === 0)
|
|
349
|
+
break;
|
|
350
|
+
allData.push(...result);
|
|
351
|
+
if (result.length < limit)
|
|
352
|
+
break;
|
|
353
|
+
offset += limit;
|
|
354
|
+
}
|
|
355
|
+
return allData;
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Get all orders across all pages.
|
|
359
|
+
* Phase 2C: Uses typed input objects and handles standard response structure.
|
|
360
|
+
*/
|
|
361
|
+
async getAllOrders(filter) {
|
|
362
|
+
const allData = [];
|
|
363
|
+
let offset = 0;
|
|
364
|
+
const limit = 100;
|
|
365
|
+
while (true) {
|
|
366
|
+
const response = await this.brokers.getOrders({
|
|
367
|
+
brokerId: filter?.brokerId,
|
|
368
|
+
connectionId: filter?.connectionId,
|
|
369
|
+
accountId: filter?.accountId,
|
|
370
|
+
symbol: filter?.symbol,
|
|
371
|
+
orderStatus: filter?.orderStatus, // Will be coerced to enum
|
|
372
|
+
side: filter?.side, // Will be coerced to enum
|
|
373
|
+
assetType: filter?.assetType, // Will be coerced to enum
|
|
374
|
+
limit,
|
|
375
|
+
offset,
|
|
376
|
+
createdAfter: filter?.createdAfter,
|
|
377
|
+
createdBefore: filter?.createdBefore,
|
|
378
|
+
withMetadata: filter?.withMetadata,
|
|
379
|
+
});
|
|
380
|
+
const result = response.success?.data || [];
|
|
381
|
+
if (!result || result.length === 0)
|
|
382
|
+
break;
|
|
383
|
+
allData.push(...result);
|
|
384
|
+
if (result.length < limit)
|
|
385
|
+
break;
|
|
386
|
+
offset += limit;
|
|
387
|
+
}
|
|
388
|
+
return allData;
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* Get all positions across all pages.
|
|
392
|
+
* Phase 2C: Uses typed input objects and handles standard response structure.
|
|
393
|
+
*/
|
|
394
|
+
async getAllPositions(filter) {
|
|
395
|
+
const allData = [];
|
|
396
|
+
let offset = 0;
|
|
397
|
+
const limit = 100;
|
|
398
|
+
while (true) {
|
|
399
|
+
const response = await this.brokers.getPositions({
|
|
400
|
+
brokerId: filter?.brokerId,
|
|
401
|
+
connectionId: filter?.connectionId,
|
|
402
|
+
accountId: filter?.accountId,
|
|
403
|
+
symbol: filter?.symbol,
|
|
404
|
+
side: filter?.side, // Will be coerced to enum
|
|
405
|
+
assetType: filter?.assetType, // Will be coerced to enum
|
|
406
|
+
positionStatus: filter?.positionStatus, // Will be coerced to enum
|
|
407
|
+
limit,
|
|
408
|
+
offset,
|
|
409
|
+
updatedAfter: filter?.updatedAfter,
|
|
410
|
+
updatedBefore: filter?.updatedBefore,
|
|
411
|
+
withMetadata: filter?.withMetadata,
|
|
412
|
+
});
|
|
413
|
+
const result = response.success?.data || [];
|
|
414
|
+
if (!result || result.length === 0)
|
|
415
|
+
break;
|
|
416
|
+
allData.push(...result);
|
|
417
|
+
if (result.length < limit)
|
|
418
|
+
break;
|
|
419
|
+
offset += limit;
|
|
420
|
+
}
|
|
421
|
+
return allData;
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Get all balances across all pages.
|
|
425
|
+
* Phase 2C: Uses typed input objects and handles standard response structure.
|
|
426
|
+
*/
|
|
427
|
+
async getAllBalances(filter) {
|
|
428
|
+
const allData = [];
|
|
429
|
+
let offset = 0;
|
|
430
|
+
const limit = 100;
|
|
431
|
+
while (true) {
|
|
432
|
+
const response = await this.brokers.getBalances({
|
|
433
|
+
brokerId: filter?.brokerId,
|
|
434
|
+
connectionId: filter?.connectionId,
|
|
435
|
+
accountId: filter?.accountId,
|
|
436
|
+
isEndOfDaySnapshot: filter?.isEndOfDaySnapshot,
|
|
437
|
+
limit,
|
|
438
|
+
offset,
|
|
439
|
+
balanceCreatedAfter: filter?.balanceCreatedAfter,
|
|
440
|
+
balanceCreatedBefore: filter?.balanceCreatedBefore,
|
|
441
|
+
withMetadata: filter?.withMetadata,
|
|
442
|
+
});
|
|
443
|
+
const result = response.success?.data || [];
|
|
444
|
+
if (!result || result.length === 0)
|
|
445
|
+
break;
|
|
446
|
+
allData.push(...result);
|
|
447
|
+
if (result.length < limit)
|
|
448
|
+
break;
|
|
449
|
+
offset += limit;
|
|
450
|
+
}
|
|
451
|
+
return allData;
|
|
452
|
+
}
|
|
453
|
+
/**
|
|
454
|
+
* Get paginated accounts.
|
|
455
|
+
* Phase 2C: Uses typed input objects and handles standard response structure.
|
|
456
|
+
*/
|
|
457
|
+
async getAccounts(page = 1, perPage = 100, filter) {
|
|
458
|
+
const offset = (page - 1) * perPage;
|
|
459
|
+
const response = await this.brokers.getAccounts({
|
|
460
|
+
limit: perPage,
|
|
461
|
+
offset,
|
|
462
|
+
});
|
|
463
|
+
return response.success?.data || [];
|
|
464
|
+
}
|
|
465
|
+
/**
|
|
466
|
+
* Get paginated orders.
|
|
467
|
+
* Phase 2C: Uses typed input objects and handles standard response structure.
|
|
468
|
+
*/
|
|
469
|
+
async getOrders(page = 1, perPage = 100, filter) {
|
|
470
|
+
const offset = (page - 1) * perPage;
|
|
471
|
+
const response = await this.brokers.getOrders({
|
|
472
|
+
symbol: filter?.symbol,
|
|
473
|
+
orderStatus: filter?.orderStatus, // Will be coerced to enum
|
|
474
|
+
side: filter?.side, // Will be coerced to enum
|
|
475
|
+
assetType: filter?.assetType, // Will be coerced to enum
|
|
476
|
+
limit: perPage,
|
|
477
|
+
offset,
|
|
478
|
+
});
|
|
479
|
+
return response.success?.data || [];
|
|
480
|
+
}
|
|
481
|
+
/**
|
|
482
|
+
* Get paginated positions.
|
|
483
|
+
* Phase 2C: Uses typed input objects and handles standard response structure.
|
|
484
|
+
*/
|
|
485
|
+
async getPositions(page = 1, perPage = 100, filter) {
|
|
486
|
+
const offset = (page - 1) * perPage;
|
|
487
|
+
const response = await this.brokers.getPositions({
|
|
488
|
+
symbol: filter?.symbol,
|
|
489
|
+
side: filter?.side, // Will be coerced to enum
|
|
490
|
+
assetType: filter?.assetType, // Will be coerced to enum
|
|
491
|
+
positionStatus: filter?.positionStatus, // Will be coerced to enum
|
|
492
|
+
limit: perPage,
|
|
493
|
+
offset,
|
|
494
|
+
});
|
|
495
|
+
return response.success?.data || [];
|
|
496
|
+
}
|
|
497
|
+
/**
|
|
498
|
+
* Get paginated balances.
|
|
499
|
+
* Phase 2C: Uses typed input objects and handles standard response structure.
|
|
500
|
+
*/
|
|
501
|
+
async getBalances(page = 1, perPage = 100, filter) {
|
|
502
|
+
const offset = (page - 1) * perPage;
|
|
503
|
+
const response = await this.brokers.getBalances({
|
|
504
|
+
isEndOfDaySnapshot: filter?.isEndOfDaySnapshot,
|
|
505
|
+
limit: perPage,
|
|
506
|
+
offset,
|
|
507
|
+
});
|
|
508
|
+
return response.success?.data || [];
|
|
509
|
+
}
|
|
510
|
+
/**
|
|
511
|
+
* Get only open positions.
|
|
512
|
+
* Phase 2C: Uses enum coercion (case-insensitive string matching).
|
|
513
|
+
*/
|
|
514
|
+
async getOpenPositions(filter) {
|
|
515
|
+
// Phase 2C: Enum coercion happens in getAllPositions via typed input object
|
|
516
|
+
return await this.getAllPositions({ ...filter, positionStatus: 'active' });
|
|
517
|
+
}
|
|
518
|
+
/**
|
|
519
|
+
* Get only filled orders.
|
|
520
|
+
* Phase 2C: Uses enum coercion (case-insensitive string matching).
|
|
521
|
+
*/
|
|
522
|
+
async getFilledOrders(filter) {
|
|
523
|
+
// Phase 2C: Enum coercion happens in getAllOrders via typed input object
|
|
524
|
+
return await this.getAllOrders({ ...filter, orderStatus: 'filled' });
|
|
525
|
+
}
|
|
526
|
+
/**
|
|
527
|
+
* Get only pending orders.
|
|
528
|
+
* Phase 2C: Uses enum coercion (case-insensitive string matching).
|
|
529
|
+
*/
|
|
530
|
+
async getPendingOrders(filter) {
|
|
531
|
+
// Phase 2C: Enum coercion happens in getAllOrders via typed input object
|
|
532
|
+
return await this.getAllOrders({ ...filter, orderStatus: 'new' });
|
|
533
|
+
}
|
|
534
|
+
/**
|
|
535
|
+
* Get only active accounts.
|
|
536
|
+
* Phase 2C: Uses enum coercion (case-insensitive string matching).
|
|
537
|
+
*/
|
|
538
|
+
async getActiveAccounts(filter) {
|
|
539
|
+
// Phase 2C: Enum coercion happens in getAllAccounts via typed input object
|
|
540
|
+
return await this.getAllAccounts({ ...filter, status: 'active' });
|
|
541
|
+
}
|
|
542
|
+
/**
|
|
543
|
+
* Get orders filtered by symbol.
|
|
544
|
+
*/
|
|
545
|
+
async getOrdersBySymbol(symbol, filter) {
|
|
546
|
+
return await this.getAllOrders({ ...filter, symbol });
|
|
547
|
+
}
|
|
548
|
+
/**
|
|
549
|
+
* Get positions filtered by symbol.
|
|
550
|
+
*/
|
|
551
|
+
async getPositionsBySymbol(symbol, filter) {
|
|
552
|
+
return await this.getAllPositions({ ...filter, symbol });
|
|
553
|
+
}
|
|
554
|
+
/**
|
|
555
|
+
* Get orders filtered by broker.
|
|
556
|
+
*/
|
|
557
|
+
async getOrdersByBroker(brokerId, filter) {
|
|
558
|
+
return await this.getAllOrders({ ...filter, brokerId });
|
|
559
|
+
}
|
|
560
|
+
/**
|
|
561
|
+
* Get positions filtered by broker.
|
|
562
|
+
*/
|
|
563
|
+
async getPositionsByBroker(brokerId, filter) {
|
|
564
|
+
return await this.getAllPositions({ ...filter, brokerId });
|
|
565
|
+
}
|
|
566
|
+
/**
|
|
567
|
+
* Get all order groups across all pages.
|
|
568
|
+
* Phase 2C: Uses typed input objects and handles standard response structure.
|
|
569
|
+
*/
|
|
570
|
+
async getAllOrderGroups(filter) {
|
|
571
|
+
const allData = [];
|
|
572
|
+
let offset = 0;
|
|
573
|
+
const limit = 100;
|
|
574
|
+
while (true) {
|
|
575
|
+
const response = await this.brokers.getOrderGroups({
|
|
576
|
+
brokerId: filter?.brokerId,
|
|
577
|
+
connectionId: filter?.connectionId,
|
|
578
|
+
limit,
|
|
579
|
+
offset,
|
|
580
|
+
createdAfter: filter?.createdAfter,
|
|
581
|
+
createdBefore: filter?.createdBefore,
|
|
582
|
+
});
|
|
583
|
+
const result = response.success?.data || [];
|
|
584
|
+
if (!result || result.length === 0)
|
|
585
|
+
break;
|
|
586
|
+
allData.push(...result);
|
|
587
|
+
if (result.length < limit)
|
|
588
|
+
break;
|
|
589
|
+
offset += limit;
|
|
590
|
+
}
|
|
591
|
+
return allData;
|
|
592
|
+
}
|
|
593
|
+
/**
|
|
594
|
+
* Get paginated order groups.
|
|
595
|
+
* Phase 2C: Uses typed input objects and handles standard response structure.
|
|
596
|
+
*/
|
|
597
|
+
async getOrderGroups(page = 1, perPage = 100, filter) {
|
|
598
|
+
const offset = (page - 1) * perPage;
|
|
599
|
+
const response = await this.brokers.getOrderGroups({
|
|
600
|
+
brokerId: filter?.brokerId,
|
|
601
|
+
connectionId: filter?.connectionId,
|
|
602
|
+
limit: perPage,
|
|
603
|
+
offset,
|
|
604
|
+
createdAfter: filter?.createdAfter,
|
|
605
|
+
createdBefore: filter?.createdBefore,
|
|
606
|
+
});
|
|
607
|
+
return response.success?.data || [];
|
|
608
|
+
}
|
|
609
|
+
/**
|
|
610
|
+
* Get all position lots across all pages.
|
|
611
|
+
* Phase 2C: Uses typed input objects and handles standard response structure.
|
|
612
|
+
*/
|
|
613
|
+
async getAllPositionLots(filter) {
|
|
614
|
+
const allData = [];
|
|
615
|
+
let offset = 0;
|
|
616
|
+
const limit = 100;
|
|
617
|
+
while (true) {
|
|
618
|
+
const response = await this.brokers.getPositionLots({
|
|
619
|
+
brokerId: filter?.brokerId,
|
|
620
|
+
connectionId: filter?.connectionId,
|
|
621
|
+
accountId: filter?.accountId,
|
|
622
|
+
symbol: filter?.symbol,
|
|
623
|
+
positionId: filter?.positionId,
|
|
624
|
+
limit,
|
|
625
|
+
offset,
|
|
626
|
+
});
|
|
627
|
+
const result = response.success?.data || [];
|
|
628
|
+
if (!result || result.length === 0)
|
|
629
|
+
break;
|
|
630
|
+
allData.push(...result);
|
|
631
|
+
if (result.length < limit)
|
|
632
|
+
break;
|
|
633
|
+
offset += limit;
|
|
634
|
+
}
|
|
635
|
+
return allData;
|
|
636
|
+
}
|
|
637
|
+
/**
|
|
638
|
+
* Get paginated position lots.
|
|
639
|
+
* Phase 2C: Uses typed input objects and handles standard response structure.
|
|
640
|
+
*/
|
|
641
|
+
async getPositionLots(page = 1, perPage = 100, filter) {
|
|
642
|
+
const offset = (page - 1) * perPage;
|
|
643
|
+
const response = await this.brokers.getPositionLots({
|
|
644
|
+
brokerId: filter?.brokerId,
|
|
645
|
+
connectionId: filter?.connectionId,
|
|
646
|
+
accountId: filter?.accountId,
|
|
647
|
+
symbol: filter?.symbol,
|
|
648
|
+
positionId: filter?.positionId,
|
|
649
|
+
limit: perPage,
|
|
650
|
+
offset,
|
|
651
|
+
});
|
|
652
|
+
return response.success?.data || [];
|
|
653
|
+
}
|
|
654
|
+
/**
|
|
655
|
+
* Disconnect company from broker.
|
|
656
|
+
* Phase 2C: Uses typed input objects and handles standard response structure.
|
|
657
|
+
*/
|
|
658
|
+
async disconnectCompany(connectionId) {
|
|
659
|
+
if (!this.sessionId) {
|
|
660
|
+
throw new Error('Session not initialized. Call startSession() first.');
|
|
661
|
+
}
|
|
662
|
+
const response = await this.brokers.disconnectCompanyFromBroker({ connectionId });
|
|
663
|
+
return response.success?.data || null;
|
|
664
|
+
}
|
|
665
|
+
/**
|
|
666
|
+
* Get order fills for a specific order.
|
|
667
|
+
* Phase 2C: Uses typed input objects and handles standard response structure.
|
|
668
|
+
*/
|
|
669
|
+
async getOrderFills(orderId, page = 1, perPage = 100, filter) {
|
|
670
|
+
if (!this.sessionId) {
|
|
671
|
+
throw new Error('Session not initialized. Call startSession() first.');
|
|
672
|
+
}
|
|
673
|
+
const offset = (page - 1) * perPage;
|
|
674
|
+
const response = await this.brokers.getOrderFills({
|
|
675
|
+
orderId,
|
|
676
|
+
connectionId: filter?.connectionId,
|
|
677
|
+
limit: perPage,
|
|
678
|
+
offset,
|
|
679
|
+
});
|
|
680
|
+
return response.success?.data || [];
|
|
681
|
+
}
|
|
682
|
+
/**
|
|
683
|
+
* Get order events for a specific order.
|
|
684
|
+
* Phase 2C: Uses typed input objects and handles standard response structure.
|
|
685
|
+
*/
|
|
686
|
+
async getOrderEvents(orderId, page = 1, perPage = 100, filter) {
|
|
687
|
+
if (!this.sessionId) {
|
|
688
|
+
throw new Error('Session not initialized. Call startSession() first.');
|
|
689
|
+
}
|
|
690
|
+
const offset = (page - 1) * perPage;
|
|
691
|
+
const response = await this.brokers.getOrderEvents({
|
|
692
|
+
orderId,
|
|
693
|
+
connectionId: filter?.connectionId,
|
|
694
|
+
limit: perPage,
|
|
695
|
+
offset,
|
|
696
|
+
});
|
|
697
|
+
return response.success?.data || [];
|
|
698
|
+
}
|
|
699
|
+
/**
|
|
700
|
+
* Get position lot fills for a specific lot.
|
|
701
|
+
* Phase 2C: Uses typed input objects and handles standard response structure.
|
|
702
|
+
*/
|
|
703
|
+
async getPositionLotFills(lotId, page = 1, perPage = 100, filter) {
|
|
704
|
+
if (!this.sessionId) {
|
|
705
|
+
throw new Error('Session not initialized. Call startSession() first.');
|
|
706
|
+
}
|
|
707
|
+
const offset = (page - 1) * perPage;
|
|
708
|
+
const response = await this.brokers.getPositionLotFills({
|
|
709
|
+
lotId,
|
|
710
|
+
connectionId: filter?.connectionId,
|
|
711
|
+
limit: perPage,
|
|
712
|
+
offset,
|
|
713
|
+
});
|
|
714
|
+
return response.success?.data || [];
|
|
715
|
+
}
|
|
716
|
+
/**
|
|
717
|
+
* Place a stock market order.
|
|
718
|
+
*/
|
|
719
|
+
async placeStockMarketOrder(symbol, quantity, side, broker, accountNumber) {
|
|
720
|
+
const orderParams = {
|
|
721
|
+
broker: broker || 'robinhood',
|
|
722
|
+
order_type: 'Market',
|
|
723
|
+
asset_type: 'equity',
|
|
724
|
+
action: side === 'buy' ? 'Buy' : 'Sell',
|
|
725
|
+
time_in_force: 'day',
|
|
726
|
+
account_number: accountNumber !== undefined ? accountNumber : '',
|
|
727
|
+
symbol,
|
|
728
|
+
order_qty: quantity,
|
|
729
|
+
};
|
|
730
|
+
return await this.brokers.placeOrder({ body: orderParams });
|
|
731
|
+
}
|
|
732
|
+
/**
|
|
733
|
+
* Place a stock limit order.
|
|
734
|
+
*/
|
|
735
|
+
async placeStockLimitOrder(symbol, quantity, side, price, timeInForce = 'gtc', broker, accountNumber) {
|
|
736
|
+
const orderParams = {
|
|
737
|
+
broker: broker || 'robinhood',
|
|
738
|
+
order_type: 'Limit',
|
|
739
|
+
asset_type: 'equity',
|
|
740
|
+
action: side === 'buy' ? 'Buy' : 'Sell',
|
|
741
|
+
time_in_force: timeInForce,
|
|
742
|
+
account_number: accountNumber !== undefined ? accountNumber : '',
|
|
743
|
+
symbol,
|
|
744
|
+
order_qty: quantity,
|
|
745
|
+
price,
|
|
746
|
+
};
|
|
747
|
+
return await this.brokers.placeOrder({ body: orderParams });
|
|
748
|
+
}
|
|
749
|
+
/**
|
|
750
|
+
* Place a stock stop order.
|
|
751
|
+
*/
|
|
752
|
+
async placeStockStopOrder(symbol, quantity, side, stopPrice, timeInForce = 'gtc', broker, accountNumber) {
|
|
753
|
+
const orderParams = {
|
|
754
|
+
broker: broker || 'robinhood',
|
|
755
|
+
order_type: 'Stop',
|
|
756
|
+
asset_type: 'equity',
|
|
757
|
+
action: side === 'buy' ? 'Buy' : 'Sell',
|
|
758
|
+
time_in_force: timeInForce,
|
|
759
|
+
account_number: accountNumber !== undefined ? accountNumber : '',
|
|
760
|
+
symbol,
|
|
761
|
+
order_qty: quantity,
|
|
762
|
+
stop_price: stopPrice,
|
|
763
|
+
};
|
|
764
|
+
return await this.brokers.placeOrder({ body: orderParams });
|
|
765
|
+
}
|
|
766
|
+
/**
|
|
767
|
+
* Place a crypto market order.
|
|
768
|
+
*/
|
|
769
|
+
async placeCryptoMarketOrder(symbol, quantity, side, broker, accountNumber) {
|
|
770
|
+
const orderParams = {
|
|
771
|
+
broker: broker || 'robinhood',
|
|
772
|
+
order_type: 'Market',
|
|
773
|
+
asset_type: 'crypto',
|
|
774
|
+
action: side === 'buy' ? 'Buy' : 'Sell',
|
|
775
|
+
time_in_force: 'day',
|
|
776
|
+
account_number: accountNumber !== undefined ? accountNumber : '',
|
|
777
|
+
symbol,
|
|
778
|
+
order_qty: quantity,
|
|
779
|
+
};
|
|
780
|
+
return await this.brokers.placeOrder({ body: orderParams });
|
|
781
|
+
}
|
|
782
|
+
/**
|
|
783
|
+
* Place a crypto limit order.
|
|
784
|
+
*/
|
|
785
|
+
async placeCryptoLimitOrder(symbol, quantity, side, price, timeInForce = 'gtc', broker, accountNumber) {
|
|
786
|
+
const orderParams = {
|
|
787
|
+
broker: broker || 'robinhood',
|
|
788
|
+
order_type: 'Limit',
|
|
789
|
+
asset_type: 'crypto',
|
|
790
|
+
action: side === 'buy' ? 'Buy' : 'Sell',
|
|
791
|
+
time_in_force: timeInForce,
|
|
792
|
+
account_number: accountNumber !== undefined ? accountNumber : '',
|
|
793
|
+
symbol,
|
|
794
|
+
order_qty: quantity,
|
|
795
|
+
price,
|
|
796
|
+
};
|
|
797
|
+
return await this.brokers.placeOrder({ body: orderParams });
|
|
798
|
+
}
|
|
799
|
+
/**
|
|
800
|
+
* Place an options market order.
|
|
801
|
+
*/
|
|
802
|
+
async placeOptionsMarketOrder(symbol, quantity, side, broker, accountNumber) {
|
|
803
|
+
const orderParams = {
|
|
804
|
+
broker: broker || 'robinhood',
|
|
805
|
+
order_type: 'Market',
|
|
806
|
+
asset_type: 'equity_option',
|
|
807
|
+
action: side === 'buy' ? 'Buy' : 'Sell',
|
|
808
|
+
time_in_force: 'day',
|
|
809
|
+
account_number: accountNumber !== undefined ? accountNumber : '',
|
|
810
|
+
symbol,
|
|
811
|
+
order_qty: quantity,
|
|
812
|
+
};
|
|
813
|
+
return await this.brokers.placeOrder({ body: orderParams });
|
|
814
|
+
}
|
|
815
|
+
/**
|
|
816
|
+
* Place an options limit order.
|
|
817
|
+
*/
|
|
818
|
+
async placeOptionsLimitOrder(symbol, quantity, side, price, timeInForce = 'gtc', broker, accountNumber) {
|
|
819
|
+
const orderParams = {
|
|
820
|
+
broker: broker || 'robinhood',
|
|
821
|
+
order_type: 'Limit',
|
|
822
|
+
asset_type: 'equity_option',
|
|
823
|
+
action: side === 'buy' ? 'Buy' : 'Sell',
|
|
824
|
+
time_in_force: timeInForce,
|
|
825
|
+
account_number: accountNumber !== undefined ? accountNumber : '',
|
|
826
|
+
symbol,
|
|
827
|
+
order_qty: quantity,
|
|
828
|
+
price,
|
|
829
|
+
};
|
|
830
|
+
return await this.brokers.placeOrder({ body: orderParams });
|
|
831
|
+
}
|
|
832
|
+
/**
|
|
833
|
+
* Place a futures market order.
|
|
834
|
+
*/
|
|
835
|
+
async placeFuturesMarketOrder(symbol, quantity, side, broker, accountNumber) {
|
|
836
|
+
const orderParams = {
|
|
837
|
+
broker: broker || 'robinhood',
|
|
838
|
+
order_type: 'Market',
|
|
839
|
+
asset_type: 'future',
|
|
840
|
+
action: side === 'buy' ? 'Buy' : 'Sell',
|
|
841
|
+
time_in_force: 'day',
|
|
842
|
+
account_number: accountNumber !== undefined ? accountNumber : '',
|
|
843
|
+
symbol,
|
|
844
|
+
order_qty: quantity,
|
|
845
|
+
};
|
|
846
|
+
return await this.brokers.placeOrder({ body: orderParams });
|
|
847
|
+
}
|
|
848
|
+
/**
|
|
849
|
+
* Place a futures limit order.
|
|
850
|
+
*/
|
|
851
|
+
async placeFuturesLimitOrder(symbol, quantity, side, price, timeInForce = 'gtc', broker, accountNumber) {
|
|
852
|
+
const orderParams = {
|
|
853
|
+
broker: broker || 'robinhood',
|
|
854
|
+
order_type: 'Limit',
|
|
855
|
+
asset_type: 'future',
|
|
856
|
+
action: side === 'buy' ? 'Buy' : 'Sell',
|
|
857
|
+
time_in_force: timeInForce,
|
|
858
|
+
account_number: accountNumber !== undefined ? accountNumber : '',
|
|
859
|
+
symbol,
|
|
860
|
+
order_qty: quantity,
|
|
861
|
+
price,
|
|
862
|
+
};
|
|
863
|
+
return await this.brokers.placeOrder({ body: orderParams });
|
|
864
|
+
}
|
|
865
|
+
/**
|
|
866
|
+
* Place a generic order.
|
|
867
|
+
*/
|
|
868
|
+
async placeOrder(orderParams) {
|
|
869
|
+
return await this.brokers.placeOrder({ body: orderParams });
|
|
870
|
+
}
|
|
871
|
+
/**
|
|
872
|
+
* Modify an existing order.
|
|
873
|
+
*/
|
|
874
|
+
async modifyOrder(orderId, orderParams) {
|
|
875
|
+
return await this.brokers.modifyOrder({ orderId, body: orderParams });
|
|
876
|
+
}
|
|
877
|
+
/**
|
|
878
|
+
* Cancel an existing order.
|
|
879
|
+
*/
|
|
880
|
+
async cancelOrder(orderId, accountNumber, connectionId) {
|
|
881
|
+
return await this.brokers.cancelOrder({
|
|
882
|
+
orderId,
|
|
883
|
+
...(accountNumber ? { accountNumber } : {}),
|
|
884
|
+
...(connectionId ? { connectionId } : {}),
|
|
885
|
+
});
|
|
886
|
+
}
|
|
887
|
+
}
|
|
888
|
+
exports.FinaticConnect = FinaticConnect;
|
|
889
|
+
FinaticConnect.instance = null;
|
|
890
|
+
//# sourceMappingURL=FinaticConnect.js.map
|