@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.
Files changed (141) hide show
  1. package/README.md +475 -104
  2. package/dist/cjs/client/api-request.js +16 -10
  3. package/dist/cjs/client/api-response.js +23 -3
  4. package/dist/cjs/client/case-convert.js +35 -0
  5. package/dist/cjs/client/http-client.js +47 -21
  6. package/dist/cjs/client/index.js +6 -2
  7. package/dist/cjs/config/client-config.js +130 -49
  8. package/dist/cjs/config/domain.js +21 -2
  9. package/dist/cjs/config/index.js +3 -1
  10. package/dist/cjs/index.js +1 -1
  11. package/dist/cjs/model/contract.js +1 -2
  12. package/dist/cjs/model/enums.js +89 -7
  13. package/dist/cjs/model/order-helpers.js +9 -9
  14. package/dist/cjs/model/order-status.js +46 -0
  15. package/dist/cjs/model/order.js +5 -2
  16. package/dist/cjs/model/position.js +1 -2
  17. package/dist/cjs/model/quote-requests.js +11 -0
  18. package/dist/cjs/model/quote.js +7 -0
  19. package/dist/cjs/model/trade-requests.js +13 -0
  20. package/dist/cjs/model/trade.js +2 -0
  21. package/dist/cjs/push/index.js +6 -3
  22. package/dist/cjs/push/pb/AssetData.js +208 -0
  23. package/dist/cjs/push/pb/KlineData.js +184 -0
  24. package/dist/cjs/push/pb/OptionTopData.js +427 -0
  25. package/dist/cjs/push/pb/OrderStatusData.js +592 -0
  26. package/dist/cjs/push/pb/OrderTransactionData.js +256 -0
  27. package/dist/cjs/push/pb/PositionData.js +316 -0
  28. package/dist/cjs/push/pb/PushData.js +219 -0
  29. package/dist/cjs/push/pb/QuoteBBOData.js +160 -0
  30. package/dist/cjs/push/pb/QuoteBasicData.js +329 -0
  31. package/dist/cjs/push/pb/QuoteData.js +507 -0
  32. package/dist/cjs/push/pb/QuoteDepthData.js +220 -0
  33. package/dist/cjs/push/pb/Request.js +278 -0
  34. package/dist/cjs/push/pb/Response.js +97 -0
  35. package/dist/cjs/push/pb/SocketCommon.js +86 -0
  36. package/dist/cjs/push/pb/StockTopData.js +199 -0
  37. package/dist/cjs/push/pb/TickData.js +202 -0
  38. package/dist/cjs/push/pb/TradeTickData.js +308 -0
  39. package/dist/cjs/push/pb/index.js +49 -0
  40. package/dist/cjs/push/proto-message.js +135 -0
  41. package/dist/cjs/push/push-client.js +361 -163
  42. package/dist/cjs/push/push-message.js +8 -60
  43. package/dist/cjs/push/varint.js +76 -0
  44. package/dist/cjs/quote/index.js +3 -2
  45. package/dist/cjs/quote/quote-client.js +440 -94
  46. package/dist/cjs/signer/signer.js +10 -10
  47. package/dist/cjs/trade/trade-client.js +197 -62
  48. package/dist/esm/client/api-request.js +14 -8
  49. package/dist/esm/client/api-response.js +22 -3
  50. package/dist/esm/client/case-convert.js +31 -0
  51. package/dist/esm/client/http-client.js +48 -22
  52. package/dist/esm/client/index.js +3 -2
  53. package/dist/esm/config/client-config.js +131 -51
  54. package/dist/esm/config/domain.js +20 -2
  55. package/dist/esm/config/index.js +2 -2
  56. package/dist/esm/index.js +1 -1
  57. package/dist/esm/model/contract.js +1 -2
  58. package/dist/esm/model/enums.js +87 -6
  59. package/dist/esm/model/order-helpers.js +9 -9
  60. package/dist/esm/model/order-status.js +43 -0
  61. package/dist/esm/model/order.js +5 -2
  62. package/dist/esm/model/position.js +1 -2
  63. package/dist/esm/model/quote-requests.js +10 -0
  64. package/dist/esm/model/quote.js +6 -0
  65. package/dist/esm/model/trade-requests.js +12 -0
  66. package/dist/esm/model/trade.js +1 -0
  67. package/dist/esm/push/index.js +4 -2
  68. package/dist/esm/push/pb/AssetData.js +205 -0
  69. package/dist/esm/push/pb/KlineData.js +181 -0
  70. package/dist/esm/push/pb/OptionTopData.js +424 -0
  71. package/dist/esm/push/pb/OrderStatusData.js +589 -0
  72. package/dist/esm/push/pb/OrderTransactionData.js +253 -0
  73. package/dist/esm/push/pb/PositionData.js +313 -0
  74. package/dist/esm/push/pb/PushData.js +216 -0
  75. package/dist/esm/push/pb/QuoteBBOData.js +157 -0
  76. package/dist/esm/push/pb/QuoteBasicData.js +326 -0
  77. package/dist/esm/push/pb/QuoteData.js +504 -0
  78. package/dist/esm/push/pb/QuoteDepthData.js +217 -0
  79. package/dist/esm/push/pb/Request.js +275 -0
  80. package/dist/esm/push/pb/Response.js +94 -0
  81. package/dist/esm/push/pb/SocketCommon.js +83 -0
  82. package/dist/esm/push/pb/StockTopData.js +196 -0
  83. package/dist/esm/push/pb/TickData.js +199 -0
  84. package/dist/esm/push/pb/TradeTickData.js +305 -0
  85. package/dist/esm/push/pb/index.js +25 -0
  86. package/dist/esm/push/proto-message.js +127 -0
  87. package/dist/esm/push/push-client.js +329 -164
  88. package/dist/esm/push/push-message.js +7 -56
  89. package/dist/esm/push/varint.js +72 -0
  90. package/dist/esm/quote/index.js +2 -2
  91. package/dist/esm/quote/quote-client.js +439 -94
  92. package/dist/esm/signer/signer.js +10 -10
  93. package/dist/esm/trade/trade-client.js +197 -62
  94. package/dist/types/client/api-request.d.ts +12 -11
  95. package/dist/types/client/api-response.d.ts +15 -7
  96. package/dist/types/client/case-convert.d.ts +16 -0
  97. package/dist/types/client/http-client.d.ts +26 -14
  98. package/dist/types/client/index.d.ts +3 -2
  99. package/dist/types/config/client-config.d.ts +29 -13
  100. package/dist/types/config/domain.d.ts +9 -0
  101. package/dist/types/config/index.d.ts +2 -2
  102. package/dist/types/index.d.ts +1 -1
  103. package/dist/types/model/contract.d.ts +13 -29
  104. package/dist/types/model/enums.d.ts +60 -6
  105. package/dist/types/model/order-helpers.d.ts +21 -20
  106. package/dist/types/model/order-status.d.ts +14 -0
  107. package/dist/types/model/order.d.ts +101 -55
  108. package/dist/types/model/position.d.ts +26 -24
  109. package/dist/types/model/quote-requests.d.ts +344 -0
  110. package/dist/types/model/quote.d.ts +572 -0
  111. package/dist/types/model/trade-requests.d.ts +195 -0
  112. package/dist/types/model/trade.d.ts +235 -0
  113. package/dist/types/push/callbacks.d.ts +32 -51
  114. package/dist/types/push/index.d.ts +5 -3
  115. package/dist/types/push/pb/AssetData.d.ts +47 -0
  116. package/dist/types/push/pb/KlineData.d.ts +43 -0
  117. package/dist/types/push/pb/OptionTopData.d.ts +76 -0
  118. package/dist/types/push/pb/OrderStatusData.d.ts +100 -0
  119. package/dist/types/push/pb/OrderTransactionData.d.ts +51 -0
  120. package/dist/types/push/pb/PositionData.d.ts +63 -0
  121. package/dist/types/push/pb/PushData.d.ts +46 -0
  122. package/dist/types/push/pb/QuoteBBOData.d.ts +35 -0
  123. package/dist/types/push/pb/QuoteBasicData.d.ts +66 -0
  124. package/dist/types/push/pb/QuoteData.d.ts +94 -0
  125. package/dist/types/push/pb/QuoteDepthData.d.ts +37 -0
  126. package/dist/types/push/pb/Request.d.ts +44 -0
  127. package/dist/types/push/pb/Response.d.ts +30 -0
  128. package/dist/types/push/pb/SocketCommon.d.ts +64 -0
  129. package/dist/types/push/pb/StockTopData.d.ts +37 -0
  130. package/dist/types/push/pb/TickData.d.ts +44 -0
  131. package/dist/types/push/pb/TradeTickData.d.ts +53 -0
  132. package/dist/types/push/pb/index.d.ts +39 -0
  133. package/dist/types/push/proto-message.d.ts +33 -0
  134. package/dist/types/push/push-client.d.ts +100 -68
  135. package/dist/types/push/push-message.d.ts +7 -147
  136. package/dist/types/push/varint.d.ts +23 -0
  137. package/dist/types/quote/index.d.ts +2 -2
  138. package/dist/types/quote/quote-client.d.ts +154 -47
  139. package/dist/types/signer/signer.d.ts +6 -6
  140. package/dist/types/trade/trade-client.d.ts +106 -38
  141. package/package.json +11 -6
@@ -1,39 +1,9 @@
1
1
  /**
2
- * 推送消息类型定义和数据结构
2
+ * 推送消息类型定义
3
3
  *
4
- * 定义 WebSocket 推送消息的类型、主题和数据结构,
5
- * 使用 JSON 序列化/反序列化(简化替代 Protobuf)。
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
+ }
@@ -1,4 +1,4 @@
1
1
  /**
2
- * 行情模块导出
2
+ * Quote module exports
3
3
  */
4
- export { QuoteClient } from './quote-client';
4
+ export { QuoteClient, parseOptionIdentifier } from './quote-client';