sveltekit-ui 1.1.51 → 1.1.52
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/.vercel/output/config.json +4 -0
- package/.vercel/output/functions/![-]/catchall.func/.svelte-kit/output/server/chunks/environment.js +1 -1
- package/.vercel/output/functions/![-]/catchall.func/.svelte-kit/output/server/chunks/internal.js +1 -1
- package/.vercel/output/functions/![-]/catchall.func/.svelte-kit/output/server/entries/pages/trader/_page.server.js +295 -0
- package/.vercel/output/functions/![-]/catchall.func/.svelte-kit/output/server/entries/pages/trader/_page.svelte.js +237 -0
- package/.vercel/output/functions/![-]/catchall.func/.svelte-kit/output/server/nodes/0.js +1 -1
- package/.vercel/output/functions/![-]/catchall.func/.svelte-kit/output/server/nodes/1.js +1 -1
- package/.vercel/output/functions/![-]/catchall.func/.svelte-kit/output/server/nodes/2.js +1 -1
- package/.vercel/output/functions/![-]/catchall.func/.svelte-kit/output/server/nodes/3.js +1 -1
- package/.vercel/output/functions/![-]/catchall.func/.svelte-kit/output/server/nodes/4.js +1 -1
- package/.vercel/output/functions/![-]/catchall.func/.svelte-kit/output/server/nodes/5.js +1 -1
- package/.vercel/output/functions/![-]/catchall.func/.svelte-kit/output/server/nodes/6.js +1 -1
- package/.vercel/output/functions/![-]/catchall.func/.svelte-kit/output/server/nodes/7.js +10 -0
- package/.vercel/output/functions/![-]/catchall.func/.svelte-kit/vercel-tmp/manifest.js +10 -2
- package/.vercel/output/static/_app/immutable/assets/7.P3YGQ1pf.css +1 -0
- package/.vercel/output/static/_app/immutable/chunks/BAahZk91.js +1 -0
- package/.vercel/output/static/_app/immutable/chunks/{BaSFXs5z.js → BPT8hUnt.js} +1 -1
- package/.vercel/output/static/_app/immutable/chunks/{DKfpOMDq.js → BwSlGzN3.js} +1 -1
- package/.vercel/output/static/_app/immutable/chunks/{D8m9gmGa.js → C1JBm0c-.js} +1 -1
- package/.vercel/output/static/_app/immutable/chunks/{CQTdHLj4.js → C7ic0CC_.js} +1 -1
- package/.vercel/output/static/_app/immutable/chunks/{BfPYA_4B.js → DthNgRcX.js} +1 -1
- package/.vercel/output/static/_app/immutable/chunks/{DvUP28x7.js → dNI4qYWa.js} +1 -1
- package/.vercel/output/static/_app/immutable/chunks/{CC40hui0.js → k2CTozZP.js} +1 -1
- package/.vercel/output/static/_app/immutable/chunks/{BRwVkVgU.js → reUr01i3.js} +1 -1
- package/.vercel/output/static/_app/immutable/entry/app.BmAvfs9y.js +2 -0
- package/.vercel/output/static/_app/immutable/entry/start.BjMIYpc9.js +1 -0
- package/.vercel/output/static/_app/immutable/nodes/{0.BAbruZLL.js → 0.Ny4VwAhi.js} +1 -1
- package/.vercel/output/static/_app/immutable/nodes/1.DPmv3j1s.js +1 -0
- package/.vercel/output/static/_app/immutable/nodes/{2.C0Y_lheo.js → 2.WACi8m_j.js} +1 -1
- package/.vercel/output/static/_app/immutable/nodes/{3.3Sc3Vvf1.js → 3.BR0VfEGG.js} +1 -1
- package/.vercel/output/static/_app/immutable/nodes/{4.DDQjOUe-.js → 4.CaKMIjEy.js} +1 -1
- package/.vercel/output/static/_app/immutable/nodes/{5.BM8tLMpn.js → 5.CBcmyemr.js} +1 -1
- package/.vercel/output/static/_app/immutable/nodes/{6.BALEMktT.js → 6.DBqG0cc_.js} +1 -1
- package/.vercel/output/static/_app/immutable/nodes/7.B7MLhsUA.js +1 -0
- package/.vercel/output/static/_app/version.json +1 -1
- package/package.json +4 -4
- package/.vercel/output/static/_app/immutable/chunks/B9qOyoM5.js +0 -1
- package/.vercel/output/static/_app/immutable/entry/app.6badXRGb.js +0 -2
- package/.vercel/output/static/_app/immutable/entry/start.BW_l5bbx.js +0 -1
- package/.vercel/output/static/_app/immutable/nodes/1.CHVDBae8.js +0 -1
- /package/.vercel/output/static/_app/immutable/chunks/{RHnEm7HE.js → C_Pzoflo.js} +0 -0
- /package/.vercel/output/static/_app/immutable/chunks/{C7Ex2Xh-.js → Du1izqHO.js} +0 -0
- /package/.vercel/output/static/_app/immutable/chunks/{B0BvW1x3.js → DxLN9Q9A.js} +0 -0
- /package/.vercel/output/static/_app/immutable/chunks/{Cfug8aQt.js → v_jBEYI6.js} +0 -0
package/.vercel/output/functions/![-]/catchall.func/.svelte-kit/output/server/chunks/environment.js
CHANGED
|
@@ -37,7 +37,7 @@ function set_public_env(environment) {
|
|
|
37
37
|
}
|
|
38
38
|
//#endregion
|
|
39
39
|
//#region \0virtual:__sveltekit/environment
|
|
40
|
-
var version = "
|
|
40
|
+
var version = "1774227794535";
|
|
41
41
|
var prerendering = false;
|
|
42
42
|
function set_building() {}
|
|
43
43
|
function set_prerendering() {
|
package/.vercel/output/functions/![-]/catchall.func/.svelte-kit/output/server/chunks/internal.js
CHANGED
|
@@ -773,7 +773,7 @@ var options = {
|
|
|
773
773
|
app: ({ head, body, assets, nonce, env }) => "<!DOCTYPE html>\n<html lang=\"en\" data-theme=\"\">\n <head>\n <meta charset=\"utf-8\" />\n <link rel=\"icon\" type=\"image/svg+xml\" sizes=\"any\" href=\"" + assets + "/favicon.svg\" />\n <link rel=\"icon\" type=\"image/png\" href=\"" + assets + "/favicon.png\" />\n <link rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"" + assets + "/apple-touch-icon.png\" />\n <link rel=\"manifest\" href=\"" + assets + "/site.webmanifest\" />\n <meta name=\"theme-color\" media=\"(prefers-color-scheme: light)\" content=\"oklch(97% 0.01 261)\" />\n <meta name=\"theme-color\" media=\"(prefers-color-scheme: dark)\" content=\"oklch(3% 0.01 261)\" />\n <meta name=\"viewport\" content=\"width=device-width\" />\n " + head + "\n </head>\n <body data-sveltekit-preload-data=\"hover\">\n <div style=\"display: contents\">" + body + "</div>\n </body>\n</html>\n",
|
|
774
774
|
error: ({ status, message }) => "<!doctype html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\" />\n <title>" + message + "</title>\n\n <style>\n body {\n --bg: white;\n --fg: #222;\n --divider: #ccc;\n background: var(--bg);\n color: var(--fg);\n font-family:\n system-ui,\n -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n Roboto,\n Oxygen,\n Ubuntu,\n Cantarell,\n 'Open Sans',\n 'Helvetica Neue',\n sans-serif;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100vh;\n margin: 0;\n }\n\n .error {\n display: flex;\n align-items: center;\n max-width: 32rem;\n margin: 0 1rem;\n }\n\n .status {\n font-weight: 200;\n font-size: 3rem;\n line-height: 1;\n position: relative;\n top: -0.05rem;\n }\n\n .message {\n border-left: 1px solid var(--divider);\n padding: 0 0 0 1rem;\n margin: 0 0 0 1rem;\n min-height: 2.5rem;\n display: flex;\n align-items: center;\n }\n\n .message h1 {\n font-weight: 400;\n font-size: 1em;\n margin: 0;\n }\n\n @media (prefers-color-scheme: dark) {\n body {\n --bg: #222;\n --fg: #ddd;\n --divider: #666;\n }\n }\n </style>\n </head>\n <body>\n <div class=\"error\">\n <span class=\"status\">" + status + "</span>\n <div class=\"message\">\n <h1>" + message + "</h1>\n </div>\n </div>\n </body>\n</html>\n"
|
|
775
775
|
},
|
|
776
|
-
version_hash: "
|
|
776
|
+
version_hash: "os530e"
|
|
777
777
|
};
|
|
778
778
|
async function get_hooks() {
|
|
779
779
|
let handle;
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
//#region src/lib/server/trader_data.js
|
|
2
|
+
var PERIOD_TO_SEC = {
|
|
3
|
+
"5m": 300,
|
|
4
|
+
"1h": 3600,
|
|
5
|
+
"1d": 86400,
|
|
6
|
+
"1w": 604800
|
|
7
|
+
};
|
|
8
|
+
var COINBASE_MAX_WINDOW_BARS = 290;
|
|
9
|
+
var TRADER_MARKETS = [
|
|
10
|
+
{
|
|
11
|
+
key: "btc_usd",
|
|
12
|
+
label: "BTC / USD",
|
|
13
|
+
description: "Coinbase execution charts plus an Aster weekly context chart."
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
key: "doge_usd",
|
|
17
|
+
label: "DOGE / USD",
|
|
18
|
+
description: "DOGE spot structure across fast, medium, and higher timeframes."
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
key: "doge_btc",
|
|
22
|
+
label: "DOGE / BTC",
|
|
23
|
+
description: "Relative-strength anchor chart for sizing ideas."
|
|
24
|
+
}
|
|
25
|
+
];
|
|
26
|
+
var TRADER_CHART_SPECS = [
|
|
27
|
+
{
|
|
28
|
+
id: "btc_usd_coinbase_5m",
|
|
29
|
+
market_key: "btc_usd",
|
|
30
|
+
pair_label: "BTC / USD",
|
|
31
|
+
title: "BTC / USD 5m",
|
|
32
|
+
source_key: "coinbase",
|
|
33
|
+
source_label: "Coinbase",
|
|
34
|
+
source_symbol: "BTC-USD",
|
|
35
|
+
period: "5m",
|
|
36
|
+
target_bars: 350
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: "btc_usd_coinbase_1h",
|
|
40
|
+
market_key: "btc_usd",
|
|
41
|
+
pair_label: "BTC / USD",
|
|
42
|
+
title: "BTC / USD 1h",
|
|
43
|
+
source_key: "coinbase",
|
|
44
|
+
source_label: "Coinbase",
|
|
45
|
+
source_symbol: "BTC-USD",
|
|
46
|
+
period: "1h",
|
|
47
|
+
target_bars: 350
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
id: "btc_usd_coinbase_1d",
|
|
51
|
+
market_key: "btc_usd",
|
|
52
|
+
pair_label: "BTC / USD",
|
|
53
|
+
title: "BTC / USD 1d",
|
|
54
|
+
source_key: "coinbase",
|
|
55
|
+
source_label: "Coinbase",
|
|
56
|
+
source_symbol: "BTC-USD",
|
|
57
|
+
period: "1d",
|
|
58
|
+
target_bars: 350
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
id: "btc_usd_aster_1w",
|
|
62
|
+
market_key: "btc_usd",
|
|
63
|
+
pair_label: "BTC / USD",
|
|
64
|
+
title: "BTC / USD 1w",
|
|
65
|
+
source_key: "aster",
|
|
66
|
+
source_label: "Aster",
|
|
67
|
+
source_symbol: "BTCUSDT",
|
|
68
|
+
period: "1w",
|
|
69
|
+
target_bars: 240,
|
|
70
|
+
source_note: "Weekly context uses Aster perpetual BTCUSDT candles."
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
id: "doge_usd_coinbase_5m",
|
|
74
|
+
market_key: "doge_usd",
|
|
75
|
+
pair_label: "DOGE / USD",
|
|
76
|
+
title: "DOGE / USD 5m",
|
|
77
|
+
source_key: "coinbase",
|
|
78
|
+
source_label: "Coinbase",
|
|
79
|
+
source_symbol: "DOGE-USD",
|
|
80
|
+
period: "5m",
|
|
81
|
+
target_bars: 350
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
id: "doge_usd_coinbase_1h",
|
|
85
|
+
market_key: "doge_usd",
|
|
86
|
+
pair_label: "DOGE / USD",
|
|
87
|
+
title: "DOGE / USD 1h",
|
|
88
|
+
source_key: "coinbase",
|
|
89
|
+
source_label: "Coinbase",
|
|
90
|
+
source_symbol: "DOGE-USD",
|
|
91
|
+
period: "1h",
|
|
92
|
+
target_bars: 350
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
id: "doge_usd_coinbase_1d",
|
|
96
|
+
market_key: "doge_usd",
|
|
97
|
+
pair_label: "DOGE / USD",
|
|
98
|
+
title: "DOGE / USD 1d",
|
|
99
|
+
source_key: "coinbase",
|
|
100
|
+
source_label: "Coinbase",
|
|
101
|
+
source_symbol: "DOGE-USD",
|
|
102
|
+
period: "1d",
|
|
103
|
+
target_bars: 350
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
id: "doge_usd_aster_1w",
|
|
107
|
+
market_key: "doge_usd",
|
|
108
|
+
pair_label: "DOGE / USD",
|
|
109
|
+
title: "DOGE / USD 1w",
|
|
110
|
+
source_key: "aster",
|
|
111
|
+
source_label: "Aster",
|
|
112
|
+
source_symbol: "DOGEUSDT",
|
|
113
|
+
period: "1w",
|
|
114
|
+
target_bars: 240,
|
|
115
|
+
source_note: "Weekly context uses Aster perpetual DOGEUSDT candles."
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
id: "doge_btc_coinbase_1d",
|
|
119
|
+
market_key: "doge_btc",
|
|
120
|
+
pair_label: "DOGE / BTC",
|
|
121
|
+
title: "DOGE / BTC 1d",
|
|
122
|
+
source_key: "coinbase",
|
|
123
|
+
source_label: "Coinbase",
|
|
124
|
+
source_symbol: "DOGE-BTC",
|
|
125
|
+
period: "1d",
|
|
126
|
+
target_bars: 900,
|
|
127
|
+
source_note: "Fetched in multiple Coinbase windows to get deeper daily history."
|
|
128
|
+
}
|
|
129
|
+
];
|
|
130
|
+
function create_fetch_error(response, body) {
|
|
131
|
+
const body_message = typeof body?.message === "string" ? body.message : null;
|
|
132
|
+
const fallback = `Request failed with status ${response.status}`;
|
|
133
|
+
return new Error(body_message || fallback);
|
|
134
|
+
}
|
|
135
|
+
async function fetch_json(fetcher, url) {
|
|
136
|
+
const response = await fetcher(url, { headers: { accept: "application/json" } });
|
|
137
|
+
const body = await response.json();
|
|
138
|
+
if (!response.ok) throw create_fetch_error(response, body);
|
|
139
|
+
if (body?.message && !Array.isArray(body)) throw new Error(body.message);
|
|
140
|
+
return body;
|
|
141
|
+
}
|
|
142
|
+
function dedupe_klines(klines) {
|
|
143
|
+
const by_open_time = /* @__PURE__ */ new Map();
|
|
144
|
+
for (let kline of klines || []) {
|
|
145
|
+
if (!Number.isFinite(kline?.open_time)) continue;
|
|
146
|
+
by_open_time.set(kline.open_time, kline);
|
|
147
|
+
}
|
|
148
|
+
return [...by_open_time.values()].sort((a, b) => a.open_time - b.open_time);
|
|
149
|
+
}
|
|
150
|
+
function normalize_coinbase_klines(raw_klines) {
|
|
151
|
+
if (!Array.isArray(raw_klines)) throw new Error("Coinbase candles response was not an array.");
|
|
152
|
+
return dedupe_klines(raw_klines.map((kline) => {
|
|
153
|
+
return {
|
|
154
|
+
open_time: Number(kline?.[0]),
|
|
155
|
+
l: Number(kline?.[1]),
|
|
156
|
+
h: Number(kline?.[2]),
|
|
157
|
+
o: Number(kline?.[3]),
|
|
158
|
+
c: Number(kline?.[4]),
|
|
159
|
+
v: Number(kline?.[5])
|
|
160
|
+
};
|
|
161
|
+
}));
|
|
162
|
+
}
|
|
163
|
+
function normalize_aster_klines(raw_klines) {
|
|
164
|
+
if (!Array.isArray(raw_klines)) throw new Error("Aster klines response was not an array.");
|
|
165
|
+
return dedupe_klines(raw_klines.map((kline) => {
|
|
166
|
+
return {
|
|
167
|
+
open_time: Math.floor(Number(kline?.[0]) / 1e3),
|
|
168
|
+
o: Number(kline?.[1]),
|
|
169
|
+
h: Number(kline?.[2]),
|
|
170
|
+
l: Number(kline?.[3]),
|
|
171
|
+
c: Number(kline?.[4]),
|
|
172
|
+
v: Number(kline?.[5])
|
|
173
|
+
};
|
|
174
|
+
}));
|
|
175
|
+
}
|
|
176
|
+
async function fetch_coinbase_recent_klines(fetcher, product_id, period) {
|
|
177
|
+
return normalize_coinbase_klines(await fetch_json(fetcher, `https://api.exchange.coinbase.com/products/${product_id}/candles?granularity=${PERIOD_TO_SEC[period]}`));
|
|
178
|
+
}
|
|
179
|
+
async function fetch_coinbase_paged_klines(fetcher, product_id, period, target_bars) {
|
|
180
|
+
const granularity_sec = PERIOD_TO_SEC[period];
|
|
181
|
+
let remaining_bars = target_bars;
|
|
182
|
+
let end_time_ms = Date.now();
|
|
183
|
+
let combined_klines = [];
|
|
184
|
+
let safety = 0;
|
|
185
|
+
while (remaining_bars > 0 && safety < 12) {
|
|
186
|
+
const bars_this_call = Math.min(remaining_bars, COINBASE_MAX_WINDOW_BARS);
|
|
187
|
+
const window_ms = bars_this_call * granularity_sec * 1e3;
|
|
188
|
+
const start_time_iso = new Date(end_time_ms - window_ms).toISOString();
|
|
189
|
+
const end_time_iso = new Date(end_time_ms).toISOString();
|
|
190
|
+
const next_klines = normalize_coinbase_klines(await fetch_json(fetcher, `https://api.exchange.coinbase.com/products/${product_id}/candles?${new URLSearchParams({
|
|
191
|
+
granularity: String(granularity_sec),
|
|
192
|
+
start: start_time_iso,
|
|
193
|
+
end: end_time_iso
|
|
194
|
+
}).toString()}`));
|
|
195
|
+
if (next_klines.length === 0) break;
|
|
196
|
+
combined_klines = dedupe_klines([...next_klines, ...combined_klines]);
|
|
197
|
+
remaining_bars = target_bars - combined_klines.length;
|
|
198
|
+
end_time_ms = (next_klines[0].open_time - granularity_sec) * 1e3;
|
|
199
|
+
safety += 1;
|
|
200
|
+
if (next_klines.length < bars_this_call * .75) break;
|
|
201
|
+
}
|
|
202
|
+
return combined_klines.slice(-target_bars);
|
|
203
|
+
}
|
|
204
|
+
async function fetch_coinbase_klines(fetcher, product_id, period, target_bars = 350) {
|
|
205
|
+
if ((target_bars ?? 0) > 350) return fetch_coinbase_paged_klines(fetcher, product_id, period, target_bars);
|
|
206
|
+
return (await fetch_coinbase_recent_klines(fetcher, product_id, period)).slice(-target_bars);
|
|
207
|
+
}
|
|
208
|
+
async function fetch_aster_klines(fetcher, symbol, period, target_bars = 240) {
|
|
209
|
+
return normalize_aster_klines(await fetch_json(fetcher, `https://fapi.asterdex.com/fapi/v1/klines?${new URLSearchParams({
|
|
210
|
+
symbol,
|
|
211
|
+
interval: period,
|
|
212
|
+
limit: String(target_bars)
|
|
213
|
+
}).toString()}`));
|
|
214
|
+
}
|
|
215
|
+
async function fetch_chart_klines(fetcher, chart_spec) {
|
|
216
|
+
if (chart_spec.source_key === "coinbase") return fetch_coinbase_klines(fetcher, chart_spec.source_symbol, chart_spec.period, chart_spec.target_bars);
|
|
217
|
+
if (chart_spec.source_key === "aster") return fetch_aster_klines(fetcher, chart_spec.source_symbol, chart_spec.period, chart_spec.target_bars);
|
|
218
|
+
throw new Error(`Unsupported chart source: ${chart_spec.source_key}`);
|
|
219
|
+
}
|
|
220
|
+
function get_chart_result_summary(chart_spec, klines) {
|
|
221
|
+
return {
|
|
222
|
+
...chart_spec,
|
|
223
|
+
status: "ready",
|
|
224
|
+
error: null,
|
|
225
|
+
klines,
|
|
226
|
+
trendlines: [],
|
|
227
|
+
bar_count: klines.length,
|
|
228
|
+
first_open_time: klines?.[0]?.open_time ?? null,
|
|
229
|
+
last_open_time: klines?.[klines.length - 1]?.open_time ?? null
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
function get_chart_error_summary(chart_spec, error) {
|
|
233
|
+
return {
|
|
234
|
+
...chart_spec,
|
|
235
|
+
status: "error",
|
|
236
|
+
error: error?.message ?? "Failed to load chart data.",
|
|
237
|
+
klines: [],
|
|
238
|
+
trendlines: [],
|
|
239
|
+
bar_count: 0,
|
|
240
|
+
first_open_time: null,
|
|
241
|
+
last_open_time: null
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
function build_markets(chart_results) {
|
|
245
|
+
return TRADER_MARKETS.map((market) => {
|
|
246
|
+
return {
|
|
247
|
+
...market,
|
|
248
|
+
charts: chart_results.filter((chart_result) => chart_result.market_key === market.key)
|
|
249
|
+
};
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
async function load_trader_data(fetcher = fetch) {
|
|
253
|
+
const chart_results = await Promise.all(TRADER_CHART_SPECS.map(async (chart_spec) => {
|
|
254
|
+
try {
|
|
255
|
+
return get_chart_result_summary(chart_spec, await fetch_chart_klines(fetcher, chart_spec));
|
|
256
|
+
} catch (error) {
|
|
257
|
+
return get_chart_error_summary(chart_spec, error);
|
|
258
|
+
}
|
|
259
|
+
}));
|
|
260
|
+
return {
|
|
261
|
+
title: "Trader Lab",
|
|
262
|
+
loaded_at_iso: (/* @__PURE__ */ new Date()).toISOString(),
|
|
263
|
+
markets: build_markets(chart_results),
|
|
264
|
+
strategy_seed: {
|
|
265
|
+
total_budget_usd: 1e5,
|
|
266
|
+
leverage_allowed: true,
|
|
267
|
+
rebalance_cadence: "hourly",
|
|
268
|
+
top_trendlines_per_chart: 15,
|
|
269
|
+
notional_by_period_usd: {
|
|
270
|
+
"5m": 1e3,
|
|
271
|
+
"1h": 5e3,
|
|
272
|
+
"1d": 1e4,
|
|
273
|
+
"1w": 15e3
|
|
274
|
+
},
|
|
275
|
+
sizing_signal_chart_id: "doge_btc_coinbase_1d"
|
|
276
|
+
},
|
|
277
|
+
notes: [
|
|
278
|
+
"Step 1 focuses on loading and charting the main BTC, DOGE, and DOGE/BTC structures.",
|
|
279
|
+
"Trendline generation and backtesting hooks are intentionally left for the next pass.",
|
|
280
|
+
"Aster weekly charts use USDT perpetual symbols because that is the available market format there."
|
|
281
|
+
],
|
|
282
|
+
errors: chart_results.filter((chart_result) => chart_result.status === "error").map((chart_result) => ({
|
|
283
|
+
id: chart_result.id,
|
|
284
|
+
title: chart_result.title,
|
|
285
|
+
error: chart_result.error
|
|
286
|
+
}))
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
//#endregion
|
|
290
|
+
//#region src/routes/trader/+page.server.js
|
|
291
|
+
async function load({ fetch }) {
|
|
292
|
+
return { trader: await load_trader_data(fetch) };
|
|
293
|
+
}
|
|
294
|
+
//#endregion
|
|
295
|
+
export { load };
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import { S as escape_html, a as ensure_array_like, i as derived } from "../../../chunks/server.js";
|
|
2
|
+
import "../../../chunks/client2.js";
|
|
3
|
+
import { n as Chart, t as create_chart_manager } from "../../../chunks/index4.svelte.js";
|
|
4
|
+
//#region src/lib/Components/Trader/index.svelte
|
|
5
|
+
function Trader($$renderer, $$props) {
|
|
6
|
+
$$renderer.component(($$renderer) => {
|
|
7
|
+
let { manager } = $$props;
|
|
8
|
+
$$renderer.push(`<div class="page svelte-1qdu0bh"><header class="hero svelte-1qdu0bh"><div><p class="eyebrow svelte-1qdu0bh">Trading Workspace</p> <h1 class="svelte-1qdu0bh">${escape_html(manager?.title)}</h1> <p class="subtitle svelte-1qdu0bh">Multi-timeframe BTC, DOGE, and DOGE/BTC charts with a seeded strategy profile for the next backtest pass.</p></div> <div class="hero_meta svelte-1qdu0bh"><p class="svelte-1qdu0bh"><strong>Loaded:</strong> ${escape_html(manager?.loaded_at_label)}</p> <p class="svelte-1qdu0bh"><strong>Markets:</strong> ${escape_html(manager?.markets?.length ?? 0)}</p> <p class="svelte-1qdu0bh"><strong>Cadence:</strong> ${escape_html(manager?.strategy_seed?.rebalance_cadence ?? "-")}</p></div></header> <section class="strategy_card svelte-1qdu0bh"><div><p class="eyebrow svelte-1qdu0bh">Strategy Seed</p> <h2 class="svelte-1qdu0bh">Starting assumptions</h2></div> <div class="strategy_grid svelte-1qdu0bh"><div class="strategy_item svelte-1qdu0bh"><p class="label svelte-1qdu0bh">Budget</p> <p class="value svelte-1qdu0bh">${escape_html(manager?.strategy_seed?.total_budget_label)}</p></div> <div class="strategy_item svelte-1qdu0bh"><p class="label svelte-1qdu0bh">Trendlines / chart</p> <p class="value svelte-1qdu0bh">${escape_html(manager?.strategy_seed?.top_trendlines_per_chart ?? "-")}</p></div> <div class="strategy_item svelte-1qdu0bh"><p class="label svelte-1qdu0bh">Leverage</p> <p class="value svelte-1qdu0bh">${escape_html(manager?.strategy_seed?.leverage_allowed ? "Allowed" : "Off")}</p></div> <div class="strategy_item svelte-1qdu0bh"><p class="label svelte-1qdu0bh">Sizing signal</p> <p class="value svelte-1qdu0bh">${escape_html(manager?.strategy_seed?.sizing_signal_chart_id ?? "-")}</p></div></div> `);
|
|
9
|
+
if (manager?.strategy_seed?.notional_entries?.length) {
|
|
10
|
+
$$renderer.push("<!--[0-->");
|
|
11
|
+
$$renderer.push(`<div class="notional_strip svelte-1qdu0bh"><!--[-->`);
|
|
12
|
+
const each_array = ensure_array_like(manager?.strategy_seed?.notional_entries);
|
|
13
|
+
for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
|
|
14
|
+
let notional = each_array[$$index];
|
|
15
|
+
$$renderer.push(`<div class="notional_chip svelte-1qdu0bh"><p class="svelte-1qdu0bh">${escape_html(notional.period)}</p> <strong class="svelte-1qdu0bh">${escape_html(notional.amount_label)}</strong></div>`);
|
|
16
|
+
}
|
|
17
|
+
$$renderer.push(`<!--]--></div>`);
|
|
18
|
+
} else $$renderer.push("<!--[-1-->");
|
|
19
|
+
$$renderer.push(`<!--]--></section> `);
|
|
20
|
+
if (manager?.notes?.length) {
|
|
21
|
+
$$renderer.push("<!--[0-->");
|
|
22
|
+
$$renderer.push(`<section class="notes_card svelte-1qdu0bh"><p class="eyebrow svelte-1qdu0bh">Notes</p> <ul class="svelte-1qdu0bh"><!--[-->`);
|
|
23
|
+
const each_array_1 = ensure_array_like(manager?.notes);
|
|
24
|
+
for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {
|
|
25
|
+
let note = each_array_1[$$index_1];
|
|
26
|
+
$$renderer.push(`<li class="svelte-1qdu0bh">${escape_html(note)}</li>`);
|
|
27
|
+
}
|
|
28
|
+
$$renderer.push(`<!--]--></ul></section>`);
|
|
29
|
+
} else $$renderer.push("<!--[-1-->");
|
|
30
|
+
$$renderer.push(`<!--]--> `);
|
|
31
|
+
if (manager?.has_errors) {
|
|
32
|
+
$$renderer.push("<!--[0-->");
|
|
33
|
+
$$renderer.push(`<section class="errors_card svelte-1qdu0bh"><p class="eyebrow svelte-1qdu0bh">Load Issues</p> <!--[-->`);
|
|
34
|
+
const each_array_2 = ensure_array_like(manager?.errors);
|
|
35
|
+
for (let $$index_2 = 0, $$length = each_array_2.length; $$index_2 < $$length; $$index_2++) {
|
|
36
|
+
let error_item = each_array_2[$$index_2];
|
|
37
|
+
$$renderer.push(`<p class="svelte-1qdu0bh"><strong>${escape_html(error_item.title)}:</strong> ${escape_html(error_item.error)}</p>`);
|
|
38
|
+
}
|
|
39
|
+
$$renderer.push(`<!--]--></section>`);
|
|
40
|
+
} else $$renderer.push("<!--[-1-->");
|
|
41
|
+
$$renderer.push(`<!--]--> <!--[-->`);
|
|
42
|
+
const each_array_3 = ensure_array_like(manager?.markets);
|
|
43
|
+
for (let $$index_4 = 0, $$length = each_array_3.length; $$index_4 < $$length; $$index_4++) {
|
|
44
|
+
let market = each_array_3[$$index_4];
|
|
45
|
+
$$renderer.push(`<section class="market_section svelte-1qdu0bh"><div class="market_header svelte-1qdu0bh"><div><p class="eyebrow svelte-1qdu0bh">${escape_html(market?.key)}</p> <h2 class="svelte-1qdu0bh">${escape_html(market?.label)}</h2></div> <p class="market_description svelte-1qdu0bh">${escape_html(market?.description)}</p></div> <div class="chart_grid svelte-1qdu0bh"><!--[-->`);
|
|
46
|
+
const each_array_4 = ensure_array_like(market?.charts);
|
|
47
|
+
for (let $$index_3 = 0, $$length = each_array_4.length; $$index_3 < $$length; $$index_3++) {
|
|
48
|
+
let chart_item = each_array_4[$$index_3];
|
|
49
|
+
$$renderer.push(`<article class="chart_card svelte-1qdu0bh"><div class="chart_card_header svelte-1qdu0bh"><div><h3 class="svelte-1qdu0bh">${escape_html(chart_item?.title)}</h3> <p class="chart_meta svelte-1qdu0bh">${escape_html(chart_item?.meta_label)}</p></div> <p class="chart_range svelte-1qdu0bh">${escape_html(chart_item?.range_label)}</p></div> `);
|
|
50
|
+
if (chart_item?.source_note) {
|
|
51
|
+
$$renderer.push("<!--[0-->");
|
|
52
|
+
$$renderer.push(`<p class="chart_note svelte-1qdu0bh">${escape_html(chart_item?.source_note)}</p>`);
|
|
53
|
+
} else $$renderer.push("<!--[-1-->");
|
|
54
|
+
$$renderer.push(`<!--]--> `);
|
|
55
|
+
if (chart_item?.status === "error") {
|
|
56
|
+
$$renderer.push("<!--[0-->");
|
|
57
|
+
$$renderer.push(`<p class="chart_error svelte-1qdu0bh">${escape_html(chart_item?.error)}</p>`);
|
|
58
|
+
} else if (chart_item?.chart_manager) {
|
|
59
|
+
$$renderer.push("<!--[1-->");
|
|
60
|
+
Chart($$renderer, { manager: chart_item?.chart_manager });
|
|
61
|
+
} else {
|
|
62
|
+
$$renderer.push("<!--[-1-->");
|
|
63
|
+
$$renderer.push(`<p class="chart_error svelte-1qdu0bh">No chart data available yet.</p>`);
|
|
64
|
+
}
|
|
65
|
+
$$renderer.push(`<!--]--></article>`);
|
|
66
|
+
}
|
|
67
|
+
$$renderer.push(`<!--]--></div></section>`);
|
|
68
|
+
}
|
|
69
|
+
$$renderer.push(`<!--]--></div>`);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
//#endregion
|
|
73
|
+
//#region src/lib/Components/Trader/index.svelte.js
|
|
74
|
+
var PERIOD_TO_SEC = {
|
|
75
|
+
"5m": 300,
|
|
76
|
+
"1h": 3600,
|
|
77
|
+
"1d": 86400,
|
|
78
|
+
"1w": 604800
|
|
79
|
+
};
|
|
80
|
+
var PERIOD_TO_INITIAL_VISIBLE_BARS = {
|
|
81
|
+
"5m": 144,
|
|
82
|
+
"1h": 168,
|
|
83
|
+
"1d": 180,
|
|
84
|
+
"1w": 104
|
|
85
|
+
};
|
|
86
|
+
var PERIOD_TO_MIN_VISIBLE_BARS = {
|
|
87
|
+
"5m": 8,
|
|
88
|
+
"1h": 8,
|
|
89
|
+
"1d": 6,
|
|
90
|
+
"1w": 4
|
|
91
|
+
};
|
|
92
|
+
function format_timestamp_seconds(timestamp_seconds) {
|
|
93
|
+
if (!Number.isFinite(timestamp_seconds)) return "-";
|
|
94
|
+
return (/* @__PURE__ */ new Date(timestamp_seconds * 1e3)).toLocaleString();
|
|
95
|
+
}
|
|
96
|
+
function format_iso_timestamp(timestamp_iso) {
|
|
97
|
+
if (!timestamp_iso) return "-";
|
|
98
|
+
return new Date(timestamp_iso).toLocaleString();
|
|
99
|
+
}
|
|
100
|
+
function format_number(number_to_format) {
|
|
101
|
+
if (!Number.isFinite(number_to_format)) return "-";
|
|
102
|
+
return new Intl.NumberFormat("en-US").format(number_to_format);
|
|
103
|
+
}
|
|
104
|
+
function create_chart_card_manager(chart_input) {
|
|
105
|
+
if (!Array.isArray(chart_input?.klines) || chart_input.klines.length === 0) return null;
|
|
106
|
+
const price_dataset_id = `${chart_input.id}_klines`;
|
|
107
|
+
const trendline_dataset_id = `${chart_input.id}_trendlines`;
|
|
108
|
+
const datasets = { [price_dataset_id]: {
|
|
109
|
+
source: chart_input.source_key,
|
|
110
|
+
data: chart_input.klines
|
|
111
|
+
} };
|
|
112
|
+
const displayed_datasets = [{
|
|
113
|
+
type: "klines",
|
|
114
|
+
name: chart_input.title,
|
|
115
|
+
dataset_id: price_dataset_id,
|
|
116
|
+
keys: [
|
|
117
|
+
"open_time",
|
|
118
|
+
"o",
|
|
119
|
+
"l",
|
|
120
|
+
"h",
|
|
121
|
+
"c"
|
|
122
|
+
],
|
|
123
|
+
period_x: PERIOD_TO_SEC[chart_input.period],
|
|
124
|
+
colors: [{
|
|
125
|
+
l: 3,
|
|
126
|
+
c: 1,
|
|
127
|
+
h: 16,
|
|
128
|
+
o: 14,
|
|
129
|
+
is_theme_based: true
|
|
130
|
+
}]
|
|
131
|
+
}];
|
|
132
|
+
if (Array.isArray(chart_input?.trendlines) && chart_input.trendlines.length > 0) {
|
|
133
|
+
datasets[trendline_dataset_id] = {
|
|
134
|
+
source: "derived",
|
|
135
|
+
data: chart_input.trendlines
|
|
136
|
+
};
|
|
137
|
+
displayed_datasets.push({
|
|
138
|
+
type: "lines",
|
|
139
|
+
name: `${chart_input.title} trendlines`,
|
|
140
|
+
dataset_id: trendline_dataset_id,
|
|
141
|
+
keys: [
|
|
142
|
+
"m",
|
|
143
|
+
"b",
|
|
144
|
+
"score"
|
|
145
|
+
],
|
|
146
|
+
period_x: null,
|
|
147
|
+
affects_y_scale: false,
|
|
148
|
+
colors: [{
|
|
149
|
+
l: 7,
|
|
150
|
+
c: 16,
|
|
151
|
+
h: 16,
|
|
152
|
+
o: 15,
|
|
153
|
+
is_theme_based: true
|
|
154
|
+
}]
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
return create_chart_manager({
|
|
158
|
+
chart: {
|
|
159
|
+
id: `${chart_input.id}_chart`,
|
|
160
|
+
x_axis_type: "time",
|
|
161
|
+
x_axis_title: null,
|
|
162
|
+
frames: [{
|
|
163
|
+
aspect_ratio: 1.4,
|
|
164
|
+
shown_y_axis_index: 0,
|
|
165
|
+
shared_y_axiss: [{
|
|
166
|
+
y_axis_type: null,
|
|
167
|
+
y_axis_title: null,
|
|
168
|
+
bottom_padding_pd: .08,
|
|
169
|
+
top_padding_pd: .08,
|
|
170
|
+
datasets: displayed_datasets
|
|
171
|
+
}]
|
|
172
|
+
}]
|
|
173
|
+
},
|
|
174
|
+
datasets,
|
|
175
|
+
range_to_show_default: PERIOD_TO_INITIAL_VISIBLE_BARS[chart_input.period] ?? 180,
|
|
176
|
+
min_visible_bars: PERIOD_TO_MIN_VISIBLE_BARS[chart_input.period] ?? 8,
|
|
177
|
+
x_edge_padding_ratio: .5
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
function prep_chart_card(chart_input) {
|
|
181
|
+
return {
|
|
182
|
+
...chart_input,
|
|
183
|
+
meta_label: `${chart_input.source_label} · ${chart_input.period} · ${format_number(chart_input.bar_count)} bars`,
|
|
184
|
+
range_label: chart_input.first_open_time && chart_input.last_open_time ? `${format_timestamp_seconds(chart_input.first_open_time)} to ${format_timestamp_seconds(chart_input.last_open_time)}` : "No loaded range",
|
|
185
|
+
chart_manager: create_chart_card_manager(chart_input)
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
function create_trader_manager(config) {
|
|
189
|
+
const trader_data = config?.data?.trader ?? config?.data ?? {};
|
|
190
|
+
const markets = (trader_data?.markets ?? []).map((market) => {
|
|
191
|
+
return {
|
|
192
|
+
...market,
|
|
193
|
+
charts: (market?.charts ?? []).map((chart_input) => prep_chart_card(chart_input))
|
|
194
|
+
};
|
|
195
|
+
});
|
|
196
|
+
const notional_entries = Object.entries(trader_data?.strategy_seed?.notional_by_period_usd ?? {});
|
|
197
|
+
return {
|
|
198
|
+
get title() {
|
|
199
|
+
return trader_data?.title ?? "Trader Lab";
|
|
200
|
+
},
|
|
201
|
+
get loaded_at_label() {
|
|
202
|
+
return format_iso_timestamp(trader_data?.loaded_at_iso);
|
|
203
|
+
},
|
|
204
|
+
get markets() {
|
|
205
|
+
return markets;
|
|
206
|
+
},
|
|
207
|
+
get notes() {
|
|
208
|
+
return trader_data?.notes ?? [];
|
|
209
|
+
},
|
|
210
|
+
get errors() {
|
|
211
|
+
return trader_data?.errors ?? [];
|
|
212
|
+
},
|
|
213
|
+
get has_errors() {
|
|
214
|
+
return (trader_data?.errors?.length ?? 0) > 0;
|
|
215
|
+
},
|
|
216
|
+
get strategy_seed() {
|
|
217
|
+
return {
|
|
218
|
+
...trader_data?.strategy_seed ?? {},
|
|
219
|
+
total_budget_label: `$${format_number(trader_data?.strategy_seed?.total_budget_usd)}`,
|
|
220
|
+
notional_entries: notional_entries.map(([period, amount]) => ({
|
|
221
|
+
period,
|
|
222
|
+
amount_label: `$${format_number(amount)}`
|
|
223
|
+
}))
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
//#endregion
|
|
229
|
+
//#region src/routes/trader/+page.svelte
|
|
230
|
+
function _page($$renderer, $$props) {
|
|
231
|
+
$$renderer.component(($$renderer) => {
|
|
232
|
+
let { data } = $$props;
|
|
233
|
+
Trader($$renderer, { manager: derived(() => create_trader_manager({ data }))() });
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
//#endregion
|
|
237
|
+
export { _page as default };
|
|
@@ -5,6 +5,6 @@ let component_cache;
|
|
|
5
5
|
export const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js')).default;
|
|
6
6
|
export { universal };
|
|
7
7
|
export const universal_id = "src/routes/+layout.js";
|
|
8
|
-
export const imports = ["_app/immutable/nodes/0.
|
|
8
|
+
export const imports = ["_app/immutable/nodes/0.Ny4VwAhi.js","_app/immutable/chunks/C_Pzoflo.js","_app/immutable/chunks/k2CTozZP.js","_app/immutable/chunks/DthNgRcX.js","_app/immutable/chunks/reUr01i3.js","_app/immutable/chunks/Du1izqHO.js","_app/immutable/chunks/BPT8hUnt.js","_app/immutable/chunks/v_jBEYI6.js","_app/immutable/chunks/C7ic0CC_.js"];
|
|
9
9
|
export const stylesheets = ["_app/immutable/assets/index.DBQY-LKn.css","_app/immutable/assets/Checkbox.CJEZNdbe.css","_app/immutable/assets/index.CYJKF3O7.css","_app/immutable/assets/0.DtiXXF0F.css"];
|
|
10
10
|
export const fonts = [];
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
export const index = 1;
|
|
4
4
|
let component_cache;
|
|
5
5
|
export const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;
|
|
6
|
-
export const imports = ["_app/immutable/nodes/1.
|
|
6
|
+
export const imports = ["_app/immutable/nodes/1.DPmv3j1s.js","_app/immutable/chunks/C_Pzoflo.js","_app/immutable/chunks/k2CTozZP.js","_app/immutable/chunks/BPT8hUnt.js","_app/immutable/chunks/v_jBEYI6.js","_app/immutable/chunks/BAahZk91.js"];
|
|
7
7
|
export const stylesheets = [];
|
|
8
8
|
export const fonts = [];
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
export const index = 2;
|
|
4
4
|
let component_cache;
|
|
5
5
|
export const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js')).default;
|
|
6
|
-
export const imports = ["_app/immutable/nodes/2.
|
|
6
|
+
export const imports = ["_app/immutable/nodes/2.WACi8m_j.js","_app/immutable/chunks/C_Pzoflo.js","_app/immutable/chunks/k2CTozZP.js","_app/immutable/chunks/DthNgRcX.js","_app/immutable/chunks/reUr01i3.js","_app/immutable/chunks/Du1izqHO.js","_app/immutable/chunks/C1JBm0c-.js","_app/immutable/chunks/BwSlGzN3.js","_app/immutable/chunks/v_jBEYI6.js","_app/immutable/chunks/BAahZk91.js"];
|
|
7
7
|
export const stylesheets = ["_app/immutable/assets/index.DBQY-LKn.css","_app/immutable/assets/Checkbox.CJEZNdbe.css","_app/immutable/assets/index.DatXVBdh.css","_app/immutable/assets/docs.Cdcj3UDW.css","_app/immutable/assets/2.BBwSLYu9.css"];
|
|
8
8
|
export const fonts = [];
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
export const index = 3;
|
|
4
4
|
let component_cache;
|
|
5
5
|
export const component = async () => component_cache ??= (await import('../entries/pages/components/_component_/_page.svelte.js')).default;
|
|
6
|
-
export const imports = ["_app/immutable/nodes/3.
|
|
6
|
+
export const imports = ["_app/immutable/nodes/3.BR0VfEGG.js","_app/immutable/chunks/C_Pzoflo.js","_app/immutable/chunks/k2CTozZP.js","_app/immutable/chunks/DthNgRcX.js","_app/immutable/chunks/reUr01i3.js","_app/immutable/chunks/Du1izqHO.js","_app/immutable/chunks/BPT8hUnt.js","_app/immutable/chunks/C1JBm0c-.js","_app/immutable/chunks/BwSlGzN3.js","_app/immutable/chunks/v_jBEYI6.js","_app/immutable/chunks/BAahZk91.js","_app/immutable/chunks/C7ic0CC_.js","_app/immutable/chunks/dNI4qYWa.js"];
|
|
7
7
|
export const stylesheets = ["_app/immutable/assets/index.DBQY-LKn.css","_app/immutable/assets/Checkbox.CJEZNdbe.css","_app/immutable/assets/index.DatXVBdh.css","_app/immutable/assets/docs.Cdcj3UDW.css","_app/immutable/assets/index.CYJKF3O7.css","_app/immutable/assets/index.DKFmCUgV.css","_app/immutable/assets/3.DK3uvf0v.css"];
|
|
8
8
|
export const fonts = [];
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
export const index = 4;
|
|
4
4
|
let component_cache;
|
|
5
5
|
export const component = async () => component_cache ??= (await import('../entries/pages/test/_page.svelte.js')).default;
|
|
6
|
-
export const imports = ["_app/immutable/nodes/4.
|
|
6
|
+
export const imports = ["_app/immutable/nodes/4.CaKMIjEy.js","_app/immutable/chunks/C_Pzoflo.js","_app/immutable/chunks/v_jBEYI6.js","_app/immutable/chunks/reUr01i3.js","_app/immutable/chunks/Du1izqHO.js","_app/immutable/chunks/BwSlGzN3.js"];
|
|
7
7
|
export const stylesheets = ["_app/immutable/assets/index.DBQY-LKn.css","_app/immutable/assets/index.DatXVBdh.css"];
|
|
8
8
|
export const fonts = [];
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
export const index = 5;
|
|
4
4
|
let component_cache;
|
|
5
5
|
export const component = async () => component_cache ??= (await import('../entries/pages/test2/_page.svelte.js')).default;
|
|
6
|
-
export const imports = ["_app/immutable/nodes/5.
|
|
6
|
+
export const imports = ["_app/immutable/nodes/5.CBcmyemr.js","_app/immutable/chunks/C_Pzoflo.js","_app/immutable/chunks/v_jBEYI6.js","_app/immutable/chunks/BAahZk91.js","_app/immutable/chunks/dNI4qYWa.js","_app/immutable/chunks/Du1izqHO.js"];
|
|
7
7
|
export const stylesheets = ["_app/immutable/assets/index.DKFmCUgV.css"];
|
|
8
8
|
export const fonts = [];
|
|
@@ -5,6 +5,6 @@ let component_cache;
|
|
|
5
5
|
export const component = async () => component_cache ??= (await import('../entries/pages/test3/_page.svelte.js')).default;
|
|
6
6
|
export { server };
|
|
7
7
|
export const server_id = "src/routes/test3/+page.server.js";
|
|
8
|
-
export const imports = ["_app/immutable/nodes/6.
|
|
8
|
+
export const imports = ["_app/immutable/nodes/6.DBqG0cc_.js","_app/immutable/chunks/C_Pzoflo.js","_app/immutable/chunks/v_jBEYI6.js","_app/immutable/chunks/dNI4qYWa.js","_app/immutable/chunks/Du1izqHO.js"];
|
|
9
9
|
export const stylesheets = ["_app/immutable/assets/index.DKFmCUgV.css","_app/immutable/assets/6.BnjxUmH7.css"];
|
|
10
10
|
export const fonts = [];
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as server from '../entries/pages/trader/_page.server.js';
|
|
2
|
+
|
|
3
|
+
export const index = 7;
|
|
4
|
+
let component_cache;
|
|
5
|
+
export const component = async () => component_cache ??= (await import('../entries/pages/trader/_page.svelte.js')).default;
|
|
6
|
+
export { server };
|
|
7
|
+
export const server_id = "src/routes/trader/+page.server.js";
|
|
8
|
+
export const imports = ["_app/immutable/nodes/7.B7MLhsUA.js","_app/immutable/chunks/C_Pzoflo.js","_app/immutable/chunks/v_jBEYI6.js","_app/immutable/chunks/dNI4qYWa.js","_app/immutable/chunks/Du1izqHO.js"];
|
|
9
|
+
export const stylesheets = ["_app/immutable/assets/index.DKFmCUgV.css","_app/immutable/assets/7.P3YGQ1pf.css"];
|
|
10
|
+
export const fonts = [];
|