@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,551 @@
1
+ /**
2
+ * Zod schemas for Polygon.io API response validation.
3
+ * Validates API responses against expected shapes to catch breaking API changes early.
4
+ */
5
+ import { z } from "zod";
6
+ /** Schema for raw Polygon price data (as returned from aggregates endpoint) */
7
+ export declare const RawPolygonPriceDataSchema: z.ZodObject<{
8
+ T: z.ZodString;
9
+ c: z.ZodNumber;
10
+ h: z.ZodNumber;
11
+ l: z.ZodNumber;
12
+ n: z.ZodNumber;
13
+ o: z.ZodNumber;
14
+ t: z.ZodNumber;
15
+ v: z.ZodNumber;
16
+ vw: z.ZodNumber;
17
+ }, "strip", z.ZodTypeAny, {
18
+ t: number;
19
+ T: string;
20
+ o: number;
21
+ h: number;
22
+ l: number;
23
+ c: number;
24
+ v: number;
25
+ vw: number;
26
+ n: number;
27
+ }, {
28
+ t: number;
29
+ T: string;
30
+ o: number;
31
+ h: number;
32
+ l: number;
33
+ c: number;
34
+ v: number;
35
+ vw: number;
36
+ n: number;
37
+ }>;
38
+ /** Schema for Polygon ticker info response */
39
+ export declare const PolygonTickerInfoSchema: z.ZodObject<{
40
+ active: z.ZodBoolean;
41
+ currency_name: z.ZodString;
42
+ delisted_utc: z.ZodOptional<z.ZodString>;
43
+ description: z.ZodDefault<z.ZodOptional<z.ZodString>>;
44
+ locale: z.ZodString;
45
+ market: z.ZodEnum<["stocks", "crypto", "indices", "fx", "otc"]>;
46
+ market_cap: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
47
+ name: z.ZodString;
48
+ primary_exchange: z.ZodString;
49
+ share_class_shares_outstanding: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
50
+ ticker: z.ZodString;
51
+ type: z.ZodString;
52
+ }, "strip", z.ZodTypeAny, {
53
+ type: string;
54
+ market: "crypto" | "stocks" | "indices" | "fx" | "otc";
55
+ active: boolean;
56
+ description: string;
57
+ ticker: string;
58
+ currency_name: string;
59
+ locale: string;
60
+ name: string;
61
+ primary_exchange: string;
62
+ market_cap: number;
63
+ delisted_utc?: string | undefined;
64
+ share_class_shares_outstanding?: number | null | undefined;
65
+ }, {
66
+ type: string;
67
+ market: "crypto" | "stocks" | "indices" | "fx" | "otc";
68
+ active: boolean;
69
+ ticker: string;
70
+ currency_name: string;
71
+ locale: string;
72
+ name: string;
73
+ primary_exchange: string;
74
+ description?: string | undefined;
75
+ delisted_utc?: string | undefined;
76
+ market_cap?: number | undefined;
77
+ share_class_shares_outstanding?: number | null | undefined;
78
+ }>;
79
+ /** Schema for the wrapper around ticker details API response */
80
+ export declare const PolygonTickerDetailsResponseSchema: z.ZodObject<{
81
+ results: z.ZodObject<{
82
+ active: z.ZodBoolean;
83
+ currency_name: z.ZodString;
84
+ delisted_utc: z.ZodOptional<z.ZodString>;
85
+ description: z.ZodDefault<z.ZodOptional<z.ZodString>>;
86
+ locale: z.ZodString;
87
+ market: z.ZodEnum<["stocks", "crypto", "indices", "fx", "otc"]>;
88
+ market_cap: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
89
+ name: z.ZodString;
90
+ primary_exchange: z.ZodString;
91
+ share_class_shares_outstanding: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
92
+ ticker: z.ZodString;
93
+ type: z.ZodString;
94
+ }, "strip", z.ZodTypeAny, {
95
+ type: string;
96
+ market: "crypto" | "stocks" | "indices" | "fx" | "otc";
97
+ active: boolean;
98
+ description: string;
99
+ ticker: string;
100
+ currency_name: string;
101
+ locale: string;
102
+ name: string;
103
+ primary_exchange: string;
104
+ market_cap: number;
105
+ delisted_utc?: string | undefined;
106
+ share_class_shares_outstanding?: number | null | undefined;
107
+ }, {
108
+ type: string;
109
+ market: "crypto" | "stocks" | "indices" | "fx" | "otc";
110
+ active: boolean;
111
+ ticker: string;
112
+ currency_name: string;
113
+ locale: string;
114
+ name: string;
115
+ primary_exchange: string;
116
+ description?: string | undefined;
117
+ delisted_utc?: string | undefined;
118
+ market_cap?: number | undefined;
119
+ share_class_shares_outstanding?: number | null | undefined;
120
+ }>;
121
+ status: z.ZodString;
122
+ request_id: z.ZodString;
123
+ }, "strip", z.ZodTypeAny, {
124
+ status: string;
125
+ results: {
126
+ type: string;
127
+ market: "crypto" | "stocks" | "indices" | "fx" | "otc";
128
+ active: boolean;
129
+ description: string;
130
+ ticker: string;
131
+ currency_name: string;
132
+ locale: string;
133
+ name: string;
134
+ primary_exchange: string;
135
+ market_cap: number;
136
+ delisted_utc?: string | undefined;
137
+ share_class_shares_outstanding?: number | null | undefined;
138
+ };
139
+ request_id: string;
140
+ }, {
141
+ status: string;
142
+ results: {
143
+ type: string;
144
+ market: "crypto" | "stocks" | "indices" | "fx" | "otc";
145
+ active: boolean;
146
+ ticker: string;
147
+ currency_name: string;
148
+ locale: string;
149
+ name: string;
150
+ primary_exchange: string;
151
+ description?: string | undefined;
152
+ delisted_utc?: string | undefined;
153
+ market_cap?: number | undefined;
154
+ share_class_shares_outstanding?: number | null | undefined;
155
+ };
156
+ request_id: string;
157
+ }>;
158
+ /** Schema for Polygon grouped daily response */
159
+ export declare const PolygonGroupedDailyResponseSchema: z.ZodObject<{
160
+ adjusted: z.ZodBoolean;
161
+ queryCount: z.ZodNumber;
162
+ request_id: z.ZodString;
163
+ resultsCount: z.ZodNumber;
164
+ status: z.ZodString;
165
+ results: z.ZodArray<z.ZodObject<{
166
+ T: z.ZodString;
167
+ c: z.ZodNumber;
168
+ h: z.ZodNumber;
169
+ l: z.ZodNumber;
170
+ n: z.ZodNumber;
171
+ o: z.ZodNumber;
172
+ t: z.ZodNumber;
173
+ v: z.ZodNumber;
174
+ vw: z.ZodNumber;
175
+ }, "strip", z.ZodTypeAny, {
176
+ t: number;
177
+ T: string;
178
+ o: number;
179
+ h: number;
180
+ l: number;
181
+ c: number;
182
+ v: number;
183
+ vw: number;
184
+ n: number;
185
+ }, {
186
+ t: number;
187
+ T: string;
188
+ o: number;
189
+ h: number;
190
+ l: number;
191
+ c: number;
192
+ v: number;
193
+ vw: number;
194
+ n: number;
195
+ }>, "many">;
196
+ }, "strip", z.ZodTypeAny, {
197
+ status: string;
198
+ adjusted: boolean;
199
+ results: {
200
+ t: number;
201
+ T: string;
202
+ o: number;
203
+ h: number;
204
+ l: number;
205
+ c: number;
206
+ v: number;
207
+ vw: number;
208
+ n: number;
209
+ }[];
210
+ request_id: string;
211
+ queryCount: number;
212
+ resultsCount: number;
213
+ }, {
214
+ status: string;
215
+ adjusted: boolean;
216
+ results: {
217
+ t: number;
218
+ T: string;
219
+ o: number;
220
+ h: number;
221
+ l: number;
222
+ c: number;
223
+ v: number;
224
+ vw: number;
225
+ n: number;
226
+ }[];
227
+ request_id: string;
228
+ queryCount: number;
229
+ resultsCount: number;
230
+ }>;
231
+ /** Schema for Polygon daily open close response */
232
+ export declare const PolygonDailyOpenCloseSchema: z.ZodObject<{
233
+ afterHours: z.ZodOptional<z.ZodNumber>;
234
+ close: z.ZodNumber;
235
+ from: z.ZodString;
236
+ high: z.ZodNumber;
237
+ low: z.ZodNumber;
238
+ open: z.ZodNumber;
239
+ preMarket: z.ZodOptional<z.ZodNumber>;
240
+ status: z.ZodString;
241
+ symbol: z.ZodString;
242
+ volume: z.ZodNumber;
243
+ }, "strip", z.ZodTypeAny, {
244
+ symbol: string;
245
+ close: number;
246
+ open: number;
247
+ status: string;
248
+ from: string;
249
+ high: number;
250
+ low: number;
251
+ volume: number;
252
+ preMarket?: number | undefined;
253
+ afterHours?: number | undefined;
254
+ }, {
255
+ symbol: string;
256
+ close: number;
257
+ open: number;
258
+ status: string;
259
+ from: string;
260
+ high: number;
261
+ low: number;
262
+ volume: number;
263
+ preMarket?: number | undefined;
264
+ afterHours?: number | undefined;
265
+ }>;
266
+ /** Schema for a single Polygon trade */
267
+ export declare const PolygonTradeSchema: z.ZodObject<{
268
+ conditions: z.ZodArray<z.ZodNumber, "many">;
269
+ correction: z.ZodOptional<z.ZodNumber>;
270
+ exchange: z.ZodNumber;
271
+ id: z.ZodString;
272
+ participant_timestamp: z.ZodNumber;
273
+ price: z.ZodNumber;
274
+ sequence_number: z.ZodNumber;
275
+ sip_timestamp: z.ZodNumber;
276
+ size: z.ZodNumber;
277
+ tape: z.ZodOptional<z.ZodNumber>;
278
+ trf_id: z.ZodOptional<z.ZodNumber>;
279
+ trf_timestamp: z.ZodOptional<z.ZodNumber>;
280
+ }, "strip", z.ZodTypeAny, {
281
+ id: string;
282
+ size: number;
283
+ price: number;
284
+ exchange: number;
285
+ conditions: number[];
286
+ participant_timestamp: number;
287
+ sequence_number: number;
288
+ sip_timestamp: number;
289
+ correction?: number | undefined;
290
+ tape?: number | undefined;
291
+ trf_id?: number | undefined;
292
+ trf_timestamp?: number | undefined;
293
+ }, {
294
+ id: string;
295
+ size: number;
296
+ price: number;
297
+ exchange: number;
298
+ conditions: number[];
299
+ participant_timestamp: number;
300
+ sequence_number: number;
301
+ sip_timestamp: number;
302
+ correction?: number | undefined;
303
+ tape?: number | undefined;
304
+ trf_id?: number | undefined;
305
+ trf_timestamp?: number | undefined;
306
+ }>;
307
+ /** Schema for Polygon trades response */
308
+ export declare const PolygonTradesResponseSchema: z.ZodObject<{
309
+ status: z.ZodLiteral<"OK">;
310
+ request_id: z.ZodString;
311
+ next_url: z.ZodOptional<z.ZodString>;
312
+ results: z.ZodArray<z.ZodObject<{
313
+ conditions: z.ZodArray<z.ZodNumber, "many">;
314
+ correction: z.ZodOptional<z.ZodNumber>;
315
+ exchange: z.ZodNumber;
316
+ id: z.ZodString;
317
+ participant_timestamp: z.ZodNumber;
318
+ price: z.ZodNumber;
319
+ sequence_number: z.ZodNumber;
320
+ sip_timestamp: z.ZodNumber;
321
+ size: z.ZodNumber;
322
+ tape: z.ZodOptional<z.ZodNumber>;
323
+ trf_id: z.ZodOptional<z.ZodNumber>;
324
+ trf_timestamp: z.ZodOptional<z.ZodNumber>;
325
+ }, "strip", z.ZodTypeAny, {
326
+ id: string;
327
+ size: number;
328
+ price: number;
329
+ exchange: number;
330
+ conditions: number[];
331
+ participant_timestamp: number;
332
+ sequence_number: number;
333
+ sip_timestamp: number;
334
+ correction?: number | undefined;
335
+ tape?: number | undefined;
336
+ trf_id?: number | undefined;
337
+ trf_timestamp?: number | undefined;
338
+ }, {
339
+ id: string;
340
+ size: number;
341
+ price: number;
342
+ exchange: number;
343
+ conditions: number[];
344
+ participant_timestamp: number;
345
+ sequence_number: number;
346
+ sip_timestamp: number;
347
+ correction?: number | undefined;
348
+ tape?: number | undefined;
349
+ trf_id?: number | undefined;
350
+ trf_timestamp?: number | undefined;
351
+ }>, "many">;
352
+ }, "strip", z.ZodTypeAny, {
353
+ status: "OK";
354
+ results: {
355
+ id: string;
356
+ size: number;
357
+ price: number;
358
+ exchange: number;
359
+ conditions: number[];
360
+ participant_timestamp: number;
361
+ sequence_number: number;
362
+ sip_timestamp: number;
363
+ correction?: number | undefined;
364
+ tape?: number | undefined;
365
+ trf_id?: number | undefined;
366
+ trf_timestamp?: number | undefined;
367
+ }[];
368
+ request_id: string;
369
+ next_url?: string | undefined;
370
+ }, {
371
+ status: "OK";
372
+ results: {
373
+ id: string;
374
+ size: number;
375
+ price: number;
376
+ exchange: number;
377
+ conditions: number[];
378
+ participant_timestamp: number;
379
+ sequence_number: number;
380
+ sip_timestamp: number;
381
+ correction?: number | undefined;
382
+ tape?: number | undefined;
383
+ trf_id?: number | undefined;
384
+ trf_timestamp?: number | undefined;
385
+ }[];
386
+ request_id: string;
387
+ next_url?: string | undefined;
388
+ }>;
389
+ /** Schema for Polygon last trade response */
390
+ export declare const PolygonLastTradeResponseSchema: z.ZodObject<{
391
+ status: z.ZodString;
392
+ request_id: z.ZodString;
393
+ results: z.ZodObject<{
394
+ T: z.ZodString;
395
+ p: z.ZodNumber;
396
+ s: z.ZodNumber;
397
+ t: z.ZodNumber;
398
+ c: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
399
+ e: z.ZodOptional<z.ZodNumber>;
400
+ i: z.ZodOptional<z.ZodString>;
401
+ q: z.ZodOptional<z.ZodNumber>;
402
+ x: z.ZodOptional<z.ZodNumber>;
403
+ z: z.ZodOptional<z.ZodNumber>;
404
+ }, "strip", z.ZodTypeAny, {
405
+ t: number;
406
+ T: string;
407
+ s: number;
408
+ p: number;
409
+ q?: number | undefined;
410
+ c?: number[] | undefined;
411
+ x?: number | undefined;
412
+ i?: string | undefined;
413
+ z?: number | undefined;
414
+ e?: number | undefined;
415
+ }, {
416
+ t: number;
417
+ T: string;
418
+ s: number;
419
+ p: number;
420
+ q?: number | undefined;
421
+ c?: number[] | undefined;
422
+ x?: number | undefined;
423
+ i?: string | undefined;
424
+ z?: number | undefined;
425
+ e?: number | undefined;
426
+ }>;
427
+ }, "strip", z.ZodTypeAny, {
428
+ status: string;
429
+ results: {
430
+ t: number;
431
+ T: string;
432
+ s: number;
433
+ p: number;
434
+ q?: number | undefined;
435
+ c?: number[] | undefined;
436
+ x?: number | undefined;
437
+ i?: string | undefined;
438
+ z?: number | undefined;
439
+ e?: number | undefined;
440
+ };
441
+ request_id: string;
442
+ }, {
443
+ status: string;
444
+ results: {
445
+ t: number;
446
+ T: string;
447
+ s: number;
448
+ p: number;
449
+ q?: number | undefined;
450
+ c?: number[] | undefined;
451
+ x?: number | undefined;
452
+ i?: string | undefined;
453
+ z?: number | undefined;
454
+ e?: number | undefined;
455
+ };
456
+ request_id: string;
457
+ }>;
458
+ /** Schema for Polygon aggregates (bars) response */
459
+ export declare const PolygonAggregatesResponseSchema: z.ZodObject<{
460
+ adjusted: z.ZodOptional<z.ZodBoolean>;
461
+ next_url: z.ZodOptional<z.ZodString>;
462
+ queryCount: z.ZodOptional<z.ZodNumber>;
463
+ request_id: z.ZodString;
464
+ results: z.ZodOptional<z.ZodArray<z.ZodObject<{
465
+ T: z.ZodString;
466
+ c: z.ZodNumber;
467
+ h: z.ZodNumber;
468
+ l: z.ZodNumber;
469
+ n: z.ZodNumber;
470
+ o: z.ZodNumber;
471
+ t: z.ZodNumber;
472
+ v: z.ZodNumber;
473
+ vw: z.ZodNumber;
474
+ }, "strip", z.ZodTypeAny, {
475
+ t: number;
476
+ T: string;
477
+ o: number;
478
+ h: number;
479
+ l: number;
480
+ c: number;
481
+ v: number;
482
+ vw: number;
483
+ n: number;
484
+ }, {
485
+ t: number;
486
+ T: string;
487
+ o: number;
488
+ h: number;
489
+ l: number;
490
+ c: number;
491
+ v: number;
492
+ vw: number;
493
+ n: number;
494
+ }>, "many">>;
495
+ resultsCount: z.ZodOptional<z.ZodNumber>;
496
+ status: z.ZodString;
497
+ ticker: z.ZodOptional<z.ZodString>;
498
+ }, "strip", z.ZodTypeAny, {
499
+ status: string;
500
+ request_id: string;
501
+ ticker?: string | undefined;
502
+ adjusted?: boolean | undefined;
503
+ results?: {
504
+ t: number;
505
+ T: string;
506
+ o: number;
507
+ h: number;
508
+ l: number;
509
+ c: number;
510
+ v: number;
511
+ vw: number;
512
+ n: number;
513
+ }[] | undefined;
514
+ queryCount?: number | undefined;
515
+ resultsCount?: number | undefined;
516
+ next_url?: string | undefined;
517
+ }, {
518
+ status: string;
519
+ request_id: string;
520
+ ticker?: string | undefined;
521
+ adjusted?: boolean | undefined;
522
+ results?: {
523
+ t: number;
524
+ T: string;
525
+ o: number;
526
+ h: number;
527
+ l: number;
528
+ c: number;
529
+ v: number;
530
+ vw: number;
531
+ n: number;
532
+ }[] | undefined;
533
+ queryCount?: number | undefined;
534
+ resultsCount?: number | undefined;
535
+ next_url?: string | undefined;
536
+ }>;
537
+ /** Schema for Polygon error response */
538
+ export declare const PolygonErrorResponseSchema: z.ZodObject<{
539
+ status: z.ZodString;
540
+ request_id: z.ZodString;
541
+ message: z.ZodString;
542
+ }, "strip", z.ZodTypeAny, {
543
+ status: string;
544
+ message: string;
545
+ request_id: string;
546
+ }, {
547
+ status: string;
548
+ message: string;
549
+ request_id: string;
550
+ }>;
551
+ //# sourceMappingURL=polygon-schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polygon-schemas.d.ts","sourceRoot":"","sources":["../../../src/schemas/polygon-schemas.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,+EAA+E;AAC/E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUpC,CAAC;AAIH,8CAA8C;AAC9C,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAalC,CAAC;AAEH,gEAAgE;AAChE,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI7C,CAAC;AAIH,gDAAgD;AAChD,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO5C,CAAC;AAIH,mDAAmD;AACnD,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWtC,CAAC;AAIH,wCAAwC;AACxC,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa7B,CAAC;AAEH,yCAAyC;AACzC,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKtC,CAAC;AAIH,6CAA6C;AAC7C,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAezC,CAAC;AAIH,oDAAoD;AACpD,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS1C,CAAC;AAIH,wCAAwC;AACxC,eAAO,MAAM,0BAA0B;;;;;;;;;;;;EAIrC,CAAC"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * API response validation utility.
3
+ * Parses API responses through Zod schemas to catch breaking API changes early.
4
+ */
5
+ import { z } from "zod";
6
+ /**
7
+ * Result of a validation attempt.
8
+ * On success, contains the parsed data.
9
+ * On failure, contains the original data and validation errors.
10
+ */
11
+ export interface ValidationResult<T> {
12
+ /** Whether validation succeeded */
13
+ success: boolean;
14
+ /** Parsed and validated data (only present on success) */
15
+ data: T;
16
+ /** Validation errors (only present on failure) */
17
+ errors?: z.ZodIssue[];
18
+ }
19
+ /**
20
+ * Options for response validation behavior
21
+ */
22
+ export interface ValidateResponseOptions {
23
+ /**
24
+ * Whether to throw on validation failure.
25
+ * When false (default), logs a warning and returns the original data.
26
+ * When true, throws a ValidationResponseError.
27
+ */
28
+ strict?: boolean;
29
+ /**
30
+ * Label for logging purposes (e.g., "AlpacaAPI.getAccount")
31
+ */
32
+ label?: string;
33
+ }
34
+ /**
35
+ * Error thrown when strict validation fails
36
+ */
37
+ export declare class ValidationResponseError extends Error {
38
+ /** The Zod validation issues */
39
+ readonly issues: z.ZodIssue[];
40
+ /** The original data that failed validation */
41
+ readonly originalData: unknown;
42
+ constructor(message: string, issues: z.ZodIssue[], originalData: unknown);
43
+ }
44
+ /**
45
+ * Validates an API response against a Zod schema.
46
+ *
47
+ * In non-strict mode (default), validation failures are logged as warnings
48
+ * and the original data is returned. This allows the application to continue
49
+ * operating even if the API response shape changes slightly, while still
50
+ * alerting developers to the discrepancy.
51
+ *
52
+ * In strict mode, validation failures throw a ValidationResponseError.
53
+ *
54
+ * @param data - The API response data to validate
55
+ * @param schema - The Zod schema to validate against
56
+ * @param options - Validation options (strict mode, label)
57
+ * @returns The validated (and potentially transformed) data
58
+ * @throws ValidationResponseError if strict mode is enabled and validation fails
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * const account = await fetchAccountDetails(auth);
63
+ * const validated = validateResponse(account, AlpacaAccountDetailsSchema, {
64
+ * label: 'AlpacaAPI.getAccount',
65
+ * });
66
+ * ```
67
+ */
68
+ export declare function validateResponse<T>(data: unknown, schema: z.ZodType<T>, options?: ValidateResponseOptions): T;
69
+ /**
70
+ * Safely validates an API response, returning a result object instead of throwing.
71
+ * Useful when you need to inspect validation results without try/catch.
72
+ *
73
+ * @param data - The API response data to validate
74
+ * @param schema - The Zod schema to validate against
75
+ * @returns A ValidationResult object with success status, data, and errors
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * const result = safeValidateResponse(data, AlpacaBarSchema);
80
+ * if (result.success) {
81
+ * // result.data is typed and validated
82
+ * } else {
83
+ * // result.errors contains Zod issues
84
+ * }
85
+ * ```
86
+ */
87
+ export declare function safeValidateResponse<T>(data: unknown, schema: z.ZodType<T>): ValidationResult<T>;
88
+ //# sourceMappingURL=validate-response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-response.d.ts","sourceRoot":"","sources":["../../../src/schemas/validate-response.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,CAAC,EAAY,MAAM,KAAK,CAAC;AAGlC;;;;GAIG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,IAAI,EAAE,CAAC,CAAC;IACR,kDAAkD;IAClD,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,gCAAgC;IAChC,SAAgB,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrC,+CAA+C;IAC/C,SAAgB,YAAY,EAAE,OAAO,CAAC;gBAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,OAAO;CAMzE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE,uBAA4B,GACpC,CAAC,CAoCH;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GACnB,gBAAgB,CAAC,CAAC,CAAC,CAerB"}