@tigeropenapi/tigeropen 0.1.0 → 0.4.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 +475 -104
- package/dist/cjs/client/api-request.js +16 -10
- package/dist/cjs/client/api-response.js +23 -3
- package/dist/cjs/client/case-convert.js +35 -0
- package/dist/cjs/client/http-client.js +47 -21
- package/dist/cjs/client/index.js +6 -2
- package/dist/cjs/config/client-config.js +130 -49
- package/dist/cjs/config/domain.js +21 -2
- package/dist/cjs/config/index.js +3 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/model/contract.js +1 -2
- package/dist/cjs/model/enums.js +89 -7
- package/dist/cjs/model/order-helpers.js +9 -9
- package/dist/cjs/model/order-status.js +46 -0
- package/dist/cjs/model/order.js +5 -2
- package/dist/cjs/model/position.js +1 -2
- package/dist/cjs/model/quote-requests.js +11 -0
- package/dist/cjs/model/quote.js +7 -0
- package/dist/cjs/model/trade-requests.js +13 -0
- package/dist/cjs/model/trade.js +2 -0
- package/dist/cjs/push/index.js +6 -3
- package/dist/cjs/push/pb/AssetData.js +208 -0
- package/dist/cjs/push/pb/KlineData.js +184 -0
- package/dist/cjs/push/pb/OptionTopData.js +427 -0
- package/dist/cjs/push/pb/OrderStatusData.js +592 -0
- package/dist/cjs/push/pb/OrderTransactionData.js +256 -0
- package/dist/cjs/push/pb/PositionData.js +316 -0
- package/dist/cjs/push/pb/PushData.js +219 -0
- package/dist/cjs/push/pb/QuoteBBOData.js +160 -0
- package/dist/cjs/push/pb/QuoteBasicData.js +329 -0
- package/dist/cjs/push/pb/QuoteData.js +507 -0
- package/dist/cjs/push/pb/QuoteDepthData.js +220 -0
- package/dist/cjs/push/pb/Request.js +278 -0
- package/dist/cjs/push/pb/Response.js +97 -0
- package/dist/cjs/push/pb/SocketCommon.js +86 -0
- package/dist/cjs/push/pb/StockTopData.js +199 -0
- package/dist/cjs/push/pb/TickData.js +202 -0
- package/dist/cjs/push/pb/TradeTickData.js +308 -0
- package/dist/cjs/push/pb/index.js +49 -0
- package/dist/cjs/push/proto-message.js +135 -0
- package/dist/cjs/push/push-client.js +361 -163
- package/dist/cjs/push/push-message.js +8 -60
- package/dist/cjs/push/varint.js +76 -0
- package/dist/cjs/quote/index.js +3 -2
- package/dist/cjs/quote/quote-client.js +440 -94
- package/dist/cjs/signer/signer.js +10 -10
- package/dist/cjs/trade/trade-client.js +197 -62
- package/dist/esm/client/api-request.js +14 -8
- package/dist/esm/client/api-response.js +22 -3
- package/dist/esm/client/case-convert.js +31 -0
- package/dist/esm/client/http-client.js +48 -22
- package/dist/esm/client/index.js +3 -2
- package/dist/esm/config/client-config.js +131 -51
- package/dist/esm/config/domain.js +20 -2
- package/dist/esm/config/index.js +2 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/model/contract.js +1 -2
- package/dist/esm/model/enums.js +87 -6
- package/dist/esm/model/order-helpers.js +9 -9
- package/dist/esm/model/order-status.js +43 -0
- package/dist/esm/model/order.js +5 -2
- package/dist/esm/model/position.js +1 -2
- package/dist/esm/model/quote-requests.js +10 -0
- package/dist/esm/model/quote.js +6 -0
- package/dist/esm/model/trade-requests.js +12 -0
- package/dist/esm/model/trade.js +1 -0
- package/dist/esm/push/index.js +4 -2
- package/dist/esm/push/pb/AssetData.js +205 -0
- package/dist/esm/push/pb/KlineData.js +181 -0
- package/dist/esm/push/pb/OptionTopData.js +424 -0
- package/dist/esm/push/pb/OrderStatusData.js +589 -0
- package/dist/esm/push/pb/OrderTransactionData.js +253 -0
- package/dist/esm/push/pb/PositionData.js +313 -0
- package/dist/esm/push/pb/PushData.js +216 -0
- package/dist/esm/push/pb/QuoteBBOData.js +157 -0
- package/dist/esm/push/pb/QuoteBasicData.js +326 -0
- package/dist/esm/push/pb/QuoteData.js +504 -0
- package/dist/esm/push/pb/QuoteDepthData.js +217 -0
- package/dist/esm/push/pb/Request.js +275 -0
- package/dist/esm/push/pb/Response.js +94 -0
- package/dist/esm/push/pb/SocketCommon.js +83 -0
- package/dist/esm/push/pb/StockTopData.js +196 -0
- package/dist/esm/push/pb/TickData.js +199 -0
- package/dist/esm/push/pb/TradeTickData.js +305 -0
- package/dist/esm/push/pb/index.js +25 -0
- package/dist/esm/push/proto-message.js +127 -0
- package/dist/esm/push/push-client.js +329 -164
- package/dist/esm/push/push-message.js +7 -56
- package/dist/esm/push/varint.js +72 -0
- package/dist/esm/quote/index.js +2 -2
- package/dist/esm/quote/quote-client.js +439 -94
- package/dist/esm/signer/signer.js +10 -10
- package/dist/esm/trade/trade-client.js +197 -62
- package/dist/types/client/api-request.d.ts +12 -11
- package/dist/types/client/api-response.d.ts +15 -7
- package/dist/types/client/case-convert.d.ts +16 -0
- package/dist/types/client/http-client.d.ts +26 -14
- package/dist/types/client/index.d.ts +3 -2
- package/dist/types/config/client-config.d.ts +29 -13
- package/dist/types/config/domain.d.ts +9 -0
- package/dist/types/config/index.d.ts +2 -2
- package/dist/types/index.d.ts +1 -1
- package/dist/types/model/contract.d.ts +13 -29
- package/dist/types/model/enums.d.ts +60 -6
- package/dist/types/model/order-helpers.d.ts +21 -20
- package/dist/types/model/order-status.d.ts +14 -0
- package/dist/types/model/order.d.ts +101 -55
- package/dist/types/model/position.d.ts +26 -24
- package/dist/types/model/quote-requests.d.ts +344 -0
- package/dist/types/model/quote.d.ts +572 -0
- package/dist/types/model/trade-requests.d.ts +195 -0
- package/dist/types/model/trade.d.ts +235 -0
- package/dist/types/push/callbacks.d.ts +32 -51
- package/dist/types/push/index.d.ts +5 -3
- package/dist/types/push/pb/AssetData.d.ts +47 -0
- package/dist/types/push/pb/KlineData.d.ts +43 -0
- package/dist/types/push/pb/OptionTopData.d.ts +76 -0
- package/dist/types/push/pb/OrderStatusData.d.ts +100 -0
- package/dist/types/push/pb/OrderTransactionData.d.ts +51 -0
- package/dist/types/push/pb/PositionData.d.ts +63 -0
- package/dist/types/push/pb/PushData.d.ts +46 -0
- package/dist/types/push/pb/QuoteBBOData.d.ts +35 -0
- package/dist/types/push/pb/QuoteBasicData.d.ts +66 -0
- package/dist/types/push/pb/QuoteData.d.ts +94 -0
- package/dist/types/push/pb/QuoteDepthData.d.ts +37 -0
- package/dist/types/push/pb/Request.d.ts +44 -0
- package/dist/types/push/pb/Response.d.ts +30 -0
- package/dist/types/push/pb/SocketCommon.d.ts +64 -0
- package/dist/types/push/pb/StockTopData.d.ts +37 -0
- package/dist/types/push/pb/TickData.d.ts +44 -0
- package/dist/types/push/pb/TradeTickData.d.ts +53 -0
- package/dist/types/push/pb/index.d.ts +39 -0
- package/dist/types/push/proto-message.d.ts +33 -0
- package/dist/types/push/push-client.d.ts +100 -68
- package/dist/types/push/push-message.d.ts +7 -147
- package/dist/types/push/varint.d.ts +23 -0
- package/dist/types/quote/index.d.ts +2 -2
- package/dist/types/quote/quote-client.d.ts +154 -47
- package/dist/types/signer/signer.d.ts +6 -6
- package/dist/types/trade/trade-client.d.ts +106 -38
- package/package.json +11 -6
|
@@ -1,39 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* 推送消息类型定义
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* 仅保留 SubjectType 枚举,用于订阅/退订 API。
|
|
5
|
+
* JSON 消息类型定义和序列化函数已移除,改用 Protobuf 协议。
|
|
6
6
|
*/
|
|
7
|
-
/** 推送消息类型 */
|
|
8
|
-
export var MessageType;
|
|
9
|
-
(function (MessageType) {
|
|
10
|
-
// 连接相关
|
|
11
|
-
MessageType["Connect"] = "connect";
|
|
12
|
-
MessageType["Connected"] = "connected";
|
|
13
|
-
MessageType["Disconnect"] = "disconnect";
|
|
14
|
-
MessageType["Heartbeat"] = "heartbeat";
|
|
15
|
-
MessageType["Kickout"] = "kickout";
|
|
16
|
-
MessageType["Error"] = "error";
|
|
17
|
-
// 订阅相关
|
|
18
|
-
MessageType["Subscribe"] = "subscribe";
|
|
19
|
-
MessageType["Unsubscribe"] = "unsubscribe";
|
|
20
|
-
// 行情推送
|
|
21
|
-
MessageType["Quote"] = "quote";
|
|
22
|
-
MessageType["Tick"] = "tick";
|
|
23
|
-
MessageType["Depth"] = "depth";
|
|
24
|
-
MessageType["Option"] = "option";
|
|
25
|
-
MessageType["Future"] = "future";
|
|
26
|
-
MessageType["Kline"] = "kline";
|
|
27
|
-
MessageType["StockTop"] = "stock_top";
|
|
28
|
-
MessageType["OptionTop"] = "option_top";
|
|
29
|
-
MessageType["FullTick"] = "full_tick";
|
|
30
|
-
MessageType["QuoteBBO"] = "quote_bbo";
|
|
31
|
-
// 账户推送
|
|
32
|
-
MessageType["Asset"] = "asset";
|
|
33
|
-
MessageType["Position"] = "position";
|
|
34
|
-
MessageType["Order"] = "order";
|
|
35
|
-
MessageType["Transaction"] = "transaction";
|
|
36
|
-
})(MessageType || (MessageType = {}));
|
|
37
7
|
/** 订阅主题类型 */
|
|
38
8
|
export var SubjectType;
|
|
39
9
|
(function (SubjectType) {
|
|
@@ -47,31 +17,12 @@ export var SubjectType;
|
|
|
47
17
|
SubjectType["OptionTop"] = "option_top";
|
|
48
18
|
SubjectType["FullTick"] = "full_tick";
|
|
49
19
|
SubjectType["QuoteBBO"] = "quote_bbo";
|
|
20
|
+
/** 加密货币实时行情 (v0.4.0) */
|
|
21
|
+
SubjectType["Cc"] = "cc";
|
|
22
|
+
/** 市场状态 (v0.4.0) */
|
|
23
|
+
SubjectType["Market"] = "market";
|
|
50
24
|
SubjectType["Asset"] = "asset";
|
|
51
25
|
SubjectType["Position"] = "position";
|
|
52
26
|
SubjectType["Order"] = "order";
|
|
53
27
|
SubjectType["Transaction"] = "transaction";
|
|
54
28
|
})(SubjectType || (SubjectType = {}));
|
|
55
|
-
/**
|
|
56
|
-
* 创建推送消息
|
|
57
|
-
*/
|
|
58
|
-
export function createPushMessage(type, subject, data) {
|
|
59
|
-
const msg = { type };
|
|
60
|
-
if (subject)
|
|
61
|
-
msg.subject = subject;
|
|
62
|
-
if (data !== undefined)
|
|
63
|
-
msg.data = data;
|
|
64
|
-
return msg;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* 序列化推送消息为 JSON 字符串
|
|
68
|
-
*/
|
|
69
|
-
export function serializeMessage(msg) {
|
|
70
|
-
return JSON.stringify(msg);
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* 反序列化 JSON 字符串为推送消息
|
|
74
|
-
*/
|
|
75
|
-
export function deserializeMessage(data) {
|
|
76
|
-
return JSON.parse(data);
|
|
77
|
-
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Varint32 帧编解码器
|
|
3
|
+
*
|
|
4
|
+
* 兼容 Netty 的 ProtobufVarint32FrameDecoder / ProtobufVarint32LengthFieldPrepender。
|
|
5
|
+
* 每个字节低 7 位存数据,最高位为延续标志(1=后续还有字节,0=最后一个字节),最大 5 字节。
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* 在 protobuf 字节前添加 varint32 长度前缀
|
|
9
|
+
*
|
|
10
|
+
* @param data - 待编码的 protobuf 二进制数据
|
|
11
|
+
* @returns varint32 长度前缀 + 原始数据
|
|
12
|
+
*/
|
|
13
|
+
export function encodeVarint32(data) {
|
|
14
|
+
const length = data.length;
|
|
15
|
+
const header = encodeVarint32Length(length);
|
|
16
|
+
const result = new Uint8Array(header.length + data.length);
|
|
17
|
+
result.set(header, 0);
|
|
18
|
+
result.set(data, header.length);
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 将一个非负整数编码为 varint32 字节序列
|
|
23
|
+
*/
|
|
24
|
+
function encodeVarint32Length(value) {
|
|
25
|
+
const bytes = [];
|
|
26
|
+
while (value > 0x7f) {
|
|
27
|
+
bytes.push((value & 0x7f) | 0x80);
|
|
28
|
+
value >>>= 7;
|
|
29
|
+
}
|
|
30
|
+
bytes.push(value & 0x7f);
|
|
31
|
+
return new Uint8Array(bytes);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* 从缓冲区解码一个 varint32 帧
|
|
35
|
+
*
|
|
36
|
+
* @param buffer - 包含 varint32 长度前缀 + protobuf 数据的缓冲区
|
|
37
|
+
* @returns 解码结果 `{ message, remaining }`,数据不足时返回 `null`
|
|
38
|
+
*/
|
|
39
|
+
export function decodeVarint32(buffer) {
|
|
40
|
+
if (buffer.length === 0) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
// 读取 varint32 长度前缀
|
|
44
|
+
let value = 0;
|
|
45
|
+
let shift = 0;
|
|
46
|
+
let i = 0;
|
|
47
|
+
while (i < buffer.length) {
|
|
48
|
+
// varint32 最多 5 字节
|
|
49
|
+
if (i >= 5) {
|
|
50
|
+
throw new Error('varint32 overflow: more than 5 bytes');
|
|
51
|
+
}
|
|
52
|
+
const byte = buffer[i];
|
|
53
|
+
value |= (byte & 0x7f) << shift;
|
|
54
|
+
i++;
|
|
55
|
+
if ((byte & 0x80) === 0) {
|
|
56
|
+
// 最后一个字节,延续标志为 0
|
|
57
|
+
const messageLength = value >>> 0; // 确保无符号
|
|
58
|
+
const totalNeeded = i + messageLength;
|
|
59
|
+
if (buffer.length < totalNeeded) {
|
|
60
|
+
// 数据不足,等待更多数据
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
message: buffer.slice(i, i + messageLength),
|
|
65
|
+
remaining: buffer.slice(i + messageLength),
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
shift += 7;
|
|
69
|
+
}
|
|
70
|
+
// 缓冲区中 varint 前缀不完整,等待更多数据
|
|
71
|
+
return null;
|
|
72
|
+
}
|
package/dist/esm/quote/index.js
CHANGED