@jango-blockchained/hoox-shared 1.0.9 → 1.1.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/README.md +17 -0
- package/dist/analytics.d.ts +23 -1
- package/dist/analytics.d.ts.map +1 -1
- package/dist/analytics.js +14 -3
- package/dist/api-client.d.ts +12 -2
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +74 -7
- package/dist/colors.d.ts +63 -24
- package/dist/colors.d.ts.map +1 -1
- package/dist/colors.js +60 -19
- package/dist/config.d.ts +34 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +61 -6
- package/dist/cron-handler.d.ts +2 -2
- package/dist/cron-handler.d.ts.map +1 -1
- package/dist/d1/index.js +1 -0
- package/dist/d1/repository.js +297 -0
- package/dist/d1/schemas.js +81 -0
- package/dist/exchanges/base-exchange-client.js +120 -0
- package/dist/exchanges/types.js +1 -0
- package/dist/index.d.ts +21 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +580 -60
- package/dist/middleware/auth.d.ts +42 -6
- package/dist/middleware/auth.d.ts.map +1 -1
- package/dist/middleware/auth.js +151 -0
- package/dist/middleware/cors.d.ts +28 -2
- package/dist/middleware/cors.d.ts.map +1 -1
- package/dist/middleware/cors.js +77 -0
- package/dist/middleware/index.d.ts +2 -2
- package/dist/middleware/index.d.ts.map +1 -1
- package/dist/middleware/index.js +192 -107
- package/dist/middleware/logger.js +202 -0
- package/dist/middleware/rate-limit.d.ts.map +1 -1
- package/dist/middleware/rate-limit.js +181 -0
- package/dist/middleware/security-headers.js +58 -0
- package/dist/middleware/validate.js +56 -0
- package/dist/operator-transport.d.ts +61 -0
- package/dist/operator-transport.d.ts.map +1 -0
- package/dist/operator-transport.js +87 -0
- package/dist/path-utils.d.ts +59 -1
- package/dist/path-utils.d.ts.map +1 -1
- package/dist/path-utils.js +89 -2
- package/dist/queue-handler.d.ts +3 -3
- package/dist/queue-handler.d.ts.map +1 -1
- package/dist/router.d.ts +2 -2
- package/dist/router.d.ts.map +1 -1
- package/dist/schemas/index.js +7 -4
- package/dist/schemas/registry.js +387 -0
- package/dist/schemas/types.js +1 -0
- package/dist/schemas/validators.d.ts.map +1 -1
- package/dist/schemas/validators.js +290 -0
- package/dist/service-bindings.d.ts +65 -0
- package/dist/service-bindings.d.ts.map +1 -1
- package/dist/service-bindings.js +216 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +97 -2
- package/dist/sse.d.ts +12 -3
- package/dist/sse.d.ts.map +1 -1
- package/dist/sse.js +70 -7
- package/dist/stores/config-store.d.ts.map +1 -1
- package/dist/stores/config-store.js +129 -6
- package/dist/stores/service-store.d.ts.map +1 -1
- package/dist/stores/service-store.js +96 -25
- package/dist/types.d.ts +66 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +11 -0
- package/dist/wizard/engine.js +501 -0
- package/dist/wizard/index.js +2 -1
- package/dist/wizard/persistence.js +31 -0
- package/dist/wizard/presets.js +199 -0
- package/dist/wizard/provisioner.js +1 -0
- package/dist/wizard/types.js +1 -0
- package/package.json +38 -12
|
@@ -15,6 +15,69 @@ var __export = (target, all) => {
|
|
|
15
15
|
};
|
|
16
16
|
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
17
17
|
|
|
18
|
+
// src/operator-transport.ts
|
|
19
|
+
function stripTrailingSlashes(url) {
|
|
20
|
+
return url.replace(/\/+$/, "");
|
|
21
|
+
}
|
|
22
|
+
function parseTransport(raw) {
|
|
23
|
+
if (!raw)
|
|
24
|
+
return null;
|
|
25
|
+
const v = raw.trim().toLowerCase();
|
|
26
|
+
if (VALID_TRANSPORTS.has(v)) {
|
|
27
|
+
return v;
|
|
28
|
+
}
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
function resolveOperatorTransportProfile(env = process.env, options = {}) {
|
|
32
|
+
const accessClientId = env.CF_ACCESS_CLIENT_ID?.trim() ?? "";
|
|
33
|
+
const accessClientSecret = env.CF_ACCESS_CLIENT_SECRET?.trim() ?? "";
|
|
34
|
+
const hasAccess = Boolean(accessClientId && accessClientSecret);
|
|
35
|
+
const explicit = parseTransport(env.HOOX_TRANSPORT) ?? parseTransport(options.configTransport);
|
|
36
|
+
const transport = explicit ?? (hasAccess ? "access" : "public");
|
|
37
|
+
const apiFromEnv = env.HOOX_API_URL?.trim();
|
|
38
|
+
const apiFromConfig = options.configApiUrl?.trim();
|
|
39
|
+
const tokenFromEnv = env.HOOX_API_TOKEN?.trim();
|
|
40
|
+
const tokenFromConfig = options.configApiToken?.trim();
|
|
41
|
+
return {
|
|
42
|
+
transport,
|
|
43
|
+
apiBase: stripTrailingSlashes(apiFromEnv || apiFromConfig || DEFAULT_API_BASE),
|
|
44
|
+
bearerToken: tokenFromEnv || tokenFromConfig || "",
|
|
45
|
+
accessClientId,
|
|
46
|
+
accessClientSecret
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function buildOperatorAuthHeaders(profile) {
|
|
50
|
+
const headers = {};
|
|
51
|
+
if (profile.bearerToken) {
|
|
52
|
+
headers.Authorization = `Bearer ${profile.bearerToken}`;
|
|
53
|
+
}
|
|
54
|
+
const useAccessHeaders = profile.transport === "access" || Boolean(profile.accessClientId) && Boolean(profile.accessClientSecret);
|
|
55
|
+
if (useAccessHeaders && profile.accessClientId && profile.accessClientSecret) {
|
|
56
|
+
headers["CF-Access-Client-Id"] = profile.accessClientId;
|
|
57
|
+
headers["CF-Access-Client-Secret"] = profile.accessClientSecret;
|
|
58
|
+
}
|
|
59
|
+
return headers;
|
|
60
|
+
}
|
|
61
|
+
function hasOperatorClientCredentials(profile) {
|
|
62
|
+
if (profile.bearerToken)
|
|
63
|
+
return true;
|
|
64
|
+
return Boolean(profile.accessClientId && profile.accessClientSecret);
|
|
65
|
+
}
|
|
66
|
+
function operatorUrl(profile, path) {
|
|
67
|
+
const base = profile.apiBase.replace(/\/+$/, "");
|
|
68
|
+
const p = path.startsWith("/") ? path : `/${path}`;
|
|
69
|
+
return `${base}${p}`;
|
|
70
|
+
}
|
|
71
|
+
var DEFAULT_API_BASE = "http://localhost:8787", VALID_TRANSPORTS;
|
|
72
|
+
var init_operator_transport = __esm(() => {
|
|
73
|
+
VALID_TRANSPORTS = new Set([
|
|
74
|
+
"public",
|
|
75
|
+
"access",
|
|
76
|
+
"mtls",
|
|
77
|
+
"tunnel"
|
|
78
|
+
]);
|
|
79
|
+
});
|
|
80
|
+
|
|
18
81
|
// src/api-client.ts
|
|
19
82
|
var exports_api_client = {};
|
|
20
83
|
__export(exports_api_client, {
|
|
@@ -40,20 +103,25 @@ function isNetworkError(error) {
|
|
|
40
103
|
function sleep(ms) {
|
|
41
104
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
42
105
|
}
|
|
106
|
+
function activeProfile(override) {
|
|
107
|
+
return override ?? resolveOperatorTransportProfile();
|
|
108
|
+
}
|
|
43
109
|
async function hooxFetch(path, options) {
|
|
110
|
+
const profile = options?.transport ?? (options?.transportEnv ? resolveOperatorTransportProfile(options.transportEnv) : activeProfile());
|
|
111
|
+
const { transport: _t, transportEnv: _e, ...fetchInit } = options ?? {};
|
|
44
112
|
let lastError;
|
|
45
113
|
for (let attempt = 0;attempt <= MAX_RETRIES; attempt++) {
|
|
46
114
|
const controller = new AbortController;
|
|
47
115
|
const timeoutId = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);
|
|
48
116
|
try {
|
|
49
|
-
const url =
|
|
117
|
+
const url = operatorUrl(profile, path);
|
|
50
118
|
const headers = {
|
|
51
119
|
"Content-Type": "application/json",
|
|
52
|
-
...
|
|
53
|
-
...
|
|
120
|
+
...buildOperatorAuthHeaders(profile),
|
|
121
|
+
...fetchInit.headers
|
|
54
122
|
};
|
|
55
123
|
const response = await fetch(url, {
|
|
56
|
-
...
|
|
124
|
+
...fetchInit,
|
|
57
125
|
headers,
|
|
58
126
|
signal: controller.signal
|
|
59
127
|
});
|
|
@@ -101,10 +169,9 @@ async function hooxFetch(path, options) {
|
|
|
101
169
|
retryable: false
|
|
102
170
|
});
|
|
103
171
|
}
|
|
104
|
-
var
|
|
172
|
+
var FETCH_TIMEOUT_MS = 5000, MAX_RETRIES = 3, BASE_RETRY_DELAY_MS = 1000, MAX_RETRY_DELAY_MS = 16000, WorkerAPIError;
|
|
105
173
|
var init_api_client = __esm(() => {
|
|
106
|
-
|
|
107
|
-
API_TOKEN = process.env.HOOX_API_TOKEN || "";
|
|
174
|
+
init_operator_transport();
|
|
108
175
|
WorkerAPIError = class WorkerAPIError extends Error {
|
|
109
176
|
status;
|
|
110
177
|
retryable;
|
|
@@ -122,17 +189,18 @@ var exports_sse = {};
|
|
|
122
189
|
__export(exports_sse, {
|
|
123
190
|
subscribeSSE: () => subscribeSSE
|
|
124
191
|
});
|
|
125
|
-
function subscribeSSE(path, callback, onStatus) {
|
|
192
|
+
function subscribeSSE(path, callback, onStatus, options) {
|
|
126
193
|
let aborted = false;
|
|
194
|
+
const profile = options?.transport ?? (options?.transportEnv ? resolveOperatorTransportProfile(options.transportEnv) : resolveOperatorTransportProfile());
|
|
127
195
|
const run = async () => {
|
|
128
196
|
let attempt = 0;
|
|
129
197
|
while (!aborted && attempt < MAX_RECONNECT_ATTEMPTS) {
|
|
130
198
|
try {
|
|
131
|
-
const url =
|
|
199
|
+
const url = operatorUrl(profile, path);
|
|
132
200
|
const response = await fetch(url, {
|
|
133
201
|
headers: {
|
|
134
202
|
Accept: "text/event-stream",
|
|
135
|
-
...
|
|
203
|
+
...buildOperatorAuthHeaders(profile)
|
|
136
204
|
}
|
|
137
205
|
});
|
|
138
206
|
if (!response.ok || !response.body) {
|
|
@@ -161,7 +229,7 @@ function subscribeSSE(path, callback, onStatus) {
|
|
|
161
229
|
}
|
|
162
230
|
}
|
|
163
231
|
}
|
|
164
|
-
} catch
|
|
232
|
+
} catch {
|
|
165
233
|
if (aborted)
|
|
166
234
|
break;
|
|
167
235
|
onStatus?.("reconnecting");
|
|
@@ -181,10 +249,9 @@ function subscribeSSE(path, callback, onStatus) {
|
|
|
181
249
|
}
|
|
182
250
|
};
|
|
183
251
|
}
|
|
184
|
-
var
|
|
252
|
+
var RECONNECT_BASE_MS = 1000, RECONNECT_MAX_MS = 16000, MAX_RECONNECT_ATTEMPTS = 10;
|
|
185
253
|
var init_sse = __esm(() => {
|
|
186
|
-
|
|
187
|
-
API_TOKEN2 = process.env.HOOX_API_TOKEN || "";
|
|
254
|
+
init_operator_transport();
|
|
188
255
|
});
|
|
189
256
|
|
|
190
257
|
// src/stores/service-store.ts
|
|
@@ -233,7 +300,7 @@ var useServiceStore = create()(immer((set, get) => ({
|
|
|
233
300
|
fetchWorkers: async () => {
|
|
234
301
|
const { hooxFetch: hooxFetch2 } = await Promise.resolve().then(() => (init_api_client(), exports_api_client));
|
|
235
302
|
try {
|
|
236
|
-
const data = await hooxFetch2("/workers");
|
|
303
|
+
const data = await hooxFetch2("/v1/workers");
|
|
237
304
|
set((state) => {
|
|
238
305
|
state.workers = data;
|
|
239
306
|
state.lastUpdated = Date.now();
|
|
@@ -258,20 +325,26 @@ var useServiceStore = create()(immer((set, get) => ({
|
|
|
258
325
|
acknowledged: false
|
|
259
326
|
});
|
|
260
327
|
set((state) => {
|
|
328
|
+
state.lastError = msg;
|
|
329
|
+
state.disconnectedAt = state.disconnectedAt ?? Date.now();
|
|
261
330
|
if (state.connectionStatus === "connected" || state.connectionStatus === "polling") {
|
|
262
331
|
state.connectionStatus = "reconnecting";
|
|
263
332
|
state.retryCount = state.retryCount + 1;
|
|
264
|
-
state.lastError = msg;
|
|
265
|
-
state.disconnectedAt = state.disconnectedAt ?? Date.now();
|
|
266
333
|
if (state.retryCount >= MAX_RETRIES2) {
|
|
267
334
|
state.connectionStatus = "offline";
|
|
268
335
|
state.lastError = `Connection lost after ${MAX_RETRIES2} retries`;
|
|
269
336
|
} else {
|
|
270
337
|
state.reconnectDelay = getBackoffDelay(state.retryCount);
|
|
271
338
|
}
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
state.
|
|
339
|
+
} else if (state.connectionStatus === "reconnecting") {
|
|
340
|
+
state.retryCount = state.retryCount + 1;
|
|
341
|
+
if (state.retryCount >= MAX_RETRIES2) {
|
|
342
|
+
state.connectionStatus = "offline";
|
|
343
|
+
state.lastError = `Connection lost after ${MAX_RETRIES2} retries`;
|
|
344
|
+
state.reconnectDelay = 0;
|
|
345
|
+
} else {
|
|
346
|
+
state.reconnectDelay = getBackoffDelay(state.retryCount);
|
|
347
|
+
}
|
|
275
348
|
}
|
|
276
349
|
});
|
|
277
350
|
}
|
|
@@ -279,7 +352,7 @@ var useServiceStore = create()(immer((set, get) => ({
|
|
|
279
352
|
streamTrades: async () => {
|
|
280
353
|
const { subscribeSSE: subscribeSSE2 } = await Promise.resolve().then(() => (init_sse(), exports_sse));
|
|
281
354
|
try {
|
|
282
|
-
await subscribeSSE2("/trades/stream", (trade) => {
|
|
355
|
+
await subscribeSSE2("/v1/trades/stream", (trade) => {
|
|
283
356
|
get().pushTrade(trade);
|
|
284
357
|
});
|
|
285
358
|
} catch (error) {
|
|
@@ -298,7 +371,7 @@ var useServiceStore = create()(immer((set, get) => ({
|
|
|
298
371
|
streamLogs: async () => {
|
|
299
372
|
const { subscribeSSE: subscribeSSE2 } = await Promise.resolve().then(() => (init_sse(), exports_sse));
|
|
300
373
|
try {
|
|
301
|
-
await subscribeSSE2("/logs/stream", (log) => {
|
|
374
|
+
await subscribeSSE2("/v1/logs/stream", (log) => {
|
|
302
375
|
get().pushLog(log);
|
|
303
376
|
});
|
|
304
377
|
} catch (error) {
|
|
@@ -358,9 +431,7 @@ var useServiceStore = create()(immer((set, get) => ({
|
|
|
358
431
|
state.lastErrorDetails = null;
|
|
359
432
|
state.reconnectDelay = 0;
|
|
360
433
|
state.disconnectedAt = null;
|
|
361
|
-
|
|
362
|
-
state.connectionStatus = "connected";
|
|
363
|
-
}
|
|
434
|
+
state.connectionStatus = "connected";
|
|
364
435
|
}),
|
|
365
436
|
handleConnectionFailure: (errorMessage) => set((state) => {
|
|
366
437
|
state.lastError = errorMessage;
|
package/dist/types.d.ts
CHANGED
|
@@ -19,6 +19,22 @@ export declare const WebhookPayloadSchema: z.ZodObject<{
|
|
|
19
19
|
orderType: z.ZodOptional<z.ZodString>;
|
|
20
20
|
leverage: z.ZodOptional<z.ZodNumber>;
|
|
21
21
|
}, z.core.$strict>;
|
|
22
|
+
/** Validated trade queue payload (hoox producer → trade-worker consumer). */
|
|
23
|
+
export declare const TradeQueueMessageSchema: z.ZodObject<{
|
|
24
|
+
requestId: z.ZodString;
|
|
25
|
+
exchange: z.ZodString;
|
|
26
|
+
action: z.ZodEnum<{
|
|
27
|
+
LONG: "LONG";
|
|
28
|
+
SHORT: "SHORT";
|
|
29
|
+
CLOSE_LONG: "CLOSE_LONG";
|
|
30
|
+
CLOSE_SHORT: "CLOSE_SHORT";
|
|
31
|
+
}>;
|
|
32
|
+
symbol: z.ZodString;
|
|
33
|
+
quantity: z.ZodNumber;
|
|
34
|
+
price: z.ZodOptional<z.ZodNumber>;
|
|
35
|
+
leverage: z.ZodOptional<z.ZodNumber>;
|
|
36
|
+
queuedAt: z.ZodString;
|
|
37
|
+
}, z.core.$strict>;
|
|
22
38
|
export declare const TradeSignalSchema: z.ZodObject<{
|
|
23
39
|
id: z.ZodOptional<z.ZodNumber>;
|
|
24
40
|
source: z.ZodString;
|
|
@@ -159,7 +175,15 @@ export interface SettingsPayload {
|
|
|
159
175
|
* via structural typing.
|
|
160
176
|
*/
|
|
161
177
|
export interface Env {
|
|
162
|
-
/**
|
|
178
|
+
/**
|
|
179
|
+
* Preferred operator Bearer secret for management APIs (`requireOperatorAuth`).
|
|
180
|
+
* Client sends the same value as `HOOX_API_TOKEN`.
|
|
181
|
+
*/
|
|
182
|
+
OPERATOR_API_KEY?: string;
|
|
183
|
+
/**
|
|
184
|
+
* Legacy alias for operator Bearer auth (`requireAuth` / `requireOperatorAuth`).
|
|
185
|
+
* Prefer `OPERATOR_API_KEY` for new deployments.
|
|
186
|
+
*/
|
|
163
187
|
INTERNAL_API_KEY?: string;
|
|
164
188
|
/** KV namespace for rate limiting (createRateLimiter) */
|
|
165
189
|
CONFIG_KV?: KVNamespace;
|
|
@@ -185,6 +209,7 @@ export type Result<T> = {
|
|
|
185
209
|
};
|
|
186
210
|
export type TradeAction = z.infer<typeof TradeActionSchema>;
|
|
187
211
|
export type WebhookPayload = z.infer<typeof WebhookPayloadSchema>;
|
|
212
|
+
export type TradeQueueMessage = z.infer<typeof TradeQueueMessageSchema>;
|
|
188
213
|
export type TradeSignal = z.infer<typeof TradeSignalSchema>;
|
|
189
214
|
export interface QueryPayload {
|
|
190
215
|
query: string;
|
|
@@ -204,6 +229,46 @@ export interface ProcessRequestBody<T = unknown> {
|
|
|
204
229
|
}
|
|
205
230
|
/** View identifier for TUI navigation. */
|
|
206
231
|
export type ViewId = "dashboard" | "workers" | "worker-detail" | "trade-monitor" | "logs-viewer" | "service-manager" | "config-editor" | "setup-wizard" | "settings" | "queue-depth" | "kv-viewer" | "secrets-viewer" | "db-query" | "ai-chat" | "edge-topology";
|
|
232
|
+
/**
|
|
233
|
+
* Lightweight tenant identifier and basic context.
|
|
234
|
+
* This type lives in the open core.
|
|
235
|
+
*
|
|
236
|
+
* Advanced tenant management, quotas, billing, and isolation enforcement
|
|
237
|
+
* are part of the commercial Enterprise layer.
|
|
238
|
+
*/
|
|
239
|
+
export interface TenantContext {
|
|
240
|
+
tenantId: string;
|
|
241
|
+
strategyId?: string;
|
|
242
|
+
fundId?: string;
|
|
243
|
+
features?: string[];
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Basic audit event shape.
|
|
247
|
+
* Open core projects can emit these. Full compliance pipelines, retention,
|
|
248
|
+
* SIEM export, and cryptographic signing are Enterprise features.
|
|
249
|
+
*/
|
|
250
|
+
export interface AuditEvent {
|
|
251
|
+
timestamp: string;
|
|
252
|
+
tenantId: string;
|
|
253
|
+
traceId: string;
|
|
254
|
+
eventType: string;
|
|
255
|
+
actor: string;
|
|
256
|
+
outcome: "success" | "failure" | "skipped";
|
|
257
|
+
details?: Record<string, unknown>;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Simple workflow step result type.
|
|
261
|
+
* Useful for open core examples. Production-grade durable workflows,
|
|
262
|
+
* human-in-the-loop, long-running state, and advanced orchestration
|
|
263
|
+
* are provided in the Enterprise layer.
|
|
264
|
+
*/
|
|
265
|
+
export interface WorkflowStepResult<T = unknown> {
|
|
266
|
+
step: string;
|
|
267
|
+
success: boolean;
|
|
268
|
+
data?: T;
|
|
269
|
+
error?: string;
|
|
270
|
+
retries?: number;
|
|
271
|
+
}
|
|
207
272
|
/** Modal dialog state for the TUI. */
|
|
208
273
|
export interface ModalState {
|
|
209
274
|
type: "confirm" | "alert" | "prompt" | "custom";
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -32,6 +32,16 @@ var WebhookPayloadSchema = z.object({
|
|
|
32
32
|
orderType: z.string().optional(),
|
|
33
33
|
leverage: z.number().int().positive().optional()
|
|
34
34
|
}).strict();
|
|
35
|
+
var TradeQueueMessageSchema = z.object({
|
|
36
|
+
requestId: z.string().min(1).max(128),
|
|
37
|
+
exchange: z.string().min(1).max(64),
|
|
38
|
+
action: TradeActionSchema,
|
|
39
|
+
symbol: z.string().min(1).max(32),
|
|
40
|
+
quantity: z.number().positive().finite(),
|
|
41
|
+
price: z.number().positive().finite().optional(),
|
|
42
|
+
leverage: z.number().int().positive().max(125).optional(),
|
|
43
|
+
queuedAt: z.string().min(1).max(64)
|
|
44
|
+
}).strict();
|
|
35
45
|
var TradeSignalSchema = z.object({
|
|
36
46
|
id: z.number().int().positive().optional(),
|
|
37
47
|
source: z.string().min(1),
|
|
@@ -64,6 +74,7 @@ var BalanceSchema = z.object({
|
|
|
64
74
|
export {
|
|
65
75
|
WebhookPayloadSchema,
|
|
66
76
|
TradeSignalSchema,
|
|
77
|
+
TradeQueueMessageSchema,
|
|
67
78
|
TradeActionSchema,
|
|
68
79
|
PositionSchema,
|
|
69
80
|
BalanceSchema
|