@tigeropenapi/tigeropen 0.4.0 → 0.4.5

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 (46) hide show
  1. package/dist/cjs/client/case-convert.js +4 -3
  2. package/dist/cjs/client/http-client.js +122 -5
  3. package/dist/cjs/config/client-config.js +56 -12
  4. package/dist/cjs/config/index.js +3 -1
  5. package/dist/cjs/config/token-manager.js +54 -4
  6. package/dist/cjs/index.js +51 -2
  7. package/dist/cjs/push/push-client.js +40 -15
  8. package/dist/cjs/quote/quote-client.js +14 -2
  9. package/dist/cjs/trade/trade-client.js +40 -2
  10. package/dist/esm/client/api-request.js +1 -1
  11. package/dist/esm/client/api-response.js +1 -1
  12. package/dist/esm/client/case-convert.js +4 -3
  13. package/dist/esm/client/http-client.js +127 -10
  14. package/dist/esm/client/index.js +6 -6
  15. package/dist/esm/config/client-config.js +59 -15
  16. package/dist/esm/config/index.js +4 -3
  17. package/dist/esm/config/token-manager.js +55 -5
  18. package/dist/esm/index.js +15 -1
  19. package/dist/esm/logger/index.js +1 -1
  20. package/dist/esm/model/contract-helpers.js +1 -1
  21. package/dist/esm/model/order-helpers.js +1 -1
  22. package/dist/esm/model/order-status.js +1 -1
  23. package/dist/esm/push/index.js +5 -5
  24. package/dist/esm/push/pb/PushData.js +11 -11
  25. package/dist/esm/push/pb/QuoteBasicData.js +1 -1
  26. package/dist/esm/push/pb/Response.js +1 -1
  27. package/dist/esm/push/pb/index.js +17 -17
  28. package/dist/esm/push/proto-message.js +3 -3
  29. package/dist/esm/push/push-client.js +47 -22
  30. package/dist/esm/quote/index.js +1 -1
  31. package/dist/esm/quote/quote-client.js +16 -4
  32. package/dist/esm/signer/index.js +2 -2
  33. package/dist/esm/trade/index.js +1 -1
  34. package/dist/esm/trade/trade-client.js +43 -5
  35. package/dist/types/client/case-convert.d.ts +3 -1
  36. package/dist/types/client/http-client.d.ts +32 -1
  37. package/dist/types/config/client-config.d.ts +16 -1
  38. package/dist/types/config/index.d.ts +2 -0
  39. package/dist/types/config/token-manager.d.ts +27 -3
  40. package/dist/types/index.d.ts +22 -1
  41. package/dist/types/model/trade-requests.d.ts +65 -0
  42. package/dist/types/model/trade.d.ts +102 -11
  43. package/dist/types/push/push-client.d.ts +5 -3
  44. package/dist/types/quote/quote-client.d.ts +3 -1
  45. package/dist/types/trade/trade-client.d.ts +15 -4
  46. package/package.json +2 -2
@@ -96,6 +96,8 @@ export interface OrderIdResult {
96
96
  export interface Transaction {
97
97
  id?: number;
98
98
  orderId?: number;
99
+ /** Numeric account ID (wire: accountId). */
100
+ accountId?: number;
99
101
  account?: string;
100
102
  symbol?: string;
101
103
  secType?: string;
@@ -103,12 +105,24 @@ export interface Transaction {
103
105
  currency?: string;
104
106
  identifier?: string;
105
107
  action?: string;
108
+ /** Order/commission price. */
106
109
  price?: number;
110
+ /** Fill price (wire: filledPrice). */
111
+ filledPrice?: number;
107
112
  quantity?: number;
108
113
  filledQuantity?: number;
114
+ /** Scale for filledQuantity (wire: filledQuantityScale). */
115
+ filledQuantityScale?: number;
116
+ /** Order amount. */
109
117
  amount?: number;
118
+ /** Fill amount (wire: filledAmount). */
119
+ filledAmount?: number;
110
120
  commission?: number;
111
- transactedAt?: number;
121
+ /** Fill timestamp string, format "YYYY-MM-DD HH:MM:SS" (server returns string, not number). */
122
+ transactedAt?: string;
123
+ /** Fill time as Unix millisecond timestamp (wire: transactionTime). */
124
+ transactionTime?: number;
125
+ /** Legacy time field. */
112
126
  time?: number;
113
127
  }
114
128
  export interface ManagedAccount {
@@ -154,15 +168,25 @@ export interface ForexOrderResult {
154
168
  rate?: number;
155
169
  submitTime?: number;
156
170
  }
171
+ /** Segment fund available item (segment_fund_available response). */
172
+ export interface SegmentFundAvailableItem {
173
+ fromSegment?: string;
174
+ currency?: string;
175
+ amount?: number;
176
+ }
177
+ /** Segment fund transfer/cancel response. */
157
178
  export interface SegmentFund {
158
- id?: string;
159
- status?: string;
179
+ id?: string | number;
160
180
  fromSegment?: string;
161
181
  toSegment?: string;
162
182
  currency?: string;
163
183
  amount?: number;
164
- availableAmount?: number;
165
- submitTime?: number;
184
+ status?: string;
185
+ statusDesc?: string;
186
+ message?: string;
187
+ settledAt?: number;
188
+ createdAt?: number;
189
+ updatedAt?: number;
166
190
  }
167
191
  export interface SegmentFundHistoryItem {
168
192
  id?: number;
@@ -171,8 +195,10 @@ export interface SegmentFundHistoryItem {
171
195
  currency?: string;
172
196
  amount?: number;
173
197
  status?: string;
174
- submitTime?: number;
175
- updateTime?: number;
198
+ statusDesc?: string;
199
+ settledAt?: number;
200
+ createdAt?: number;
201
+ updatedAt?: number;
176
202
  }
177
203
  export interface FundDetails {
178
204
  id?: number;
@@ -187,13 +213,18 @@ export interface FundDetails {
187
213
  externalId?: string;
188
214
  }
189
215
  export interface FundingHistoryItem {
190
- id?: string;
191
- segType?: string;
216
+ id?: number;
217
+ refId?: string;
218
+ type?: number;
219
+ typeDesc?: string;
192
220
  currency?: string;
193
221
  amount?: number;
222
+ businessDate?: string;
194
223
  status?: string;
195
- submitTime?: number;
196
- updateTime?: number;
224
+ statusDesc?: string;
225
+ completedStatus?: boolean;
226
+ createdAt?: number;
227
+ updatedAt?: number;
197
228
  }
198
229
  export interface TransferItem {
199
230
  symbol?: string;
@@ -233,3 +264,63 @@ export interface PositionTransferExternalRecord {
233
264
  submitTime?: number;
234
265
  updateTime?: number;
235
266
  }
267
+ /** 行权检验结果 */
268
+ export interface OptionExerciseCheckResult {
269
+ availableQuantity: number;
270
+ position: number;
271
+ stkPosition: number;
272
+ stkPositionChange: number;
273
+ stkPositionBefore: number;
274
+ stkPositionAfter: number;
275
+ symbol?: string;
276
+ }
277
+ /** 可行权期权持仓条目 */
278
+ export interface OptionExercisePosition {
279
+ contractId?: number;
280
+ symbol?: string;
281
+ stkSymbol?: string;
282
+ expireDate?: string;
283
+ strike?: string;
284
+ callPut?: string;
285
+ market?: string;
286
+ accountId?: number;
287
+ position: number;
288
+ availableQuantity: number;
289
+ }
290
+ /** 可行权持仓分页结果 */
291
+ export interface OptionExercisePositionPageResult {
292
+ pageNum: number;
293
+ pageSize: number;
294
+ itemCount: number;
295
+ pageCount: number;
296
+ items?: OptionExercisePosition[];
297
+ }
298
+ /** 行权申请记录条目 */
299
+ export interface OptionExerciseRecord {
300
+ id?: number;
301
+ contractId?: number;
302
+ symbol?: string;
303
+ stkSymbol?: string;
304
+ expireDate?: string;
305
+ strike?: string;
306
+ callPut?: string;
307
+ /** Exercise | Expire */
308
+ type?: string;
309
+ requestQuantity: number;
310
+ quantity: number;
311
+ /** New | Cancel | Success | Fail */
312
+ status?: string;
313
+ executingDate?: string;
314
+ itmRate: number;
315
+ isForce: boolean;
316
+ reason?: string;
317
+ accountId?: number;
318
+ }
319
+ /** 行权记录分页结果 */
320
+ export interface OptionExerciseRecordPageResult {
321
+ pageNum: number;
322
+ pageSize: number;
323
+ itemCount: number;
324
+ pageCount: number;
325
+ items?: OptionExerciseRecord[];
326
+ }
@@ -44,10 +44,12 @@ export declare class PushClient {
44
44
  private useFullTick;
45
45
  private socket;
46
46
  private _state;
47
+ /** Whether this connect attempt already fell back to unverified TLS */
48
+ private tlsFallback;
47
49
  private callbacks;
48
50
  /** Subscription state: subject -> Set<symbol> */
49
51
  private subscriptions;
50
- /** Account-level subscriptions */
52
+ /** Account-level subscriptions: subject -> account string used at subscribe time */
51
53
  private accountSubs;
52
54
  private heartbeatTimer;
53
55
  private reconnectTimer;
@@ -166,6 +168,6 @@ export declare class PushClient {
166
168
  unsubscribeTransaction(): void;
167
169
  /** Get current market data subscriptions */
168
170
  getSubscriptions(): Map<SubjectType, string[]>;
169
- /** Get account-level subscriptions */
170
- getAccountSubscriptions(): SubjectType[];
171
+ /** Get account-level subscriptions: subject -> account */
172
+ getAccountSubscriptions(): Map<SubjectType, string>;
171
173
  }
@@ -124,7 +124,9 @@ export declare class QuoteClient {
124
124
  getFutureBars(req: FutureBarsRequest): Promise<FutureKline[]>;
125
125
  /** Client-side paginated futures K-line fetch. */
126
126
  getFutureBarsByPage(req: FutureBarsByPageRequest): Promise<FutureKlineItem[]>;
127
- /** Futures tick trades. wire: future_tick (API v3.0) */
127
+ /** Futures tick trades. wire: future_tick (API v3.0)
128
+ * Server returns {contractCode, items:[...]}; unwrap items and backfill contractCode.
129
+ * endIndex defaults to 30 when not set (consistent with Python/Go SDK). */
128
130
  getFutureTradeTicks(req: FutureTradeTicksRequest): Promise<FutureTradeTickItem[]>;
129
131
  /** Futures depth. wire: future_depth */
130
132
  getFutureDepth(req: FutureDepthRequest): Promise<FutureDepth[]>;
@@ -11,8 +11,8 @@ import type { HttpClient } from '../client/http-client';
11
11
  import type { OrderRequest, Order } from '../model/order';
12
12
  import type { Contract } from '../model/contract';
13
13
  import type { Position } from '../model/position';
14
- import type { Asset, PrimeAsset, PreviewResult, PlaceOrderResult, OrderIdResult, Transaction, ManagedAccount, AnalyticsAsset, AggregateAssets, EstimateTradableQuantity, ForexOrderResult, SegmentFund, SegmentFundHistoryItem, FundDetails, FundingHistoryItem, PositionTransferRecord, PositionTransferDetail, PositionTransferExternalRecord } from '../model/trade';
15
- import type { OrdersRequest, GetOrderRequest, OrderTransactionsRequest, PositionsRequest, AssetsRequest, ManagedAccountsRequest, DerivativeContractsRequest, AnalyticsAssetRequest, AggregateAssetsRequest, EstimateTradableQuantityRequest, ForexOrderRequest, SegmentFundRequest, FundDetailsRequest, FundingHistoryRequest, PositionTransferRequest, PositionTransferRecordsRequest, PositionTransferDetailRequest, PositionTransferExternalRecordsRequest } from '../model/trade-requests';
14
+ import type { Asset, PrimeAsset, PreviewResult, PlaceOrderResult, OrderIdResult, Transaction, ManagedAccount, AnalyticsAsset, AggregateAssets, EstimateTradableQuantity, ForexOrderResult, SegmentFund, SegmentFundAvailableItem, SegmentFundHistoryItem, FundDetails, FundingHistoryItem, PositionTransferRecord, PositionTransferDetail, PositionTransferExternalRecord, OptionExerciseCheckResult, OptionExercisePositionPageResult, OptionExerciseRecordPageResult } from '../model/trade';
15
+ import type { OrdersRequest, GetOrderRequest, OrderTransactionsRequest, PositionsRequest, AssetsRequest, ManagedAccountsRequest, DerivativeContractsRequest, AnalyticsAssetRequest, AggregateAssetsRequest, EstimateTradableQuantityRequest, ForexOrderRequest, SegmentFundRequest, FundDetailsRequest, FundingHistoryRequest, PositionTransferRequest, PositionTransferRecordsRequest, PositionTransferDetailRequest, PositionTransferExternalRecordsRequest, OptionExerciseCheckRequest, OptionExercisePositionRequest, OptionExerciseSubmitRequest, OptionExerciseRecordsRequest, OptionExerciseCancelRequest } from '../model/trade-requests';
16
16
  /** Trading client wrapping all trade-related APIs. */
17
17
  export declare class TradeClient {
18
18
  private httpClient;
@@ -91,7 +91,7 @@ export declare class TradeClient {
91
91
  /** Place forex order (sub-account base-currency swap). */
92
92
  placeForexOrder(req: ForexOrderRequest): Promise<ForexOrderResult | undefined>;
93
93
  /** Query amount available for inter-segment transfer. Returns array. */
94
- getSegmentFundAvailable(req: SegmentFundRequest): Promise<SegmentFund[]>;
94
+ getSegmentFundAvailable(req: SegmentFundRequest): Promise<SegmentFundAvailableItem[]>;
95
95
  /** Query segment fund transfer history. Server returns plain array (no items wrapper). */
96
96
  getSegmentFundHistory(req: SegmentFundRequest): Promise<SegmentFundHistoryItem[]>;
97
97
  /** Execute an inter-segment fund transfer. */
@@ -100,7 +100,8 @@ export declare class TradeClient {
100
100
  cancelSegmentFund(req: SegmentFundRequest): Promise<SegmentFund | undefined>;
101
101
  /** Fund-movement details (by segment / currency / fund-type). */
102
102
  getFundDetails(req: FundDetailsRequest): Promise<FundDetails[]>;
103
- /** Funding history (wire method: `transfer_fund`). */
103
+ /** Funding history (wire method: `transfer_fund`).
104
+ * Server returns bare list (no items wrapper). */
104
105
  getFundingHistory(req: FundingHistoryRequest): Promise<FundingHistoryItem[]>;
105
106
  /**
106
107
  * Internal position transfer (cross sub-account).
@@ -113,4 +114,14 @@ export declare class TradeClient {
113
114
  getPositionTransferDetail(req: PositionTransferDetailRequest): Promise<PositionTransferDetail | undefined>;
114
115
  /** Query external position transfer records (DWAC / FOP / etc.). */
115
116
  getPositionTransferExternalRecords(req: PositionTransferExternalRecordsRequest): Promise<PositionTransferExternalRecord[]>;
117
+ /** 行权检验:预估行权/作废后正股持仓变化 (wire: option_exercise_check) */
118
+ checkOptionExercise(req: OptionExerciseCheckRequest): Promise<OptionExerciseCheckResult | undefined>;
119
+ /** 查询可行权持仓列表 (wire: option_exercise_position) */
120
+ getOptionExercisePositions(req: OptionExercisePositionRequest): Promise<OptionExercisePositionPageResult | undefined>;
121
+ /** 提交行权/作废申请 (wire: option_exercise_submit) */
122
+ submitOptionExercise(req: OptionExerciseSubmitRequest): Promise<boolean>;
123
+ /** 分页查询行权记录 (wire: option_exercise_record) */
124
+ getOptionExerciseRecords(req: OptionExerciseRecordsRequest): Promise<OptionExerciseRecordPageResult | undefined>;
125
+ /** 撤销行权申请 (wire: option_exercise_cancel) */
126
+ cancelOptionExercise(req: OptionExerciseCancelRequest): Promise<boolean>;
116
127
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tigeropenapi/tigeropen",
3
- "version": "0.4.0",
3
+ "version": "0.4.5",
4
4
  "description": "Tiger Brokers OpenAPI TypeScript SDK for market data, trading, and real-time push",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -24,7 +24,7 @@
24
24
  "url": "https://github.com/tigerfintech/openapi-typescript-sdk/issues"
25
25
  },
26
26
  "scripts": {
27
- "build": "tsc -p tsconfig.json && tsc -p tsconfig.cjs.json",
27
+ "build": "tsc -p tsconfig.json && tsc -p tsconfig.cjs.json && node scripts/fix-esm-imports.mjs",
28
28
  "build:esm": "tsc -p tsconfig.json",
29
29
  "build:cjs": "tsc -p tsconfig.cjs.json",
30
30
  "prepublishOnly": "npm run build",