@investment-finder/api-contract 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/admin.d.ts +1305 -1
  2. package/dist/admin.d.ts.map +1 -1
  3. package/dist/admin.js +575 -1
  4. package/dist/admin.js.map +1 -1
  5. package/dist/authenticated-market.d.ts +170 -0
  6. package/dist/authenticated-market.d.ts.map +1 -0
  7. package/dist/authenticated-market.js +27 -0
  8. package/dist/authenticated-market.js.map +1 -0
  9. package/dist/broker.d.ts +89 -0
  10. package/dist/broker.d.ts.map +1 -0
  11. package/dist/broker.js +53 -0
  12. package/dist/broker.js.map +1 -0
  13. package/dist/diagnostics.d.ts +11 -29
  14. package/dist/diagnostics.d.ts.map +1 -1
  15. package/dist/diagnostics.js +6 -25
  16. package/dist/diagnostics.js.map +1 -1
  17. package/dist/discovery-flow.d.ts +945 -0
  18. package/dist/discovery-flow.d.ts.map +1 -0
  19. package/dist/discovery-flow.js +336 -0
  20. package/dist/discovery-flow.js.map +1 -0
  21. package/dist/error-catalog.en.json +322 -0
  22. package/dist/error-codes.d.ts +84 -0
  23. package/dist/error-codes.d.ts.map +1 -0
  24. package/dist/error-codes.js +87 -0
  25. package/dist/error-codes.js.map +1 -0
  26. package/dist/errors.d.ts +24 -2
  27. package/dist/errors.d.ts.map +1 -1
  28. package/dist/errors.js +48 -9
  29. package/dist/errors.js.map +1 -1
  30. package/dist/index.d.ts +18 -8
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +276 -4
  33. package/dist/index.js.map +1 -1
  34. package/dist/market-edition-slug.d.ts +22 -0
  35. package/dist/market-edition-slug.d.ts.map +1 -0
  36. package/dist/market-edition-slug.js +54 -0
  37. package/dist/market-edition-slug.js.map +1 -0
  38. package/dist/market.d.ts +911 -4
  39. package/dist/market.d.ts.map +1 -1
  40. package/dist/market.js +239 -4
  41. package/dist/market.js.map +1 -1
  42. package/dist/onboarding.d.ts +2 -2
  43. package/dist/portfolio-breakdown.d.ts +182 -0
  44. package/dist/portfolio-breakdown.d.ts.map +1 -0
  45. package/dist/portfolio-breakdown.js +76 -0
  46. package/dist/portfolio-breakdown.js.map +1 -0
  47. package/dist/portfolios.d.ts +456 -4
  48. package/dist/portfolios.d.ts.map +1 -1
  49. package/dist/portfolios.js +136 -4
  50. package/dist/portfolios.js.map +1 -1
  51. package/dist/proposals.d.ts +1322 -2
  52. package/dist/proposals.d.ts.map +1 -1
  53. package/dist/proposals.js +267 -5
  54. package/dist/proposals.js.map +1 -1
  55. package/dist/public-market.d.ts +314 -0
  56. package/dist/public-market.d.ts.map +1 -0
  57. package/dist/public-market.js +132 -0
  58. package/dist/public-market.js.map +1 -0
  59. package/dist/replay.d.ts +1382 -0
  60. package/dist/replay.d.ts.map +1 -0
  61. package/dist/replay.js +369 -0
  62. package/dist/replay.js.map +1 -0
  63. package/dist/settings.d.ts +79 -6
  64. package/dist/settings.d.ts.map +1 -1
  65. package/dist/settings.js +19 -1
  66. package/dist/settings.js.map +1 -1
  67. package/dist/theses.d.ts +305 -0
  68. package/dist/theses.d.ts.map +1 -0
  69. package/dist/theses.js +75 -0
  70. package/dist/theses.js.map +1 -0
  71. package/dist/universe.d.ts +117 -0
  72. package/dist/universe.d.ts.map +1 -0
  73. package/dist/universe.js +57 -0
  74. package/dist/universe.js.map +1 -0
  75. package/dist/watchlist.d.ts +105 -0
  76. package/dist/watchlist.d.ts.map +1 -1
  77. package/dist/watchlist.js +28 -1
  78. package/dist/watchlist.js.map +1 -1
  79. package/package.json +1 -1
@@ -0,0 +1,305 @@
1
+ import { z } from 'zod';
2
+ export declare const HoldThesisSummarySchema: z.ZodObject<{
3
+ id: z.ZodNumber;
4
+ ticker: z.ZodString;
5
+ sector: z.ZodNullable<z.ZodString>;
6
+ status: z.ZodEnum<{
7
+ superseded: "superseded";
8
+ draft: "draft";
9
+ active: "active";
10
+ invalidated: "invalidated";
11
+ }>;
12
+ conviction: z.ZodNumber;
13
+ convictionTier: z.ZodEnum<{
14
+ core: "core";
15
+ standard: "standard";
16
+ starter: "starter";
17
+ }>;
18
+ claim: z.ZodString;
19
+ sectorThesisId: z.ZodNullable<z.ZodNumber>;
20
+ activatedAt: z.ZodNullable<z.ZodString>;
21
+ reviewDueAt: z.ZodNullable<z.ZodString>;
22
+ lastReviewedAt: z.ZodNullable<z.ZodString>;
23
+ updatedAt: z.ZodString;
24
+ linkedProposalCount: z.ZodNumber;
25
+ openFlagKinds: z.ZodArray<z.ZodEnum<{
26
+ rule_breach: "rule_breach";
27
+ sector_stance_flip: "sector_stance_flip";
28
+ sector_view_missing: "sector_view_missing";
29
+ risk_conflict: "risk_conflict";
30
+ review_due: "review_due";
31
+ }>>;
32
+ }, z.core.$strip>;
33
+ export declare const HoldThesesResponseSchema: z.ZodObject<{
34
+ activeCount: z.ZodNumber;
35
+ activeCap: z.ZodNumber;
36
+ coreCount: z.ZodNumber;
37
+ coreCap: z.ZodNumber;
38
+ linkedProposalCount: z.ZodNumber;
39
+ reviewDueCount: z.ZodNumber;
40
+ flaggedCount: z.ZodNumber;
41
+ theses: z.ZodArray<z.ZodObject<{
42
+ id: z.ZodNumber;
43
+ ticker: z.ZodString;
44
+ sector: z.ZodNullable<z.ZodString>;
45
+ status: z.ZodEnum<{
46
+ superseded: "superseded";
47
+ draft: "draft";
48
+ active: "active";
49
+ invalidated: "invalidated";
50
+ }>;
51
+ conviction: z.ZodNumber;
52
+ convictionTier: z.ZodEnum<{
53
+ core: "core";
54
+ standard: "standard";
55
+ starter: "starter";
56
+ }>;
57
+ claim: z.ZodString;
58
+ sectorThesisId: z.ZodNullable<z.ZodNumber>;
59
+ activatedAt: z.ZodNullable<z.ZodString>;
60
+ reviewDueAt: z.ZodNullable<z.ZodString>;
61
+ lastReviewedAt: z.ZodNullable<z.ZodString>;
62
+ updatedAt: z.ZodString;
63
+ linkedProposalCount: z.ZodNumber;
64
+ openFlagKinds: z.ZodArray<z.ZodEnum<{
65
+ rule_breach: "rule_breach";
66
+ sector_stance_flip: "sector_stance_flip";
67
+ sector_view_missing: "sector_view_missing";
68
+ risk_conflict: "risk_conflict";
69
+ review_due: "review_due";
70
+ }>>;
71
+ }, z.core.$strip>>;
72
+ }, z.core.$strip>;
73
+ export declare const HoldThesisDetailSchema: z.ZodObject<{
74
+ id: z.ZodNumber;
75
+ ticker: z.ZodString;
76
+ sector: z.ZodNullable<z.ZodString>;
77
+ status: z.ZodEnum<{
78
+ superseded: "superseded";
79
+ draft: "draft";
80
+ active: "active";
81
+ invalidated: "invalidated";
82
+ }>;
83
+ conviction: z.ZodNumber;
84
+ convictionTier: z.ZodEnum<{
85
+ core: "core";
86
+ standard: "standard";
87
+ starter: "starter";
88
+ }>;
89
+ claim: z.ZodString;
90
+ sectorThesisId: z.ZodNullable<z.ZodNumber>;
91
+ activatedAt: z.ZodNullable<z.ZodString>;
92
+ reviewDueAt: z.ZodNullable<z.ZodString>;
93
+ lastReviewedAt: z.ZodNullable<z.ZodString>;
94
+ updatedAt: z.ZodString;
95
+ linkedProposalCount: z.ZodNumber;
96
+ openFlagKinds: z.ZodArray<z.ZodEnum<{
97
+ rule_breach: "rule_breach";
98
+ sector_stance_flip: "sector_stance_flip";
99
+ sector_view_missing: "sector_view_missing";
100
+ risk_conflict: "risk_conflict";
101
+ review_due: "review_due";
102
+ }>>;
103
+ upsideCase: z.ZodString;
104
+ invalidation: z.ZodString;
105
+ invalidationRules: z.ZodArray<z.ZodObject<{
106
+ field: z.ZodString;
107
+ operator: z.ZodEnum<{
108
+ lt: "lt";
109
+ gt: "gt";
110
+ }>;
111
+ threshold: z.ZodNumber;
112
+ label: z.ZodString;
113
+ }, z.core.$strip>>;
114
+ invalidationReason: z.ZodNullable<z.ZodString>;
115
+ invalidatedAt: z.ZodNullable<z.ZodString>;
116
+ horizonMonths: z.ZodNumber;
117
+ drivers: z.ZodArray<z.ZodString>;
118
+ risks: z.ZodArray<z.ZodString>;
119
+ citations: z.ZodArray<z.ZodObject<{
120
+ field: z.ZodString;
121
+ value: z.ZodNumber;
122
+ periodEnd: z.ZodNullable<z.ZodString>;
123
+ }, z.core.$strip>>;
124
+ currentActiveThesisId: z.ZodNullable<z.ZodNumber>;
125
+ linkedProposals: z.ZodArray<z.ZodObject<{
126
+ id: z.ZodNumber;
127
+ ticker: z.ZodString;
128
+ state: z.ZodEnum<{
129
+ proposed: "proposed";
130
+ armed: "armed";
131
+ rejected: "rejected";
132
+ executed: "executed";
133
+ expired: "expired";
134
+ closed: "closed";
135
+ }>;
136
+ direction: z.ZodEnum<{
137
+ long: "long";
138
+ short: "short";
139
+ }>;
140
+ conviction: z.ZodNumber;
141
+ linkedAt: z.ZodNullable<z.ZodString>;
142
+ }, z.core.$strip>>;
143
+ reviewFlags: z.ZodArray<z.ZodObject<{
144
+ id: z.ZodNumber;
145
+ kind: z.ZodEnum<{
146
+ rule_breach: "rule_breach";
147
+ sector_stance_flip: "sector_stance_flip";
148
+ sector_view_missing: "sector_view_missing";
149
+ risk_conflict: "risk_conflict";
150
+ review_due: "review_due";
151
+ }>;
152
+ ruleLabel: z.ZodNullable<z.ZodString>;
153
+ detail: z.ZodString;
154
+ raisedAt: z.ZodString;
155
+ resolvedAt: z.ZodNullable<z.ZodString>;
156
+ }, z.core.$strip>>;
157
+ ruleBreaches: z.ZodArray<z.ZodObject<{
158
+ ruleLabel: z.ZodString;
159
+ field: z.ZodString;
160
+ operator: z.ZodEnum<{
161
+ lt: "lt";
162
+ gt: "gt";
163
+ }>;
164
+ threshold: z.ZodNumber;
165
+ observed: z.ZodNullable<z.ZodNumber>;
166
+ confirmationCount: z.ZodNumber;
167
+ }, z.core.$strip>>;
168
+ postMortem: z.ZodNullable<z.ZodObject<{
169
+ closedStatus: z.ZodEnum<{
170
+ superseded: "superseded";
171
+ draft: "draft";
172
+ active: "active";
173
+ invalidated: "invalidated";
174
+ }>;
175
+ closeReasonCode: z.ZodNullable<z.ZodString>;
176
+ activatedAt: z.ZodNullable<z.ZodString>;
177
+ closedAt: z.ZodString;
178
+ heldDays: z.ZodNumber;
179
+ linkedProposalCount: z.ZodNumber;
180
+ linkedPositionCount: z.ZodNumber;
181
+ realizedPnlUsd: z.ZodNullable<z.ZodNumber>;
182
+ realizedPnlPct: z.ZodNullable<z.ZodNumber>;
183
+ outcome: z.ZodEnum<{
184
+ win: "win";
185
+ loss: "loss";
186
+ flat: "flat";
187
+ no_position: "no_position";
188
+ }>;
189
+ generatedAt: z.ZodString;
190
+ }, z.core.$strip>>;
191
+ }, z.core.$strip>;
192
+ export declare const SectorThesisSummarySchema: z.ZodObject<{
193
+ id: z.ZodNumber;
194
+ kind: z.ZodEnum<{
195
+ sector: "sector";
196
+ theme: "theme";
197
+ }>;
198
+ key: z.ZodString;
199
+ label: z.ZodString;
200
+ status: z.ZodEnum<{
201
+ superseded: "superseded";
202
+ draft: "draft";
203
+ active: "active";
204
+ invalidated: "invalidated";
205
+ }>;
206
+ stance: z.ZodEnum<{
207
+ overweight: "overweight";
208
+ neutral: "neutral";
209
+ underweight: "underweight";
210
+ avoid: "avoid";
211
+ }>;
212
+ conviction: z.ZodNumber;
213
+ composite: z.ZodNullable<z.ZodNumber>;
214
+ claim: z.ZodString;
215
+ drivers: z.ZodArray<z.ZodString>;
216
+ constituentCount: z.ZodNumber;
217
+ coveredCount: z.ZodNumber;
218
+ horizonMonths: z.ZodNumber;
219
+ activatedAt: z.ZodNullable<z.ZodString>;
220
+ reviewDueAt: z.ZodNullable<z.ZodString>;
221
+ updatedAt: z.ZodString;
222
+ }, z.core.$strip>;
223
+ export declare const SectorThesesResponseSchema: z.ZodObject<{
224
+ theses: z.ZodArray<z.ZodObject<{
225
+ id: z.ZodNumber;
226
+ kind: z.ZodEnum<{
227
+ sector: "sector";
228
+ theme: "theme";
229
+ }>;
230
+ key: z.ZodString;
231
+ label: z.ZodString;
232
+ status: z.ZodEnum<{
233
+ superseded: "superseded";
234
+ draft: "draft";
235
+ active: "active";
236
+ invalidated: "invalidated";
237
+ }>;
238
+ stance: z.ZodEnum<{
239
+ overweight: "overweight";
240
+ neutral: "neutral";
241
+ underweight: "underweight";
242
+ avoid: "avoid";
243
+ }>;
244
+ conviction: z.ZodNumber;
245
+ composite: z.ZodNullable<z.ZodNumber>;
246
+ claim: z.ZodString;
247
+ drivers: z.ZodArray<z.ZodString>;
248
+ constituentCount: z.ZodNumber;
249
+ coveredCount: z.ZodNumber;
250
+ horizonMonths: z.ZodNumber;
251
+ activatedAt: z.ZodNullable<z.ZodString>;
252
+ reviewDueAt: z.ZodNullable<z.ZodString>;
253
+ updatedAt: z.ZodString;
254
+ }, z.core.$strip>>;
255
+ }, z.core.$strip>;
256
+ export declare const SectorThesisDetailSchema: z.ZodObject<{
257
+ id: z.ZodNumber;
258
+ kind: z.ZodEnum<{
259
+ sector: "sector";
260
+ theme: "theme";
261
+ }>;
262
+ key: z.ZodString;
263
+ label: z.ZodString;
264
+ status: z.ZodEnum<{
265
+ superseded: "superseded";
266
+ draft: "draft";
267
+ active: "active";
268
+ invalidated: "invalidated";
269
+ }>;
270
+ stance: z.ZodEnum<{
271
+ overweight: "overweight";
272
+ neutral: "neutral";
273
+ underweight: "underweight";
274
+ avoid: "avoid";
275
+ }>;
276
+ conviction: z.ZodNumber;
277
+ composite: z.ZodNullable<z.ZodNumber>;
278
+ claim: z.ZodString;
279
+ drivers: z.ZodArray<z.ZodString>;
280
+ constituentCount: z.ZodNumber;
281
+ coveredCount: z.ZodNumber;
282
+ horizonMonths: z.ZodNumber;
283
+ activatedAt: z.ZodNullable<z.ZodString>;
284
+ reviewDueAt: z.ZodNullable<z.ZodString>;
285
+ updatedAt: z.ZodString;
286
+ invalidation: z.ZodString;
287
+ invalidationRules: z.ZodArray<z.ZodObject<{
288
+ field: z.ZodString;
289
+ operator: z.ZodEnum<{
290
+ lt: "lt";
291
+ gt: "gt";
292
+ }>;
293
+ threshold: z.ZodNumber;
294
+ label: z.ZodString;
295
+ }, z.core.$strip>>;
296
+ invalidationReason: z.ZodNullable<z.ZodString>;
297
+ invalidatedAt: z.ZodNullable<z.ZodString>;
298
+ }, z.core.$strip>;
299
+ export type HoldThesisSummary = z.infer<typeof HoldThesisSummarySchema>;
300
+ export type HoldThesesResponse = z.infer<typeof HoldThesesResponseSchema>;
301
+ export type HoldThesisDetail = z.infer<typeof HoldThesisDetailSchema>;
302
+ export type SectorThesisSummary = z.infer<typeof SectorThesisSummarySchema>;
303
+ export type SectorThesesResponse = z.infer<typeof SectorThesesResponseSchema>;
304
+ export type SectorThesisDetail = z.infer<typeof SectorThesisDetailSchema>;
305
+ //# sourceMappingURL=theses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theses.d.ts","sourceRoot":"","sources":["../src/theses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAelC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBASnC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAejC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiBpC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAErC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKnC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
package/dist/theses.js ADDED
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SectorThesisDetailSchema = exports.SectorThesesResponseSchema = exports.SectorThesisSummarySchema = exports.HoldThesisDetailSchema = exports.HoldThesesResponseSchema = exports.HoldThesisSummarySchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const admin_js_1 = require("./admin.js");
6
+ exports.HoldThesisSummarySchema = zod_1.z.object({
7
+ id: zod_1.z.number().int().positive(),
8
+ ticker: zod_1.z.string(),
9
+ sector: zod_1.z.string().nullable(),
10
+ status: admin_js_1.ThesisStatusApiEnum,
11
+ conviction: zod_1.z.number(),
12
+ convictionTier: admin_js_1.ThesisConvictionTierApiEnum,
13
+ claim: zod_1.z.string(),
14
+ sectorThesisId: zod_1.z.number().int().positive().nullable(),
15
+ activatedAt: zod_1.z.string().nullable(),
16
+ reviewDueAt: zod_1.z.string().nullable(),
17
+ lastReviewedAt: zod_1.z.string().nullable(),
18
+ updatedAt: zod_1.z.string(),
19
+ linkedProposalCount: zod_1.z.number().int().nonnegative(),
20
+ openFlagKinds: zod_1.z.array(admin_js_1.ThesisReviewFlagKindApiEnum),
21
+ });
22
+ exports.HoldThesesResponseSchema = zod_1.z.object({
23
+ activeCount: zod_1.z.number().int().nonnegative(),
24
+ activeCap: zod_1.z.number().int().positive(),
25
+ coreCount: zod_1.z.number().int().nonnegative(),
26
+ coreCap: zod_1.z.number().int().positive(),
27
+ linkedProposalCount: zod_1.z.number().int().nonnegative(),
28
+ reviewDueCount: zod_1.z.number().int().nonnegative(),
29
+ flaggedCount: zod_1.z.number().int().nonnegative(),
30
+ theses: zod_1.z.array(exports.HoldThesisSummarySchema),
31
+ });
32
+ exports.HoldThesisDetailSchema = exports.HoldThesisSummarySchema.extend({
33
+ upsideCase: zod_1.z.string(),
34
+ invalidation: zod_1.z.string(),
35
+ invalidationRules: zod_1.z.array(admin_js_1.SectorThesisInvalidationRuleSchema),
36
+ invalidationReason: zod_1.z.string().nullable(),
37
+ invalidatedAt: zod_1.z.string().nullable(),
38
+ horizonMonths: zod_1.z.number().int().positive(),
39
+ drivers: zod_1.z.array(zod_1.z.string()),
40
+ risks: zod_1.z.array(zod_1.z.string()),
41
+ citations: zod_1.z.array(admin_js_1.AdminHoldThesisCitationSchema),
42
+ currentActiveThesisId: zod_1.z.number().int().positive().nullable(),
43
+ linkedProposals: zod_1.z.array(admin_js_1.AdminHoldThesisLinkedProposalSchema),
44
+ reviewFlags: zod_1.z.array(admin_js_1.HoldThesisReviewFlagSchema),
45
+ ruleBreaches: zod_1.z.array(admin_js_1.HoldThesisRuleBreachSchema),
46
+ postMortem: admin_js_1.HoldThesisPostMortemSchema.nullable(),
47
+ });
48
+ exports.SectorThesisSummarySchema = zod_1.z.object({
49
+ id: zod_1.z.number().int().positive(),
50
+ kind: admin_js_1.ThesisKindApiEnum,
51
+ key: zod_1.z.string(),
52
+ label: zod_1.z.string(),
53
+ status: admin_js_1.ThesisStatusApiEnum,
54
+ stance: admin_js_1.ThesisStanceApiEnum,
55
+ conviction: zod_1.z.number(),
56
+ composite: zod_1.z.number().nullable(),
57
+ claim: zod_1.z.string(),
58
+ drivers: zod_1.z.array(zod_1.z.string()),
59
+ constituentCount: zod_1.z.number().int().nonnegative(),
60
+ coveredCount: zod_1.z.number().int().nonnegative(),
61
+ horizonMonths: zod_1.z.number().int().positive(),
62
+ activatedAt: zod_1.z.string().nullable(),
63
+ reviewDueAt: zod_1.z.string().nullable(),
64
+ updatedAt: zod_1.z.string(),
65
+ });
66
+ exports.SectorThesesResponseSchema = zod_1.z.object({
67
+ theses: zod_1.z.array(exports.SectorThesisSummarySchema),
68
+ });
69
+ exports.SectorThesisDetailSchema = exports.SectorThesisSummarySchema.extend({
70
+ invalidation: zod_1.z.string(),
71
+ invalidationRules: zod_1.z.array(admin_js_1.SectorThesisInvalidationRuleSchema),
72
+ invalidationReason: zod_1.z.string().nullable(),
73
+ invalidatedAt: zod_1.z.string().nullable(),
74
+ });
75
+ //# sourceMappingURL=theses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theses.js","sourceRoot":"","sources":["../src/theses.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ import { z } from 'zod';
2
+ export declare const UniverseEquityIndexCodeApiEnum: z.ZodEnum<{
3
+ sp500: "sp500";
4
+ nasdaq100: "nasdaq100";
5
+ russell2000: "russell2000";
6
+ }>;
7
+ export declare const UniverseCatalogIndexCodeApiEnum: z.ZodEnum<{
8
+ etf: "etf";
9
+ crypto: "crypto";
10
+ commodity: "commodity";
11
+ }>;
12
+ export declare const UniverseIndexCodeApiEnum: z.ZodEnum<{
13
+ sp500: "sp500";
14
+ nasdaq100: "nasdaq100";
15
+ russell2000: "russell2000";
16
+ etf: "etf";
17
+ crypto: "crypto";
18
+ commodity: "commodity";
19
+ }>;
20
+ export declare const UniverseAssetTypeApiEnum: z.ZodEnum<{
21
+ etf: "etf";
22
+ crypto: "crypto";
23
+ commodity: "commodity";
24
+ stock: "stock";
25
+ }>;
26
+ export declare const UniverseTickersSortByApiEnum: z.ZodEnum<{
27
+ ticker: "ticker";
28
+ marketCap: "marketCap";
29
+ }>;
30
+ export declare const UniverseTickersSortDirApiEnum: z.ZodEnum<{
31
+ asc: "asc";
32
+ desc: "desc";
33
+ }>;
34
+ export declare const UniverseTickersQuerySchema: z.ZodObject<{
35
+ q: z.ZodOptional<z.ZodString>;
36
+ indexCode: z.ZodOptional<z.ZodEnum<{
37
+ sp500: "sp500";
38
+ nasdaq100: "nasdaq100";
39
+ russell2000: "russell2000";
40
+ etf: "etf";
41
+ crypto: "crypto";
42
+ commodity: "commodity";
43
+ }>>;
44
+ limit: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
45
+ offset: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
46
+ sortBy: z.ZodOptional<z.ZodEnum<{
47
+ ticker: "ticker";
48
+ marketCap: "marketCap";
49
+ }>>;
50
+ sortDir: z.ZodOptional<z.ZodEnum<{
51
+ asc: "asc";
52
+ desc: "desc";
53
+ }>>;
54
+ }, z.core.$strip>;
55
+ export declare const UniverseTickerItemSchema: z.ZodObject<{
56
+ ticker: z.ZodString;
57
+ name: z.ZodNullable<z.ZodString>;
58
+ indexCodes: z.ZodArray<z.ZodEnum<{
59
+ sp500: "sp500";
60
+ nasdaq100: "nasdaq100";
61
+ russell2000: "russell2000";
62
+ etf: "etf";
63
+ crypto: "crypto";
64
+ commodity: "commodity";
65
+ }>>;
66
+ assetType: z.ZodEnum<{
67
+ etf: "etf";
68
+ crypto: "crypto";
69
+ commodity: "commodity";
70
+ stock: "stock";
71
+ }>;
72
+ onWatchlist: z.ZodBoolean;
73
+ marketCap: z.ZodNullable<z.ZodNumber>;
74
+ sector: z.ZodNullable<z.ZodString>;
75
+ price: z.ZodNullable<z.ZodNumber>;
76
+ dayChangePct: z.ZodNullable<z.ZodNumber>;
77
+ shortDescription: z.ZodNullable<z.ZodString>;
78
+ }, z.core.$strip>;
79
+ export declare const UniverseTickersResponseSchema: z.ZodObject<{
80
+ items: z.ZodArray<z.ZodObject<{
81
+ ticker: z.ZodString;
82
+ name: z.ZodNullable<z.ZodString>;
83
+ indexCodes: z.ZodArray<z.ZodEnum<{
84
+ sp500: "sp500";
85
+ nasdaq100: "nasdaq100";
86
+ russell2000: "russell2000";
87
+ etf: "etf";
88
+ crypto: "crypto";
89
+ commodity: "commodity";
90
+ }>>;
91
+ assetType: z.ZodEnum<{
92
+ etf: "etf";
93
+ crypto: "crypto";
94
+ commodity: "commodity";
95
+ stock: "stock";
96
+ }>;
97
+ onWatchlist: z.ZodBoolean;
98
+ marketCap: z.ZodNullable<z.ZodNumber>;
99
+ sector: z.ZodNullable<z.ZodString>;
100
+ price: z.ZodNullable<z.ZodNumber>;
101
+ dayChangePct: z.ZodNullable<z.ZodNumber>;
102
+ shortDescription: z.ZodNullable<z.ZodString>;
103
+ }, z.core.$strip>>;
104
+ total: z.ZodNumber;
105
+ limit: z.ZodNumber;
106
+ offset: z.ZodNumber;
107
+ }, z.core.$strip>;
108
+ export type UniverseIndexCodeApi = z.infer<typeof UniverseIndexCodeApiEnum>;
109
+ export type UniverseEquityIndexCodeApi = z.infer<typeof UniverseEquityIndexCodeApiEnum>;
110
+ export type UniverseCatalogIndexCodeApi = z.infer<typeof UniverseCatalogIndexCodeApiEnum>;
111
+ export type UniverseAssetTypeApi = z.infer<typeof UniverseAssetTypeApiEnum>;
112
+ export type UniverseTickersSortByApi = z.infer<typeof UniverseTickersSortByApiEnum>;
113
+ export type UniverseTickersSortDirApi = z.infer<typeof UniverseTickersSortDirApiEnum>;
114
+ export type UniverseTickersQuery = z.infer<typeof UniverseTickersQuerySchema>;
115
+ export type UniverseTickerItem = z.infer<typeof UniverseTickerItemSchema>;
116
+ export type UniverseTickersResponse = z.infer<typeof UniverseTickersResponseSchema>;
117
+ //# sourceMappingURL=universe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"universe.d.ts","sourceRoot":"","sources":["../src/universe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,8BAA8B;;;;EAIzC,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;EAI1C,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;EAOnC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;EAKnC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;EAAkC,CAAC;AAE5E,eAAO,MAAM,6BAA6B;;;EAA0B,CAAC;AAErE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;iBAOrC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;iBAWnC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKxC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE5E,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,8BAA8B,CACtC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAC/C,OAAO,+BAA+B,CACvC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE5E,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAC5C,OAAO,4BAA4B,CACpC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,6BAA6B,CACrC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC3C,OAAO,6BAA6B,CACrC,CAAC"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UniverseTickersResponseSchema = exports.UniverseTickerItemSchema = exports.UniverseTickersQuerySchema = exports.UniverseTickersSortDirApiEnum = exports.UniverseTickersSortByApiEnum = exports.UniverseAssetTypeApiEnum = exports.UniverseIndexCodeApiEnum = exports.UniverseCatalogIndexCodeApiEnum = exports.UniverseEquityIndexCodeApiEnum = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.UniverseEquityIndexCodeApiEnum = zod_1.z.enum([
6
+ 'sp500',
7
+ 'nasdaq100',
8
+ 'russell2000',
9
+ ]);
10
+ exports.UniverseCatalogIndexCodeApiEnum = zod_1.z.enum([
11
+ 'etf',
12
+ 'crypto',
13
+ 'commodity',
14
+ ]);
15
+ exports.UniverseIndexCodeApiEnum = zod_1.z.enum([
16
+ 'sp500',
17
+ 'nasdaq100',
18
+ 'russell2000',
19
+ 'etf',
20
+ 'crypto',
21
+ 'commodity',
22
+ ]);
23
+ exports.UniverseAssetTypeApiEnum = zod_1.z.enum([
24
+ 'stock',
25
+ 'etf',
26
+ 'crypto',
27
+ 'commodity',
28
+ ]);
29
+ exports.UniverseTickersSortByApiEnum = zod_1.z.enum(['marketCap', 'ticker']);
30
+ exports.UniverseTickersSortDirApiEnum = zod_1.z.enum(['asc', 'desc']);
31
+ exports.UniverseTickersQuerySchema = zod_1.z.object({
32
+ q: zod_1.z.string().trim().max(64).optional(),
33
+ indexCode: exports.UniverseIndexCodeApiEnum.optional(),
34
+ limit: zod_1.z.coerce.number().int().min(1).max(100).optional(),
35
+ offset: zod_1.z.coerce.number().int().min(0).optional(),
36
+ sortBy: exports.UniverseTickersSortByApiEnum.optional(),
37
+ sortDir: exports.UniverseTickersSortDirApiEnum.optional(),
38
+ });
39
+ exports.UniverseTickerItemSchema = zod_1.z.object({
40
+ ticker: zod_1.z.string(),
41
+ name: zod_1.z.string().nullable(),
42
+ indexCodes: zod_1.z.array(exports.UniverseIndexCodeApiEnum),
43
+ assetType: exports.UniverseAssetTypeApiEnum,
44
+ onWatchlist: zod_1.z.boolean(),
45
+ marketCap: zod_1.z.number().nullable(),
46
+ sector: zod_1.z.string().nullable(),
47
+ price: zod_1.z.number().nullable(),
48
+ dayChangePct: zod_1.z.number().nullable(),
49
+ shortDescription: zod_1.z.string().nullable(),
50
+ });
51
+ exports.UniverseTickersResponseSchema = zod_1.z.object({
52
+ items: zod_1.z.array(exports.UniverseTickerItemSchema),
53
+ total: zod_1.z.number().int().nonnegative(),
54
+ limit: zod_1.z.number().int().positive(),
55
+ offset: zod_1.z.number().int().nonnegative(),
56
+ });
57
+ //# sourceMappingURL=universe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"universe.js","sourceRoot":"","sources":["../src/universe.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,8BAA8B,GAAG,OAAC,CAAC,IAAI,CAAC;IACnD,OAAO;IACP,WAAW;IACX,aAAa;CACd,CAAC,CAAC;AAEU,QAAA,+BAA+B,GAAG,OAAC,CAAC,IAAI,CAAC;IACpD,KAAK;IACL,QAAQ;IACR,WAAW;CACZ,CAAC,CAAC;AAEU,QAAA,wBAAwB,GAAG,OAAC,CAAC,IAAI,CAAC;IAC7C,OAAO;IACP,WAAW;IACX,aAAa;IACb,KAAK;IACL,QAAQ;IACR,WAAW;CACZ,CAAC,CAAC;AAEU,QAAA,wBAAwB,GAAG,OAAC,CAAC,IAAI,CAAC;IAC7C,OAAO;IACP,KAAK;IACL,QAAQ;IACR,WAAW;CACZ,CAAC,CAAC;AAEU,QAAA,4BAA4B,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE/D,QAAA,6BAA6B,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAExD,QAAA,0BAA0B,GAAG,OAAC,CAAC,MAAM,CAAC;IACjD,CAAC,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,SAAS,EAAE,gCAAwB,CAAC,QAAQ,EAAE;IAC9C,KAAK,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACzD,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjD,MAAM,EAAE,oCAA4B,CAAC,QAAQ,EAAE;IAC/C,OAAO,EAAE,qCAA6B,CAAC,QAAQ,EAAE;CAClD,CAAC,CAAC;AAEU,QAAA,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/C,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,UAAU,EAAE,OAAC,CAAC,KAAK,CAAC,gCAAwB,CAAC;IAC7C,SAAS,EAAE,gCAAwB;IACnC,WAAW,EAAE,OAAC,CAAC,OAAO,EAAE;IACxB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC;AAEU,QAAA,6BAA6B,GAAG,OAAC,CAAC,MAAM,CAAC;IACpD,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,gCAAwB,CAAC;IACxC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACrC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CACvC,CAAC,CAAC"}