@tradejs/infra 2.0.21 → 3.0.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.
- package/dist/{chunk-YVIHTUV5.mjs → chunk-OLB6NQRG.mjs} +1 -1
- package/dist/{chunk-I2J6YDBD.mjs → chunk-ZXU7OYFU.mjs} +65 -38
- package/dist/internal-BuHqoCCV.d.mts +9 -0
- package/dist/internal-q48Torp4.d.ts +9 -0
- package/dist/ml.mjs +3 -3
- package/dist/query-tkHVD4Xo.d.mts +12 -0
- package/dist/query-tkHVD4Xo.d.ts +12 -0
- package/dist/timescale/candles.js +6 -4
- package/dist/timescale/candles.mjs +2 -2
- package/dist/timescale/client.d.mts +3 -2
- package/dist/timescale/client.d.ts +3 -2
- package/dist/timescale/client.js +40 -15
- package/dist/timescale/client.mjs +2 -2
- package/dist/timescale/derivatives.d.mts +4 -2
- package/dist/timescale/derivatives.d.ts +4 -2
- package/dist/timescale/derivatives.js +20 -12
- package/dist/timescale/derivatives.mjs +479 -13
- package/dist/timescale/hyperliquidWhales.d.mts +29 -25
- package/dist/timescale/hyperliquidWhales.d.ts +29 -25
- package/dist/timescale/hyperliquidWhales.js +84 -71
- package/dist/timescale/hyperliquidWhales.mjs +1103 -14
- package/dist/timescale/marketContext.d.mts +15 -11
- package/dist/timescale/marketContext.d.ts +15 -11
- package/dist/timescale/marketContext.js +67 -57
- package/dist/timescale/marketContext.mjs +1259 -28
- package/dist/timescale/spread.js +6 -4
- package/dist/timescale/spread.mjs +105 -5
- package/dist/userSettings.js +3 -316
- package/dist/userSettings.mjs +3 -21
- package/package.json +2 -22
- package/dist/aiEndpoints.d.mts +0 -10
- package/dist/aiEndpoints.d.ts +0 -10
- package/dist/aiEndpoints.js +0 -159
- package/dist/aiEndpoints.mjs +0 -12
- package/dist/aiLanguages.d.mts +0 -11
- package/dist/aiLanguages.d.ts +0 -11
- package/dist/aiLanguages.js +0 -71
- package/dist/aiLanguages.mjs +0 -12
- package/dist/aiModels.d.mts +0 -12
- package/dist/aiModels.d.ts +0 -12
- package/dist/aiModels.js +0 -272
- package/dist/aiModels.mjs +0 -17
- package/dist/chunk-2CZREG43.mjs +0 -112
- package/dist/chunk-CCC7DX2T.mjs +0 -44
- package/dist/chunk-DFMKDB2R.mjs +0 -1285
- package/dist/chunk-DTCLZIBM.mjs +0 -163
- package/dist/chunk-NWXFWTWU.mjs +0 -1114
- package/dist/chunk-SZQB7ER5.mjs +0 -492
- package/dist/chunk-XQ3YBULV.mjs +0 -132
- package/dist/internal-2coHaaos.d.mts +0 -26
- package/dist/internal-2coHaaos.d.ts +0 -26
- package/dist/timescale.d.mts +0 -9
- package/dist/timescale.d.ts +0 -9
- package/dist/timescale.js +0 -4228
- package/dist/timescale.mjs +0 -138
package/dist/chunk-2CZREG43.mjs
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ensureSpreadSchema,
|
|
3
|
-
getPool
|
|
4
|
-
} from "./chunk-I2J6YDBD.mjs";
|
|
5
|
-
|
|
6
|
-
// src/timescale/spread.ts
|
|
7
|
-
async function upsertSpreadRows(rows) {
|
|
8
|
-
if (!rows.length) return;
|
|
9
|
-
await ensureSpreadSchema();
|
|
10
|
-
const pool = getPool();
|
|
11
|
-
const cols = [
|
|
12
|
-
"symbol",
|
|
13
|
-
"interval",
|
|
14
|
-
"ts",
|
|
15
|
-
"binance_price",
|
|
16
|
-
"coinbase_price",
|
|
17
|
-
"spread",
|
|
18
|
-
"source"
|
|
19
|
-
];
|
|
20
|
-
const maxRows = Math.floor(65535 / cols.length);
|
|
21
|
-
if (rows.length > maxRows) {
|
|
22
|
-
for (let i = 0; i < rows.length; i += maxRows) {
|
|
23
|
-
await upsertSpreadRows(rows.slice(i, i + maxRows));
|
|
24
|
-
}
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
const valuesSql = rows.map(
|
|
28
|
-
(_, i) => `(${cols.map((__, j) => `$${i * cols.length + j + 1}`).join(",")})`
|
|
29
|
-
).join(",");
|
|
30
|
-
const flat = rows.flatMap((row) => [
|
|
31
|
-
row.symbol,
|
|
32
|
-
row.interval,
|
|
33
|
-
row.ts,
|
|
34
|
-
row.binancePrice ?? null,
|
|
35
|
-
row.coinbasePrice ?? null,
|
|
36
|
-
row.spread ?? null,
|
|
37
|
-
row.source ?? null
|
|
38
|
-
]);
|
|
39
|
-
const sql = `
|
|
40
|
-
INSERT INTO market_spread (${cols.join(",")})
|
|
41
|
-
VALUES ${valuesSql}
|
|
42
|
-
ON CONFLICT (symbol, interval, ts) DO UPDATE SET
|
|
43
|
-
binance_price = COALESCE(EXCLUDED.binance_price, market_spread.binance_price),
|
|
44
|
-
coinbase_price = COALESCE(EXCLUDED.coinbase_price, market_spread.coinbase_price),
|
|
45
|
-
spread = COALESCE(EXCLUDED.spread, market_spread.spread),
|
|
46
|
-
source = COALESCE(EXCLUDED.source, market_spread.source),
|
|
47
|
-
ingested_at = now()
|
|
48
|
-
`;
|
|
49
|
-
await pool.query(sql, flat);
|
|
50
|
-
}
|
|
51
|
-
async function getSpreadRangeForSymbols(symbols, interval, startMs, endMs) {
|
|
52
|
-
if (!symbols.length) {
|
|
53
|
-
return [];
|
|
54
|
-
}
|
|
55
|
-
await ensureSpreadSchema();
|
|
56
|
-
const pool = getPool();
|
|
57
|
-
const sql = `
|
|
58
|
-
SELECT symbol, interval, ts, binance_price, coinbase_price, spread
|
|
59
|
-
FROM market_spread
|
|
60
|
-
WHERE symbol = ANY($1)
|
|
61
|
-
AND interval = $2
|
|
62
|
-
AND ts >= to_timestamp($3/1000.0)
|
|
63
|
-
AND ts <= to_timestamp($4/1000.0)
|
|
64
|
-
ORDER BY symbol ASC, ts ASC
|
|
65
|
-
`;
|
|
66
|
-
const res = await pool.query(sql, [symbols, interval, startMs, endMs]);
|
|
67
|
-
return res.rows;
|
|
68
|
-
}
|
|
69
|
-
async function getSpreadSummary(hours = 24, limit = 500) {
|
|
70
|
-
await ensureSpreadSchema();
|
|
71
|
-
const pool = getPool();
|
|
72
|
-
const cappedHours = Math.max(1, Math.min(24 * 30, hours));
|
|
73
|
-
const cappedLimit = Math.max(50, Math.min(5e3, limit));
|
|
74
|
-
const rowsQ = await pool.query(
|
|
75
|
-
`
|
|
76
|
-
SELECT symbol, interval, ts, binance_price, coinbase_price, spread
|
|
77
|
-
FROM market_spread
|
|
78
|
-
WHERE ts >= now() - ($1 || ' hours')::interval
|
|
79
|
-
ORDER BY ts DESC
|
|
80
|
-
LIMIT $2
|
|
81
|
-
`,
|
|
82
|
-
[String(cappedHours), cappedLimit]
|
|
83
|
-
);
|
|
84
|
-
const aggQ = await pool.query(
|
|
85
|
-
`
|
|
86
|
-
SELECT
|
|
87
|
-
symbol,
|
|
88
|
-
interval,
|
|
89
|
-
COUNT(*)::int AS points,
|
|
90
|
-
MAX(ts) AS last_ts,
|
|
91
|
-
AVG(spread) AS avg_spread,
|
|
92
|
-
STDDEV_POP(spread) AS std_spread
|
|
93
|
-
FROM market_spread
|
|
94
|
-
WHERE ts >= now() - ($1 || ' hours')::interval
|
|
95
|
-
GROUP BY symbol, interval
|
|
96
|
-
ORDER BY points DESC, symbol ASC
|
|
97
|
-
LIMIT 500
|
|
98
|
-
`,
|
|
99
|
-
[String(cappedHours)]
|
|
100
|
-
);
|
|
101
|
-
return {
|
|
102
|
-
rows: rowsQ.rows,
|
|
103
|
-
aggregates: aggQ.rows,
|
|
104
|
-
hours: cappedHours
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
export {
|
|
109
|
-
upsertSpreadRows,
|
|
110
|
-
getSpreadRangeForSymbols,
|
|
111
|
-
getSpreadSummary
|
|
112
|
-
};
|
package/dist/chunk-CCC7DX2T.mjs
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
// src/aiLanguages.ts
|
|
2
|
-
var AI_RESPONSE_LANGUAGE_OPTIONS = [
|
|
3
|
-
{ label: "English", value: "en", promptName: "English" },
|
|
4
|
-
{ label: "Chinese", value: "zh", promptName: "Chinese" },
|
|
5
|
-
{ label: "Hindi", value: "hi", promptName: "Hindi" },
|
|
6
|
-
{ label: "Spanish", value: "es", promptName: "Spanish" },
|
|
7
|
-
{ label: "French", value: "fr", promptName: "French" },
|
|
8
|
-
{ label: "Arabic", value: "ar", promptName: "Arabic" },
|
|
9
|
-
{ label: "Bengali", value: "bn", promptName: "Bengali" },
|
|
10
|
-
{ label: "Portuguese", value: "pt", promptName: "Portuguese" },
|
|
11
|
-
{ label: "Russian", value: "ru", promptName: "Russian" },
|
|
12
|
-
{ label: "Urdu", value: "ur", promptName: "Urdu" },
|
|
13
|
-
{ label: "Indonesian", value: "id", promptName: "Indonesian" },
|
|
14
|
-
{ label: "German", value: "de", promptName: "German" },
|
|
15
|
-
{ label: "Japanese", value: "ja", promptName: "Japanese" },
|
|
16
|
-
{ label: "Swahili", value: "sw", promptName: "Swahili" },
|
|
17
|
-
{ label: "Marathi", value: "mr", promptName: "Marathi" },
|
|
18
|
-
{ label: "Telugu", value: "te", promptName: "Telugu" },
|
|
19
|
-
{ label: "Turkish", value: "tr", promptName: "Turkish" },
|
|
20
|
-
{ label: "Tamil", value: "ta", promptName: "Tamil" },
|
|
21
|
-
{ label: "Vietnamese", value: "vi", promptName: "Vietnamese" },
|
|
22
|
-
{ label: "Korean", value: "ko", promptName: "Korean" }
|
|
23
|
-
];
|
|
24
|
-
var KNOWN_AI_RESPONSE_LANGUAGES = new Set(
|
|
25
|
-
AI_RESPONSE_LANGUAGE_OPTIONS.map((option) => option.value)
|
|
26
|
-
);
|
|
27
|
-
var DEFAULT_AI_RESPONSE_LANGUAGE = AI_RESPONSE_LANGUAGE_OPTIONS[0].value;
|
|
28
|
-
var normalizeAiResponseLanguage = (value) => {
|
|
29
|
-
if (typeof value !== "string") {
|
|
30
|
-
return DEFAULT_AI_RESPONSE_LANGUAGE;
|
|
31
|
-
}
|
|
32
|
-
const trimmed = value.trim().toLowerCase();
|
|
33
|
-
return KNOWN_AI_RESPONSE_LANGUAGES.has(trimmed) ? trimmed : DEFAULT_AI_RESPONSE_LANGUAGE;
|
|
34
|
-
};
|
|
35
|
-
var getAiResponseLanguagePromptName = (value) => AI_RESPONSE_LANGUAGE_OPTIONS.find(
|
|
36
|
-
(option) => option.value === normalizeAiResponseLanguage(value)
|
|
37
|
-
)?.promptName ?? AI_RESPONSE_LANGUAGE_OPTIONS[0].promptName;
|
|
38
|
-
|
|
39
|
-
export {
|
|
40
|
-
AI_RESPONSE_LANGUAGE_OPTIONS,
|
|
41
|
-
DEFAULT_AI_RESPONSE_LANGUAGE,
|
|
42
|
-
normalizeAiResponseLanguage,
|
|
43
|
-
getAiResponseLanguagePromptName
|
|
44
|
-
};
|