@adaptic/utils 0.1.48 → 0.1.50

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 (141) hide show
  1. package/dist/index.cjs +58226 -229
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.mjs +58193 -229
  4. package/dist/index.mjs.map +1 -1
  5. package/dist/types/alpaca/client.d.ts +105 -0
  6. package/dist/types/alpaca/client.d.ts.map +1 -0
  7. package/dist/types/alpaca/crypto/data.d.ts +281 -0
  8. package/dist/types/alpaca/crypto/data.d.ts.map +1 -0
  9. package/dist/types/alpaca/crypto/index.d.ts +75 -0
  10. package/dist/types/alpaca/crypto/index.d.ts.map +1 -0
  11. package/dist/types/alpaca/crypto/orders.d.ts +221 -0
  12. package/dist/types/alpaca/crypto/orders.d.ts.map +1 -0
  13. package/dist/types/alpaca/index.d.ts +204 -0
  14. package/dist/types/alpaca/index.d.ts.map +1 -0
  15. package/dist/types/alpaca/market-data/bars.d.ts +142 -0
  16. package/dist/types/alpaca/market-data/bars.d.ts.map +1 -0
  17. package/dist/types/alpaca/market-data/index.d.ts +13 -0
  18. package/dist/types/alpaca/market-data/index.d.ts.map +1 -0
  19. package/dist/types/alpaca/market-data/news.d.ts +87 -0
  20. package/dist/types/alpaca/market-data/news.d.ts.map +1 -0
  21. package/dist/types/alpaca/market-data/quotes.d.ts +85 -0
  22. package/dist/types/alpaca/market-data/quotes.d.ts.map +1 -0
  23. package/dist/types/alpaca/market-data/trades.d.ts +98 -0
  24. package/dist/types/alpaca/market-data/trades.d.ts.map +1 -0
  25. package/dist/types/alpaca/options/contracts.d.ts +279 -0
  26. package/dist/types/alpaca/options/contracts.d.ts.map +1 -0
  27. package/dist/types/alpaca/options/data.d.ts +126 -0
  28. package/dist/types/alpaca/options/data.d.ts.map +1 -0
  29. package/dist/types/alpaca/options/index.d.ts +17 -0
  30. package/dist/types/alpaca/options/index.d.ts.map +1 -0
  31. package/dist/types/alpaca/options/orders.d.ts +366 -0
  32. package/dist/types/alpaca/options/orders.d.ts.map +1 -0
  33. package/dist/types/alpaca/options/strategies.d.ts +224 -0
  34. package/dist/types/alpaca/options/strategies.d.ts.map +1 -0
  35. package/dist/types/alpaca/streams/base-stream.d.ts +143 -0
  36. package/dist/types/alpaca/streams/base-stream.d.ts.map +1 -0
  37. package/dist/types/alpaca/streams/crypto-stream.d.ts +173 -0
  38. package/dist/types/alpaca/streams/crypto-stream.d.ts.map +1 -0
  39. package/dist/types/alpaca/streams/index.d.ts +54 -0
  40. package/dist/types/alpaca/streams/index.d.ts.map +1 -0
  41. package/dist/types/alpaca/streams/option-stream.d.ts +167 -0
  42. package/dist/types/alpaca/streams/option-stream.d.ts.map +1 -0
  43. package/dist/types/alpaca/streams/stock-stream.d.ts +176 -0
  44. package/dist/types/alpaca/streams/stock-stream.d.ts.map +1 -0
  45. package/dist/types/alpaca/streams/stream-manager.d.ts +277 -0
  46. package/dist/types/alpaca/streams/stream-manager.d.ts.map +1 -0
  47. package/dist/types/alpaca/streams/trading-stream.d.ts +186 -0
  48. package/dist/types/alpaca/streams/trading-stream.d.ts.map +1 -0
  49. package/dist/types/alpaca/trading/account.d.ts +198 -0
  50. package/dist/types/alpaca/trading/account.d.ts.map +1 -0
  51. package/dist/types/alpaca/trading/bracket-orders.d.ts +162 -0
  52. package/dist/types/alpaca/trading/bracket-orders.d.ts.map +1 -0
  53. package/dist/types/alpaca/trading/clock.d.ts +99 -0
  54. package/dist/types/alpaca/trading/clock.d.ts.map +1 -0
  55. package/dist/types/alpaca/trading/index.d.ts +15 -0
  56. package/dist/types/alpaca/trading/index.d.ts.map +1 -0
  57. package/dist/types/alpaca/trading/oco-orders.d.ts +203 -0
  58. package/dist/types/alpaca/trading/oco-orders.d.ts.map +1 -0
  59. package/dist/types/alpaca/trading/order-utils.d.ts +404 -0
  60. package/dist/types/alpaca/trading/order-utils.d.ts.map +1 -0
  61. package/dist/types/alpaca/trading/orders.d.ts +199 -0
  62. package/dist/types/alpaca/trading/orders.d.ts.map +1 -0
  63. package/dist/types/alpaca/trading/oto-orders.d.ts +282 -0
  64. package/dist/types/alpaca/trading/oto-orders.d.ts.map +1 -0
  65. package/dist/types/alpaca/trading/positions.d.ts +389 -0
  66. package/dist/types/alpaca/trading/positions.d.ts.map +1 -0
  67. package/dist/types/alpaca/trading/smart-orders.d.ts +301 -0
  68. package/dist/types/alpaca/trading/smart-orders.d.ts.map +1 -0
  69. package/dist/types/alpaca/trading/trailing-stops.d.ts +247 -0
  70. package/dist/types/alpaca/trading/trailing-stops.d.ts.map +1 -0
  71. package/dist/types/config/api-endpoints.d.ts +94 -0
  72. package/dist/types/config/api-endpoints.d.ts.map +1 -0
  73. package/dist/types/errors/index.d.ts +130 -0
  74. package/dist/types/errors/index.d.ts.map +1 -0
  75. package/dist/types/examples/rate-limiter-example.d.ts +7 -0
  76. package/dist/types/examples/rate-limiter-example.d.ts.map +1 -0
  77. package/dist/types/http-timeout.d.ts +37 -0
  78. package/dist/types/http-timeout.d.ts.map +1 -0
  79. package/dist/types/index.d.ts +9 -0
  80. package/dist/types/index.d.ts.map +1 -1
  81. package/dist/types/logger.d.ts +68 -0
  82. package/dist/types/logger.d.ts.map +1 -0
  83. package/dist/types/massive.d.ts +167 -0
  84. package/dist/types/massive.d.ts.map +1 -0
  85. package/dist/types/rate-limiter.d.ts +173 -0
  86. package/dist/types/rate-limiter.d.ts.map +1 -0
  87. package/dist/types/risk-free-rate.d.ts +153 -0
  88. package/dist/types/risk-free-rate.d.ts.map +1 -0
  89. package/dist/types/schemas/alpaca-schemas.d.ts +779 -0
  90. package/dist/types/schemas/alpaca-schemas.d.ts.map +1 -0
  91. package/dist/types/schemas/alphavantage-schemas.d.ts +255 -0
  92. package/dist/types/schemas/alphavantage-schemas.d.ts.map +1 -0
  93. package/dist/types/schemas/index.d.ts +21 -0
  94. package/dist/types/schemas/index.d.ts.map +1 -0
  95. package/dist/types/schemas/massive-schemas.d.ts +561 -0
  96. package/dist/types/schemas/massive-schemas.d.ts.map +1 -0
  97. package/dist/types/schemas/validate-response.d.ts +88 -0
  98. package/dist/types/schemas/validate-response.d.ts.map +1 -0
  99. package/dist/types/trading-policy/defaults/default-trading-policy.d.ts +29 -0
  100. package/dist/types/trading-policy/defaults/default-trading-policy.d.ts.map +1 -0
  101. package/dist/types/trading-policy/enums.d.ts +85 -0
  102. package/dist/types/trading-policy/enums.d.ts.map +1 -0
  103. package/dist/types/trading-policy/index.d.ts +13 -2
  104. package/dist/types/trading-policy/index.d.ts.map +1 -1
  105. package/dist/types/trading-policy/schemas/asset-universe-prefs.schema.d.ts +182 -0
  106. package/dist/types/trading-policy/schemas/asset-universe-prefs.schema.d.ts.map +1 -0
  107. package/dist/types/trading-policy/schemas/audit-notification-prefs.schema.d.ts +112 -0
  108. package/dist/types/trading-policy/schemas/audit-notification-prefs.schema.d.ts.map +1 -0
  109. package/dist/types/trading-policy/schemas/autonomy-prefs.schema.d.ts +369 -0
  110. package/dist/types/trading-policy/schemas/autonomy-prefs.schema.d.ts.map +1 -0
  111. package/dist/types/trading-policy/schemas/effective-policy.schema.d.ts +1703 -0
  112. package/dist/types/trading-policy/schemas/effective-policy.schema.d.ts.map +1 -0
  113. package/dist/types/trading-policy/schemas/execution-prefs.schema.d.ts +122 -0
  114. package/dist/types/trading-policy/schemas/execution-prefs.schema.d.ts.map +1 -0
  115. package/dist/types/trading-policy/schemas/index.d.ts +13 -0
  116. package/dist/types/trading-policy/schemas/index.d.ts.map +1 -0
  117. package/dist/types/trading-policy/schemas/model-prefs.schema.d.ts +249 -0
  118. package/dist/types/trading-policy/schemas/model-prefs.schema.d.ts.map +1 -0
  119. package/dist/types/trading-policy/schemas/overlay-response-prefs.schema.d.ts +217 -0
  120. package/dist/types/trading-policy/schemas/overlay-response-prefs.schema.d.ts.map +1 -0
  121. package/dist/types/trading-policy/schemas/policy-mutation.schema.d.ts +3031 -0
  122. package/dist/types/trading-policy/schemas/policy-mutation.schema.d.ts.map +1 -0
  123. package/dist/types/trading-policy/schemas/portfolio-construction-prefs.schema.d.ts +258 -0
  124. package/dist/types/trading-policy/schemas/portfolio-construction-prefs.schema.d.ts.map +1 -0
  125. package/dist/types/trading-policy/schemas/position-management-prefs.schema.d.ts +218 -0
  126. package/dist/types/trading-policy/schemas/position-management-prefs.schema.d.ts.map +1 -0
  127. package/dist/types/trading-policy/schemas/risk-budget-prefs.schema.d.ts +188 -0
  128. package/dist/types/trading-policy/schemas/risk-budget-prefs.schema.d.ts.map +1 -0
  129. package/dist/types/trading-policy/schemas/signal-consumption-prefs.schema.d.ts +274 -0
  130. package/dist/types/trading-policy/schemas/signal-consumption-prefs.schema.d.ts.map +1 -0
  131. package/dist/types/types/alpaca-types.d.ts +108 -17
  132. package/dist/types/types/alpaca-types.d.ts.map +1 -1
  133. package/dist/types/utils/paginator.d.ts +154 -0
  134. package/dist/types/utils/paginator.d.ts.map +1 -0
  135. package/dist/types/utils/retry.d.ts +83 -0
  136. package/dist/types/utils/retry.d.ts.map +1 -0
  137. package/package.json +5 -1
  138. package/dist/types/__tests__/financial-regression.test.d.ts +0 -2
  139. package/dist/types/__tests__/financial-regression.test.d.ts.map +0 -1
  140. package/dist/types/__tests__/price-utils.test.d.ts +0 -2
  141. package/dist/types/__tests__/price-utils.test.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-orders.d.ts","sourceRoot":"","sources":["../../../../src/alpaca/trading/smart-orders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,247 @@
1
+ /**
2
+ * Native Trailing Stop Orders Module
3
+ *
4
+ * This module provides functions for creating and managing native trailing stop orders
5
+ * using Alpaca's server-side trailing stop functionality. Native trailing stops are
6
+ * handled by Alpaca's servers, eliminating the need for client-side monitoring.
7
+ *
8
+ * Key benefits of native trailing stops:
9
+ * - Server-side execution ensures stops work even if your application is offline
10
+ * - No need for polling or websocket connections to monitor prices
11
+ * - Automatic high water mark (HWM) tracking by Alpaca
12
+ * - Support for both percentage-based and dollar-based trailing
13
+ */
14
+ import { AlpacaClient } from "../client";
15
+ import { AlpacaOrder, OrderSide, TimeInForce } from "../../types/alpaca-types";
16
+ /**
17
+ * Alpaca's hard upper limit for `trail_percent` on trailing-stop orders.
18
+ * Submissions exceeding this value are rejected with HTTP 422 / code 42210000
19
+ * ("trail_percent must be <= 25"). See:
20
+ * https://docs.alpaca.markets/reference/postorder
21
+ */
22
+ export declare const ALPACA_MAX_TRAIL_PERCENT = 25;
23
+ /**
24
+ * Parameters for creating a trailing stop order
25
+ */
26
+ export interface TrailingStopParams {
27
+ /** Stock symbol */
28
+ symbol: string;
29
+ /** Number of shares */
30
+ qty: number;
31
+ /** Order side (usually 'sell' for closing long positions) */
32
+ side: OrderSide;
33
+ /** Trail by percentage (e.g., 1.0 = 1%). Must specify either trailPercent OR trailPrice */
34
+ trailPercent?: number;
35
+ /** Trail by fixed dollar amount. Must specify either trailPercent OR trailPrice */
36
+ trailPrice?: number;
37
+ /** Time in force (default: 'gtc') */
38
+ timeInForce?: TimeInForce;
39
+ /** Extended hours trading */
40
+ extendedHours?: boolean;
41
+ /** Client order ID for tracking */
42
+ clientOrderId?: string;
43
+ }
44
+ /**
45
+ * Result of trailing stop HWM query
46
+ */
47
+ export interface TrailingStopHWMResult {
48
+ /** High water mark - the highest price seen since order placement (for sell stops) */
49
+ hwm: number | null;
50
+ /** Current calculated stop price based on HWM and trail amount */
51
+ currentStop: number | null;
52
+ }
53
+ /**
54
+ * Parameters for creating trailing stops across a portfolio
55
+ */
56
+ export interface PortfolioTrailingStopParams {
57
+ /** Trail by percentage (e.g., 2.0 = 2%) */
58
+ trailPercent: number;
59
+ /** Time in force (default: 'gtc') */
60
+ timeInForce?: TimeInForce;
61
+ /** Symbols to exclude from trailing stop creation */
62
+ excludeSymbols?: string[];
63
+ }
64
+ /**
65
+ * Validation error for trailing stop parameters
66
+ */
67
+ export declare class TrailingStopValidationError extends Error {
68
+ constructor(message: string);
69
+ }
70
+ /**
71
+ * Create a native trailing stop order
72
+ *
73
+ * The trailing stop automatically adjusts based on price movement:
74
+ * - For SELL: Stop rises as price rises, locks in when price falls
75
+ * - For BUY: Stop falls as price falls, triggers when price rises
76
+ *
77
+ * Must specify either trailPercent OR trailPrice (not both)
78
+ *
79
+ * @param client - AlpacaClient instance
80
+ * @param params - Trailing stop parameters
81
+ * @returns The created order
82
+ * @throws {TrailingStopValidationError} If parameters are invalid
83
+ * @throws {Error} If order creation fails
84
+ *
85
+ * @example
86
+ * ```typescript
87
+ * // Trail by 2% on a sell (closing long position)
88
+ * await createTrailingStop(client, {
89
+ * symbol: 'AAPL',
90
+ * qty: 100,
91
+ * side: 'sell',
92
+ * trailPercent: 2.0,
93
+ * });
94
+ *
95
+ * // Trail by $5 on a sell
96
+ * await createTrailingStop(client, {
97
+ * symbol: 'AAPL',
98
+ * qty: 100,
99
+ * side: 'sell',
100
+ * trailPrice: 5.00,
101
+ * });
102
+ * ```
103
+ */
104
+ export declare function createTrailingStop(client: AlpacaClient, params: TrailingStopParams): Promise<AlpacaOrder>;
105
+ /**
106
+ * Update an existing trailing stop order
107
+ *
108
+ * You can update the trail_percent or trail_price of an existing order.
109
+ * Note: Alpaca uses 'trail' parameter for replacements (works for both percent and price).
110
+ *
111
+ * @param client - AlpacaClient instance
112
+ * @param orderId - The ID of the order to update
113
+ * @param updates - New trail parameters (specify one of trailPercent or trailPrice)
114
+ * @returns The updated order
115
+ * @throws {Error} If no update parameters provided or update fails
116
+ *
117
+ * @example
118
+ * ```typescript
119
+ * // Tighten trailing stop to 1.5%
120
+ * await updateTrailingStop(client, 'order-id-123', { trailPercent: 1.5 });
121
+ *
122
+ * // Change to $3 trail
123
+ * await updateTrailingStop(client, 'order-id-123', { trailPrice: 3.00 });
124
+ * ```
125
+ */
126
+ export declare function updateTrailingStop(client: AlpacaClient, orderId: string, updates: {
127
+ trailPercent?: number;
128
+ trailPrice?: number;
129
+ }): Promise<AlpacaOrder>;
130
+ /**
131
+ * Get the current high water mark (HWM) for a trailing stop
132
+ *
133
+ * The HWM is the highest price seen since order placement (for sell stops)
134
+ * or the lowest price (for buy stops). The current stop price is calculated
135
+ * based on the HWM and the trail amount.
136
+ *
137
+ * @param client - AlpacaClient instance
138
+ * @param orderId - The ID of the trailing stop order
139
+ * @returns Object containing HWM and current stop price (null if not yet established)
140
+ * @throws {Error} If order retrieval fails
141
+ *
142
+ * @example
143
+ * ```typescript
144
+ * const { hwm, currentStop } = await getTrailingStopHWM(client, 'order-id-123');
145
+ * console.log(`High water mark: $${hwm}, Current stop: $${currentStop}`);
146
+ * ```
147
+ */
148
+ export declare function getTrailingStopHWM(client: AlpacaClient, orderId: string): Promise<TrailingStopHWMResult>;
149
+ /**
150
+ * Cancel a trailing stop order
151
+ *
152
+ * @param client - AlpacaClient instance
153
+ * @param orderId - The ID of the trailing stop order to cancel
154
+ * @throws {Error} If cancellation fails
155
+ *
156
+ * @example
157
+ * ```typescript
158
+ * await cancelTrailingStop(client, 'order-id-123');
159
+ * ```
160
+ */
161
+ export declare function cancelTrailingStop(client: AlpacaClient, orderId: string): Promise<void>;
162
+ /**
163
+ * Create trailing stops for all positions in a portfolio
164
+ *
165
+ * This function creates trailing stop orders for all long positions in the portfolio,
166
+ * which is useful for applying blanket downside protection. Short positions are skipped.
167
+ *
168
+ * @param client - AlpacaClient instance
169
+ * @param params - Configuration for portfolio-wide trailing stops
170
+ * @returns Map of symbol to created order (symbols that failed are not included)
171
+ *
172
+ * @example
173
+ * ```typescript
174
+ * // Apply 3% trailing stops to all positions except TSLA and NVDA
175
+ * const orders = await createPortfolioTrailingStops(client, {
176
+ * trailPercent: 3.0,
177
+ * excludeSymbols: ['TSLA', 'NVDA'],
178
+ * });
179
+ *
180
+ * console.log(`Created ${orders.size} trailing stops`);
181
+ * for (const [symbol, order] of orders) {
182
+ * console.log(`${symbol}: ${order.id}`);
183
+ * }
184
+ * ```
185
+ */
186
+ export declare function createPortfolioTrailingStops(client: AlpacaClient, params: PortfolioTrailingStopParams): Promise<Map<string, AlpacaOrder>>;
187
+ /**
188
+ * Get all open trailing stop orders
189
+ *
190
+ * @param client - AlpacaClient instance
191
+ * @param symbol - Optional symbol to filter by
192
+ * @returns Array of open trailing stop orders
193
+ *
194
+ * @example
195
+ * ```typescript
196
+ * // Get all trailing stops
197
+ * const allStops = await getOpenTrailingStops(client);
198
+ *
199
+ * // Get trailing stops for specific symbol
200
+ * const appleStops = await getOpenTrailingStops(client, 'AAPL');
201
+ * ```
202
+ */
203
+ export declare function getOpenTrailingStops(client: AlpacaClient, symbol?: string): Promise<AlpacaOrder[]>;
204
+ /**
205
+ * Check if a symbol has an active trailing stop order
206
+ *
207
+ * @param client - AlpacaClient instance
208
+ * @param symbol - Stock symbol to check
209
+ * @returns True if an active trailing stop exists for the symbol
210
+ *
211
+ * @example
212
+ * ```typescript
213
+ * if (await hasActiveTrailingStop(client, 'AAPL')) {
214
+ * console.log('AAPL already has a trailing stop');
215
+ * }
216
+ * ```
217
+ */
218
+ export declare function hasActiveTrailingStop(client: AlpacaClient, symbol: string): Promise<boolean>;
219
+ /**
220
+ * Cancel all trailing stop orders for a specific symbol
221
+ *
222
+ * @param client - AlpacaClient instance
223
+ * @param symbol - Stock symbol
224
+ * @returns Number of orders canceled
225
+ *
226
+ * @example
227
+ * ```typescript
228
+ * const canceled = await cancelTrailingStopsForSymbol(client, 'AAPL');
229
+ * console.log(`Canceled ${canceled} trailing stop orders for AAPL`);
230
+ * ```
231
+ */
232
+ export declare function cancelTrailingStopsForSymbol(client: AlpacaClient, symbol: string): Promise<number>;
233
+ /**
234
+ * Default export object with all trailing stop functions
235
+ */
236
+ declare const _default: {
237
+ createTrailingStop: typeof createTrailingStop;
238
+ updateTrailingStop: typeof updateTrailingStop;
239
+ getTrailingStopHWM: typeof getTrailingStopHWM;
240
+ cancelTrailingStop: typeof cancelTrailingStop;
241
+ createPortfolioTrailingStops: typeof createPortfolioTrailingStops;
242
+ getOpenTrailingStops: typeof getOpenTrailingStops;
243
+ hasActiveTrailingStop: typeof hasActiveTrailingStop;
244
+ cancelTrailingStopsForSymbol: typeof cancelTrailingStopsForSymbol;
245
+ };
246
+ export default _default;
247
+ //# sourceMappingURL=trailing-stops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trailing-stops.d.ts","sourceRoot":"","sources":["../../../../src/alpaca/trading/trailing-stops.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Centralized API Endpoints Configuration
3
+ *
4
+ * This file defines all Alpaca API base URLs to ensure consistency
5
+ * across the codebase and make updates easier.
6
+ *
7
+ * API Version Guidelines:
8
+ * - Trading API: v2 (stable, production-ready)
9
+ * - Market Data (stocks): v2 (stable)
10
+ * - Market Data (crypto): v1beta3 (latest beta)
11
+ * - Market Data (options): v1beta1 (latest beta)
12
+ * - News API: v1beta1 (latest beta)
13
+ */
14
+ /**
15
+ * Account type for trading
16
+ */
17
+ export type AccountType = "PAPER" | "LIVE";
18
+ /**
19
+ * Trading API base URLs (v2)
20
+ * Used for orders, positions, account management
21
+ */
22
+ export declare const TRADING_API: {
23
+ readonly PAPER: "https://paper-api.alpaca.markets/v2";
24
+ readonly LIVE: "https://api.alpaca.markets/v2";
25
+ };
26
+ /**
27
+ * Get trading API base URL for account type
28
+ */
29
+ export declare function getTradingApiUrl(accountType: AccountType): string;
30
+ /**
31
+ * Market Data API base URLs
32
+ */
33
+ export declare const MARKET_DATA_API: {
34
+ /** Stock market data (v2) - bars, quotes, trades */
35
+ readonly STOCKS: "https://data.alpaca.markets/v2";
36
+ /** Cryptocurrency market data (v1beta3) - latest stable beta */
37
+ readonly CRYPTO: "https://data.alpaca.markets/v1beta3";
38
+ /** Options market data (v1beta1) */
39
+ readonly OPTIONS: "https://data.alpaca.markets/v1beta1";
40
+ /** News API (v1beta1) */
41
+ readonly NEWS: "https://data.alpaca.markets/v1beta1";
42
+ };
43
+ /**
44
+ * WebSocket stream URLs
45
+ */
46
+ export declare const WEBSOCKET_STREAMS: {
47
+ /** Trading updates (orders, fills, etc.) */
48
+ readonly TRADING: {
49
+ readonly PAPER: "wss://paper-api.alpaca.markets/stream";
50
+ readonly LIVE: "wss://api.alpaca.markets/stream";
51
+ };
52
+ /** Stock market data stream (v2). Feed controlled by ALPACA_DATA_FEED env (iex|sip, default: iex). */
53
+ readonly STOCKS: {
54
+ readonly PRODUCTION: `wss://stream.data.alpaca.markets/v2/${string}`;
55
+ readonly TEST: "wss://stream.data.alpaca.markets/v2/test";
56
+ };
57
+ /** Options market data stream (v1beta3) */
58
+ readonly OPTIONS: {
59
+ readonly PRODUCTION: "wss://stream.data.alpaca.markets/v1beta3/options";
60
+ readonly SANDBOX: "wss://stream.data.sandbox.alpaca.markets/v1beta3/options";
61
+ };
62
+ /** Crypto market data stream (v1beta3) */
63
+ readonly CRYPTO: {
64
+ readonly PRODUCTION: "wss://stream.data.alpaca.markets/v1beta3/crypto/us";
65
+ readonly SANDBOX: "wss://stream.data.sandbox.alpaca.markets/v1beta3/crypto/us";
66
+ };
67
+ };
68
+ /**
69
+ * Get trading WebSocket URL for account type
70
+ */
71
+ export declare function getTradingWebSocketUrl(accountType: AccountType): string;
72
+ /**
73
+ * Get stock stream WebSocket URL
74
+ */
75
+ export declare function getStockStreamUrl(mode?: "PRODUCTION" | "TEST"): string;
76
+ /**
77
+ * Get options stream WebSocket URL
78
+ */
79
+ export declare function getOptionsStreamUrl(mode?: "PRODUCTION" | "SANDBOX"): string;
80
+ /**
81
+ * Get crypto stream WebSocket URL
82
+ */
83
+ export declare function getCryptoStreamUrl(mode?: "PRODUCTION" | "SANDBOX"): string;
84
+ /**
85
+ * Legacy support - map old API version references to current
86
+ * @deprecated Use the constants above directly
87
+ */
88
+ export declare const LEGACY_API_VERSIONS: {
89
+ /** @deprecated Use MARKET_DATA_API.OPTIONS instead */
90
+ readonly v1beta1: "https://data.alpaca.markets/v1beta1";
91
+ /** @deprecated Use MARKET_DATA_API.CRYPTO instead */
92
+ readonly v1beta3: "https://data.alpaca.markets/v1beta3";
93
+ };
94
+ //# sourceMappingURL=api-endpoints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-endpoints.d.ts","sourceRoot":"","sources":["../../../src/config/api-endpoints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,WAAW;;;CAGd,CAAC;AAEX;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAEjE;AAED;;GAEG;AACH,eAAO,MAAM,eAAe;IAC1B,oDAAoD;;IAEpD,gEAAgE;;IAEhE,oCAAoC;;IAEpC,yBAAyB;;CAEjB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,iBAAiB;IAC5B,4CAA4C;;;;;IAK5C,sGAAsG;;;;;IAKtG,2CAA2C;;;;;IAK3C,0CAA0C;;;;;CAKlC,CAAC;AAEX;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAEvE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,GAAE,YAAY,GAAG,MAAqB,GACzC,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,GAAE,YAAY,GAAG,SAAwB,GAC5C,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,GAAE,YAAY,GAAG,SAAwB,GAC5C,MAAM,CAER;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB;IAC9B,sDAAsD;;IAEtD,qDAAqD;;CAE7C,CAAC"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Structured error type hierarchy for all API integrations
3
+ *
4
+ * This module provides a comprehensive error handling system for external API integrations,
5
+ * including Alpaca, Massive, and AlphaVantage services.
6
+ */
7
+ /**
8
+ * Base error class for all @adaptic/utils errors
9
+ * Extends Error with additional context about service, error code, and retry capability
10
+ */
11
+ export declare class AdapticUtilsError extends Error {
12
+ readonly code: string;
13
+ readonly service: string;
14
+ readonly isRetryable: boolean;
15
+ readonly cause?: unknown | undefined;
16
+ readonly name: string;
17
+ constructor(message: string, code: string, service: string, isRetryable?: boolean, cause?: unknown | undefined);
18
+ }
19
+ /**
20
+ * Alpaca API specific errors
21
+ * Handles all errors from Alpaca trading and market data APIs
22
+ */
23
+ export declare class AlpacaApiError extends AdapticUtilsError {
24
+ readonly statusCode?: number | undefined;
25
+ constructor(message: string, code: string, statusCode?: number | undefined, cause?: unknown);
26
+ }
27
+ /**
28
+ * Massive.com API specific errors
29
+ * Handles all errors from Massive market data API
30
+ */
31
+ export declare class MassiveApiError extends AdapticUtilsError {
32
+ readonly statusCode?: number | undefined;
33
+ constructor(message: string, code: string, statusCode?: number | undefined, cause?: unknown);
34
+ }
35
+ /**
36
+ * AlphaVantage API specific errors
37
+ * Handles all errors from AlphaVantage financial data API
38
+ */
39
+ export declare class AlphaVantageError extends AdapticUtilsError {
40
+ readonly statusCode?: number | undefined;
41
+ constructor(message: string, code: string, statusCode?: number | undefined, cause?: unknown);
42
+ }
43
+ /**
44
+ * Network timeout errors
45
+ * Used when API requests exceed configured timeout limits
46
+ * Always retryable as timeouts are often transient
47
+ */
48
+ export declare class TimeoutError extends AdapticUtilsError {
49
+ readonly service: string;
50
+ readonly timeoutMs: number;
51
+ constructor(message: string, service: string, timeoutMs: number, cause?: unknown);
52
+ }
53
+ /**
54
+ * Input validation errors
55
+ * Used when function inputs fail validation checks
56
+ * Never retryable as the inputs need to be corrected
57
+ */
58
+ export declare class ValidationError extends AdapticUtilsError {
59
+ readonly service: string;
60
+ readonly invalidField?: string | undefined;
61
+ constructor(message: string, service: string, invalidField?: string | undefined, cause?: unknown);
62
+ }
63
+ /**
64
+ * Authentication and authorization errors
65
+ * Used when API credentials are invalid, expired, or lack permissions
66
+ * Never retryable as credentials need to be updated
67
+ */
68
+ export declare class AuthenticationError extends AdapticUtilsError {
69
+ readonly service: string;
70
+ readonly statusCode?: number | undefined;
71
+ constructor(message: string, service: string, statusCode?: number | undefined, cause?: unknown);
72
+ }
73
+ /**
74
+ * HTTP client errors (4xx)
75
+ * Used for client-side errors that are not authentication or validation related
76
+ * Generally not retryable unless specific status codes indicate otherwise
77
+ */
78
+ export declare class HttpClientError extends AdapticUtilsError {
79
+ readonly service: string;
80
+ readonly statusCode: number;
81
+ constructor(message: string, service: string, statusCode: number, cause?: unknown);
82
+ }
83
+ /**
84
+ * HTTP server errors (5xx)
85
+ * Used for server-side errors from external APIs
86
+ * Always retryable as server issues are often transient
87
+ */
88
+ export declare class HttpServerError extends AdapticUtilsError {
89
+ readonly service: string;
90
+ readonly statusCode: number;
91
+ constructor(message: string, service: string, statusCode: number, cause?: unknown);
92
+ }
93
+ /**
94
+ * Rate limit errors (429)
95
+ * Used when API rate limits are exceeded
96
+ * Always retryable, often with retry-after header information
97
+ */
98
+ export declare class RateLimitError extends AdapticUtilsError {
99
+ readonly service: string;
100
+ readonly retryAfterMs?: number | undefined;
101
+ constructor(message: string, service: string, retryAfterMs?: number | undefined, cause?: unknown);
102
+ }
103
+ /**
104
+ * WebSocket connection errors
105
+ * Used for WebSocket-specific connection and communication failures
106
+ * Retryability depends on the specific error condition
107
+ */
108
+ export declare class WebSocketError extends AdapticUtilsError {
109
+ readonly service: string;
110
+ constructor(message: string, service: string, isRetryable?: boolean, cause?: unknown);
111
+ }
112
+ /**
113
+ * Network errors (connection failures, DNS issues, etc.)
114
+ * Used for low-level network failures
115
+ * Always retryable as network issues are often transient
116
+ */
117
+ export declare class NetworkError extends AdapticUtilsError {
118
+ readonly service: string;
119
+ constructor(message: string, service: string, cause?: unknown);
120
+ }
121
+ /**
122
+ * Data parsing and format errors
123
+ * Used when API responses cannot be parsed or are in unexpected format
124
+ * Not retryable as the data format issue needs investigation
125
+ */
126
+ export declare class DataFormatError extends AdapticUtilsError {
127
+ readonly service: string;
128
+ constructor(message: string, service: string, cause?: unknown);
129
+ }
130
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Rate Limiter Usage Examples
3
+ *
4
+ * Demonstrates how to use the TokenBucketRateLimiter for various API integrations
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=rate-limiter-example.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limiter-example.d.ts","sourceRoot":"","sources":["../../../src/examples/rate-limiter-example.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * HTTP request timeout utilities
3
+ * Provides configurable timeout handling for external API calls
4
+ */
5
+ /**
6
+ * Default timeout values for different external APIs (in milliseconds)
7
+ * Can be overridden via environment variables
8
+ */
9
+ export declare const DEFAULT_TIMEOUTS: {
10
+ readonly ALPACA_API: number;
11
+ readonly MASSIVE_API: number;
12
+ readonly ALPHA_VANTAGE: number;
13
+ readonly GENERAL: number;
14
+ };
15
+ /**
16
+ * Wraps a promise with a timeout
17
+ * @param promise - The promise to wrap with timeout
18
+ * @param ms - Timeout duration in milliseconds
19
+ * @param label - Label for error messages to identify the request
20
+ * @returns Promise that rejects if timeout is exceeded
21
+ * @throws Error if the promise takes longer than the specified timeout
22
+ */
23
+ export declare function withTimeout<T>(promise: Promise<T>, ms: number, label: string): Promise<T>;
24
+ /**
25
+ * Creates an AbortSignal that times out after the specified duration
26
+ * Compatible with fetch API
27
+ * @param ms - Timeout duration in milliseconds
28
+ * @returns AbortSignal that will abort after the specified duration
29
+ */
30
+ export declare function createTimeoutSignal(ms: number): AbortSignal;
31
+ /**
32
+ * Get the appropriate timeout value for a given API
33
+ * @param api - The API type to get timeout for
34
+ * @returns Timeout value in milliseconds
35
+ */
36
+ export declare function getTimeout(api: keyof typeof DEFAULT_TIMEOUTS): number;
37
+ //# sourceMappingURL=http-timeout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-timeout.d.ts","sourceRoot":"","sources":["../../src/http-timeout.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;CAKnB,CAAC;AAEX;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,CAAC,CAAC,CAUZ;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,CAE3D;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,OAAO,gBAAgB,GAAG,MAAM,CAErE"}
@@ -20,6 +20,15 @@ export * as tradingPolicy from "./trading-policy";
20
20
  export { DEFAULT_TRADING_POLICY, DEFAULT_TRADING_POLICY_UTILS_TUNED, getUtilsTunedTradingPolicy, type TradingPolicyJson, } from "./trading-policy";
21
21
  export { AlpacaTradingAPI } from "./alpaca-trading-api";
22
22
  export { AlpacaMarketDataAPI } from "./alpaca-market-data-api";
23
+ export * as alpacaSdk from "./alpaca";
24
+ export * as schemas from "./schemas";
25
+ export * from "./errors";
26
+ export * from "./logger";
27
+ export * from "./rate-limiter";
28
+ export * from "./http-timeout";
29
+ export * from "./risk-free-rate";
30
+ export * as paginator from "./utils/paginator";
31
+ export * as retry from "./utils/retry";
23
32
  export { validateAlpacaCredentials, validateMassiveApiKey, validateAlphaVantageApiKey, } from "./utils/auth-validator";
24
33
  export { KEEP_ALIVE_DEFAULTS, httpAgent, httpsAgent, getAgentPoolStatus, verifyFetchKeepAlive, type ConnectionPoolStatus, } from "./utils/http-keep-alive";
25
34
  export declare const createAlpacaTradingAPI: (credentials: Types.AlpacaCredentials) => Types.AlpacaTradingAPI;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,iBAAiB,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AACrC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAK3C,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,qBAAqB,EACrB,KAAK,6BAA6B,EAClC,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AAEtC,cAAc,gCAAgC,CAAC;AAG/C,cAAc,SAAS,CAAC;AAIxB,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,sBAAsB,EACtB,kCAAkC,EAClC,0BAA0B,EAC1B,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAM/D,OAAO,KAAK,SAAS,MAAM,UAAU,CAAC;AAGtC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAGrC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,KAAK,MAAM,eAAe,CAAC;AAIvC,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,oBAAoB,GAC1B,MAAM,yBAAyB,CAAC;AAGjC,eAAO,MAAM,sBAAsB,GACjC,aAAa,KAAK,CAAC,iBAAiB,2BAGrC,CAAC;AAEF,eAAO,MAAM,yBAAyB,iCAErC,CAAC;AAGF,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA7DkB,CAAC;;;iBA8EV,CAAC;eACxB,CAAF;iBAAiB,CAAC;kBAChB,CAAL;gBAAkB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAnFjB,CAAC;;;kBA8MgjJ,CAAC;oBAAsB,CAAC;sBAAyB,CAAC;;;kBAlG5jJ,CAAC;;;kBAkG4gW,CAAC;qBAAuB,CAAC;uBAAkC,CAAC;wBAAmC,CAAC;uBAAkC,CAAC;wBAAmC,CAAC;iBAA4B,CAAC;iBAA2B,CAAC;gBAAkB,CAAC;;;;;eAlBxwW,CAAC;;;iBAE/B,CAAD;;kBAAmC,CAAC;;;;;kBAgBmsQ,CAAC;oBAAsB,CAAC;;;;;;kBAjM/sQ,CAAC;;;kBAiDjC,CAAC;;;kBA6ChB,CAAA;;;kBAqC0B,CAAC;;;kBA2CY,CAAC;gBACxC,CAAJ;iBAAmB,CAAC;iBAAmB,CAAC;gBACpC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAcH,CAAC;AAEF,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA1MoB,CAAC;;;iBA8EV,CAAC;eACxB,CAAF;iBAAiB,CAAC;kBAChB,CAAL;gBAAkB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAnFjB,CAAC;;;kBA8MgjJ,CAAC;oBAAsB,CAAC;sBAAyB,CAAC;;;kBAlG5jJ,CAAC;;;kBAkG4gW,CAAC;qBAAuB,CAAC;uBAAkC,CAAC;wBAAmC,CAAC;uBAAkC,CAAC;wBAAmC,CAAC;iBAA4B,CAAC;iBAA2B,CAAC;gBAAkB,CAAC;;;;;eAlBxwW,CAAC;;;iBAE/B,CAAD;;kBAAmC,CAAC;;;;;kBAgBmsQ,CAAC;oBAAsB,CAAC;;;;;;kBAjM/sQ,CAAC;;;kBAiDjC,CAAC;;;kBA6ChB,CAAA;;;kBAqC0B,CAAC;;;kBA2CY,CAAC;gBACxC,CAAJ;iBAAmB,CAAC;iBAAmB,CAAC;gBACpC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgBwB,CAAC"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Configurable logger interface compatible with Pino and other logging libraries.
3
+ * Provides structured logging with context support.
4
+ */
5
+ export interface Logger {
6
+ error(message: string, context?: unknown): void;
7
+ warn(message: string, context?: unknown): void;
8
+ info(message: string, context?: unknown): void;
9
+ debug(message: string, context?: unknown): void;
10
+ }
11
+ /**
12
+ * Sets a custom logger implementation.
13
+ * Call this to integrate with Pino or other logging libraries.
14
+ *
15
+ * @param logger - The logger implementation to use
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * import pino from 'pino';
20
+ * import { setLogger } from '@adaptic/utils';
21
+ *
22
+ * const pinoLogger = pino();
23
+ *
24
+ * setLogger({
25
+ * error: (msg, ctx) => pinoLogger.error(ctx, msg),
26
+ * warn: (msg, ctx) => pinoLogger.warn(ctx, msg),
27
+ * info: (msg, ctx) => pinoLogger.info(ctx, msg),
28
+ * debug: (msg, ctx) => pinoLogger.debug(ctx, msg),
29
+ * });
30
+ * ```
31
+ */
32
+ export declare function setLogger(logger: Logger): void;
33
+ /**
34
+ * Returns true when an external logger has been injected via {@link setLogger}.
35
+ *
36
+ * Used by the legacy {@link log} export in `logging.ts` to decide whether to
37
+ * route messages through the injected (production) logger or fall back to the
38
+ * `DisplayManager` terminal widget (standalone CLI usage). Without this flag,
39
+ * library code that imports `log` from `./logging` would silently bypass any
40
+ * structured logging pipeline (Pino, OTel) the host application has wired in.
41
+ *
42
+ * @returns `true` if {@link setLogger} has been called since the last reset
43
+ */
44
+ export declare function isLoggerInjected(): boolean;
45
+ /**
46
+ * Gets the current logger instance.
47
+ * Use this to log messages throughout the application.
48
+ *
49
+ * @returns The current logger instance
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * import { getLogger } from '@adaptic/utils';
54
+ *
55
+ * const logger = getLogger();
56
+ * logger.error('Operation failed', { userId: 123, operation: 'createOrder' });
57
+ * logger.warn('Rate limit approaching', { remaining: 10 });
58
+ * logger.info('Order created', { orderId: 'abc123', symbol: 'AAPL' });
59
+ * logger.debug('Cache hit', { key: 'user:123' });
60
+ * ```
61
+ */
62
+ export declare function getLogger(): Logger;
63
+ /**
64
+ * Resets the logger to the default console-based implementation.
65
+ * Useful for testing or cleanup.
66
+ */
67
+ export declare function resetLogger(): void;
68
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACjD;AA+CD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAG9C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAGlC"}