@lightconexyz/lightcone-sdk 0.2.0 → 0.2.2
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 +263 -34
- package/dist/auth/client.js.map +1 -1
- package/dist/client.d.ts +4 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +8 -0
- package/dist/client.js.map +1 -1
- package/dist/domain/admin/client.d.ts +3 -1
- package/dist/domain/admin/client.d.ts.map +1 -1
- package/dist/domain/admin/client.js +8 -0
- package/dist/domain/admin/client.js.map +1 -1
- package/dist/domain/admin/wire.d.ts +53 -4
- package/dist/domain/admin/wire.d.ts.map +1 -1
- package/dist/domain/admin/wire.js.map +1 -1
- package/dist/domain/deposit_price/client.d.ts +13 -0
- package/dist/domain/deposit_price/client.d.ts.map +1 -0
- package/dist/domain/deposit_price/client.js +28 -0
- package/dist/domain/deposit_price/client.js.map +1 -0
- package/dist/domain/deposit_price/index.d.ts +9 -0
- package/dist/domain/deposit_price/index.d.ts.map +1 -0
- package/dist/domain/deposit_price/index.js +20 -0
- package/dist/domain/deposit_price/index.js.map +1 -0
- package/dist/domain/deposit_price/state.d.ts +17 -0
- package/dist/domain/deposit_price/state.d.ts.map +1 -0
- package/dist/domain/deposit_price/state.js +45 -0
- package/dist/domain/deposit_price/state.js.map +1 -0
- package/dist/domain/deposit_price/wire.d.ts +36 -0
- package/dist/domain/deposit_price/wire.d.ts.map +1 -0
- package/dist/domain/deposit_price/wire.js +3 -0
- package/dist/domain/deposit_price/wire.js.map +1 -0
- package/dist/domain/index.d.ts +2 -0
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/index.js +3 -1
- package/dist/domain/index.js.map +1 -1
- package/dist/domain/notification/client.d.ts +13 -0
- package/dist/domain/notification/client.d.ts.map +1 -0
- package/dist/domain/notification/client.js +21 -0
- package/dist/domain/notification/client.js.map +1 -0
- package/dist/domain/notification/index.d.ts +51 -0
- package/dist/domain/notification/index.d.ts.map +1 -0
- package/dist/domain/notification/index.js +29 -0
- package/dist/domain/notification/index.js.map +1 -0
- package/dist/domain/order/client.d.ts +2 -1
- package/dist/domain/order/client.d.ts.map +1 -1
- package/dist/domain/order/client.js +10 -2
- package/dist/domain/order/client.js.map +1 -1
- package/dist/domain/order/convert.js +3 -3
- package/dist/domain/order/convert.js.map +1 -1
- package/dist/domain/order/wire.d.ts +31 -25
- package/dist/domain/order/wire.d.ts.map +1 -1
- package/dist/domain/order/wire.js.map +1 -1
- package/dist/domain/orderbook/state.js +2 -2
- package/dist/domain/orderbook/state.js.map +1 -1
- package/dist/domain/orderbook/wire.d.ts +2 -0
- package/dist/domain/orderbook/wire.d.ts.map +1 -1
- package/dist/domain/orderbook/wire.js.map +1 -1
- package/dist/domain/position/wire.d.ts +7 -0
- package/dist/domain/position/wire.d.ts.map +1 -1
- package/dist/domain/position/wire.js.map +1 -1
- package/dist/domain/price_history/client.d.ts +2 -1
- package/dist/domain/price_history/client.d.ts.map +1 -1
- package/dist/domain/price_history/client.js +13 -2
- package/dist/domain/price_history/client.js.map +1 -1
- package/dist/domain/price_history/wire.d.ts +30 -7
- package/dist/domain/price_history/wire.d.ts.map +1 -1
- package/dist/domain/price_history/wire.js.map +1 -1
- package/dist/domain/trade/client.d.ts +1 -1
- package/dist/domain/trade/client.js +3 -3
- package/dist/domain/trade/client.js.map +1 -1
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +3 -0
- package/dist/error.js.map +1 -1
- package/dist/http/client.d.ts.map +1 -1
- package/dist/http/client.js +5 -4
- package/dist/http/client.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/prelude.d.ts +12 -5
- package/dist/prelude.d.ts.map +1 -1
- package/dist/prelude.js +8 -1
- package/dist/prelude.js.map +1 -1
- package/dist/privy/client.d.ts +4 -5
- package/dist/privy/client.d.ts.map +1 -1
- package/dist/privy/client.js +2 -11
- package/dist/privy/client.js.map +1 -1
- package/dist/privy/index.d.ts +41 -1
- package/dist/privy/index.d.ts.map +1 -1
- package/dist/privy/index.js +2 -0
- package/dist/privy/index.js.map +1 -1
- package/dist/program/accounts.d.ts +2 -4
- package/dist/program/accounts.d.ts.map +1 -1
- package/dist/program/accounts.js +2 -5
- package/dist/program/accounts.js.map +1 -1
- package/dist/program/builder.d.ts +5 -13
- package/dist/program/builder.d.ts.map +1 -1
- package/dist/program/builder.js +9 -13
- package/dist/program/builder.js.map +1 -1
- package/dist/program/client.d.ts +8 -7
- package/dist/program/client.d.ts.map +1 -1
- package/dist/program/client.js +11 -12
- package/dist/program/client.js.map +1 -1
- package/dist/program/constants.js +1 -1
- package/dist/program/constants.js.map +1 -1
- package/dist/program/envelope.d.ts +7 -2
- package/dist/program/envelope.d.ts.map +1 -1
- package/dist/program/envelope.js +29 -21
- package/dist/program/envelope.js.map +1 -1
- package/dist/program/index.d.ts +3 -3
- package/dist/program/index.d.ts.map +1 -1
- package/dist/program/index.js +5 -3
- package/dist/program/index.js.map +1 -1
- package/dist/program/instructions.d.ts +31 -53
- package/dist/program/instructions.d.ts.map +1 -1
- package/dist/program/instructions.js +155 -216
- package/dist/program/instructions.js.map +1 -1
- package/dist/program/orders.d.ts +20 -19
- package/dist/program/orders.d.ts.map +1 -1
- package/dist/program/orders.js +34 -22
- package/dist/program/orders.js.map +1 -1
- package/dist/program/types.d.ts +23 -24
- package/dist/program/types.d.ts.map +1 -1
- package/dist/program/types.js.map +1 -1
- package/dist/shared/index.d.ts +1 -1
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +2 -1
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/types.d.ts +10 -3
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js +6 -1
- package/dist/shared/types.js.map +1 -1
- package/dist/ws/client.browser.d.ts +46 -0
- package/dist/ws/client.browser.d.ts.map +1 -0
- package/dist/ws/client.browser.js +245 -0
- package/dist/ws/client.browser.js.map +1 -0
- package/dist/ws/{client.d.ts → client.node.d.ts} +3 -2
- package/dist/ws/client.node.d.ts.map +1 -0
- package/dist/ws/{client.js → client.node.js} +3 -3
- package/dist/ws/client.node.js.map +1 -0
- package/dist/ws/index.d.ts +10 -1
- package/dist/ws/index.d.ts.map +1 -1
- package/dist/ws/index.js +50 -2
- package/dist/ws/index.js.map +1 -1
- package/dist/ws/subscriptions.d.ts +8 -0
- package/dist/ws/subscriptions.d.ts.map +1 -1
- package/dist/ws/subscriptions.js +5 -0
- package/dist/ws/subscriptions.js.map +1 -1
- package/dist/ws/types.d.ts +23 -0
- package/dist/ws/types.d.ts.map +1 -0
- package/dist/ws/types.js +3 -0
- package/dist/ws/types.js.map +1 -0
- package/package.json +10 -4
- package/dist/ws/client.d.ts.map +0 -1
- package/dist/ws/client.js.map +0 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { OrderBookId, OrderUpdateType, PubkeyStr, Side, TimeInForce, TriggerResultStatus, TriggerStatus, TriggerType, TriggerUpdateType } from "../../shared";
|
|
2
|
+
import type { Notification } from "../notification";
|
|
2
3
|
import type { OrderStatus } from "./index";
|
|
3
4
|
export interface ConditionalBalance {
|
|
4
5
|
outcome_index: number;
|
|
5
|
-
|
|
6
|
+
conditional_token: PubkeyStr;
|
|
6
7
|
idle: string;
|
|
7
8
|
on_book: string;
|
|
8
9
|
}
|
|
@@ -11,6 +12,10 @@ export interface UserSnapshotBalance {
|
|
|
11
12
|
orderbook_id: OrderBookId;
|
|
12
13
|
outcomes: ConditionalBalance[];
|
|
13
14
|
}
|
|
15
|
+
export interface GlobalDepositBalance {
|
|
16
|
+
mint: PubkeyStr;
|
|
17
|
+
balance: string;
|
|
18
|
+
}
|
|
14
19
|
export interface UserOrderUpdateBalance {
|
|
15
20
|
outcomes: ConditionalBalance[];
|
|
16
21
|
}
|
|
@@ -54,21 +59,21 @@ export interface UserSnapshotOrderCommon {
|
|
|
54
59
|
outcome_index: number;
|
|
55
60
|
status: OrderStatus;
|
|
56
61
|
}
|
|
57
|
-
export type UserSnapshotOrder = {
|
|
62
|
+
export type UserSnapshotOrder = ({
|
|
58
63
|
order_type: "limit";
|
|
59
64
|
tx_signature?: string;
|
|
60
|
-
|
|
61
|
-
} | {
|
|
65
|
+
} & UserSnapshotOrderCommon) | ({
|
|
62
66
|
order_type: "trigger";
|
|
63
|
-
common: UserSnapshotOrderCommon;
|
|
64
67
|
trigger_order_id: string;
|
|
65
68
|
trigger_price: string;
|
|
66
69
|
trigger_type: TriggerType;
|
|
67
70
|
time_in_force?: TimeInForce;
|
|
68
|
-
};
|
|
71
|
+
} & UserSnapshotOrderCommon);
|
|
69
72
|
export interface UserSnapshot {
|
|
70
73
|
orders: UserSnapshotOrder[];
|
|
71
74
|
balances: Record<string, UserSnapshotBalance>;
|
|
75
|
+
global_deposits: GlobalDepositBalance[];
|
|
76
|
+
notifications: Notification[];
|
|
72
77
|
}
|
|
73
78
|
export interface TriggerOrderUpdate {
|
|
74
79
|
trigger_order_id: string;
|
|
@@ -86,30 +91,31 @@ export interface TriggerOrderUpdate {
|
|
|
86
91
|
result_remaining?: string;
|
|
87
92
|
timestamp: string;
|
|
88
93
|
}
|
|
89
|
-
export type OrderEvent = {
|
|
94
|
+
export type OrderEvent = ({
|
|
90
95
|
order_type: "limit";
|
|
91
|
-
|
|
92
|
-
} | {
|
|
96
|
+
} & OrderUpdate) | ({
|
|
93
97
|
order_type: "trigger";
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
98
|
+
} & TriggerOrderUpdate);
|
|
99
|
+
export interface NotificationUpdate {
|
|
100
|
+
notification: Notification;
|
|
101
|
+
}
|
|
102
|
+
export interface UserBalanceUpdate {
|
|
103
|
+
market_pubkey: PubkeyStr;
|
|
104
|
+
orderbook_id: OrderBookId;
|
|
105
|
+
balance: {
|
|
106
|
+
outcomes: ConditionalBalance[];
|
|
107
|
+
};
|
|
108
|
+
timestamp: string;
|
|
109
|
+
}
|
|
110
|
+
export type UserUpdate = ({
|
|
97
111
|
event_type: "snapshot";
|
|
98
|
-
|
|
99
|
-
} | {
|
|
112
|
+
} & UserSnapshot) | ({
|
|
100
113
|
event_type: "order";
|
|
101
|
-
|
|
102
|
-
} | {
|
|
114
|
+
} & OrderEvent) | ({
|
|
103
115
|
event_type: "balance_update";
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
balance: {
|
|
108
|
-
outcomes: ConditionalBalance[];
|
|
109
|
-
};
|
|
110
|
-
timestamp: string;
|
|
111
|
-
};
|
|
112
|
-
};
|
|
116
|
+
} & UserBalanceUpdate) | ({
|
|
117
|
+
event_type: "notification";
|
|
118
|
+
} & NotificationUpdate);
|
|
113
119
|
export type AuthUpdate = {
|
|
114
120
|
status: "authenticated";
|
|
115
121
|
wallet: PubkeyStr;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../src/domain/order/wire.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,SAAS,EACT,IAAI,EACJ,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,iBAAiB,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,
|
|
1
|
+
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../src/domain/order/wire.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/domain/order/wire.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n OrderBookId,\n OrderUpdateType,\n PubkeyStr,\n Side,\n TimeInForce,\n TriggerResultStatus,\n TriggerStatus,\n TriggerType,\n TriggerUpdateType,\n} from \"../../shared\";\nimport type { OrderStatus } from \"./index\";\n\nexport interface ConditionalBalance {\n outcome_index: number;\n
|
|
1
|
+
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/domain/order/wire.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n OrderBookId,\n OrderUpdateType,\n PubkeyStr,\n Side,\n TimeInForce,\n TriggerResultStatus,\n TriggerStatus,\n TriggerType,\n TriggerUpdateType,\n} from \"../../shared\";\nimport type { Notification } from \"../notification\";\nimport type { OrderStatus } from \"./index\";\n\nexport interface ConditionalBalance {\n outcome_index: number;\n conditional_token: PubkeyStr;\n idle: string;\n on_book: string;\n}\n\nexport interface UserSnapshotBalance {\n market_pubkey: PubkeyStr;\n orderbook_id: OrderBookId;\n outcomes: ConditionalBalance[];\n}\n\nexport interface GlobalDepositBalance {\n mint: PubkeyStr;\n balance: string;\n}\n\nexport interface UserOrderUpdateBalance {\n outcomes: ConditionalBalance[];\n}\n\nexport interface WsOrder {\n order_hash: string;\n price: string;\n is_maker: boolean;\n remaining: string;\n filled: string;\n fill_amount: string;\n side: Side;\n created_at: number;\n base_mint: PubkeyStr;\n quote_mint: PubkeyStr;\n outcome_index: number;\n status: OrderStatus;\n balance?: UserOrderUpdateBalance;\n}\n\nexport interface OrderUpdate {\n market_pubkey: PubkeyStr;\n orderbook_id: OrderBookId;\n timestamp: string;\n tx_signature?: string;\n type?: OrderUpdateType;\n order: WsOrder;\n}\n\nexport interface UserSnapshotOrderCommon {\n order_hash: string;\n market_pubkey: PubkeyStr;\n orderbook_id: OrderBookId;\n side: Side;\n amount_in: string;\n amount_out: string;\n remaining: string;\n filled: string;\n price: string;\n created_at: number;\n expiration: number;\n base_mint: PubkeyStr;\n quote_mint: PubkeyStr;\n outcome_index: number;\n status: OrderStatus;\n}\n\nexport type UserSnapshotOrder =\n | ({ order_type: \"limit\"; tx_signature?: string } & UserSnapshotOrderCommon)\n | ({\n order_type: \"trigger\";\n trigger_order_id: string;\n trigger_price: string;\n trigger_type: TriggerType;\n time_in_force?: TimeInForce;\n } & UserSnapshotOrderCommon);\n\nexport interface UserSnapshot {\n orders: UserSnapshotOrder[];\n balances: Record<string, UserSnapshotBalance>;\n global_deposits: GlobalDepositBalance[];\n notifications: Notification[];\n}\n\nexport interface TriggerOrderUpdate {\n trigger_order_id: string;\n user_pubkey?: PubkeyStr;\n market_pubkey: PubkeyStr;\n orderbook_id: OrderBookId;\n trigger_price: string;\n trigger_above: boolean;\n status: TriggerStatus;\n type?: TriggerUpdateType;\n order_hash: string;\n side: Side;\n result_status?: TriggerResultStatus;\n result_filled?: string;\n result_remaining?: string;\n timestamp: string;\n}\n\nexport type OrderEvent =\n | ({ order_type: \"limit\" } & OrderUpdate)\n | ({ order_type: \"trigger\" } & TriggerOrderUpdate);\n\nexport interface NotificationUpdate {\n notification: Notification;\n}\n\nexport interface UserBalanceUpdate {\n market_pubkey: PubkeyStr;\n orderbook_id: OrderBookId;\n balance: { outcomes: ConditionalBalance[] };\n timestamp: string;\n}\n\nexport type UserUpdate =\n | ({ event_type: \"snapshot\" } & UserSnapshot)\n | ({ event_type: \"order\" } & OrderEvent)\n | ({ event_type: \"balance_update\" } & UserBalanceUpdate)\n | ({ event_type: \"notification\" } & NotificationUpdate);\n\nexport type AuthUpdate =\n | { status: \"authenticated\"; wallet: PubkeyStr }\n | { status: \"anonymous\" }\n | { status: \"failed\"; code: string; message?: string };\n"]}
|
|
@@ -49,13 +49,13 @@ class OrderbookSnapshot {
|
|
|
49
49
|
if (this.bidsMap.size === 0) {
|
|
50
50
|
return undefined;
|
|
51
51
|
}
|
|
52
|
-
return Array.from(this.bidsMap.keys()).sort((a, b) => new decimal_js_1.default(a).cmp(b)).at(-1);
|
|
52
|
+
return Array.from(this.bidsMap.keys()).sort((a, b) => new decimal_js_1.default(a).cmp(new decimal_js_1.default(b))).at(-1);
|
|
53
53
|
}
|
|
54
54
|
bestAsk() {
|
|
55
55
|
if (this.asksMap.size === 0) {
|
|
56
56
|
return undefined;
|
|
57
57
|
}
|
|
58
|
-
return Array.from(this.asksMap.keys()).sort((a, b) => new decimal_js_1.default(a).cmp(b))[0];
|
|
58
|
+
return Array.from(this.asksMap.keys()).sort((a, b) => new decimal_js_1.default(a).cmp(new decimal_js_1.default(b)))[0];
|
|
59
59
|
}
|
|
60
60
|
midPrice() {
|
|
61
61
|
const bid = this.bestBid();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/domain/orderbook/state.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAiC;AAIjC,MAAa,iBAAiB;IACnB,WAAW,CAAc;IAClC,GAAG,CAAS;IACK,OAAO,CAAsB;IAC7B,OAAO,CAAsB;IAE9C,YAAY,WAAwB;QAClC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,IAAe;QACnB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;QAEhC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,IAAI,oBAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;gBACrC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,IAAI,oBAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;gBACrC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/domain/orderbook/state.ts"],"names":[],"mappings":"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","sourcesContent":["import Decimal from \"decimal.js\";\nimport type { OrderBookId } from \"../../shared\";\nimport type { OrderBook } from \"./wire\";\n\nexport class OrderbookSnapshot {\n readonly orderbookId: OrderBookId;\n seq: number;\n private readonly bidsMap: Map<string, string>;\n private readonly asksMap: Map<string, string>;\n\n constructor(orderbookId: OrderBookId) {\n this.orderbookId = orderbookId;\n this.seq = 0;\n this.bidsMap = new Map();\n this.asksMap = new Map();\n }\n\n apply(book: OrderBook): void {\n if (book.is_snapshot) {\n this.bidsMap.clear();\n this.asksMap.clear();\n }\n\n this.seq = book.seq ?? this.seq;\n\n for (const level of book.bids) {\n if (new Decimal(level.size).isZero()) {\n this.bidsMap.delete(level.price);\n } else {\n this.bidsMap.set(level.price, level.size);\n }\n }\n\n for (const level of book.asks) {\n if (new Decimal(level.size).isZero()) {\n this.asksMap.delete(level.price);\n } else {\n this.asksMap.set(level.price, level.size);\n }\n }\n }\n\n bids(): ReadonlyMap<string, string> {\n return this.bidsMap;\n }\n\n asks(): ReadonlyMap<string, string> {\n return this.asksMap;\n }\n\n bestBid(): string | undefined {\n if (this.bidsMap.size === 0) {\n return undefined;\n }\n\n return Array.from(this.bidsMap.keys()).sort((a, b) => new Decimal(a).cmp(new Decimal(b))).at(-1);\n }\n\n bestAsk(): string | undefined {\n if (this.asksMap.size === 0) {\n return undefined;\n }\n\n return Array.from(this.asksMap.keys()).sort((a, b) => new Decimal(a).cmp(new Decimal(b)))[0];\n }\n\n midPrice(): string | undefined {\n const bid = this.bestBid();\n const ask = this.bestAsk();\n if (!bid || !ask) {\n return undefined;\n }\n\n return new Decimal(bid).plus(ask).div(2).toString();\n }\n\n spread(): string | undefined {\n const bid = this.bestBid();\n const ask = this.bestAsk();\n if (!bid || !ask) {\n return undefined;\n }\n\n return new Decimal(ask).minus(bid).toString();\n }\n\n isEmpty(): boolean {\n return this.bidsMap.size === 0 && this.asksMap.size === 0;\n }\n\n clear(): void {\n this.bidsMap.clear();\n this.asksMap.clear();\n this.seq = 0;\n }\n}\n"]}
|
|
@@ -49,6 +49,7 @@ export interface OrderBook {
|
|
|
49
49
|
orderbook_id: OrderBookId;
|
|
50
50
|
is_snapshot?: boolean;
|
|
51
51
|
seq?: number;
|
|
52
|
+
timestamp?: string;
|
|
52
53
|
bids: WsBookLevel[];
|
|
53
54
|
asks: WsBookLevel[];
|
|
54
55
|
}
|
|
@@ -57,5 +58,6 @@ export interface WsTickerData {
|
|
|
57
58
|
best_bid?: string;
|
|
58
59
|
best_ask?: string;
|
|
59
60
|
mid?: string;
|
|
61
|
+
timestamp?: string;
|
|
60
62
|
}
|
|
61
63
|
//# sourceMappingURL=wire.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../src/domain/orderbook/wire.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,WAAW,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,IAAI,EAAE,aAAa,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,IAAI,EAAE,WAAW,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../src/domain/orderbook/wire.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,WAAW,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,IAAI,EAAE,aAAa,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,IAAI,EAAE,WAAW,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/domain/orderbook/wire.ts"],"names":[],"mappings":"","sourcesContent":["import type { OrderBookId, Side } from \"../../shared\";\n\nexport interface OrderbookResponse {\n id: number;\n market_pubkey: string;\n orderbook_id: string;\n base_token: string;\n quote_token: string;\n outcome_index?: number;\n tick_size: number;\n total_bids: number;\n total_asks: number;\n last_trade_price?: string;\n last_trade_time?: string;\n active: boolean;\n created_at: string;\n updated_at: string;\n}\n\nexport interface OrderbooksResponse {\n orderbooks: OrderbookResponse[];\n total: number;\n}\n\nexport interface RestBookLevel {\n price: string;\n size: string;\n orders?: number;\n}\n\nexport interface OrderbookDepthResponse {\n orderbook_id: OrderBookId;\n market_pubkey?: string;\n best_bid?: string;\n best_ask?: string;\n spread?: string;\n tick_size?: string;\n bids: RestBookLevel[];\n asks: RestBookLevel[];\n}\n\nexport interface DecimalsResponse {\n orderbook_id: string;\n base_decimals: number;\n quote_decimals: number;\n price_decimals: number;\n}\n\nexport interface WsBookLevel {\n side: Side;\n price: string;\n size: string;\n}\n\nexport interface OrderBook {\n orderbook_id: OrderBookId;\n is_snapshot?: boolean;\n seq?: number;\n bids: WsBookLevel[];\n asks: WsBookLevel[];\n}\n\nexport interface WsTickerData {\n orderbook_id: OrderBookId;\n best_bid?: string;\n best_ask?: string;\n mid?: string;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/domain/orderbook/wire.ts"],"names":[],"mappings":"","sourcesContent":["import type { OrderBookId, Side } from \"../../shared\";\n\nexport interface OrderbookResponse {\n id: number;\n market_pubkey: string;\n orderbook_id: string;\n base_token: string;\n quote_token: string;\n outcome_index?: number;\n tick_size: number;\n total_bids: number;\n total_asks: number;\n last_trade_price?: string;\n last_trade_time?: string;\n active: boolean;\n created_at: string;\n updated_at: string;\n}\n\nexport interface OrderbooksResponse {\n orderbooks: OrderbookResponse[];\n total: number;\n}\n\nexport interface RestBookLevel {\n price: string;\n size: string;\n orders?: number;\n}\n\nexport interface OrderbookDepthResponse {\n orderbook_id: OrderBookId;\n market_pubkey?: string;\n best_bid?: string;\n best_ask?: string;\n spread?: string;\n tick_size?: string;\n bids: RestBookLevel[];\n asks: RestBookLevel[];\n}\n\nexport interface DecimalsResponse {\n orderbook_id: string;\n base_decimals: number;\n quote_decimals: number;\n price_decimals: number;\n}\n\nexport interface WsBookLevel {\n side: Side;\n price: string;\n size: string;\n}\n\nexport interface OrderBook {\n orderbook_id: OrderBookId;\n is_snapshot?: boolean;\n seq?: number;\n timestamp?: string;\n bids: WsBookLevel[];\n asks: WsBookLevel[];\n}\n\nexport interface WsTickerData {\n orderbook_id: OrderBookId;\n best_bid?: string;\n best_ask?: string;\n mid?: string;\n timestamp?: string;\n}\n"]}
|
|
@@ -5,6 +5,11 @@ export interface OutcomeBalance {
|
|
|
5
5
|
balance_idle: string;
|
|
6
6
|
balance_on_book: string;
|
|
7
7
|
}
|
|
8
|
+
export interface GlobalDeposit {
|
|
9
|
+
deposit_mint: string;
|
|
10
|
+
symbol: string;
|
|
11
|
+
balance: string;
|
|
12
|
+
}
|
|
8
13
|
export interface PositionEntry {
|
|
9
14
|
id: number;
|
|
10
15
|
position_pubkey: string;
|
|
@@ -18,12 +23,14 @@ export interface PositionsResponse {
|
|
|
18
23
|
owner: string;
|
|
19
24
|
total_markets: number;
|
|
20
25
|
positions: PositionEntry[];
|
|
26
|
+
global_deposits: GlobalDeposit[];
|
|
21
27
|
decimals: Record<string, number>;
|
|
22
28
|
}
|
|
23
29
|
export interface MarketPositionsResponse {
|
|
24
30
|
owner: string;
|
|
25
31
|
market_pubkey: string;
|
|
26
32
|
positions: PositionEntry[];
|
|
33
|
+
global_deposits: GlobalDeposit[];
|
|
27
34
|
decimals: Record<string, number>;
|
|
28
35
|
}
|
|
29
36
|
//# sourceMappingURL=wire.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../src/domain/position/wire.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC"}
|
|
1
|
+
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../src/domain/position/wire.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,eAAe,EAAE,aAAa,EAAE,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,eAAe,EAAE,aAAa,EAAE,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/domain/position/wire.ts"],"names":[],"mappings":"","sourcesContent":["export interface OutcomeBalance {\n outcome_index: number;\n conditional_token: string;\n balance: string;\n balance_idle: string;\n balance_on_book: string;\n}\n\nexport interface PositionEntry {\n id: number;\n position_pubkey: string;\n owner: string;\n market_pubkey: string;\n outcomes: OutcomeBalance[];\n created_at: string;\n updated_at: string;\n}\n\nexport interface PositionsResponse {\n owner: string;\n total_markets: number;\n positions: PositionEntry[];\n decimals: Record<string, number>;\n}\n\nexport interface MarketPositionsResponse {\n owner: string;\n market_pubkey: string;\n positions: PositionEntry[];\n decimals: Record<string, number>;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/domain/position/wire.ts"],"names":[],"mappings":"","sourcesContent":["export interface OutcomeBalance {\n outcome_index: number;\n conditional_token: string;\n balance: string;\n balance_idle: string;\n balance_on_book: string;\n}\n\nexport interface GlobalDeposit {\n deposit_mint: string;\n symbol: string;\n balance: string;\n}\n\nexport interface PositionEntry {\n id: number;\n position_pubkey: string;\n owner: string;\n market_pubkey: string;\n outcomes: OutcomeBalance[];\n created_at: string;\n updated_at: string;\n}\n\nexport interface PositionsResponse {\n owner: string;\n total_markets: number;\n positions: PositionEntry[];\n global_deposits: GlobalDeposit[];\n decimals: Record<string, number>;\n}\n\nexport interface MarketPositionsResponse {\n owner: string;\n market_pubkey: string;\n positions: PositionEntry[];\n global_deposits: GlobalDeposit[];\n decimals: Record<string, number>;\n}\n"]}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import type { Resolution } from "../../shared";
|
|
2
2
|
import { type LightconeHttp } from "../../http";
|
|
3
|
+
import type { PriceHistoryRestResponse } from "./wire";
|
|
3
4
|
interface ClientContext {
|
|
4
5
|
http: LightconeHttp;
|
|
5
6
|
}
|
|
6
7
|
export declare class PriceHistoryClient {
|
|
7
8
|
private readonly client;
|
|
8
9
|
constructor(client: ClientContext);
|
|
9
|
-
get(orderbookId: string, resolution: Resolution, from?: number, to?: number): Promise<
|
|
10
|
+
get(orderbookId: string, resolution: Resolution, from?: number, to?: number): Promise<PriceHistoryRestResponse>;
|
|
10
11
|
}
|
|
11
12
|
export {};
|
|
12
13
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/domain/price_history/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/domain/price_history/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC;AAEvD,UAAU,aAAa;IACrB,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAG5C,GAAG,CACP,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EACtB,IAAI,CAAC,EAAE,MAAM,EACb,EAAE,CAAC,EAAE,MAAM,GACV,OAAO,CAAC,wBAAwB,CAAC;CAWrC"}
|
|
@@ -1,24 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PriceHistoryClient = void 0;
|
|
4
|
+
const error_1 = require("../../error");
|
|
4
5
|
const http_1 = require("../../http");
|
|
5
6
|
class PriceHistoryClient {
|
|
6
7
|
client;
|
|
7
8
|
constructor(client) {
|
|
8
9
|
this.client = client;
|
|
9
10
|
}
|
|
11
|
+
// `from`/`to` are Unix timestamps in milliseconds.
|
|
10
12
|
async get(orderbookId, resolution, from, to) {
|
|
11
13
|
const params = new URLSearchParams({
|
|
12
14
|
orderbook_id: orderbookId,
|
|
13
15
|
resolution,
|
|
14
16
|
});
|
|
15
17
|
if (from !== undefined)
|
|
16
|
-
params.set("from", String(from));
|
|
18
|
+
params.set("from", String(ensureUnixMilliseconds("from", from)));
|
|
17
19
|
if (to !== undefined)
|
|
18
|
-
params.set("to", String(to));
|
|
20
|
+
params.set("to", String(ensureUnixMilliseconds("to", to)));
|
|
19
21
|
const url = `${this.client.http.baseUrl()}/api/price-history?${params.toString()}`;
|
|
20
22
|
return this.client.http.get(url, http_1.RetryPolicy.Idempotent);
|
|
21
23
|
}
|
|
22
24
|
}
|
|
23
25
|
exports.PriceHistoryClient = PriceHistoryClient;
|
|
26
|
+
function ensureUnixMilliseconds(name, value) {
|
|
27
|
+
if (!Number.isFinite(value) || !Number.isInteger(value) || value < 0) {
|
|
28
|
+
throw error_1.SdkError.validation(`${name} must be a non-negative Unix timestamp in milliseconds`);
|
|
29
|
+
}
|
|
30
|
+
if (value < 10_000_000_000) {
|
|
31
|
+
throw error_1.SdkError.validation(`${name} must be a Unix timestamp in milliseconds, not seconds`);
|
|
32
|
+
}
|
|
33
|
+
return value;
|
|
34
|
+
}
|
|
24
35
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/domain/price_history/client.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/domain/price_history/client.ts"],"names":[],"mappings":";;;AAAA,uCAAuC;AAEvC,qCAA6D;AAO7D,MAAa,kBAAkB;IACA;IAA7B,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEtD,mDAAmD;IACnD,KAAK,CAAC,GAAG,CACP,WAAmB,EACnB,UAAsB,EACtB,IAAa,EACb,EAAW;QAEX,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,YAAY,EAAE,WAAW;YACzB,UAAU;SACX,CAAC,CAAC;QACH,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACzF,IAAI,EAAE,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,sBAAsB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAEjF,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QACnF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAA2B,GAAG,EAAE,kBAAW,CAAC,UAAU,CAAC,CAAC;IACrF,CAAC;CACF;AApBD,gDAoBC;AAED,SAAS,sBAAsB,CAAC,IAAY,EAAE,KAAa;IACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACrE,MAAM,gBAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,wDAAwD,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,KAAK,GAAG,cAAc,EAAE,CAAC;QAC3B,MAAM,gBAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,wDAAwD,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["import { SdkError } from \"../../error\";\nimport type { Resolution } from \"../../shared\";\nimport { RetryPolicy, type LightconeHttp } from \"../../http\";\nimport type { PriceHistoryRestResponse } from \"./wire\";\n\ninterface ClientContext {\n http: LightconeHttp;\n}\n\nexport class PriceHistoryClient {\n constructor(private readonly client: ClientContext) {}\n\n // `from`/`to` are Unix timestamps in milliseconds.\n async get(\n orderbookId: string,\n resolution: Resolution,\n from?: number,\n to?: number\n ): Promise<PriceHistoryRestResponse> {\n const params = new URLSearchParams({\n orderbook_id: orderbookId,\n resolution,\n });\n if (from !== undefined) params.set(\"from\", String(ensureUnixMilliseconds(\"from\", from)));\n if (to !== undefined) params.set(\"to\", String(ensureUnixMilliseconds(\"to\", to)));\n\n const url = `${this.client.http.baseUrl()}/api/price-history?${params.toString()}`;\n return this.client.http.get<PriceHistoryRestResponse>(url, RetryPolicy.Idempotent);\n }\n}\n\nfunction ensureUnixMilliseconds(name: string, value: number): number {\n if (!Number.isFinite(value) || !Number.isInteger(value) || value < 0) {\n throw SdkError.validation(`${name} must be a non-negative Unix timestamp in milliseconds`);\n }\n if (value < 10_000_000_000) {\n throw SdkError.validation(`${name} must be a Unix timestamp in milliseconds, not seconds`);\n }\n return value;\n}\n"]}
|
|
@@ -16,6 +16,7 @@ export interface PriceHistorySnapshot {
|
|
|
16
16
|
prices: PriceCandle[];
|
|
17
17
|
last_timestamp?: number;
|
|
18
18
|
server_time?: number;
|
|
19
|
+
include_ohlcv?: boolean;
|
|
19
20
|
}
|
|
20
21
|
export interface PriceHistoryUpdate {
|
|
21
22
|
orderbook_id: OrderBookId;
|
|
@@ -34,14 +35,36 @@ export interface PriceHistoryHeartbeat {
|
|
|
34
35
|
server_time: number;
|
|
35
36
|
last_processed?: number;
|
|
36
37
|
}
|
|
37
|
-
export type PriceHistory = {
|
|
38
|
+
export type PriceHistory = ({
|
|
38
39
|
event_type: "snapshot";
|
|
39
|
-
|
|
40
|
-
} | {
|
|
40
|
+
} & PriceHistorySnapshot) | ({
|
|
41
41
|
event_type: "update";
|
|
42
|
-
|
|
43
|
-
} | {
|
|
42
|
+
} & PriceHistoryUpdate) | ({
|
|
44
43
|
event_type: "heartbeat";
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
} & PriceHistoryHeartbeat);
|
|
45
|
+
export interface PriceHistoryRestResponse {
|
|
46
|
+
orderbook_id: string;
|
|
47
|
+
resolution: string;
|
|
48
|
+
include_ohlcv: boolean;
|
|
49
|
+
prices: PriceCandle[];
|
|
50
|
+
next_cursor: number | null;
|
|
51
|
+
has_more: boolean;
|
|
52
|
+
decimals: {
|
|
53
|
+
price: number;
|
|
54
|
+
volume: number;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
export interface DepositPriceCandle {
|
|
58
|
+
t: number;
|
|
59
|
+
tc?: number;
|
|
60
|
+
c: string;
|
|
61
|
+
}
|
|
62
|
+
export interface DepositPriceRestResponse {
|
|
63
|
+
deposit_asset: string;
|
|
64
|
+
binance_symbol: string;
|
|
65
|
+
resolution: string;
|
|
66
|
+
prices: DepositPriceCandle[];
|
|
67
|
+
next_cursor: number | null;
|
|
68
|
+
has_more: boolean;
|
|
69
|
+
}
|
|
47
70
|
//# sourceMappingURL=wire.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../src/domain/price_history/wire.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,WAAW,CAAC;IAC1B,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../src/domain/price_history/wire.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,WAAW,CAAC;IAC1B,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,WAAW,CAAC;IAC1B,UAAU,EAAE,UAAU,CAAC;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,YAAY,GACpB,CAAC;IAAE,UAAU,EAAE,UAAU,CAAA;CAAE,GAAG,oBAAoB,CAAC,GACnD,CAAC;IAAE,UAAU,EAAE,QAAQ,CAAA;CAAE,GAAG,kBAAkB,CAAC,GAC/C,CAAC;IAAE,UAAU,EAAE,WAAW,CAAA;CAAE,GAAG,qBAAqB,CAAC,CAAC;AAE1D,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AAED,MAAM,WAAW,kBAAkB;IACjC,CAAC,EAAE,MAAM,CAAC;IACV,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;CACnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/domain/price_history/wire.ts"],"names":[],"mappings":"","sourcesContent":["import type { OrderBookId, Resolution } from \"../../shared\";\n\nexport interface PriceCandle {\n t: number;\n m?: string;\n o?: string;\n h?: string;\n l?: string;\n c?: string;\n v?: string;\n bb?: string;\n ba?: string;\n}\n\nexport interface PriceHistorySnapshot {\n orderbook_id: OrderBookId;\n resolution: Resolution;\n prices: PriceCandle[];\n last_timestamp?: number;\n server_time?: number;\n}\n\nexport interface PriceHistoryUpdate {\n orderbook_id: OrderBookId;\n resolution: Resolution;\n t: number;\n m?: string;\n o?: string;\n h?: string;\n l?: string;\n c?: string;\n v?: string;\n bb?: string;\n ba?: string;\n}\n\nexport interface PriceHistoryHeartbeat {\n server_time: number;\n last_processed?: number;\n}\n\nexport type PriceHistory =\n | { event_type: \"snapshot\"
|
|
1
|
+
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/domain/price_history/wire.ts"],"names":[],"mappings":"","sourcesContent":["import type { OrderBookId, Resolution } from \"../../shared\";\n\nexport interface PriceCandle {\n t: number;\n m?: string;\n o?: string;\n h?: string;\n l?: string;\n c?: string;\n v?: string;\n bb?: string;\n ba?: string;\n}\n\nexport interface PriceHistorySnapshot {\n orderbook_id: OrderBookId;\n resolution: Resolution;\n prices: PriceCandle[];\n last_timestamp?: number;\n server_time?: number;\n include_ohlcv?: boolean;\n}\n\nexport interface PriceHistoryUpdate {\n orderbook_id: OrderBookId;\n resolution: Resolution;\n t: number;\n m?: string;\n o?: string;\n h?: string;\n l?: string;\n c?: string;\n v?: string;\n bb?: string;\n ba?: string;\n}\n\nexport interface PriceHistoryHeartbeat {\n server_time: number;\n last_processed?: number;\n}\n\nexport type PriceHistory =\n | ({ event_type: \"snapshot\" } & PriceHistorySnapshot)\n | ({ event_type: \"update\" } & PriceHistoryUpdate)\n | ({ event_type: \"heartbeat\" } & PriceHistoryHeartbeat);\n\nexport interface PriceHistoryRestResponse {\n orderbook_id: string;\n resolution: string;\n include_ohlcv: boolean;\n prices: PriceCandle[];\n next_cursor: number | null;\n has_more: boolean;\n decimals: { price: number; volume: number };\n}\n\nexport interface DepositPriceCandle {\n t: number;\n tc?: number;\n c: string;\n}\n\nexport interface DepositPriceRestResponse {\n deposit_asset: string;\n binance_symbol: string;\n resolution: string;\n prices: DepositPriceCandle[];\n next_cursor: number | null;\n has_more: boolean;\n}\n"]}
|
|
@@ -6,7 +6,7 @@ interface ClientContext {
|
|
|
6
6
|
export declare class Trades {
|
|
7
7
|
private readonly client;
|
|
8
8
|
constructor(client: ClientContext);
|
|
9
|
-
get(orderbookId: string, limit?: number,
|
|
9
|
+
get(orderbookId: string, limit?: number, cursor?: number): Promise<TradesPage>;
|
|
10
10
|
}
|
|
11
11
|
export {};
|
|
12
12
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -8,12 +8,12 @@ class Trades {
|
|
|
8
8
|
constructor(client) {
|
|
9
9
|
this.client = client;
|
|
10
10
|
}
|
|
11
|
-
async get(orderbookId, limit,
|
|
11
|
+
async get(orderbookId, limit, cursor) {
|
|
12
12
|
const params = new URLSearchParams({ orderbook_id: orderbookId });
|
|
13
13
|
if (limit !== undefined)
|
|
14
14
|
params.set("limit", String(limit));
|
|
15
|
-
if (
|
|
16
|
-
params.set("
|
|
15
|
+
if (cursor !== undefined)
|
|
16
|
+
params.set("cursor", String(cursor));
|
|
17
17
|
const url = `${this.client.http.baseUrl()}/api/trades?${params.toString()}`;
|
|
18
18
|
const response = await this.client.http.get(url, http_1.RetryPolicy.Idempotent);
|
|
19
19
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/domain/trade/client.ts"],"names":[],"mappings":";;;AAAA,qCAA6D;AAE7D,uCAA8C;AAO9C,MAAa,MAAM;IACY;IAA7B,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEtD,KAAK,CAAC,GAAG,CAAC,WAAmB,EAAE,KAAc,EAAE,MAAe;QAC5D,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;QAClE,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAE/D,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC5E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAiB,GAAG,EAAE,kBAAW,CAAC,UAAU,CAAC,CAAC;QAEzF,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,2BAAiB,CAAC;YAC9C,UAAU,EAAE,QAAQ,CAAC,WAAW;YAChC,OAAO,EAAE,QAAQ,CAAC,QAAQ,IAAI,KAAK;SACpC,CAAC;IACJ,CAAC;CACF;AAjBD,wBAiBC","sourcesContent":["import { RetryPolicy, type LightconeHttp } from \"../../http\";\nimport type { TradesPage } from \"./index\";\nimport { tradeFromResponse } from \"./convert\";\nimport type { TradesResponse } from \"./wire\";\n\ninterface ClientContext {\n http: LightconeHttp;\n}\n\nexport class Trades {\n constructor(private readonly client: ClientContext) {}\n\n async get(orderbookId: string, limit?: number,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/domain/trade/client.ts"],"names":[],"mappings":";;;AAAA,qCAA6D;AAE7D,uCAA8C;AAO9C,MAAa,MAAM;IACY;IAA7B,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEtD,KAAK,CAAC,GAAG,CAAC,WAAmB,EAAE,KAAc,EAAE,MAAe;QAC5D,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;QAClE,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAE/D,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC5E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAiB,GAAG,EAAE,kBAAW,CAAC,UAAU,CAAC,CAAC;QAEzF,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,2BAAiB,CAAC;YAC9C,UAAU,EAAE,QAAQ,CAAC,WAAW;YAChC,OAAO,EAAE,QAAQ,CAAC,QAAQ,IAAI,KAAK;SACpC,CAAC;IACJ,CAAC;CACF;AAjBD,wBAiBC","sourcesContent":["import { RetryPolicy, type LightconeHttp } from \"../../http\";\nimport type { TradesPage } from \"./index\";\nimport { tradeFromResponse } from \"./convert\";\nimport type { TradesResponse } from \"./wire\";\n\ninterface ClientContext {\n http: LightconeHttp;\n}\n\nexport class Trades {\n constructor(private readonly client: ClientContext) {}\n\n async get(orderbookId: string, limit?: number, cursor?: number): Promise<TradesPage> {\n const params = new URLSearchParams({ orderbook_id: orderbookId });\n if (limit !== undefined) params.set(\"limit\", String(limit));\n if (cursor !== undefined) params.set(\"cursor\", String(cursor));\n\n const url = `${this.client.http.baseUrl()}/api/trades?${params.toString()}`;\n const response = await this.client.http.get<TradesResponse>(url, RetryPolicy.Idempotent);\n\n return {\n trades: response.trades.map(tradeFromResponse),\n nextCursor: response.next_cursor,\n hasMore: response.has_more ?? false,\n };\n }\n}\n"]}
|
package/dist/error.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,aAAa,GACb,aAAa,GACb,cAAc,GACd,UAAU,GACV,YAAY,GACZ,SAAS,GACT,oBAAoB,CAAC;AAEzB,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAEf,MAAM,EAAE;QAClB,OAAO,EAAE,gBAAgB,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAUD,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS;IAI1C,MAAM,CAAC,OAAO,IAAI,SAAS;IAI3B,MAAM,CAAC,YAAY,IAAI,SAAS;IAIhC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IASxC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IAS1C,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS;IAYpD,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS;IAS3D,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS;CAO1E;AAED,MAAM,MAAM,cAAc,GACtB,cAAc,GACd,kBAAkB,GAClB,YAAY,GACZ,sBAAsB,GACtB,eAAe,GACf,QAAQ,CAAC;AAEb,qBAAa,OAAQ,SAAQ,KAAK;IAChC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAEX,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAMpE;AAED,MAAM,MAAM,gBAAgB,GACxB,kBAAkB,GAClB,aAAa,GACb,6BAA6B,GAC7B,cAAc,CAAC;AAEnB,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;gBAEvB,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM;CAKvD;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC;AAExF,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;gBAEhB,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK;IAOzE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ;
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,aAAa,GACb,aAAa,GACb,cAAc,GACd,UAAU,GACV,YAAY,GACZ,SAAS,GACT,oBAAoB,CAAC;AAEzB,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAEf,MAAM,EAAE;QAClB,OAAO,EAAE,gBAAgB,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAUD,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS;IAI1C,MAAM,CAAC,OAAO,IAAI,SAAS;IAI3B,MAAM,CAAC,YAAY,IAAI,SAAS;IAIhC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IASxC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IAS1C,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS;IAYpD,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS;IAS3D,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS;CAO1E;AAED,MAAM,MAAM,cAAc,GACtB,cAAc,GACd,kBAAkB,GAClB,YAAY,GACZ,sBAAsB,GACtB,eAAe,GACf,QAAQ,CAAC;AAEb,qBAAa,OAAQ,SAAQ,KAAK;IAChC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAEX,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAMpE;AAED,MAAM,MAAM,gBAAgB,GACxB,kBAAkB,GAClB,aAAa,GACb,6BAA6B,GAC7B,cAAc,CAAC;AAEnB,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;gBAEvB,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM;CAKvD;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC;AAExF,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;gBAEhB,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK;IAOzE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ;IAyBrC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ;CAG7C"}
|
package/dist/error.js
CHANGED
|
@@ -116,6 +116,9 @@ class SdkError extends Error {
|
|
|
116
116
|
if (error instanceof Error) {
|
|
117
117
|
return new SdkError("Other", error.message, error);
|
|
118
118
|
}
|
|
119
|
+
if (typeof error === "object" && error !== null) {
|
|
120
|
+
return new SdkError("Other", JSON.stringify(error));
|
|
121
|
+
}
|
|
119
122
|
return new SdkError("Other", String(error));
|
|
120
123
|
}
|
|
121
124
|
static validation(message) {
|
package/dist/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"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","sourcesContent":["export type HttpErrorVariant =\n | \"Request\"\n | \"ServerError\"\n | \"RateLimited\"\n | \"Unauthorized\"\n | \"NotFound\"\n | \"BadRequest\"\n | \"Timeout\"\n | \"MaxRetriesExceeded\";\n\nexport class HttpError extends Error {\n readonly variant: HttpErrorVariant;\n readonly status?: number;\n readonly body?: string;\n readonly retryAfterMs?: number;\n readonly attempts?: number;\n\n constructor(params: {\n variant: HttpErrorVariant;\n message: string;\n status?: number;\n body?: string;\n retryAfterMs?: number;\n attempts?: number;\n }) {\n super(params.message);\n this.name = \"HttpError\";\n this.variant = params.variant;\n this.status = params.status;\n this.body = params.body;\n this.retryAfterMs = params.retryAfterMs;\n this.attempts = params.attempts;\n }\n\n static request(message: string): HttpError {\n return new HttpError({ variant: \"Request\", message: `Request failed: ${message}` });\n }\n\n static timeout(): HttpError {\n return new HttpError({ variant: \"Timeout\", message: \"Timeout\" });\n }\n\n static unauthorized(): HttpError {\n return new HttpError({ variant: \"Unauthorized\", message: \"Unauthorized\", status: 401 });\n }\n\n static notFound(body: string): HttpError {\n return new HttpError({\n variant: \"NotFound\",\n message: `Not found: ${body || \"resource\"}`,\n status: 404,\n body,\n });\n }\n\n static badRequest(body: string): HttpError {\n return new HttpError({\n variant: \"BadRequest\",\n message: `Bad request: ${body || \"invalid request\"}`,\n status: 400,\n body,\n });\n }\n\n static rateLimited(retryAfterMs?: number): HttpError {\n return new HttpError({\n variant: \"RateLimited\",\n message:\n retryAfterMs !== undefined\n ? `Rate limited (retry after ${retryAfterMs}ms)`\n : \"Rate limited\",\n status: 429,\n retryAfterMs,\n });\n }\n\n static serverError(status: number, body: string): HttpError {\n return new HttpError({\n variant: \"ServerError\",\n message: `Server error ${status}: ${body}`,\n status,\n body,\n });\n }\n\n static maxRetriesExceeded(attempts: number, lastError: string): HttpError {\n return new HttpError({\n variant: \"MaxRetriesExceeded\",\n message: `Max retries exceeded after ${attempts} attempts: ${lastError}`,\n attempts,\n });\n }\n}\n\nexport type WsErrorVariant =\n | \"NotConnected\"\n | \"ConnectionFailed\"\n | \"SendFailed\"\n | \"DeserializationError\"\n | \"ProtocolError\"\n | \"Closed\";\n\nexport class WsError extends Error {\n readonly variant: WsErrorVariant;\n readonly code?: number;\n\n constructor(variant: WsErrorVariant, message: string, code?: number) {\n super(message);\n this.name = \"WsError\";\n this.variant = variant;\n this.code = code;\n }\n}\n\nexport type AuthErrorVariant =\n | \"NotAuthenticated\"\n | \"LoginFailed\"\n | \"SignatureVerificationFailed\"\n | \"TokenExpired\";\n\nexport class AuthError extends Error {\n readonly variant: AuthErrorVariant;\n\n constructor(variant: AuthErrorVariant, message: string) {\n super(message);\n this.name = \"AuthError\";\n this.variant = variant;\n }\n}\n\nexport type SdkErrorVariant = \"Http\" | \"Ws\" | \"Auth\" | \"Validation\" | \"Serde\" | \"Other\";\n\nexport class SdkError extends Error {\n readonly variant: SdkErrorVariant;\n readonly causeError?: Error;\n\n constructor(variant: SdkErrorVariant, message: string, causeError?: Error) {\n super(message);\n this.name = \"SdkError\";\n this.variant = variant;\n this.causeError = causeError;\n }\n\n static from(error: unknown): SdkError {\n if (error instanceof SdkError) {\n return error;\n }\n if (error instanceof HttpError) {\n return new SdkError(\"Http\", error.message, error);\n }\n if (error instanceof WsError) {\n return new SdkError(\"Ws\", error.message, error);\n }\n if (error instanceof AuthError) {\n return new SdkError(\"Auth\", error.message, error);\n }\n if (error instanceof SyntaxError) {\n return new SdkError(\"Serde\", error.message, error);\n }\n if (error instanceof Error) {\n return new SdkError(\"Other\", error.message, error);\n }\n if (typeof error === \"object\" && error !== null) {\n return new SdkError(\"Other\", JSON.stringify(error));\n }\n return new SdkError(\"Other\", String(error));\n }\n\n static validation(message: string): SdkError {\n return new SdkError(\"Validation\", message);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/http/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAyC,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAElF,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,SAAS,CAAqB;gBAE1B,OAAO,EAAE,MAAM;IAI3B,OAAO,IAAI,MAAM;IAIX,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC,YAAY,IAAI,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI3C,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;IAInD,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;YAIvE,gBAAgB;IAsC9B,OAAO,CAAC,WAAW;YAaL,SAAS;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/http/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAyC,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAElF,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,SAAS,CAAqB;gBAE1B,OAAO,EAAE,MAAM;IAI3B,OAAO,IAAI,MAAM;IAIX,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC,YAAY,IAAI,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI3C,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;IAInD,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;YAIvE,gBAAgB;IAsC9B,OAAO,CAAC,WAAW;YAaL,SAAS;CA4DxB"}
|
package/dist/http/client.js
CHANGED
|
@@ -67,9 +67,10 @@ class LightconeHttp {
|
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
async doRequest(method, url, body) {
|
|
70
|
-
const headers = {
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
const headers = {};
|
|
71
|
+
if (body) {
|
|
72
|
+
headers["Content-Type"] = "application/json";
|
|
73
|
+
}
|
|
73
74
|
if (this.authToken && !hasBrowserWindow()) {
|
|
74
75
|
headers.Cookie = `auth_token=${this.authToken}`;
|
|
75
76
|
}
|
|
@@ -98,7 +99,7 @@ class LightconeHttp {
|
|
|
98
99
|
if (response.ok) {
|
|
99
100
|
const text = await response.text();
|
|
100
101
|
if (!text) {
|
|
101
|
-
|
|
102
|
+
throw error_1.HttpError.request("Empty response body");
|
|
102
103
|
}
|
|
103
104
|
return JSON.parse(text);
|
|
104
105
|
}
|
package/dist/http/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/http/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/http/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { HttpError } from \"../error\";\nimport { delayForAttempt, retryConfigForPolicy, type RetryPolicy } from \"./retry\";\n\nexport class LightconeHttp {\n private readonly normalizedBaseUrl: string;\n private authToken: string | undefined;\n\n constructor(baseUrl: string) {\n this.normalizedBaseUrl = baseUrl.replace(/\\/+$/, \"\");\n }\n\n baseUrl(): string {\n return this.normalizedBaseUrl;\n }\n\n async setAuthToken(token: string | undefined): Promise<void> {\n this.authToken = token;\n }\n\n async clearAuthToken(): Promise<void> {\n this.authToken = undefined;\n }\n\n authTokenRef(): () => Promise<string | undefined> {\n return async () => this.authToken;\n }\n\n async get<T>(url: string, retry: RetryPolicy): Promise<T> {\n return this.requestWithRetry<T>(\"GET\", url, undefined, retry);\n }\n\n async post<T, B extends object>(url: string, body: B, retry: RetryPolicy): Promise<T> {\n return this.requestWithRetry<T>(\"POST\", url, body, retry);\n }\n\n private async requestWithRetry<T>(\n method: \"GET\" | \"POST\",\n url: string,\n body: object | undefined,\n policy: RetryPolicy\n ): Promise<T> {\n const config = retryConfigForPolicy(policy);\n if (!config) {\n return this.doRequest<T>(method, url, body);\n }\n\n let lastError: HttpError | undefined;\n\n for (let attempt = 0; attempt <= config.maxRetries; attempt += 1) {\n try {\n return await this.doRequest<T>(method, url, body);\n } catch (error) {\n if (!(error instanceof HttpError)) {\n throw error;\n }\n\n const shouldRetry = this.shouldRetry(error, config.retryableStatuses);\n if (!shouldRetry || attempt >= config.maxRetries) {\n throw error;\n }\n\n lastError = error;\n const delay = error.variant === \"RateLimited\" && error.retryAfterMs !== undefined\n ? error.retryAfterMs\n : delayForAttempt(config, attempt);\n\n await sleep(delay);\n }\n }\n\n throw HttpError.maxRetriesExceeded(config.maxRetries + 1, lastError?.message ?? \"unknown\");\n }\n\n private shouldRetry(error: HttpError, retryableStatuses: readonly number[]): boolean {\n switch (error.variant) {\n case \"Timeout\":\n case \"Request\":\n case \"RateLimited\":\n return true;\n case \"ServerError\":\n return error.status !== undefined && retryableStatuses.includes(error.status);\n default:\n return false;\n }\n }\n\n private async doRequest<T>(method: \"GET\" | \"POST\", url: string, body?: object): Promise<T> {\n const headers: Record<string, string> = {};\n\n if (body) {\n headers[\"Content-Type\"] = \"application/json\";\n }\n\n if (this.authToken && !hasBrowserWindow()) {\n headers.Cookie = `auth_token=${this.authToken}`;\n }\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 30_000);\n\n let response: Response;\n\n try {\n response = await fetch(url, {\n method,\n headers,\n body: body ? JSON.stringify(body) : undefined,\n signal: controller.signal,\n credentials: \"include\",\n });\n } catch (error) {\n clearTimeout(timeoutId);\n if (error instanceof Error && error.name === \"AbortError\") {\n throw HttpError.timeout();\n }\n throw HttpError.request(error instanceof Error ? error.message : String(error));\n } finally {\n clearTimeout(timeoutId);\n }\n\n if (response.ok) {\n const text = await response.text();\n if (!text) {\n throw HttpError.request(\"Empty response body\");\n }\n return JSON.parse(text) as T;\n }\n\n const bodyText = await response.text().catch(() => \"\");\n\n switch (response.status) {\n case 400:\n throw HttpError.badRequest(bodyText);\n case 401:\n throw HttpError.unauthorized();\n case 404:\n throw HttpError.notFound(bodyText);\n case 429:\n throw HttpError.rateLimited(parseRetryAfterMs(response.headers.get(\"retry-after\")));\n default:\n if (response.status >= 500) {\n throw HttpError.serverError(response.status, bodyText);\n }\n throw HttpError.badRequest(bodyText || `HTTP ${response.status}`);\n }\n }\n}\n\nfunction parseRetryAfterMs(header: string | null): number | undefined {\n if (!header) {\n return undefined;\n }\n\n const seconds = Number.parseFloat(header);\n if (Number.isFinite(seconds) && seconds >= 0) {\n return Math.floor(seconds * 1000);\n }\n\n const retryDate = Date.parse(header);\n if (Number.isFinite(retryDate)) {\n return Math.max(0, retryDate - Date.now());\n }\n\n return undefined;\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => {\n setTimeout(resolve, ms);\n });\n}\n\nfunction hasBrowserWindow(): boolean {\n return typeof globalThis !== \"undefined\" && \"window\" in globalThis;\n}\n"]}
|