@adaptic/utils 0.0.383 → 0.0.900

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 (225) hide show
  1. package/README.md +153 -61
  2. package/dist/index.cjs +60090 -5244
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.mjs +59829 -5244
  5. package/dist/index.mjs.map +1 -1
  6. package/dist/test.js +733 -383
  7. package/dist/test.js.map +1 -1
  8. package/dist/types/__tests__/alpaca-functions.test.d.ts +2 -0
  9. package/dist/types/__tests__/alpaca-functions.test.d.ts.map +1 -0
  10. package/dist/types/__tests__/api-endpoints.test.d.ts +2 -0
  11. package/dist/types/__tests__/api-endpoints.test.d.ts.map +1 -0
  12. package/dist/types/__tests__/asset-allocation.test.d.ts +2 -0
  13. package/dist/types/__tests__/asset-allocation.test.d.ts.map +1 -0
  14. package/dist/types/__tests__/auth-validator.test.d.ts +2 -0
  15. package/dist/types/__tests__/auth-validator.test.d.ts.map +1 -0
  16. package/dist/types/__tests__/cache.test.d.ts +2 -0
  17. package/dist/types/__tests__/cache.test.d.ts.map +1 -0
  18. package/dist/types/__tests__/errors.test.d.ts +2 -0
  19. package/dist/types/__tests__/errors.test.d.ts.map +1 -0
  20. package/dist/types/__tests__/financial-regression.test.d.ts +2 -0
  21. package/dist/types/__tests__/financial-regression.test.d.ts.map +1 -0
  22. package/dist/types/__tests__/format-tools.test.d.ts +2 -0
  23. package/dist/types/__tests__/format-tools.test.d.ts.map +1 -0
  24. package/dist/types/__tests__/http-keep-alive.test.d.ts +2 -0
  25. package/dist/types/__tests__/http-keep-alive.test.d.ts.map +1 -0
  26. package/dist/types/__tests__/http-timeout.test.d.ts +2 -0
  27. package/dist/types/__tests__/http-timeout.test.d.ts.map +1 -0
  28. package/dist/types/__tests__/logger.test.d.ts +2 -0
  29. package/dist/types/__tests__/logger.test.d.ts.map +1 -0
  30. package/dist/types/__tests__/market-time.test.d.ts +2 -0
  31. package/dist/types/__tests__/market-time.test.d.ts.map +1 -0
  32. package/dist/types/__tests__/misc-utils.test.d.ts +2 -0
  33. package/dist/types/__tests__/misc-utils.test.d.ts.map +1 -0
  34. package/dist/types/__tests__/paginator.test.d.ts +2 -0
  35. package/dist/types/__tests__/paginator.test.d.ts.map +1 -0
  36. package/dist/types/__tests__/performance-metrics.test.d.ts +2 -0
  37. package/dist/types/__tests__/performance-metrics.test.d.ts.map +1 -0
  38. package/dist/types/__tests__/polygon.test.d.ts +2 -0
  39. package/dist/types/__tests__/polygon.test.d.ts.map +1 -0
  40. package/dist/types/__tests__/price-utils.test.d.ts +2 -0
  41. package/dist/types/__tests__/price-utils.test.d.ts.map +1 -0
  42. package/dist/types/__tests__/property-based-financial.test.d.ts +2 -0
  43. package/dist/types/__tests__/property-based-financial.test.d.ts.map +1 -0
  44. package/dist/types/__tests__/rate-limiter.test.d.ts +2 -0
  45. package/dist/types/__tests__/rate-limiter.test.d.ts.map +1 -0
  46. package/dist/types/__tests__/schema-validation.test.d.ts +2 -0
  47. package/dist/types/__tests__/schema-validation.test.d.ts.map +1 -0
  48. package/dist/types/__tests__/technical-analysis.test.d.ts +2 -0
  49. package/dist/types/__tests__/technical-analysis.test.d.ts.map +1 -0
  50. package/dist/types/__tests__/time-utils.test.d.ts +2 -0
  51. package/dist/types/__tests__/time-utils.test.d.ts.map +1 -0
  52. package/dist/types/adaptic.d.ts +2 -2
  53. package/dist/types/adaptic.d.ts.map +1 -1
  54. package/dist/types/alpaca/client.d.ts +95 -0
  55. package/dist/types/alpaca/client.d.ts.map +1 -0
  56. package/dist/types/alpaca/crypto/data.d.ts +281 -0
  57. package/dist/types/alpaca/crypto/data.d.ts.map +1 -0
  58. package/dist/types/alpaca/crypto/index.d.ts +75 -0
  59. package/dist/types/alpaca/crypto/index.d.ts.map +1 -0
  60. package/dist/types/alpaca/crypto/orders.d.ts +221 -0
  61. package/dist/types/alpaca/crypto/orders.d.ts.map +1 -0
  62. package/dist/types/alpaca/index.d.ts +205 -0
  63. package/dist/types/alpaca/index.d.ts.map +1 -0
  64. package/dist/types/alpaca/legacy/account.d.ts +34 -0
  65. package/dist/types/alpaca/legacy/account.d.ts.map +1 -0
  66. package/dist/types/alpaca/legacy/assets.d.ts +13 -0
  67. package/dist/types/alpaca/legacy/assets.d.ts.map +1 -0
  68. package/dist/types/alpaca/legacy/auth.d.ts +18 -0
  69. package/dist/types/alpaca/legacy/auth.d.ts.map +1 -0
  70. package/dist/types/alpaca/legacy/index.d.ts +15 -0
  71. package/dist/types/alpaca/legacy/index.d.ts.map +1 -0
  72. package/dist/types/alpaca/legacy/market-data.d.ts +32 -0
  73. package/dist/types/alpaca/legacy/market-data.d.ts.map +1 -0
  74. package/dist/types/alpaca/legacy/orders.d.ts +84 -0
  75. package/dist/types/alpaca/legacy/orders.d.ts.map +1 -0
  76. package/dist/types/alpaca/legacy/positions.d.ts +66 -0
  77. package/dist/types/alpaca/legacy/positions.d.ts.map +1 -0
  78. package/dist/types/alpaca/legacy/utils.d.ts +18 -0
  79. package/dist/types/alpaca/legacy/utils.d.ts.map +1 -0
  80. package/dist/types/alpaca/market-data/bars.d.ts +142 -0
  81. package/dist/types/alpaca/market-data/bars.d.ts.map +1 -0
  82. package/dist/types/alpaca/market-data/index.d.ts +13 -0
  83. package/dist/types/alpaca/market-data/index.d.ts.map +1 -0
  84. package/dist/types/alpaca/market-data/news.d.ts +87 -0
  85. package/dist/types/alpaca/market-data/news.d.ts.map +1 -0
  86. package/dist/types/alpaca/market-data/quotes.d.ts +85 -0
  87. package/dist/types/alpaca/market-data/quotes.d.ts.map +1 -0
  88. package/dist/types/alpaca/market-data/trades.d.ts +98 -0
  89. package/dist/types/alpaca/market-data/trades.d.ts.map +1 -0
  90. package/dist/types/alpaca/options/contracts.d.ts +279 -0
  91. package/dist/types/alpaca/options/contracts.d.ts.map +1 -0
  92. package/dist/types/alpaca/options/data.d.ts +126 -0
  93. package/dist/types/alpaca/options/data.d.ts.map +1 -0
  94. package/dist/types/alpaca/options/index.d.ts +17 -0
  95. package/dist/types/alpaca/options/index.d.ts.map +1 -0
  96. package/dist/types/alpaca/options/orders.d.ts +366 -0
  97. package/dist/types/alpaca/options/orders.d.ts.map +1 -0
  98. package/dist/types/alpaca/options/strategies.d.ts +224 -0
  99. package/dist/types/alpaca/options/strategies.d.ts.map +1 -0
  100. package/dist/types/alpaca/streams/base-stream.d.ts +143 -0
  101. package/dist/types/alpaca/streams/base-stream.d.ts.map +1 -0
  102. package/dist/types/alpaca/streams/crypto-stream.d.ts +173 -0
  103. package/dist/types/alpaca/streams/crypto-stream.d.ts.map +1 -0
  104. package/dist/types/alpaca/streams/index.d.ts +54 -0
  105. package/dist/types/alpaca/streams/index.d.ts.map +1 -0
  106. package/dist/types/alpaca/streams/option-stream.d.ts +167 -0
  107. package/dist/types/alpaca/streams/option-stream.d.ts.map +1 -0
  108. package/dist/types/alpaca/streams/stock-stream.d.ts +176 -0
  109. package/dist/types/alpaca/streams/stock-stream.d.ts.map +1 -0
  110. package/dist/types/alpaca/streams/stream-manager.d.ts +277 -0
  111. package/dist/types/alpaca/streams/stream-manager.d.ts.map +1 -0
  112. package/dist/types/alpaca/streams/trading-stream.d.ts +186 -0
  113. package/dist/types/alpaca/streams/trading-stream.d.ts.map +1 -0
  114. package/dist/types/alpaca/streams.d.ts +88 -0
  115. package/dist/types/alpaca/streams.d.ts.map +1 -0
  116. package/dist/types/alpaca/test-imports.d.ts +7 -0
  117. package/dist/types/alpaca/test-imports.d.ts.map +1 -0
  118. package/dist/types/alpaca/trading/account.d.ts +198 -0
  119. package/dist/types/alpaca/trading/account.d.ts.map +1 -0
  120. package/dist/types/alpaca/trading/bracket-orders.d.ts +162 -0
  121. package/dist/types/alpaca/trading/bracket-orders.d.ts.map +1 -0
  122. package/dist/types/alpaca/trading/clock.d.ts +99 -0
  123. package/dist/types/alpaca/trading/clock.d.ts.map +1 -0
  124. package/dist/types/alpaca/trading/index.d.ts +15 -0
  125. package/dist/types/alpaca/trading/index.d.ts.map +1 -0
  126. package/dist/types/alpaca/trading/oco-orders.d.ts +203 -0
  127. package/dist/types/alpaca/trading/oco-orders.d.ts.map +1 -0
  128. package/dist/types/alpaca/trading/order-utils.d.ts +404 -0
  129. package/dist/types/alpaca/trading/order-utils.d.ts.map +1 -0
  130. package/dist/types/alpaca/trading/orders.d.ts +199 -0
  131. package/dist/types/alpaca/trading/orders.d.ts.map +1 -0
  132. package/dist/types/alpaca/trading/oto-orders.d.ts +282 -0
  133. package/dist/types/alpaca/trading/oto-orders.d.ts.map +1 -0
  134. package/dist/types/alpaca/trading/positions.d.ts +389 -0
  135. package/dist/types/alpaca/trading/positions.d.ts.map +1 -0
  136. package/dist/types/alpaca/trading/smart-orders.d.ts +301 -0
  137. package/dist/types/alpaca/trading/smart-orders.d.ts.map +1 -0
  138. package/dist/types/alpaca/trading/trailing-stops.d.ts +240 -0
  139. package/dist/types/alpaca/trading/trailing-stops.d.ts.map +1 -0
  140. package/dist/types/alpaca-market-data-api.d.ts +12 -10
  141. package/dist/types/alpaca-market-data-api.d.ts.map +1 -1
  142. package/dist/types/alpaca-trading-api.d.ts +12 -12
  143. package/dist/types/alpaca-trading-api.d.ts.map +1 -1
  144. package/dist/types/alphavantage.d.ts +1 -1
  145. package/dist/types/alphavantage.d.ts.map +1 -1
  146. package/dist/types/asset-allocation-algorithm.d.ts +7 -1
  147. package/dist/types/asset-allocation-algorithm.d.ts.map +1 -1
  148. package/dist/types/cache/stampede-protected-cache.d.ts.map +1 -1
  149. package/dist/types/config/api-endpoints.d.ts +94 -0
  150. package/dist/types/config/api-endpoints.d.ts.map +1 -0
  151. package/dist/types/crypto.d.ts +2 -2
  152. package/dist/types/crypto.d.ts.map +1 -1
  153. package/dist/types/display-manager.d.ts +1 -1
  154. package/dist/types/display-manager.d.ts.map +1 -1
  155. package/dist/types/errors/index.d.ts +130 -0
  156. package/dist/types/errors/index.d.ts.map +1 -0
  157. package/dist/types/examples/asset-allocation-example.d.ts +7 -6
  158. package/dist/types/examples/asset-allocation-example.d.ts.map +1 -1
  159. package/dist/types/examples/rate-limiter-example.d.ts +7 -0
  160. package/dist/types/examples/rate-limiter-example.d.ts.map +1 -0
  161. package/dist/types/format-tools.d.ts.map +1 -1
  162. package/dist/types/http-timeout.d.ts +37 -0
  163. package/dist/types/http-timeout.d.ts.map +1 -0
  164. package/dist/types/index.d.ts +393 -55
  165. package/dist/types/index.d.ts.map +1 -1
  166. package/dist/types/logger.d.ts +56 -0
  167. package/dist/types/logger.d.ts.map +1 -0
  168. package/dist/types/logging.d.ts +1 -1
  169. package/dist/types/logging.d.ts.map +1 -1
  170. package/dist/types/market-hours.d.ts.map +1 -1
  171. package/dist/types/market-time.d.ts +75 -13
  172. package/dist/types/market-time.d.ts.map +1 -1
  173. package/dist/types/metrics-calcs.d.ts.map +1 -1
  174. package/dist/types/misc-utils.d.ts +4 -1
  175. package/dist/types/misc-utils.d.ts.map +1 -1
  176. package/dist/types/performance-metrics.d.ts +4 -4
  177. package/dist/types/performance-metrics.d.ts.map +1 -1
  178. package/dist/types/polygon-indices.d.ts +3 -3
  179. package/dist/types/polygon-indices.d.ts.map +1 -1
  180. package/dist/types/polygon.d.ts +1 -1
  181. package/dist/types/polygon.d.ts.map +1 -1
  182. package/dist/types/price-utils.d.ts.map +1 -1
  183. package/dist/types/rate-limiter.d.ts +171 -0
  184. package/dist/types/rate-limiter.d.ts.map +1 -0
  185. package/dist/types/schemas/alpaca-schemas.d.ts +779 -0
  186. package/dist/types/schemas/alpaca-schemas.d.ts.map +1 -0
  187. package/dist/types/schemas/alphavantage-schemas.d.ts +255 -0
  188. package/dist/types/schemas/alphavantage-schemas.d.ts.map +1 -0
  189. package/dist/types/schemas/index.d.ts +21 -0
  190. package/dist/types/schemas/index.d.ts.map +1 -0
  191. package/dist/types/schemas/polygon-schemas.d.ts +551 -0
  192. package/dist/types/schemas/polygon-schemas.d.ts.map +1 -0
  193. package/dist/types/schemas/validate-response.d.ts +88 -0
  194. package/dist/types/schemas/validate-response.d.ts.map +1 -0
  195. package/dist/types/technical-analysis.d.ts +9 -9
  196. package/dist/types/technical-analysis.d.ts.map +1 -1
  197. package/dist/types/time-utils.d.ts.map +1 -1
  198. package/dist/types/types/adaptic-types.d.ts +1 -1
  199. package/dist/types/types/adaptic-types.d.ts.map +1 -1
  200. package/dist/types/types/alpaca-types.d.ts +172 -98
  201. package/dist/types/types/alpaca-types.d.ts.map +1 -1
  202. package/dist/types/types/alphavantage-types.d.ts +2 -2
  203. package/dist/types/types/asset-allocation-types.d.ts +11 -11
  204. package/dist/types/types/index.d.ts +8 -8
  205. package/dist/types/types/index.d.ts.map +1 -1
  206. package/dist/types/types/logging-types.d.ts +2 -2
  207. package/dist/types/types/logging-types.d.ts.map +1 -1
  208. package/dist/types/types/market-time-types.d.ts +4 -4
  209. package/dist/types/types/market-time-types.d.ts.map +1 -1
  210. package/dist/types/types/metrics-types.d.ts +3 -3
  211. package/dist/types/types/metrics-types.d.ts.map +1 -1
  212. package/dist/types/types/polygon-indices-types.d.ts +6 -6
  213. package/dist/types/types/polygon-types.d.ts +3 -3
  214. package/dist/types/types/ta-types.d.ts +3 -3
  215. package/dist/types/utils/auth-validator.d.ts +32 -0
  216. package/dist/types/utils/auth-validator.d.ts.map +1 -0
  217. package/dist/types/utils/http-keep-alive.d.ts +110 -0
  218. package/dist/types/utils/http-keep-alive.d.ts.map +1 -0
  219. package/dist/types/utils/paginator.d.ts +154 -0
  220. package/dist/types/utils/paginator.d.ts.map +1 -0
  221. package/dist/types/utils/retry.d.ts +78 -0
  222. package/dist/types/utils/retry.d.ts.map +1 -0
  223. package/package.json +25 -5
  224. package/dist/types/alpaca-functions.d.ts +0 -233
  225. package/dist/types/alpaca-functions.d.ts.map +0 -1
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Base Stream Module
3
+ * Abstract base class for all Alpaca WebSocket streams
4
+ */
5
+ import { EventEmitter } from "events";
6
+ import WebSocket from "ws";
7
+ import { LogOptions } from "../../types/logging-types";
8
+ import { AlpacaClient } from "../client";
9
+ /**
10
+ * Stream connection state
11
+ */
12
+ export type StreamState = "disconnected" | "connecting" | "connected" | "authenticated" | "error";
13
+ /**
14
+ * Stream configuration options
15
+ */
16
+ export interface StreamConfig {
17
+ /** Auto-reconnect on disconnect */
18
+ autoReconnect: boolean;
19
+ /** Reconnect delay in milliseconds */
20
+ reconnectDelay: number;
21
+ /** Maximum reconnection attempts (0 = unlimited) */
22
+ maxReconnectAttempts: number;
23
+ /** Connection timeout in milliseconds */
24
+ connectionTimeout: number;
25
+ /** Authentication timeout in milliseconds */
26
+ authTimeout: number;
27
+ /** Heartbeat interval in milliseconds (0 = disabled) */
28
+ heartbeatInterval: number;
29
+ }
30
+ /**
31
+ * Default stream configuration
32
+ */
33
+ export declare const DEFAULT_STREAM_CONFIG: StreamConfig;
34
+ /**
35
+ * Subscription request structure
36
+ */
37
+ export interface SubscriptionRequest {
38
+ trades?: string[];
39
+ quotes?: string[];
40
+ bars?: string[];
41
+ }
42
+ /**
43
+ * Abstract base class for all Alpaca WebSocket streams
44
+ */
45
+ export declare abstract class BaseStream extends EventEmitter {
46
+ protected client: AlpacaClient;
47
+ protected ws: WebSocket | null;
48
+ protected state: StreamState;
49
+ protected config: StreamConfig;
50
+ protected reconnectAttempts: number;
51
+ protected reconnectTimer: NodeJS.Timeout | null;
52
+ protected heartbeatTimer: NodeJS.Timeout | null;
53
+ protected connectionTimer: NodeJS.Timeout | null;
54
+ protected subscriptions: SubscriptionRequest;
55
+ protected pendingSubscriptions: SubscriptionRequest | null;
56
+ /** Name of the stream for logging */
57
+ protected abstract readonly streamName: string;
58
+ /** WebSocket URL for the stream */
59
+ protected abstract getStreamUrl(): string;
60
+ constructor(client: AlpacaClient, config?: Partial<StreamConfig>);
61
+ /**
62
+ * Log a message with stream context
63
+ */
64
+ protected log(message: string, options?: LogOptions): void;
65
+ /**
66
+ * Get the current stream state
67
+ */
68
+ getState(): StreamState;
69
+ /**
70
+ * Check if stream is connected and authenticated
71
+ */
72
+ isStreamConnected(): boolean;
73
+ /**
74
+ * Get current subscriptions
75
+ */
76
+ getSubscriptions(): SubscriptionRequest;
77
+ /**
78
+ * Connect to the WebSocket stream
79
+ */
80
+ connect(): Promise<void>;
81
+ /**
82
+ * Disconnect from the WebSocket stream
83
+ */
84
+ disconnect(): void;
85
+ /**
86
+ * Subscribe to market data
87
+ */
88
+ subscribe(request: SubscriptionRequest): void;
89
+ /**
90
+ * Unsubscribe from market data
91
+ */
92
+ unsubscribe(request: SubscriptionRequest): void;
93
+ /**
94
+ * Authenticate with the WebSocket
95
+ */
96
+ protected authenticate(): Promise<void>;
97
+ /**
98
+ * Send subscription request
99
+ */
100
+ protected sendSubscription(): void;
101
+ /**
102
+ * Send unsubscription request
103
+ */
104
+ protected sendUnsubscription(request: SubscriptionRequest): void;
105
+ /**
106
+ * Handle incoming WebSocket messages
107
+ */
108
+ protected handleMessage(data: WebSocket.Data): void;
109
+ /**
110
+ * Process a single message - to be implemented by subclasses
111
+ */
112
+ protected abstract processMessage(message: Record<string, unknown>): void;
113
+ /**
114
+ * Handle WebSocket close event
115
+ */
116
+ protected handleClose(code: number, reason: string): void;
117
+ /**
118
+ * Handle WebSocket error event
119
+ */
120
+ protected handleError(error: Error): void;
121
+ /**
122
+ * Schedule a reconnection attempt
123
+ */
124
+ protected scheduleReconnect(): void;
125
+ /**
126
+ * Start heartbeat to keep connection alive
127
+ */
128
+ protected startHeartbeat(): void;
129
+ /**
130
+ * Stop heartbeat timer
131
+ */
132
+ protected stopHeartbeat(): void;
133
+ /**
134
+ * Clear connection timer
135
+ */
136
+ protected clearConnectionTimer(): void;
137
+ /**
138
+ * Clear all timers
139
+ */
140
+ protected clearAllTimers(): void;
141
+ }
142
+ export default BaseStream;
143
+ //# sourceMappingURL=base-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-stream.d.ts","sourceRoot":"","sources":["../../../../src/alpaca/streams/base-stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,173 @@
1
+ /**
2
+ * Crypto Data Stream Module
3
+ * Real-time cryptocurrency quotes, trades, and bars via Alpaca WebSocket (24/7)
4
+ *
5
+ * Uses the official Alpaca SDK crypto_stream_v1beta3 for reliable real-time data.
6
+ * Provides automatic reconnection, subscription management, and type-safe events.
7
+ */
8
+ import { EventEmitter } from "events";
9
+ import { AlpacaClient } from "../client";
10
+ import { AlpacaCryptoTradeStream, AlpacaCryptoQuoteStream, AlpacaCryptoBarStream, AlpacaCryptoDailyBarStream, AlpacaCryptoUpdatedBarStream, AlpacaCryptoStreamMessage } from "../../types/alpaca-types";
11
+ import { StreamConfig, StreamState, SubscriptionRequest } from "./base-stream";
12
+ /**
13
+ * Crypto stream location
14
+ */
15
+ export type CryptoStreamLocation = "us";
16
+ /**
17
+ * Crypto stream configuration
18
+ */
19
+ export interface CryptoStreamConfig extends StreamConfig {
20
+ /** Location for crypto data */
21
+ location: CryptoStreamLocation;
22
+ }
23
+ /**
24
+ * Default crypto stream configuration
25
+ */
26
+ export declare const DEFAULT_CRYPTO_STREAM_CONFIG: Partial<CryptoStreamConfig>;
27
+ /**
28
+ * Crypto stream event map for type-safe event handling
29
+ */
30
+ export interface CryptoStreamEventMap {
31
+ trade: AlpacaCryptoTradeStream;
32
+ quote: AlpacaCryptoQuoteStream;
33
+ bar: AlpacaCryptoBarStream;
34
+ dailyBar: AlpacaCryptoDailyBarStream;
35
+ updatedBar: AlpacaCryptoUpdatedBarStream;
36
+ data: AlpacaCryptoStreamMessage;
37
+ subscription: {
38
+ trades: string[];
39
+ quotes: string[];
40
+ bars: string[];
41
+ };
42
+ authenticated: void;
43
+ connected: void;
44
+ disconnected: {
45
+ code: number;
46
+ reason: string;
47
+ };
48
+ stateChange: StreamState;
49
+ error: Error;
50
+ }
51
+ /**
52
+ * Crypto Data Stream class for receiving real-time cryptocurrency market data
53
+ * Uses the official Alpaca SDK crypto_stream_v1beta3 for WebSocket management.
54
+ * Operates 24/7 for cryptocurrency markets.
55
+ */
56
+ export declare class CryptoDataStream extends EventEmitter {
57
+ private client;
58
+ private socket;
59
+ private state;
60
+ private location;
61
+ private config;
62
+ private subscriptions;
63
+ private pendingSubscriptions;
64
+ private currentSymbol;
65
+ constructor(client: AlpacaClient, config?: Partial<CryptoStreamConfig>);
66
+ /**
67
+ * Log helper
68
+ */
69
+ private log;
70
+ /**
71
+ * Get the current stream state
72
+ */
73
+ getState(): StreamState;
74
+ /**
75
+ * Check if stream is connected and authenticated
76
+ */
77
+ isStreamConnected(): boolean;
78
+ /**
79
+ * Get current subscriptions
80
+ */
81
+ getSubscriptions(): SubscriptionRequest;
82
+ /**
83
+ * Set the stream location
84
+ */
85
+ setLocation(location: CryptoStreamLocation): void;
86
+ /**
87
+ * Get the current stream location
88
+ */
89
+ getLocation(): CryptoStreamLocation;
90
+ /**
91
+ * Connect to the crypto data stream using SDK
92
+ */
93
+ connect(): Promise<void>;
94
+ /**
95
+ * Set up all data event handlers for SDK
96
+ */
97
+ private setupDataHandlers;
98
+ /**
99
+ * Disconnect from the crypto data stream
100
+ */
101
+ disconnect(): void;
102
+ /**
103
+ * Subscribe to market data
104
+ */
105
+ subscribe(request: SubscriptionRequest): void;
106
+ /**
107
+ * Unsubscribe from market data
108
+ */
109
+ unsubscribe(request: SubscriptionRequest): void;
110
+ /**
111
+ * Subscribe to crypto trades
112
+ */
113
+ subscribeTrades(symbols: string[]): void;
114
+ /**
115
+ * Subscribe to crypto quotes
116
+ */
117
+ subscribeQuotes(symbols: string[]): void;
118
+ /**
119
+ * Subscribe to crypto bars
120
+ */
121
+ subscribeBars(symbols: string[]): void;
122
+ /**
123
+ * Subscribe to all data types for crypto symbols
124
+ */
125
+ subscribeAll(symbols: string[]): void;
126
+ /**
127
+ * Unsubscribe from crypto trades
128
+ */
129
+ unsubscribeTrades(symbols: string[]): void;
130
+ /**
131
+ * Unsubscribe from crypto quotes
132
+ */
133
+ unsubscribeQuotes(symbols: string[]): void;
134
+ /**
135
+ * Unsubscribe from crypto bars
136
+ */
137
+ unsubscribeBars(symbols: string[]): void;
138
+ /**
139
+ * Unsubscribe from all data types for crypto symbols
140
+ */
141
+ unsubscribeAll(symbols: string[]): void;
142
+ /**
143
+ * Subscribe to popular crypto pairs
144
+ */
145
+ subscribePopularPairs(): void;
146
+ /**
147
+ * Send subscription request using SDK methods
148
+ */
149
+ private sendSubscription;
150
+ /**
151
+ * Send unsubscription request using SDK methods
152
+ */
153
+ private sendUnsubscription;
154
+ private convertTrade;
155
+ private convertQuote;
156
+ private convertBar;
157
+ private convertDailyBar;
158
+ private convertUpdatedBar;
159
+ /**
160
+ * Type-safe event listener registration
161
+ */
162
+ on<K extends keyof CryptoStreamEventMap>(event: K, listener: (data: CryptoStreamEventMap[K]) => void): this;
163
+ /**
164
+ * Type-safe event emitter
165
+ */
166
+ emit<K extends keyof CryptoStreamEventMap>(event: K, data?: CryptoStreamEventMap[K]): boolean;
167
+ }
168
+ /**
169
+ * Create a crypto data stream for a client
170
+ */
171
+ export declare function createCryptoDataStream(client: AlpacaClient, config?: Partial<CryptoStreamConfig>): CryptoDataStream;
172
+ export default CryptoDataStream;
173
+ //# sourceMappingURL=crypto-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto-stream.d.ts","sourceRoot":"","sources":["../../../../src/alpaca/streams/crypto-stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Streams Module Index
3
+ * Re-exports all stream-related functionality for Alpaca WebSocket connections.
4
+ *
5
+ * This module provides unified WebSocket streaming for:
6
+ * - Trading updates (order fills, cancellations, etc.)
7
+ * - Stock market data (trades, quotes, bars)
8
+ * - Options market data (trades, quotes, bars)
9
+ * - Crypto market data (trades, quotes, bars)
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { createStreamManager, createAlpacaClient } from '@adaptic/utils';
14
+ *
15
+ * const client = createAlpacaClient({
16
+ * apiKey: 'your-api-key',
17
+ * apiSecret: 'your-api-secret',
18
+ * accountType: 'PAPER',
19
+ * });
20
+ *
21
+ * // Use the unified stream manager
22
+ * const manager = createStreamManager(client);
23
+ * await manager.connectAll();
24
+ *
25
+ * // Subscribe to stock data
26
+ * manager.subscribeStocks({
27
+ * trades: ['AAPL', 'MSFT'],
28
+ * quotes: ['AAPL', 'MSFT'],
29
+ * });
30
+ *
31
+ * // Listen for trading updates
32
+ * const tradingStream = manager.getTradingStream();
33
+ * tradingStream?.on('fill', (update) => {
34
+ * console.log(`Order filled: ${update.order.symbol}`);
35
+ * });
36
+ *
37
+ * // Or use individual streams directly
38
+ * import { createStockDataStream, createTradingStream } from '@adaptic/utils';
39
+ *
40
+ * const stockStream = createStockDataStream(client);
41
+ * await stockStream.connect();
42
+ * stockStream.subscribeTrades(['AAPL', 'TSLA']);
43
+ * stockStream.on('trade', (trade) => {
44
+ * console.log(`Trade: ${trade.S} @ ${trade.p}`);
45
+ * });
46
+ * ```
47
+ */
48
+ export { BaseStream, StreamConfig, StreamState, SubscriptionRequest, DEFAULT_STREAM_CONFIG, } from "./base-stream";
49
+ export { TradingStream, TradingStreamEvent, TradingStreamEventMap, createTradingStream, } from "./trading-stream";
50
+ export { StockDataStream, StockDataFeed, StockStreamConfig, StockStreamEventMap, createStockDataStream, DEFAULT_STOCK_STREAM_CONFIG, } from "./stock-stream";
51
+ export { OptionDataStream, OptionDataFeed, OptionStreamConfig, OptionStreamEventMap, createOptionDataStream, DEFAULT_OPTION_STREAM_CONFIG, } from "./option-stream";
52
+ export { CryptoDataStream, CryptoStreamLocation, CryptoStreamConfig, CryptoStreamEventMap, createCryptoDataStream, DEFAULT_CRYPTO_STREAM_CONFIG, } from "./crypto-stream";
53
+ export { StreamManager, StreamStatus, DetailedStreamStatus, StreamManagerConfig, StreamManagerEventMap, createStreamManager, DEFAULT_STREAM_MANAGER_CONFIG, } from "./stream-manager";
54
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/alpaca/streams/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAGH,OAAO,EACL,UAAU,EACV,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,6BAA6B,GAC9B,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Option Data Stream Module
3
+ * Real-time options quotes, trades, and bars via Alpaca WebSocket
4
+ *
5
+ * Uses the official Alpaca SDK option_stream for reliable real-time data.
6
+ * Provides automatic reconnection, subscription management, and type-safe events.
7
+ */
8
+ import { EventEmitter } from "events";
9
+ import { AlpacaClient } from "../client";
10
+ import { AlpacaOptionTradeStream, AlpacaOptionQuoteStream, AlpacaOptionBarStream, AlpacaOptionStreamMessage } from "../../types/alpaca-types";
11
+ import { StreamConfig, StreamState, SubscriptionRequest } from "./base-stream";
12
+ /**
13
+ * Option stream data feed type
14
+ */
15
+ export type OptionDataFeed = "opra" | "indicative";
16
+ /**
17
+ * Option stream configuration
18
+ */
19
+ export interface OptionStreamConfig extends StreamConfig {
20
+ /** Data feed to use */
21
+ feed: OptionDataFeed;
22
+ }
23
+ /**
24
+ * Default option stream configuration
25
+ */
26
+ export declare const DEFAULT_OPTION_STREAM_CONFIG: Partial<OptionStreamConfig>;
27
+ /**
28
+ * Option stream event map for type-safe event handling
29
+ */
30
+ export interface OptionStreamEventMap {
31
+ trade: AlpacaOptionTradeStream;
32
+ quote: AlpacaOptionQuoteStream;
33
+ bar: AlpacaOptionBarStream;
34
+ data: AlpacaOptionStreamMessage;
35
+ subscription: {
36
+ trades: string[];
37
+ quotes: string[];
38
+ };
39
+ authenticated: void;
40
+ connected: void;
41
+ disconnected: {
42
+ code: number;
43
+ reason: string;
44
+ };
45
+ stateChange: StreamState;
46
+ error: Error;
47
+ }
48
+ /**
49
+ * Option Data Stream class for receiving real-time options market data
50
+ * Uses the official Alpaca SDK option_stream for WebSocket management.
51
+ */
52
+ export declare class OptionDataStream extends EventEmitter {
53
+ private client;
54
+ private socket;
55
+ private state;
56
+ private feed;
57
+ private config;
58
+ private subscriptions;
59
+ private pendingSubscriptions;
60
+ constructor(client: AlpacaClient, config?: Partial<OptionStreamConfig>);
61
+ /**
62
+ * Log helper
63
+ */
64
+ private log;
65
+ /**
66
+ * Get the current stream state
67
+ */
68
+ getState(): StreamState;
69
+ /**
70
+ * Check if stream is connected and authenticated
71
+ */
72
+ isStreamConnected(): boolean;
73
+ /**
74
+ * Get current subscriptions
75
+ */
76
+ getSubscriptions(): SubscriptionRequest;
77
+ /**
78
+ * Set the data feed
79
+ */
80
+ setFeed(feed: OptionDataFeed): void;
81
+ /**
82
+ * Get the current data feed
83
+ */
84
+ getFeed(): OptionDataFeed;
85
+ /**
86
+ * Connect to the option data stream using SDK
87
+ */
88
+ connect(): Promise<void>;
89
+ /**
90
+ * Set up all data event handlers for SDK
91
+ */
92
+ private setupDataHandlers;
93
+ /**
94
+ * Disconnect from the option data stream
95
+ */
96
+ disconnect(): void;
97
+ /**
98
+ * Subscribe to market data
99
+ */
100
+ subscribe(request: SubscriptionRequest): void;
101
+ /**
102
+ * Unsubscribe from market data
103
+ */
104
+ unsubscribe(request: SubscriptionRequest): void;
105
+ /**
106
+ * Subscribe to option trades
107
+ */
108
+ subscribeTrades(symbols: string[]): void;
109
+ /**
110
+ * Subscribe to option quotes
111
+ */
112
+ subscribeQuotes(symbols: string[]): void;
113
+ /**
114
+ * Subscribe to option bars (not supported by SDK - logs warning)
115
+ */
116
+ subscribeBars(symbols: string[]): void;
117
+ /**
118
+ * Subscribe to all data types for option symbols
119
+ */
120
+ subscribeAll(symbols: string[]): void;
121
+ /**
122
+ * Unsubscribe from option trades
123
+ */
124
+ unsubscribeTrades(symbols: string[]): void;
125
+ /**
126
+ * Unsubscribe from option quotes
127
+ */
128
+ unsubscribeQuotes(symbols: string[]): void;
129
+ /**
130
+ * Unsubscribe from option bars (not supported)
131
+ */
132
+ unsubscribeBars(symbols: string[]): void;
133
+ /**
134
+ * Unsubscribe from all data types for option symbols
135
+ */
136
+ unsubscribeAll(symbols: string[]): void;
137
+ /**
138
+ * Subscribe to options by underlying symbol
139
+ * @param underlying The underlying stock symbol (not used in this implementation)
140
+ * @param contracts Array of option contract symbols to subscribe to
141
+ */
142
+ subscribeByUnderlying(underlying: string, contracts: string[]): void;
143
+ /**
144
+ * Send subscription request using SDK methods
145
+ */
146
+ private sendSubscription;
147
+ /**
148
+ * Send unsubscription request using SDK methods
149
+ */
150
+ private sendUnsubscription;
151
+ private convertTrade;
152
+ private convertQuote;
153
+ /**
154
+ * Type-safe event listener registration
155
+ */
156
+ on<K extends keyof OptionStreamEventMap>(event: K, listener: (data: OptionStreamEventMap[K]) => void): this;
157
+ /**
158
+ * Type-safe event emitter
159
+ */
160
+ emit<K extends keyof OptionStreamEventMap>(event: K, data?: OptionStreamEventMap[K]): boolean;
161
+ }
162
+ /**
163
+ * Create an option data stream for a client
164
+ */
165
+ export declare function createOptionDataStream(client: AlpacaClient, config?: Partial<OptionStreamConfig>): OptionDataStream;
166
+ export default OptionDataStream;
167
+ //# sourceMappingURL=option-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"option-stream.d.ts","sourceRoot":"","sources":["../../../../src/alpaca/streams/option-stream.ts"],"names":[],"mappings":"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"}