@livefolio/sdk 0.2.0 → 0.2.3

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 (44) hide show
  1. package/README.md +20 -146
  2. package/dist/portfolio/client.d.ts.map +1 -1
  3. package/dist/portfolio/client.js +7 -1
  4. package/dist/portfolio/client.js.map +1 -1
  5. package/dist/portfolio/index.d.ts +2 -0
  6. package/dist/portfolio/index.d.ts.map +1 -1
  7. package/dist/portfolio/index.js +21 -1
  8. package/dist/portfolio/index.js.map +1 -1
  9. package/dist/portfolio/rebalance.d.ts +62 -0
  10. package/dist/portfolio/rebalance.d.ts.map +1 -0
  11. package/dist/portfolio/rebalance.js +205 -0
  12. package/dist/portfolio/rebalance.js.map +1 -0
  13. package/dist/portfolio/symbols.d.ts +13 -0
  14. package/dist/portfolio/symbols.d.ts.map +1 -0
  15. package/dist/portfolio/symbols.js +112 -0
  16. package/dist/portfolio/symbols.js.map +1 -0
  17. package/dist/portfolio/types.d.ts +10 -0
  18. package/dist/portfolio/types.d.ts.map +1 -1
  19. package/dist/strategy/backtest.d.ts +3 -0
  20. package/dist/strategy/backtest.d.ts.map +1 -0
  21. package/dist/strategy/backtest.js +7 -0
  22. package/dist/strategy/backtest.js.map +1 -0
  23. package/dist/strategy/cache.d.ts +7 -0
  24. package/dist/strategy/cache.d.ts.map +1 -0
  25. package/dist/strategy/cache.js +312 -0
  26. package/dist/strategy/cache.js.map +1 -0
  27. package/dist/strategy/client.d.ts.map +1 -1
  28. package/dist/strategy/client.js +9 -333
  29. package/dist/strategy/client.js.map +1 -1
  30. package/dist/strategy/get.d.ts +5 -0
  31. package/dist/strategy/get.d.ts.map +1 -0
  32. package/dist/strategy/get.js +25 -0
  33. package/dist/strategy/get.js.map +1 -0
  34. package/dist/strategy/index.d.ts +5 -1
  35. package/dist/strategy/index.d.ts.map +1 -1
  36. package/dist/strategy/index.js +10 -1
  37. package/dist/strategy/index.js.map +1 -1
  38. package/dist/strategy/stream.d.ts +5 -0
  39. package/dist/strategy/stream.d.ts.map +1 -0
  40. package/dist/strategy/stream.js +58 -0
  41. package/dist/strategy/stream.js.map +1 -0
  42. package/dist/strategy/types.d.ts +6 -0
  43. package/dist/strategy/types.d.ts.map +1 -1
  44. package/package.json +1 -1
@@ -4,347 +4,23 @@ exports.createStrategy = createStrategy;
4
4
  const evaluate_1 = require("./evaluate");
5
5
  const symbols_1 = require("./symbols");
6
6
  const client_1 = require("../market/client");
7
- // ---------------------------------------------------------------------------
8
- // Row domain mapping helpers
9
- // ---------------------------------------------------------------------------
10
- function mapTicker(row) {
11
- return { symbol: row.symbol, leverage: row.leverage };
12
- }
13
- function mapIndicator(row) {
14
- return {
15
- type: row.type,
16
- ticker: row.tickers ? mapTicker(row.tickers) : { symbol: '', leverage: 1 },
17
- lookback: row.lookback,
18
- delay: row.delay,
19
- unit: row.unit ?? null,
20
- threshold: row.threshold,
21
- };
22
- }
23
- function mapSignal(row) {
24
- return {
25
- left: mapIndicator(row.indicator_1),
26
- comparison: row.comparison,
27
- right: mapIndicator(row.indicator_2),
28
- tolerance: row.tolerance,
29
- };
30
- }
31
- // ---------------------------------------------------------------------------
32
- // Factory
33
- // ---------------------------------------------------------------------------
7
+ const get_1 = require("./get");
8
+ const cache_1 = require("./cache");
9
+ const stream_1 = require("./stream");
10
+ const backtest_1 = require("./backtest");
34
11
  function createStrategy(client) {
35
- // Cast to any for new tables not yet in generated types.
36
- // Will be removed after regenerating database.types.ts.
37
- const db = client;
38
12
  const market = (0, client_1.createMarket)(client);
39
- // -----------------------------------------------------------------------
40
- // Private helpers (moved from public storage methods)
41
- // -----------------------------------------------------------------------
42
- async function fetchSignalStates(strategyId) {
43
- const { data: nsRows, error: nsErr } = await db
44
- .from('named_signals')
45
- .select(`
46
- signal_id,
47
- signals:signal_id (
48
- id,
49
- indicator_1:indicator_id_1 ( type, tickers:ticker_id ( symbol, leverage ), lookback, delay, unit, threshold ),
50
- indicator_2:indicator_id_2 ( type, tickers:ticker_id ( symbol, leverage ), lookback, delay, unit, threshold ),
51
- comparison,
52
- tolerance
53
- )
54
- `)
55
- .eq('strategy_id', strategyId);
56
- if (nsErr || !nsRows || nsRows.length === 0)
57
- return {};
58
- const signalIds = nsRows.map((r) => r.signal_id);
59
- const { data: evalRows, error: evalErr } = await client
60
- .from('signal_evaluations')
61
- .select('signal_id, result, trading_day_id')
62
- .in('signal_id', signalIds)
63
- .order('trading_day_id', { ascending: false });
64
- if (evalErr || !evalRows)
65
- return {};
66
- const latestBySignalId = new Map();
67
- for (const row of evalRows) {
68
- if (!latestBySignalId.has(row.signal_id)) {
69
- latestBySignalId.set(row.signal_id, row.result);
70
- }
71
- }
72
- const result = {};
73
- for (const nsRow of nsRows) {
74
- const signal = mapSignal(nsRow.signals);
75
- const key = (0, evaluate_1.signalKey)(signal);
76
- const val = latestBySignalId.get(nsRow.signal_id);
77
- if (val !== undefined) {
78
- result[key] = val;
79
- }
80
- }
81
- return result;
82
- }
83
- async function fetchSignalStatesForDay(strategyId, tradingDayId) {
84
- const { data: nsRows, error: nsErr } = await db
85
- .from('named_signals')
86
- .select(`
87
- signal_id,
88
- signals:signal_id (
89
- id,
90
- indicator_1:indicator_id_1 ( type, tickers:ticker_id ( symbol, leverage ), lookback, delay, unit, threshold ),
91
- indicator_2:indicator_id_2 ( type, tickers:ticker_id ( symbol, leverage ), lookback, delay, unit, threshold ),
92
- comparison,
93
- tolerance
94
- )
95
- `)
96
- .eq('strategy_id', strategyId);
97
- if (nsErr || !nsRows || nsRows.length === 0)
98
- return {};
99
- const signalIds = nsRows.map((r) => r.signal_id);
100
- const { data: evalRows, error: evalErr } = await client
101
- .from('signal_evaluations')
102
- .select('signal_id, result')
103
- .in('signal_id', signalIds)
104
- .eq('trading_day_id', tradingDayId);
105
- if (evalErr || !evalRows)
106
- return {};
107
- const signalIdToResult = new Map();
108
- for (const row of evalRows) {
109
- signalIdToResult.set(row.signal_id, row.result);
110
- }
111
- const result = {};
112
- for (const nsRow of nsRows) {
113
- const signal = mapSignal(nsRow.signals);
114
- const key = (0, evaluate_1.signalKey)(signal);
115
- const val = signalIdToResult.get(nsRow.signal_id);
116
- if (val !== undefined) {
117
- result[key] = val;
118
- }
119
- }
120
- return result;
121
- }
122
- async function fetchIndicatorKeyMap(strategyId) {
123
- const { data: nsRows, error: nsErr } = await db
124
- .from('named_signals')
125
- .select(`
126
- signals:signal_id (
127
- indicator_1:indicator_id_1 ( id, type, tickers:ticker_id ( symbol, leverage ), lookback, delay, unit, threshold ),
128
- indicator_2:indicator_id_2 ( id, type, tickers:ticker_id ( symbol, leverage ), lookback, delay, unit, threshold )
129
- )
130
- `)
131
- .eq('strategy_id', strategyId);
132
- if (nsErr || !nsRows || nsRows.length === 0)
133
- return new Map();
134
- const keyToId = new Map();
135
- for (const nsRow of nsRows) {
136
- for (const ind of [nsRow.signals.indicator_1, nsRow.signals.indicator_2]) {
137
- const key = (0, evaluate_1.indicatorKey)(mapIndicator(ind));
138
- if (!keyToId.has(key)) {
139
- keyToId.set(key, ind.id);
140
- }
141
- }
142
- }
143
- return keyToId;
144
- }
145
- async function fetchIndicatorEvaluationsForDay(strategyId, tradingDayId) {
146
- const keyToId = await fetchIndicatorKeyMap(strategyId);
147
- if (keyToId.size === 0)
148
- return {};
149
- const indicatorIds = [...keyToId.values()];
150
- const { data: evalRows, error: evalErr } = await db
151
- .from('indicator_evaluations')
152
- .select('indicator_id, value, metadata, trading_days!inner(post)')
153
- .in('indicator_id', indicatorIds)
154
- .eq('trading_day_id', tradingDayId);
155
- if (evalErr || !evalRows)
156
- return {};
157
- const byIndicatorId = new Map();
158
- for (const row of evalRows) {
159
- byIndicatorId.set(row.indicator_id, {
160
- value: Number(row.value),
161
- metadata: row.metadata,
162
- post: row.trading_days.post,
163
- });
164
- }
165
- const result = {};
166
- for (const [key, id] of keyToId) {
167
- const entry = byIndicatorId.get(id);
168
- if (entry) {
169
- result[key] = {
170
- timestamp: entry.post,
171
- value: entry.value,
172
- ...(entry.metadata != null ? { metadata: entry.metadata } : {}),
173
- };
174
- }
175
- }
176
- return result;
177
- }
178
- async function fetchIndicatorMetadata(strategyId) {
179
- const keyToId = await fetchIndicatorKeyMap(strategyId);
180
- if (keyToId.size === 0)
181
- return {};
182
- const indicatorIds = [...keyToId.values()];
183
- const { data: evalRows, error: evalErr } = await db
184
- .from('indicator_evaluations')
185
- .select('indicator_id, metadata, trading_day_id')
186
- .in('indicator_id', indicatorIds)
187
- .order('trading_day_id', { ascending: false });
188
- if (evalErr || !evalRows)
189
- return {};
190
- const latestByIndicatorId = new Map();
191
- for (const row of evalRows) {
192
- if (!latestByIndicatorId.has(row.indicator_id) && row.metadata != null) {
193
- latestByIndicatorId.set(row.indicator_id, row.metadata);
194
- }
195
- }
196
- const result = {};
197
- for (const [key, id] of keyToId) {
198
- const meta = latestByIndicatorId.get(id);
199
- if (meta !== undefined) {
200
- result[key] = meta;
201
- }
202
- }
203
- return result;
204
- }
205
- async function storeResult(strategy, result, tradingDayId) {
206
- // Resolve strategy_id for indicator key → DB ID mapping
207
- const { data: stratRow } = await client
208
- .from('strategies')
209
- .select('id')
210
- .eq('link_id', strategy.linkId)
211
- .limit(1)
212
- .maybeSingle();
213
- const signalResults = Object.entries(result.signals).map(([_key, sigResult]) => {
214
- const ns = strategy.signals.find((ns) => (0, evaluate_1.signalKey)(ns.signal) === _key);
215
- return { name: ns?.name ?? _key, result: sigResult };
216
- });
217
- // Map indicator keys to database IDs
218
- const keyToId = stratRow ? await fetchIndicatorKeyMap(stratRow.id) : new Map();
219
- const indicatorResults = Object.entries(result.indicators)
220
- .filter(([key]) => keyToId.has(key))
221
- .map(([key, indResult]) => ({
222
- indicatorId: keyToId.get(key),
223
- value: indResult.value,
224
- metadata: indResult.metadata ?? null,
225
- }));
226
- const { error } = await db.rpc('upsert_evaluation', {
227
- p_link_id: strategy.linkId,
228
- p_allocation_name: result.allocation.name,
229
- p_signal_results: signalResults,
230
- p_indicator_results: indicatorResults,
231
- p_trading_day_id: tradingDayId,
232
- });
233
- if (error)
234
- throw new Error(`Failed to store evaluation: ${error.message}`);
235
- }
236
- // -----------------------------------------------------------------------
237
- // Module
238
- // -----------------------------------------------------------------------
239
13
  return {
240
- // ----- Retrieval -----
241
- async get(linkId) {
242
- const { data, error } = await client.functions.invoke('strategy', {
243
- body: { linkId },
244
- });
245
- if (error || !data)
246
- return null;
247
- return data;
248
- },
249
- async getMany(linkIds) {
250
- if (linkIds.length === 0)
251
- return {};
252
- const result = {};
253
- // Use parallel fetches
254
- const promises = linkIds.map(async (id) => {
255
- const strategy = await this.get(id);
256
- if (strategy)
257
- result[id] = strategy;
258
- });
259
- await Promise.all(promises);
260
- return result;
261
- },
262
- // ----- Cache-through evaluation -----
263
- async evaluate(strategy, at) {
264
- // 1. Fetch series + resolve strategy_id in parallel
265
- const symbols = (0, symbols_1.extractSymbols)(strategy);
266
- const [batchSeries, stratRow] = await Promise.all([
267
- market.getBatchSeries(symbols),
268
- client
269
- .from('strategies')
270
- .select('id')
271
- .eq('link_id', strategy.linkId)
272
- .limit(1)
273
- .maybeSingle()
274
- .then(({ data }) => data),
275
- ]);
276
- // 2. Build options for pure evaluation
277
- const options = { at, batchSeries };
278
- const evaluationDate = (0, evaluate_1.getEvaluationDate)(strategy.trading, options);
279
- // 4. No DB strategy → pure eval
280
- if (!stratRow)
281
- return (0, evaluate_1.evaluate)(strategy, options);
282
- // 5. Resolve trading_day_id
283
- const { data: tdRow } = await db
284
- .from('trading_days')
285
- .select('id')
286
- .lte('post', evaluationDate.toISOString())
287
- .order('post', { ascending: false })
288
- .limit(1)
289
- .maybeSingle();
290
- if (!tdRow)
291
- return (0, evaluate_1.evaluate)(strategy, options);
292
- // 6. Check cache
293
- const { data: cacheRow } = await db
294
- .from('strategy_evaluations')
295
- .select('allocation_id')
296
- .eq('strategy_id', stratRow.id)
297
- .eq('trading_day_id', tdRow.id)
298
- .limit(1)
299
- .maybeSingle();
300
- if (cacheRow) {
301
- // CACHE HIT — reconstruct result
302
- const { data: allocRow } = await db
303
- .from('allocations')
304
- .select('name')
305
- .eq('id', cacheRow.allocation_id)
306
- .limit(1)
307
- .maybeSingle();
308
- const namedAlloc = strategy.allocations.find(na => na.name === allocRow?.name)
309
- ?? strategy.allocations[strategy.allocations.length - 1];
310
- const [signals, indicators] = await Promise.all([
311
- fetchSignalStatesForDay(stratRow.id, tdRow.id),
312
- fetchIndicatorEvaluationsForDay(stratRow.id, tdRow.id),
313
- ]);
314
- return {
315
- allocation: {
316
- name: namedAlloc.name,
317
- holdings: namedAlloc.allocation.holdings,
318
- },
319
- asOf: evaluationDate,
320
- signals,
321
- indicators,
322
- };
323
- }
324
- // 7. CACHE MISS — fetch prior state, evaluate, store
325
- const [prevSignals, prevMeta] = await Promise.all([
326
- fetchSignalStates(stratRow.id),
327
- fetchIndicatorMetadata(stratRow.id),
328
- ]);
329
- const result = (0, evaluate_1.evaluate)(strategy, {
330
- ...options,
331
- previousSignalStates: prevSignals,
332
- previousIndicatorMetadata: prevMeta,
333
- });
334
- // Store (non-blocking)
335
- storeResult(strategy, result, tdRow.id).catch(err => console.error('Failed to store evaluation:', err));
336
- return result;
337
- },
338
- // ----- Pure evaluation (delegate to evaluate.ts) -----
14
+ get: (linkId) => (0, get_1.get)(client, linkId),
15
+ getMany: (linkIds) => (0, get_1.getMany)(client, linkIds),
16
+ evaluate: (strategy, at) => (0, cache_1.evaluateCached)(client, market, strategy, at),
339
17
  evaluateIndicator: evaluate_1.evaluateIndicator,
340
18
  evaluateSignal: evaluate_1.evaluateSignal,
341
19
  evaluateAllocation: evaluate_1.evaluateAllocation,
342
20
  getEvaluationDate: evaluate_1.getEvaluationDate,
343
- // ----- Utilities -----
344
21
  extractSymbols: symbols_1.extractSymbols,
345
- async backtest(_strategy, _options) {
346
- throw new Error('Not implemented');
347
- },
22
+ stream: (strategy, observation) => (0, stream_1.stream)(client, market, strategy, observation),
23
+ backtest: backtest_1.backtest,
348
24
  };
349
25
  }
350
26
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/strategy/client.ts"],"names":[],"mappings":";;AAsFA,wCAwXC;AA/bD,yCAQoB;AACpB,uCAAiE;AACjE,6CAAgD;AAEhD,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E;AAE9E,SAAS,SAAS,CAAC,GAAyC;IAC1D,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,YAAY,CAAC,GAOrB;IACC,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAqB;QAC/B,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;QAC1E,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,IAAI,EAAG,GAAG,CAAC,IAAa,IAAI,IAAI;QAChC,SAAS,EAAE,GAAG,CAAC,SAAS;KACzB,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,GAoBlB;IACC,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC;QACnC,UAAU,EAAE,GAAG,CAAC,UAAwB;QACxC,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC;QACpC,SAAS,EAAE,GAAG,CAAC,SAAS;KACzB,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAgB,cAAc,CAAC,MAA2B;IACxD,yDAAyD;IACzD,wDAAwD;IACxD,MAAM,EAAE,GAAG,MAAa,CAAC;IACzB,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,MAAM,CAAC,CAAC;IAEpC,0EAA0E;IAC1E,sDAAsD;IACtD,0EAA0E;IAE1E,KAAK,UAAU,iBAAiB,CAAC,UAAkB;QACjD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE;aAC5C,IAAI,CAAC,eAAe,CAAC;aACrB,MAAM,CAAC;;;;;;;;;OASP,CAAC;aACD,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAEjC,IAAI,KAAK,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEvD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM;aACpD,IAAI,CAAC,oBAAoB,CAAC;aAC1B,MAAM,CAAC,mCAAmC,CAAC;aAC3C,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;aAC1B,KAAK,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAEjD,IAAI,OAAO,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QAEpC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAmB,CAAC;QACpD,KAAK,MAAM,GAAG,IAAI,QAAiB,EAAE,CAAC;YACpC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,KAAK,IAAI,MAAe,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,GAAG,GAAG,IAAA,oBAAS,EAAC,MAAM,CAAC,CAAC;YAC9B,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAClD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,UAAU,uBAAuB,CACpC,UAAkB,EAClB,YAAoB;QAEpB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE;aAC5C,IAAI,CAAC,eAAe,CAAC;aACrB,MAAM,CAAC;;;;;;;;;OASP,CAAC;aACD,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAEjC,IAAI,KAAK,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEvD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM;aACpD,IAAI,CAAC,oBAAoB,CAAC;aAC1B,MAAM,CAAC,mBAAmB,CAAC;aAC3B,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;aAC1B,EAAE,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAEtC,IAAI,OAAO,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QAEpC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAmB,CAAC;QACpD,KAAK,MAAM,GAAG,IAAI,QAAiB,EAAE,CAAC;YACpC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,KAAK,IAAI,MAAe,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,GAAG,GAAG,IAAA,oBAAS,EAAC,MAAM,CAAC,CAAC;YAC9B,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAClD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,UAAU,oBAAoB,CAAC,UAAkB;QACpD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE;aAC5C,IAAI,CAAC,eAAe,CAAC;aACrB,MAAM,CAAC;;;;;OAKP,CAAC;aACD,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAEjC,IAAI,KAAK,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,GAAG,EAAE,CAAC;QAE9D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC1C,KAAK,MAAM,KAAK,IAAI,MAAe,EAAE,CAAC;YACpC,KAAK,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBACzE,MAAM,GAAG,GAAG,IAAA,uBAAY,EAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,UAAU,+BAA+B,CAC5C,UAAkB,EAClB,YAAoB;QAEpB,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAElC,MAAM,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAE3C,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE;aAChD,IAAI,CAAC,uBAAuB,CAAC;aAC7B,MAAM,CAAC,yDAAyD,CAAC;aACjE,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC;aAChC,EAAE,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAEtC,IAAI,OAAO,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QAEpC,MAAM,aAAa,GAAG,IAAI,GAAG,EAA8D,CAAC;QAC5F,KAAK,MAAM,GAAG,IAAI,QAAiB,EAAE,CAAC;YACpC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE;gBAClC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;gBACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,IAAI;aAC5B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAwC,EAAE,CAAC;QACvD,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,GAAG,CAAC,GAAG;oBACZ,SAAS,EAAE,KAAK,CAAC,IAAI;oBACrB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,UAAU,sBAAsB,CAAC,UAAkB;QACtD,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAElC,MAAM,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAE3C,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE;aAChD,IAAI,CAAC,uBAAuB,CAAC;aAC7B,MAAM,CAAC,wCAAwC,CAAC;aAChD,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC;aAChC,KAAK,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAEjD,IAAI,OAAO,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QAEpC,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAmB,CAAC;QACvD,KAAK,MAAM,GAAG,IAAI,QAAiB,EAAE,CAAC;YACpC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;gBACvE,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,UAAU,WAAW,CACxB,QAAkB,EAClB,MAA0B,EAC1B,YAAoB;QAEpB,wDAAwD;QACxD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM;aACpC,IAAI,CAAC,YAAY,CAAC;aAClB,MAAM,CAAC,IAAI,CAAC;aACZ,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC;aAC9B,KAAK,CAAC,CAAC,CAAC;aACR,WAAW,EAAE,CAAC;QAEjB,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE;YAC7E,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAC9B,CAAC,EAAE,EAAE,EAAE,CAAC,IAAA,oBAAS,EAAC,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,CACtC,CAAC;YACF,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,qCAAqC;QACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAkB,CAAC;QAC/F,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;aACvD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aACnC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1B,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE;YAC9B,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,IAAI;SACrC,CAAC,CAAC,CAAC;QAEN,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,mBAAmB,EAAE;YAClD,SAAS,EAAE,QAAQ,CAAC,MAAM;YAC1B,iBAAiB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI;YACzC,gBAAgB,EAAE,aAAa;YAC/B,mBAAmB,EAAE,gBAAgB;YACrC,gBAAgB,EAAE,YAAY;SAC/B,CAAC,CAAC;QAEH,IAAI,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,0EAA0E;IAC1E,SAAS;IACT,0EAA0E;IAE1E,OAAO;QACL,wBAAwB;QAExB,KAAK,CAAC,GAAG,CAAC,MAAc;YACtB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE;gBAChE,IAAI,EAAE,EAAE,MAAM,EAAE;aACjB,CAAC,CAAC;YACH,IAAI,KAAK,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YAChC,OAAO,IAAgB,CAAC;QAC1B,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,OAAiB;YAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAEpC,MAAM,MAAM,GAA6B,EAAE,CAAC;YAC5C,uBAAuB;YACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;gBACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACpC,IAAI,QAAQ;oBAAE,MAAM,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5B,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,uCAAuC;QAEvC,KAAK,CAAC,QAAQ,CAAC,QAAkB,EAAE,EAAQ;YACzC,oDAAoD;YACpD,MAAM,OAAO,GAAG,IAAA,wBAAkB,EAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChD,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC;gBAC9B,MAAM;qBACH,IAAI,CAAC,YAAY,CAAC;qBAClB,MAAM,CAAC,IAAI,CAAC;qBACZ,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC;qBAC9B,KAAK,CAAC,CAAC,CAAC;qBACR,WAAW,EAAE;qBACb,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC;aAC5B,CAAC,CAAC;YAEH,uCAAuC;YACvC,MAAM,OAAO,GAAG,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;YACpC,MAAM,cAAc,GAAG,IAAA,4BAAqB,EAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAExE,gCAAgC;YAChC,IAAI,CAAC,QAAQ;gBAAE,OAAO,IAAA,mBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEtD,4BAA4B;YAC5B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE;iBAC7B,IAAI,CAAC,cAAc,CAAC;iBACpB,MAAM,CAAC,IAAI,CAAC;iBACZ,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC;iBACzC,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;iBACnC,KAAK,CAAC,CAAC,CAAC;iBACR,WAAW,EAAE,CAAC;YAEjB,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAA,mBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEnD,iBAAiB;YACjB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE;iBAChC,IAAI,CAAC,sBAAsB,CAAC;iBAC5B,MAAM,CAAC,eAAe,CAAC;iBACvB,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,CAAC;iBAC9B,EAAE,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;iBAC9B,KAAK,CAAC,CAAC,CAAC;iBACR,WAAW,EAAE,CAAC;YAEjB,IAAI,QAAQ,EAAE,CAAC;gBACb,iCAAiC;gBACjC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE;qBAChC,IAAI,CAAC,aAAa,CAAC;qBACnB,MAAM,CAAC,MAAM,CAAC;qBACd,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC;qBAChC,KAAK,CAAC,CAAC,CAAC;qBACR,WAAW,EAAE,CAAC;gBAEjB,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,IAAI,CAAC;uBACzE,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAE3D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBAC9C,uBAAuB,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;oBAC9C,+BAA+B,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;iBACvD,CAAC,CAAC;gBACH,OAAO;oBACL,UAAU,EAAE;wBACV,IAAI,EAAE,UAAU,CAAC,IAAI;wBACrB,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,QAAQ;qBACzC;oBACD,IAAI,EAAE,cAAc;oBACpB,OAAO;oBACP,UAAU;iBACX,CAAC;YACJ,CAAC;YAED,qDAAqD;YACrD,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChD,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9B,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC;aACpC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAA,mBAAY,EAAC,QAAQ,EAAE;gBACpC,GAAG,OAAO;gBACV,oBAAoB,EAAE,WAAW;gBACjC,yBAAyB,EAAE,QAAQ;aACpC,CAAC,CAAC;YAEH,uBAAuB;YACvB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAClD,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAClD,CAAC;YAEF,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,wDAAwD;QAExD,iBAAiB,EAAE,4BAAqB;QACxC,cAAc,EAAE,yBAAkB;QAClC,kBAAkB,EAAE,6BAAsB;QAC1C,iBAAiB,EAAE,4BAAqB;QAExC,wBAAwB;QAExB,cAAc,EAAE,wBAAkB;QAElC,KAAK,CAAC,QAAQ,CAAC,SAAmB,EAAE,QAAyB;YAC3D,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/strategy/client.ts"],"names":[],"mappings":";;AAeA,wCAcC;AA3BD,yCAKoB;AACpB,uCAAiE;AACjE,6CAAgD;AAChD,+BAAqC;AACrC,mCAAyC;AACzC,qCAAkC;AAClC,yCAAsC;AAEtC,SAAgB,cAAc,CAAC,MAA2B;IACxD,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,MAAM,CAAC,CAAC;IACpC,OAAO;QACL,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,SAAG,EAAC,MAAM,EAAE,MAAM,CAAC;QACpC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,aAAO,EAAC,MAAM,EAAE,OAAO,CAAC;QAC9C,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,IAAA,sBAAc,EAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;QACxE,iBAAiB,EAAE,4BAAqB;QACxC,cAAc,EAAE,yBAAkB;QAClC,kBAAkB,EAAE,6BAAsB;QAC1C,iBAAiB,EAAE,4BAAqB;QACxC,cAAc,EAAE,wBAAkB;QAClC,MAAM,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC,IAAA,eAAM,EAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC;QAChF,QAAQ,EAAR,mBAAQ;KACT,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { TypedSupabaseClient } from '../types';
2
+ import type { Strategy } from './types';
3
+ export declare function get(client: TypedSupabaseClient, linkId: string): Promise<Strategy | null>;
4
+ export declare function getMany(client: TypedSupabaseClient, linkIds: string[]): Promise<Record<string, Strategy>>;
5
+ //# sourceMappingURL=get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../src/strategy/get.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,wBAAsB,GAAG,CAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAM/F;AAED,wBAAsB,OAAO,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAU/G"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.get = get;
4
+ exports.getMany = getMany;
5
+ async function get(client, linkId) {
6
+ const { data, error } = await client.functions.invoke('strategy', {
7
+ body: { linkId },
8
+ });
9
+ if (error || !data)
10
+ return null;
11
+ return data;
12
+ }
13
+ async function getMany(client, linkIds) {
14
+ if (linkIds.length === 0)
15
+ return {};
16
+ const result = {};
17
+ const promises = linkIds.map(async (id) => {
18
+ const strategy = await get(client, id);
19
+ if (strategy)
20
+ result[id] = strategy;
21
+ });
22
+ await Promise.all(promises);
23
+ return result;
24
+ }
25
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/strategy/get.ts"],"names":[],"mappings":";;AAGA,kBAMC;AAED,0BAUC;AAlBM,KAAK,UAAU,GAAG,CAAC,MAA2B,EAAE,MAAc;IACnE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE;QAChE,IAAI,EAAE,EAAE,MAAM,EAAE;KACjB,CAAC,CAAC;IACH,IAAI,KAAK,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,IAAgB,CAAC;AAC1B,CAAC;AAEM,KAAK,UAAU,OAAO,CAAC,MAA2B,EAAE,OAAiB;IAC1E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,MAAM,GAA6B,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QACxC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,QAAQ;YAAE,MAAM,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5B,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,5 +1,9 @@
1
- export type { StrategyModule, Strategy, NamedSignal, AllocationEvaluation, Signal, Allocation, Indicator, Ticker, Holding, Trading, Condition, SignalExpr, NotExpr, UnaryExpr, AndExpr, OrExpr, Comparison, IndicatorType, Frequency, Unit, EvaluationOptions, IndicatorEvaluation, StrategyEvaluation, BacktestOptions, BacktestResult, } from './types';
1
+ export type { StrategyModule, Strategy, NamedSignal, AllocationEvaluation, Signal, Allocation, Indicator, Ticker, Holding, Trading, Condition, SignalExpr, NotExpr, UnaryExpr, AndExpr, OrExpr, Comparison, IndicatorType, Frequency, Unit, EvaluationOptions, IndicatorEvaluation, StrategyEvaluation, StreamObservation, BacktestOptions, BacktestResult, } from './types';
2
2
  export { createStrategy } from './client';
3
+ export { get, getMany } from './get';
4
+ export { evaluateCached } from './cache';
5
+ export { stream } from './stream';
6
+ export { backtest } from './backtest';
3
7
  export { evaluateIndicator, evaluateSignal, evaluateAllocation, evaluate, getEvaluationDate, indicatorKey, signalKey } from './evaluate';
4
8
  export { extractSymbols, INDICATOR_SYMBOL_MAP } from './symbols';
5
9
  export { utcToET, isAtMarketClose } from './time';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/strategy/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,MAAM,EACN,UAAU,EACV,SAAS,EACT,MAAM,EACN,OAAO,EACP,OAAO,EACP,SAAS,EACT,UAAU,EACV,OAAO,EACP,SAAS,EACT,OAAO,EACP,MAAM,EACN,UAAU,EACV,aAAa,EACb,SAAS,EACT,IAAI,EACJ,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,cAAc,GACf,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACzI,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/strategy/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,MAAM,EACN,UAAU,EACV,SAAS,EACT,MAAM,EACN,OAAO,EACP,OAAO,EACP,SAAS,EACT,UAAU,EACV,OAAO,EACP,SAAS,EACT,OAAO,EACP,MAAM,EACN,UAAU,EACV,aAAa,EACb,SAAS,EACT,IAAI,EACJ,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,cAAc,GACf,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACzI,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC"}
@@ -1,8 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isAtMarketClose = exports.utcToET = exports.INDICATOR_SYMBOL_MAP = exports.extractSymbols = exports.signalKey = exports.indicatorKey = exports.getEvaluationDate = exports.evaluate = exports.evaluateAllocation = exports.evaluateSignal = exports.evaluateIndicator = exports.createStrategy = void 0;
3
+ exports.isAtMarketClose = exports.utcToET = exports.INDICATOR_SYMBOL_MAP = exports.extractSymbols = exports.signalKey = exports.indicatorKey = exports.getEvaluationDate = exports.evaluate = exports.evaluateAllocation = exports.evaluateSignal = exports.evaluateIndicator = exports.backtest = exports.stream = exports.evaluateCached = exports.getMany = exports.get = exports.createStrategy = void 0;
4
4
  var client_1 = require("./client");
5
5
  Object.defineProperty(exports, "createStrategy", { enumerable: true, get: function () { return client_1.createStrategy; } });
6
+ var get_1 = require("./get");
7
+ Object.defineProperty(exports, "get", { enumerable: true, get: function () { return get_1.get; } });
8
+ Object.defineProperty(exports, "getMany", { enumerable: true, get: function () { return get_1.getMany; } });
9
+ var cache_1 = require("./cache");
10
+ Object.defineProperty(exports, "evaluateCached", { enumerable: true, get: function () { return cache_1.evaluateCached; } });
11
+ var stream_1 = require("./stream");
12
+ Object.defineProperty(exports, "stream", { enumerable: true, get: function () { return stream_1.stream; } });
13
+ var backtest_1 = require("./backtest");
14
+ Object.defineProperty(exports, "backtest", { enumerable: true, get: function () { return backtest_1.backtest; } });
6
15
  var evaluate_1 = require("./evaluate");
7
16
  Object.defineProperty(exports, "evaluateIndicator", { enumerable: true, get: function () { return evaluate_1.evaluateIndicator; } });
8
17
  Object.defineProperty(exports, "evaluateSignal", { enumerable: true, get: function () { return evaluate_1.evaluateSignal; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/strategy/index.ts"],"names":[],"mappings":";;;AA4BA,mCAA0C;AAAjC,wGAAA,cAAc,OAAA;AACvB,uCAAyI;AAAhI,6GAAA,iBAAiB,OAAA;AAAE,0GAAA,cAAc,OAAA;AAAE,8GAAA,kBAAkB,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,6GAAA,iBAAiB,OAAA;AAAE,wGAAA,YAAY,OAAA;AAAE,qGAAA,SAAS,OAAA;AACpH,qCAAiE;AAAxD,yGAAA,cAAc,OAAA;AAAE,+GAAA,oBAAoB,OAAA;AAC7C,+BAAkD;AAAzC,+FAAA,OAAO,OAAA;AAAE,uGAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/strategy/index.ts"],"names":[],"mappings":";;;AA6BA,mCAA0C;AAAjC,wGAAA,cAAc,OAAA;AACvB,6BAAqC;AAA5B,0FAAA,GAAG,OAAA;AAAE,8FAAA,OAAO,OAAA;AACrB,iCAAyC;AAAhC,uGAAA,cAAc,OAAA;AACvB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,uCAAyI;AAAhI,6GAAA,iBAAiB,OAAA;AAAE,0GAAA,cAAc,OAAA;AAAE,8GAAA,kBAAkB,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,6GAAA,iBAAiB,OAAA;AAAE,wGAAA,YAAY,OAAA;AAAE,qGAAA,SAAS,OAAA;AACpH,qCAAiE;AAAxD,yGAAA,cAAc,OAAA;AAAE,+GAAA,oBAAoB,OAAA;AAC7C,+BAAkD;AAAzC,+FAAA,OAAO,OAAA;AAAE,uGAAA,eAAe,OAAA"}
@@ -0,0 +1,5 @@
1
+ import type { TypedSupabaseClient } from '../types';
2
+ import type { MarketModule } from '../market/types';
3
+ import type { Strategy, StrategyEvaluation, StreamObservation } from './types';
4
+ export declare function stream(client: TypedSupabaseClient, market: MarketModule, strategy: Strategy, observation: StreamObservation | StreamObservation[]): Promise<StrategyEvaluation>;
5
+ //# sourceMappingURL=stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/strategy/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAsB/E,wBAAsB,MAAM,CAC1B,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,GACnD,OAAO,CAAC,kBAAkB,CAAC,CAyC7B"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stream = stream;
4
+ const evaluate_1 = require("./evaluate");
5
+ const symbols_1 = require("./symbols");
6
+ const cache_1 = require("./cache");
7
+ function mergeObservations(batchSeries, observations) {
8
+ let merged = { ...batchSeries };
9
+ for (const obs of observations) {
10
+ const series = [...(merged[obs.symbol] ?? [])];
11
+ const obsDate = obs.timestamp.slice(0, 10); // YYYY-MM-DD
12
+ const idx = series.findIndex(o => o.timestamp.slice(0, 10) === obsDate);
13
+ const entry = { timestamp: obs.timestamp, value: obs.value };
14
+ if (idx >= 0)
15
+ series[idx] = entry; // replace incomplete bar
16
+ else
17
+ series.push(entry); // append new day
18
+ merged = { ...merged, [obs.symbol]: series };
19
+ }
20
+ return merged;
21
+ }
22
+ async function stream(client, market, strategy, observation) {
23
+ const observations = Array.isArray(observation) ? observation : [observation];
24
+ if (observations.length === 0) {
25
+ throw new Error('stream() requires at least one observation');
26
+ }
27
+ // 1. Fetch historical series for all symbols
28
+ const symbols = (0, symbols_1.extractSymbols)(strategy);
29
+ const batchSeries = await market.getBatchSeries(symbols);
30
+ // 2. Merge the incoming observations into the series (replace same-date or append)
31
+ const mergedSeries = mergeObservations(batchSeries, observations);
32
+ // 3. Build evaluation options with latest observation timestamp
33
+ const at = new Date(observations[observations.length - 1].timestamp);
34
+ const options = { at, batchSeries: mergedSeries };
35
+ // 4. Fetch prior signal states for hysteresis (read-only, no cache write)
36
+ const stratRow = await client
37
+ .from('strategies')
38
+ .select('id')
39
+ .eq('link_id', strategy.linkId)
40
+ .limit(1)
41
+ .maybeSingle()
42
+ .then(({ data }) => data);
43
+ let prevSignals = {};
44
+ let prevMeta = {};
45
+ if (stratRow) {
46
+ [prevSignals, prevMeta] = await Promise.all([
47
+ (0, cache_1.fetchSignalStates)(client, stratRow.id),
48
+ (0, cache_1.fetchIndicatorMetadata)(client, stratRow.id),
49
+ ]);
50
+ }
51
+ // 5. Evaluate (skip cache check and result storage — interim data)
52
+ return (0, evaluate_1.evaluate)(strategy, {
53
+ ...options,
54
+ previousSignalStates: prevSignals,
55
+ previousIndicatorMetadata: prevMeta,
56
+ });
57
+ }
58
+ //# sourceMappingURL=stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/strategy/stream.ts"],"names":[],"mappings":"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"}
@@ -87,6 +87,11 @@ export interface StrategyEvaluation {
87
87
  signals: Record<string, boolean>;
88
88
  indicators: Record<string, IndicatorEvaluation>;
89
89
  }
90
+ export interface StreamObservation {
91
+ symbol: string;
92
+ timestamp: string;
93
+ value: number;
94
+ }
90
95
  export interface BacktestOptions {
91
96
  startDate: string;
92
97
  endDate: string;
@@ -102,6 +107,7 @@ export interface StrategyModule {
102
107
  evaluateAllocation(allocation: Allocation, options: EvaluationOptions): boolean;
103
108
  getEvaluationDate(trading: Trading, options: EvaluationOptions): Date;
104
109
  extractSymbols(strategy: Strategy): string[];
110
+ stream(strategy: Strategy, observation: StreamObservation | StreamObservation[]): Promise<StrategyEvaluation>;
105
111
  backtest(strategy: Strategy, options: BacktestOptions): Promise<BacktestResult>;
106
112
  }
107
113
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/strategy/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMnD,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEzC,MAAM,MAAM,aAAa,GACrB,KAAK,GACL,KAAK,GACL,OAAO,GACP,QAAQ,GACR,YAAY,GACZ,UAAU,GACV,KAAK,GACL,KAAK,GACL,OAAO,GACP,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,aAAa,GACb,cAAc,GACd,aAAa,GACb,WAAW,CAAC;AAEhB,MAAM,MAAM,SAAS,GACjB,OAAO,GACP,QAAQ,GACR,SAAS,GACT,YAAY,GACZ,WAAW,GACX,gBAAgB,GAChB,cAAc,GACd,QAAQ,CAAC;AAEb,MAAM,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAMpC,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAMD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAE7C,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,SAAS,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,OAAO,EAAE,CAAC;CACjB;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAMrD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;CACxB;AAMD,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAMD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,IAAI,CAAC;IACT,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IAC3C,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,yBAAyB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,oBAAoB,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CACjD;AAMD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;CAAG;AAMlC,MAAM,WAAW,cAAc;IAE7B,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAG9D,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAGpE,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,GAAG,mBAAmB,CAAC;IACzF,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC;IACpE,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC;IAGhF,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAGtE,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAAE,CAAC;IAG7C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACjF"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/strategy/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMnD,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEzC,MAAM,MAAM,aAAa,GACrB,KAAK,GACL,KAAK,GACL,OAAO,GACP,QAAQ,GACR,YAAY,GACZ,UAAU,GACV,KAAK,GACL,KAAK,GACL,OAAO,GACP,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,aAAa,GACb,cAAc,GACd,aAAa,GACb,WAAW,CAAC;AAEhB,MAAM,MAAM,SAAS,GACjB,OAAO,GACP,QAAQ,GACR,SAAS,GACT,YAAY,GACZ,WAAW,GACX,gBAAgB,GAChB,cAAc,GACd,QAAQ,CAAC;AAEb,MAAM,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAMpC,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAMD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAE7C,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,SAAS,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,OAAO,EAAE,CAAC;CACjB;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAMrD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;CACxB;AAMD,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAMD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,IAAI,CAAC;IACT,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IAC3C,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,yBAAyB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,oBAAoB,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CACjD;AAMD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAMD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;CAAG;AAMlC,MAAM,WAAW,cAAc;IAE7B,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAG9D,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAGpE,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,GAAG,mBAAmB,CAAC;IACzF,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC;IACpE,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC;IAGhF,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAGtE,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAAE,CAAC;IAG7C,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAG9G,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACjF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livefolio/sdk",
3
- "version": "0.2.0",
3
+ "version": "0.2.3",
4
4
  "description": "Livefolio SDK — market data, strategy evaluation, and portfolio management",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",