snaptrade-typescript-sdk 2.4.0 → 4.0.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.
Files changed (402) hide show
  1. package/.konfig/generate-id.txt +1 -1
  2. package/.konfigignore +3 -1
  3. package/README.md +107 -23
  4. package/api/account-information-api.ts +1075 -0
  5. package/api/api-disclaimer-api.ts +190 -0
  6. package/api/api-status-api.ts +128 -0
  7. package/api/authentication-api.ts +591 -0
  8. package/api/connections-api.ts +425 -0
  9. package/api/error-logs-api.ts +175 -0
  10. package/api/options-api.ts +758 -0
  11. package/api/portfolio-management-api.ts +3402 -0
  12. package/api/reference-data-api.ts +1076 -0
  13. package/api/trading-api.ts +1339 -0
  14. package/api/transactions-and-reporting-api.ts +391 -0
  15. package/api.ts +12 -11530
  16. package/base.ts +1 -2
  17. package/client.ts +55 -0
  18. package/common.ts +16 -54
  19. package/configuration.ts +33 -10
  20. package/dist/api/account-information-api.d.ts +525 -0
  21. package/dist/api/account-information-api.js +1049 -0
  22. package/dist/api/api-disclaimer-api.d.ts +102 -0
  23. package/dist/api/api-disclaimer-api.js +245 -0
  24. package/dist/api/api-status-api.d.ts +70 -0
  25. package/dist/api/api-status-api.js +203 -0
  26. package/dist/api/authentication-api.d.ts +280 -0
  27. package/dist/api/authentication-api.js +659 -0
  28. package/dist/api/connections-api.d.ts +214 -0
  29. package/dist/api/connections-api.js +470 -0
  30. package/dist/api/error-logs-api.d.ts +94 -0
  31. package/dist/api/error-logs-api.js +240 -0
  32. package/dist/api/options-api.d.ts +381 -0
  33. package/dist/api/options-api.js +728 -0
  34. package/dist/api/portfolio-management-api.d.ts +1624 -0
  35. package/dist/api/portfolio-management-api.js +3574 -0
  36. package/dist/api/reference-data-api.d.ts +481 -0
  37. package/dist/api/reference-data-api.js +1244 -0
  38. package/dist/api/trading-api.d.ts +662 -0
  39. package/dist/api/trading-api.js +1276 -0
  40. package/dist/api/transactions-and-reporting-api.d.ts +204 -0
  41. package/dist/api/transactions-and-reporting-api.js +387 -0
  42. package/dist/api.d.ts +12 -7363
  43. package/dist/api.js +24 -9175
  44. package/dist/base.d.ts +1 -1
  45. package/dist/base.js +1 -2
  46. package/dist/client.d.ts +27 -0
  47. package/dist/client.js +34 -0
  48. package/dist/common.d.ts +1 -6
  49. package/dist/common.js +26 -81
  50. package/dist/configuration.d.ts +21 -6
  51. package/dist/configuration.js +13 -8
  52. package/dist/index.d.ts +3 -1
  53. package/dist/index.js +3 -2
  54. package/dist/index.test.js +84 -14
  55. package/dist/jest.config.js +0 -1
  56. package/dist/models/account-holdings.d.ts +47 -0
  57. package/dist/models/account-holdings.js +15 -0
  58. package/dist/models/account-order-record-status.d.ts +39 -0
  59. package/dist/models/account-order-record-status.js +43 -0
  60. package/dist/models/account-order-record.d.ts +126 -0
  61. package/dist/models/account-order-record.js +15 -0
  62. package/dist/models/account-simple.d.ts +37 -0
  63. package/dist/models/account-simple.js +15 -0
  64. package/dist/models/account.d.ts +76 -0
  65. package/dist/models/account.js +15 -0
  66. package/dist/models/action.d.ts +21 -0
  67. package/dist/models/action.js +25 -0
  68. package/dist/models/apidisclaimer-accept-request.d.ts +24 -0
  69. package/dist/models/apidisclaimer-accept-request.js +15 -0
  70. package/dist/models/authentication-login-snap-trade-user200-response.d.ts +18 -0
  71. package/dist/models/authentication-login-snap-trade-user200-response.js +15 -0
  72. package/dist/models/balance.d.ts +32 -0
  73. package/dist/models/balance.js +15 -0
  74. package/dist/models/brokerage-authorization-type-read-only-brokerage.d.ts +37 -0
  75. package/dist/models/brokerage-authorization-type-read-only-brokerage.js +15 -0
  76. package/dist/models/brokerage-authorization-type-read-only.d.ts +56 -0
  77. package/dist/models/brokerage-authorization-type-read-only.js +26 -0
  78. package/dist/models/brokerage-authorization-type.d.ts +30 -0
  79. package/dist/models/brokerage-authorization-type.js +20 -0
  80. package/dist/models/brokerage-authorization.d.ts +76 -0
  81. package/dist/models/brokerage-authorization.js +15 -0
  82. package/dist/models/brokerage-symbol.d.ts +51 -0
  83. package/dist/models/brokerage-symbol.js +15 -0
  84. package/dist/models/brokerage-type.d.ts +31 -0
  85. package/dist/models/brokerage-type.js +15 -0
  86. package/dist/models/brokerage.d.ts +128 -0
  87. package/dist/models/brokerage.js +15 -0
  88. package/dist/models/calculated-trade.d.ts +32 -0
  89. package/dist/models/calculated-trade.js +15 -0
  90. package/dist/models/cash-restriction.d.ts +54 -0
  91. package/dist/models/cash-restriction.js +20 -0
  92. package/dist/models/currency.d.ts +37 -0
  93. package/dist/models/currency.js +15 -0
  94. package/dist/models/delete-user-response.d.ts +31 -0
  95. package/dist/models/delete-user-response.js +15 -0
  96. package/dist/models/dividend-at-date.d.ts +37 -0
  97. package/dist/models/dividend-at-date.js +15 -0
  98. package/dist/models/encrypted-response-encrypted-message-data.d.ts +37 -0
  99. package/dist/models/encrypted-response-encrypted-message-data.js +15 -0
  100. package/dist/models/encrypted-response.d.ts +31 -0
  101. package/dist/models/encrypted-response.js +15 -0
  102. package/dist/models/exchange-rate-pairs.d.ts +38 -0
  103. package/dist/models/exchange-rate-pairs.js +15 -0
  104. package/dist/models/exchange.d.ts +67 -0
  105. package/dist/models/exchange.js +15 -0
  106. package/dist/models/excluded-asset.d.ts +26 -0
  107. package/dist/models/excluded-asset.js +15 -0
  108. package/dist/models/index.d.ts +102 -0
  109. package/dist/models/index.js +118 -0
  110. package/dist/models/jwt.d.ts +25 -0
  111. package/dist/models/jwt.js +15 -0
  112. package/dist/models/login-redirect-uri.d.ts +30 -0
  113. package/dist/models/login-redirect-uri.js +15 -0
  114. package/dist/models/manual-trade-and-impact.d.ts +39 -0
  115. package/dist/models/manual-trade-and-impact.js +15 -0
  116. package/dist/models/manual-trade-balance.d.ts +39 -0
  117. package/dist/models/manual-trade-balance.js +15 -0
  118. package/dist/models/manual-trade-form.d.ts +69 -0
  119. package/dist/models/manual-trade-form.js +15 -0
  120. package/dist/models/manual-trade-symbol.d.ts +56 -0
  121. package/dist/models/manual-trade-symbol.js +15 -0
  122. package/dist/models/manual-trade.d.ts +72 -0
  123. package/dist/models/manual-trade.js +15 -0
  124. package/dist/models/model-asset-class-details.d.ts +32 -0
  125. package/dist/models/model-asset-class-details.js +15 -0
  126. package/dist/models/model-asset-class-target.d.ts +26 -0
  127. package/dist/models/model-asset-class-target.js +15 -0
  128. package/dist/models/model-asset-class.d.ts +31 -0
  129. package/dist/models/model-asset-class.js +15 -0
  130. package/dist/models/model-portfolio-asset-class.d.ts +32 -0
  131. package/dist/models/model-portfolio-asset-class.js +15 -0
  132. package/dist/models/model-portfolio-details.d.ts +39 -0
  133. package/dist/models/model-portfolio-details.js +15 -0
  134. package/dist/models/model-portfolio-security.d.ts +32 -0
  135. package/dist/models/model-portfolio-security.js +15 -0
  136. package/dist/models/model-portfolio.d.ts +43 -0
  137. package/dist/models/model-portfolio.js +21 -0
  138. package/dist/models/model400-failed-request-response.d.ts +31 -0
  139. package/dist/models/model400-failed-request-response.js +15 -0
  140. package/dist/models/model401-failed-request-response.d.ts +31 -0
  141. package/dist/models/model401-failed-request-response.js +15 -0
  142. package/dist/models/model403-failed-request-response.d.ts +31 -0
  143. package/dist/models/model403-failed-request-response.js +15 -0
  144. package/dist/models/model404-failed-request-response.d.ts +31 -0
  145. package/dist/models/model404-failed-request-response.js +15 -0
  146. package/dist/models/monthly-dividends.d.ts +32 -0
  147. package/dist/models/monthly-dividends.js +15 -0
  148. package/dist/models/net-contributions.d.ts +37 -0
  149. package/dist/models/net-contributions.js +15 -0
  150. package/dist/models/net-dividend.d.ts +38 -0
  151. package/dist/models/net-dividend.js +15 -0
  152. package/dist/models/option-chain-inner-chain-per-root-inner-chain-per-strike-price-inner.d.ts +37 -0
  153. package/dist/models/option-chain-inner-chain-per-root-inner-chain-per-strike-price-inner.js +15 -0
  154. package/dist/models/option-chain-inner-chain-per-root-inner.d.ts +38 -0
  155. package/dist/models/option-chain-inner-chain-per-root-inner.js +15 -0
  156. package/dist/models/option-chain-inner.d.ts +50 -0
  157. package/dist/models/option-chain-inner.js +15 -0
  158. package/dist/models/option-leg.d.ts +44 -0
  159. package/dist/models/option-leg.js +22 -0
  160. package/dist/models/option-strategy-legs-inner.d.ts +42 -0
  161. package/dist/models/option-strategy-legs-inner.js +15 -0
  162. package/dist/models/option-strategy.d.ts +51 -0
  163. package/dist/models/option-strategy.js +15 -0
  164. package/dist/models/options-get-option-strategy-request.d.ts +41 -0
  165. package/dist/models/options-get-option-strategy-request.js +19 -0
  166. package/dist/models/options-holdings.d.ts +57 -0
  167. package/dist/models/options-holdings.js +15 -0
  168. package/dist/models/options-place-option-strategy-request.d.ts +48 -0
  169. package/dist/models/options-place-option-strategy-request.js +26 -0
  170. package/dist/models/options-position.d.ts +63 -0
  171. package/dist/models/options-position.js +15 -0
  172. package/dist/models/options-symbol.d.ts +86 -0
  173. package/dist/models/options-symbol.js +15 -0
  174. package/dist/models/order-type.d.ts +23 -0
  175. package/dist/models/order-type.js +27 -0
  176. package/dist/models/partner-data.d.ts +92 -0
  177. package/dist/models/partner-data.js +15 -0
  178. package/dist/models/past-value.d.ts +37 -0
  179. package/dist/models/past-value.js +15 -0
  180. package/dist/models/performance-custom.d.ts +138 -0
  181. package/dist/models/performance-custom.js +15 -0
  182. package/dist/models/portfolio-group-info.d.ts +93 -0
  183. package/dist/models/portfolio-group-info.js +15 -0
  184. package/dist/models/portfolio-group-position.d.ts +38 -0
  185. package/dist/models/portfolio-group-position.js +15 -0
  186. package/dist/models/portfolio-group-settings.d.ts +50 -0
  187. package/dist/models/portfolio-group-settings.js +15 -0
  188. package/dist/models/portfolio-group.d.ts +31 -0
  189. package/dist/models/portfolio-group.js +15 -0
  190. package/dist/models/position-symbol.d.ts +56 -0
  191. package/dist/models/position-symbol.js +15 -0
  192. package/dist/models/position.d.ts +56 -0
  193. package/dist/models/position.js +15 -0
  194. package/dist/models/redirect-tokenand-pin.d.ts +31 -0
  195. package/dist/models/redirect-tokenand-pin.js +15 -0
  196. package/dist/models/security-type.d.ts +43 -0
  197. package/dist/models/security-type.js +15 -0
  198. package/dist/models/snap-trade-apidisclaimer-accept-status.d.ts +31 -0
  199. package/dist/models/snap-trade-apidisclaimer-accept-status.js +15 -0
  200. package/dist/models/snap-trade-holdings-account.d.ts +64 -0
  201. package/dist/models/snap-trade-holdings-account.js +15 -0
  202. package/dist/models/snap-trade-holdings-total-value.d.ts +31 -0
  203. package/dist/models/snap-trade-holdings-total-value.js +15 -0
  204. package/dist/models/snap-trade-login-user-request-body.d.ts +53 -0
  205. package/dist/models/snap-trade-login-user-request-body.js +20 -0
  206. package/dist/models/snap-trade-register-user-request-body.d.ts +30 -0
  207. package/dist/models/snap-trade-register-user-request-body.js +15 -0
  208. package/dist/models/status.d.ts +37 -0
  209. package/dist/models/status.js +15 -0
  210. package/dist/models/strategy-impact-legs-inner.d.ts +61 -0
  211. package/dist/models/strategy-impact-legs-inner.js +15 -0
  212. package/dist/models/strategy-impact.d.ts +86 -0
  213. package/dist/models/strategy-impact.js +15 -0
  214. package/dist/models/strategy-order-place-orders-inner-legs-inner.d.ts +61 -0
  215. package/dist/models/strategy-order-place-orders-inner-legs-inner.js +15 -0
  216. package/dist/models/strategy-order-place-orders-inner.d.ts +278 -0
  217. package/dist/models/strategy-order-place-orders-inner.js +15 -0
  218. package/dist/models/strategy-order-place.d.ts +32 -0
  219. package/dist/models/strategy-order-place.js +15 -0
  220. package/dist/models/strategy-order-record.d.ts +120 -0
  221. package/dist/models/strategy-order-record.js +47 -0
  222. package/dist/models/strategy-quotes-greek.d.ts +49 -0
  223. package/dist/models/strategy-quotes-greek.js +15 -0
  224. package/dist/models/strategy-quotes.d.ts +57 -0
  225. package/dist/models/strategy-quotes.js +15 -0
  226. package/dist/models/sub-period-return-rate.d.ts +37 -0
  227. package/dist/models/sub-period-return-rate.js +15 -0
  228. package/dist/models/symbol-query.d.ts +24 -0
  229. package/dist/models/symbol-query.js +15 -0
  230. package/dist/models/symbol.d.ts +51 -0
  231. package/dist/models/symbol.js +15 -0
  232. package/dist/models/symbols-quotes.d.ts +56 -0
  233. package/dist/models/symbols-quotes.js +15 -0
  234. package/dist/models/target-asset.d.ts +55 -0
  235. package/dist/models/target-asset.js +15 -0
  236. package/dist/models/time-in-force.d.ts +22 -0
  237. package/dist/models/time-in-force.js +26 -0
  238. package/dist/models/trade-execution-status.d.ts +91 -0
  239. package/dist/models/trade-execution-status.js +27 -0
  240. package/dist/models/trade-impact.d.ts +51 -0
  241. package/dist/models/trade-impact.js +15 -0
  242. package/dist/models/trade.d.ts +74 -0
  243. package/dist/models/trade.js +20 -0
  244. package/dist/models/trading-place-ocoorder-request.d.ts +30 -0
  245. package/dist/models/trading-place-ocoorder-request.js +15 -0
  246. package/dist/models/underlying-symbol.d.ts +64 -0
  247. package/dist/models/underlying-symbol.js +15 -0
  248. package/dist/models/universal-activity.d.ts +134 -0
  249. package/dist/models/universal-activity.js +36 -0
  250. package/dist/models/universal-symbol-ticker.d.ts +70 -0
  251. package/dist/models/universal-symbol-ticker.js +15 -0
  252. package/dist/models/universal-symbol.d.ts +69 -0
  253. package/dist/models/universal-symbol.js +15 -0
  254. package/dist/models/user-error-log.d.ts +55 -0
  255. package/dist/models/user-error-log.js +15 -0
  256. package/dist/models/user-idand-secret.d.ts +31 -0
  257. package/dist/models/user-idand-secret.js +15 -0
  258. package/dist/models/user-settings.d.ts +80 -0
  259. package/dist/models/user-settings.js +15 -0
  260. package/dist/models/usexchange.d.ts +73 -0
  261. package/dist/models/usexchange.js +15 -0
  262. package/dist/pagination/page.d.ts +31 -0
  263. package/dist/pagination/page.js +58 -0
  264. package/dist/pagination/pageable.d.ts +53 -0
  265. package/dist/pagination/pageable.js +128 -0
  266. package/dist/pagination/paginate.d.ts +17 -0
  267. package/dist/pagination/paginate.js +78 -0
  268. package/dist/requestAfterHook.d.ts +8 -0
  269. package/dist/requestAfterHook.js +45 -0
  270. package/dist/requestBeforeHook.d.ts +8 -0
  271. package/dist/requestBeforeHook.js +8 -0
  272. package/docs/AccountInformationApi.md +485 -0
  273. package/docs/ApiDisclaimerApi.md +69 -0
  274. package/docs/ApiStatusApi.md +60 -0
  275. package/docs/AuthenticationApi.md +307 -0
  276. package/docs/ConnectionsApi.md +186 -0
  277. package/docs/ErrorLogsApi.md +65 -0
  278. package/docs/OptionsApi.md +321 -0
  279. package/docs/PortfolioManagementApi.md +1866 -0
  280. package/docs/ReferenceDataApi.md +597 -0
  281. package/docs/TradingApi.md +629 -0
  282. package/docs/TransactionsAndReportingApi.md +141 -0
  283. package/index.test.ts +62 -13
  284. package/index.ts +3 -3
  285. package/models/account-holdings.ts +61 -0
  286. package/models/account-order-record-status.ts +48 -0
  287. package/models/account-order-record.ts +142 -0
  288. package/models/account-simple.ts +43 -0
  289. package/models/account.ts +82 -0
  290. package/models/action.ts +30 -0
  291. package/models/apidisclaimer-accept-request.ts +29 -0
  292. package/models/authentication-login-snap-trade-user200-response.ts +31 -0
  293. package/models/balance.ts +40 -0
  294. package/models/brokerage-authorization-type-read-only-brokerage.ts +43 -0
  295. package/models/brokerage-authorization-type-read-only.ts +68 -0
  296. package/models/brokerage-authorization-type.ts +39 -0
  297. package/models/brokerage-authorization.ts +82 -0
  298. package/models/brokerage-symbol.ts +61 -0
  299. package/models/brokerage-type.ts +37 -0
  300. package/models/brokerage.ts +136 -0
  301. package/models/calculated-trade.ts +40 -0
  302. package/models/cash-restriction.ts +63 -0
  303. package/models/currency.ts +43 -0
  304. package/models/delete-user-response.ts +37 -0
  305. package/models/dividend-at-date.ts +43 -0
  306. package/models/encrypted-response-encrypted-message-data.ts +43 -0
  307. package/models/encrypted-response.ts +38 -0
  308. package/models/exchange-rate-pairs.ts +46 -0
  309. package/models/exchange.ts +73 -0
  310. package/models/excluded-asset.ts +34 -0
  311. package/models/index.ts +102 -0
  312. package/models/jwt.ts +31 -0
  313. package/models/login-redirect-uri.ts +35 -0
  314. package/models/manual-trade-and-impact.ts +49 -0
  315. package/models/manual-trade-balance.ts +49 -0
  316. package/models/manual-trade-form.ts +80 -0
  317. package/models/manual-trade-symbol.ts +64 -0
  318. package/models/manual-trade.ts +88 -0
  319. package/models/model-asset-class-details.ts +41 -0
  320. package/models/model-asset-class-target.ts +34 -0
  321. package/models/model-asset-class.ts +37 -0
  322. package/models/model-portfolio-asset-class.ts +40 -0
  323. package/models/model-portfolio-details.ts +50 -0
  324. package/models/model-portfolio-security.ts +40 -0
  325. package/models/model-portfolio.ts +52 -0
  326. package/models/model400-failed-request-response.ts +37 -0
  327. package/models/model401-failed-request-response.ts +37 -0
  328. package/models/model403-failed-request-response.ts +37 -0
  329. package/models/model404-failed-request-response.ts +37 -0
  330. package/models/monthly-dividends.ts +40 -0
  331. package/models/net-contributions.ts +43 -0
  332. package/models/net-dividend.ts +46 -0
  333. package/models/option-chain-inner-chain-per-root-inner-chain-per-strike-price-inner.ts +43 -0
  334. package/models/option-chain-inner-chain-per-root-inner.ts +46 -0
  335. package/models/option-chain-inner.ts +58 -0
  336. package/models/option-leg.ts +53 -0
  337. package/models/option-strategy-legs-inner.ts +47 -0
  338. package/models/option-strategy.ts +61 -0
  339. package/models/options-get-option-strategy-request.ts +51 -0
  340. package/models/options-holdings.ts +67 -0
  341. package/models/options-place-option-strategy-request.ts +57 -0
  342. package/models/options-position.ts +73 -0
  343. package/models/options-symbol.ts +94 -0
  344. package/models/order-type.ts +32 -0
  345. package/models/partner-data.ts +100 -0
  346. package/models/past-value.ts +43 -0
  347. package/models/performance-custom.ts +154 -0
  348. package/models/portfolio-group-info.ts +115 -0
  349. package/models/portfolio-group-position.ts +46 -0
  350. package/models/portfolio-group-settings.ts +58 -0
  351. package/models/portfolio-group.ts +37 -0
  352. package/models/position-symbol.ts +64 -0
  353. package/models/position.ts +64 -0
  354. package/models/redirect-tokenand-pin.ts +37 -0
  355. package/models/security-type.ts +49 -0
  356. package/models/snap-trade-apidisclaimer-accept-status.ts +37 -0
  357. package/models/snap-trade-holdings-account.ts +70 -0
  358. package/models/snap-trade-holdings-total-value.ts +37 -0
  359. package/models/snap-trade-login-user-request-body.ts +61 -0
  360. package/models/snap-trade-register-user-request-body.ts +35 -0
  361. package/models/status.ts +43 -0
  362. package/models/strategy-impact-legs-inner.ts +67 -0
  363. package/models/strategy-impact.ts +94 -0
  364. package/models/strategy-order-place-orders-inner-legs-inner.ts +67 -0
  365. package/models/strategy-order-place-orders-inner.ts +286 -0
  366. package/models/strategy-order-place.ts +40 -0
  367. package/models/strategy-order-record.ts +133 -0
  368. package/models/strategy-quotes-greek.ts +55 -0
  369. package/models/strategy-quotes.ts +67 -0
  370. package/models/sub-period-return-rate.ts +43 -0
  371. package/models/symbol-query.ts +29 -0
  372. package/models/symbol.ts +61 -0
  373. package/models/symbols-quotes.ts +64 -0
  374. package/models/target-asset.ts +62 -0
  375. package/models/time-in-force.ts +31 -0
  376. package/models/trade-execution-status.ts +105 -0
  377. package/models/trade-impact.ts +61 -0
  378. package/models/trade.ts +88 -0
  379. package/models/trading-place-ocoorder-request.ts +35 -0
  380. package/models/underlying-symbol.ts +76 -0
  381. package/models/universal-activity.ts +151 -0
  382. package/models/universal-symbol-ticker.ts +82 -0
  383. package/models/universal-symbol.ts +80 -0
  384. package/models/user-error-log.ts +61 -0
  385. package/models/user-idand-secret.ts +37 -0
  386. package/models/user-settings.ts +88 -0
  387. package/models/usexchange.ts +79 -0
  388. package/package.json +1 -1
  389. package/pagination/page.ts +50 -0
  390. package/pagination/pageable.ts +107 -0
  391. package/pagination/paginate.ts +40 -0
  392. package/requestAfterHook.ts +53 -0
  393. package/requestBeforeHook.ts +14 -0
  394. package/tsconfig.json +0 -1
  395. package/dist/api.js.map +0 -1
  396. package/dist/base.js.map +0 -1
  397. package/dist/common.js.map +0 -1
  398. package/dist/configuration.js.map +0 -1
  399. package/dist/index.js.map +0 -1
  400. package/dist/index.test.js.map +0 -1
  401. package/dist/jest.config.js.map +0 -1
  402. package/git_push.sh +0 -57
@@ -0,0 +1,107 @@
1
+ /**
2
+ * SnapTrade
3
+ * Connect brokerage accounts to your app for live positions and trading
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ * Contact: api@snaptrade.com
7
+ *
8
+ * NOTE: This file is auto generated by Konfig (https://konfigthis.com).
9
+ * https://konfigthis.com
10
+ * Do not edit the class manually.
11
+ */
12
+
13
+ import { AxiosPromise } from "axios";
14
+ import {
15
+ Page,
16
+ PageInfo,
17
+ PageParameterProperties,
18
+ PageParameters,
19
+ } from "./Page";
20
+
21
+ export type PageParametersBase<Parameters> = Parameters & {
22
+ requestBody?: Parameters;
23
+ };
24
+ export type PageRequest<
25
+ Data extends PageInfo,
26
+ Parameters extends PageParameters
27
+ > = (parameters: Parameters) => AxiosPromise<Data>;
28
+
29
+ export abstract class Pageable<
30
+ Data extends PageInfo,
31
+ Parameters extends PageParameters
32
+ > {
33
+ readonly data: Data;
34
+ protected readonly initialParameters: Parameters;
35
+ private readonly _request: PageRequest<Data, Parameters>;
36
+ async previous(): Promise<Page<Data, Parameters> | null> {
37
+ if (!this.hasPrevious()) return null;
38
+ if (this.previousParameters === null) return null;
39
+ const response = await this.makeRequest(this.previousParameters);
40
+ return this.withData(response.data);
41
+ }
42
+ async next(): Promise<Page<Data, Parameters> | null> {
43
+ if (!this.hasNext()) return null;
44
+ if (this.nextParameters === null) return null;
45
+ const response = await this.makeRequest(this.nextParameters);
46
+ return this.withData(response.data);
47
+ }
48
+
49
+ /**
50
+ * Generate minimal set of parameters needed to get the previous page
51
+ */
52
+ protected abstract get previousParameters(): PageParameterProperties | null;
53
+
54
+ /**
55
+ * Generate minimal set of parameters needed to get the next page
56
+ */
57
+ protected abstract get nextParameters(): PageParameterProperties | null;
58
+
59
+ /**
60
+ * Is there a previous page based on PageInfo?
61
+ */
62
+ abstract hasPrevious(): boolean;
63
+
64
+ /**
65
+ * Is there a next page based on PageInfo?
66
+ */
67
+ abstract hasNext(): boolean;
68
+
69
+ /**
70
+ * Helper for invoking a request. Handles request body and parameter based pagination
71
+ */
72
+ private makeRequest(parameters: PageParameterProperties): AxiosPromise<Data> {
73
+ // Handle request body pagination
74
+ if (this.initialParameters.requestBody !== undefined) {
75
+ return this._request({
76
+ ...this.initialParameters,
77
+ requestBody: { ...this.initialParameters.requestBody, ...parameters },
78
+ });
79
+ }
80
+ return this._request({ ...this.initialParameters, ...parameters });
81
+ }
82
+
83
+ /**
84
+ * Helper for creating new page
85
+ */
86
+ private withData(data: Data): Page<Data, Parameters> {
87
+ return new Page({
88
+ data,
89
+ initialParameters: this.initialParameters,
90
+ request: this._request,
91
+ });
92
+ }
93
+
94
+ constructor({
95
+ data,
96
+ initialParameters,
97
+ request,
98
+ }: {
99
+ data: Data;
100
+ initialParameters: Parameters;
101
+ request: PageRequest<Data, Parameters>;
102
+ }) {
103
+ this.data = data;
104
+ this._request = request;
105
+ this.initialParameters = initialParameters;
106
+ }
107
+ }
@@ -0,0 +1,40 @@
1
+ /**
2
+ * SnapTrade
3
+ * Connect brokerage accounts to your app for live positions and trading
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ * Contact: api@snaptrade.com
7
+ *
8
+ * NOTE: This file is auto generated by Konfig (https://konfigthis.com).
9
+ * https://konfigthis.com
10
+ * Do not edit the class manually.
11
+ */
12
+
13
+ import { PageInfo, PageParameters, Page } from "./page";
14
+ import { PageRequest } from "./pageable";
15
+
16
+ export const paginate = <
17
+ Data extends PageInfo,
18
+ Parameters extends PageParameters
19
+ >({
20
+ request,
21
+ initialParameters,
22
+ }: {
23
+ request: PageRequest<Data, Parameters>;
24
+ initialParameters: Parameters;
25
+ }): Promise<Page<Data, Parameters>> => {
26
+ return new Promise(async (resolve, reject) => {
27
+ try {
28
+ const data = await request(initialParameters);
29
+ resolve(
30
+ new Page({
31
+ data: data.data,
32
+ initialParameters,
33
+ request: (parameters) => request(parameters),
34
+ })
35
+ );
36
+ } catch (error) {
37
+ reject(error);
38
+ }
39
+ });
40
+ };
@@ -0,0 +1,53 @@
1
+ import * as crypto from "crypto";
2
+ import { RequestArgs } from "./base";
3
+ import { Configuration } from "./configuration";
4
+
5
+ const JSONstringifyOrder = (obj: any) => {
6
+ var allKeys: any = [];
7
+ var seen: any = {};
8
+ JSON.stringify(obj, function (key, value) {
9
+ if (!(key in seen)) {
10
+ allKeys.push(key);
11
+ seen[key] = null;
12
+ }
13
+ return value;
14
+ });
15
+ allKeys.sort();
16
+ return JSON.stringify(obj, allKeys);
17
+ };
18
+
19
+ export function requestAfterHook(request: {
20
+ axiosArgs: RequestArgs;
21
+ basePath: string;
22
+ url: string;
23
+ configuration?: Configuration;
24
+ }): void {
25
+ const { configuration, basePath, axiosArgs, url } = request;
26
+ if (configuration?.consumerKey === undefined)
27
+ throw Error("Consumer key is required");
28
+ const consumerKey = encodeURI(configuration.consumerKey);
29
+ const requestData =
30
+ axiosArgs.options.data === undefined || axiosArgs.options.data === "{}"
31
+ ? null
32
+ : JSON.parse(axiosArgs.options.data);
33
+ const path =
34
+ axiosArgs.url.indexOf("?") === -1
35
+ ? `${axiosArgs.url}`
36
+ : `${axiosArgs.url.split("?")[0]}`;
37
+ const requestPath = `/api/v1${path}`;
38
+ const requestQuery = url
39
+ .replace(basePath, "")
40
+ .replace(path, "")
41
+ .replace("?", "");
42
+ const sigObject = {
43
+ content: requestData,
44
+ path: requestPath,
45
+ query: requestQuery,
46
+ };
47
+ const sigContent = JSONstringifyOrder(sigObject);
48
+ const hmac = crypto.createHmac("sha256", consumerKey);
49
+ const signature = hmac.update(sigContent).digest("base64");
50
+
51
+ if (axiosArgs.options.headers)
52
+ axiosArgs.options.headers["Signature"] = signature;
53
+ }
@@ -0,0 +1,14 @@
1
+ import { Configuration } from "./configuration";
2
+ import { AxiosRequestConfig } from "axios";
3
+
4
+ export function requestBeforeHook(request: {
5
+ queryParameters: Record<string, any>;
6
+ path: string;
7
+ requestConfig: AxiosRequestConfig;
8
+ configuration?: Configuration;
9
+ }): void {
10
+ const { queryParameters } = request;
11
+ queryParameters["timestamp"] = Math.round(
12
+ new Date().getTime() / 1000
13
+ ).toString();
14
+ }
package/tsconfig.json CHANGED
@@ -4,7 +4,6 @@
4
4
  "target": "ES5",
5
5
  "module": "commonjs",
6
6
  "noImplicitAny": true,
7
- "sourceMap": true,
8
7
  "outDir": "dist",
9
8
  "rootDir": ".",
10
9
  "lib": [