@huskly/ibkr-client 2.2.0 → 2.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 CHANGED
@@ -29,8 +29,11 @@ wiki setup step and are git-ignored.
29
29
 
30
30
  ## Setup
31
31
 
32
+ This project uses Yarn 4 through Corepack. Enable Corepack once, then install:
33
+
32
34
  ```bash
33
- yarn install --frozen-lockfile
35
+ corepack enable
36
+ yarn install --immutable
34
37
  ```
35
38
 
36
39
  Provide the account-specific secrets, either by copying the template:
@@ -99,6 +102,29 @@ validated at runtime. Its broker-neutral account API includes:
99
102
  makes the read throw. `presentSummaryFieldNames` lists the sorted key NAMES present in the
100
103
  summary response, names only and never values, so an operator can confirm the live schema
101
104
  without seeing amounts. This method remains a separate read from `getAccountBalances()`.
105
+ - `getContractTransactionEvidence({ conids, currency, days, accountId? })` for the transaction
106
+ activity IBKR states about NAMED contracts. This read never consults held positions, so it
107
+ reaches a contract the account no longer holds - the shape an assigned, exercised, or expired
108
+ option leaves behind. `fetchTransactionHistory()` cannot do this: it loops over held conids only,
109
+ so a gone contract is unreachable through it. The caller states the currency and this read never
110
+ supplies a default, because IBKR converts every figure into the requested currency and a wrong
111
+ currency returns a converted number that looks exactly like a real one. It returns the account
112
+ id, one client-minted `observedAtEpochMillis`, the requested conids, currency, and window, and
113
+ one record for each row IBKR returned. Each record echoes `conid`, `accountId`, `date`,
114
+ `rawDate`, `type`, `description`, `currency`, `amount`, `quantity`, `price`, and `fxRate` exactly
115
+ as the broker stated them. Provider text is verbatim: `type` and `description` keep their own
116
+ case AND their own padding, because they are the only place IBKR names an assignment, and
117
+ trimming them would change what a consumer classifies. A field the broker did not state is
118
+ `null`, a stated zero remains `0`, and a stated whitespace-only string stays that string; a value
119
+ that is not a string reads `null`. `presentFieldNames` lists the sorted key NAMES the row
120
+ carried, names only and never values. The read refuses an empty conid list, a conid that is not a
121
+ positive safe integer, a blank currency, and a window outside 1 through 90 days; it also refuses
122
+ a response that states no transaction ARRAY, because an error envelope, an empty object, or an
123
+ explicit `null` is an unknown broker state and must never reach a consumer looking exactly like a
124
+ completed read that found nothing. A stated empty array is a real answer and is reported as one.
125
+ A missing field inside a row never makes it throw. It proves no event and infers nothing: an empty list
126
+ is not proof that nothing happened, and the CONSUMER decides whether a row states an assignment,
127
+ an exercise, or an expiration.
102
128
  - `getOptionSeriesReference(conid)` for one reference read of ONE exact option contract, and
103
129
  `getUnderlyingInstrumentReference(conid)` for the same read of an underlying contract. Both read
104
130
  `iserver/contract/{conid}/info`. Use this endpoint, not the conid-only `iserver/secdef/info`
@@ -660,25 +686,29 @@ to guard against committed secrets.
660
686
 
661
687
  `submitDerivativeOrderGraph(...)` is the bounded (one through eight member) bracket API for
662
688
  broker-hosted derivative protection. A graph may combine atomic two-leg LIMIT combos with
663
- single-option LIMIT, STOP, and MARKET members. Every node has a caller-stable `memberId`; exactly
664
- one root carries `rootClientOrderId`. Each later node uses `parentMemberId` to name a member that
665
- comes before it. IBKR receives a deterministic `cOID` for every node. A non-root node also receives
666
- the deterministic `parentId` of its exact parent. This means that a graph can contain children,
667
- grandchildren, and deeper descendants.
668
- Accepted and fail-closed results retain each node's immutable request evidence (contracts/conids,
669
- signed ratios, side, quantity, TIF, session, and prices), stable depth role, parent member/broker
670
- IDs, and every broker order ID. Conids remain correlation evidence only; callers still own durable
671
- semantic option identity.
689
+ single-option LIMIT, STOP, and MARKET members.
690
+
691
+ Each node has a caller-stable `memberId`. `clientOrderId` is optional on each node. When you set
692
+ it, the value is the exact IBKR `cOID`. It must be trimmed, non-empty, and at most 64 characters.
693
+ The effective identity must be unique across the graph. The root node's explicit `clientOrderId`
694
+ must match `rootClientOrderId`. When you omit `clientOrderId`, the client keeps the fallback:
695
+ `rootClientOrderId` for the root, and `rootClientOrderId:memberId` for later nodes.
696
+
697
+ Explicit values flow unchanged through tickets, warning evidence, and recovery. The client keeps
698
+ the exact request and the exact identities it used. Accepted and fail-closed results retain each
699
+ node's immutable request evidence, stable depth role, parent member/broker IDs, and every broker
700
+ order ID. Conids remain correlation evidence only; callers still own durable semantic option
701
+ identity.
672
702
 
673
703
  Warnings are never acknowledged automatically. A warning result contains a JSON-safe
674
704
  `continuation` with the exact reply ID, full graph request, and all correlation accumulated so far;
675
705
  persist it before calling `acknowledgeDerivativeOrderGraphWarning(...)`. Each placement or reply is
676
706
  attempted once after revalidating the account's authentication and competing-session safety;
677
- chained and unknown warnings remain pending for the caller, and mixed, partial,
678
- duplicated, terminal, malformed, or ambiguous acknowledgements return `recovery_required`. Broker
679
- IDs from ambiguous acknowledgements are retained as uncorrelated responses rather than assigned to
680
- nodes by position. Submission acknowledgements are correlated only by the echoed `local_order_id`
681
- or `cOID`. Nested child acknowledgements under `children` or `childOrders` are flattened before
707
+ chained and unknown warnings remain pending for the caller, and mixed, partial, duplicated,
708
+ terminal, malformed, or ambiguous acknowledgements return `recovery_required`. Broker IDs from
709
+ ambiguous acknowledgements are retained as uncorrelated responses rather than assigned to nodes by
710
+ position. Submission acknowledgements are correlated only by the echoed `local_order_id` or
711
+ `cOID`. Nested child acknowledgements under `children` or `childOrders` are flattened before
682
712
  correlation, so a parent-only top-level array does not hide live child broker IDs.
683
713
  `accepted` requires one distinct non-null broker order ID for every requested graph member. If any
684
714
  member still has a null order ID after correlation, the result is `recovery_required` and the reason
@@ -692,8 +722,8 @@ known member broker ID, and terminal evidence keyed by the durable root client I
692
722
  normal active and filtered filled, canceled, and inactive order snapshots before it uses recent
693
723
  execution evidence. It queries an exact broker ID even if execution history is unavailable. When the
694
724
  caller supplies a durable broker ID, the exact status read can identify only that member without a
695
- client order ID. The account and broker ID must match, and the complete ticket must match exactly one
696
- requested node. Conflicting identity or listing evidence still fails closed.
725
+ client order ID. The account and broker ID must match, and the complete ticket must match exactly
726
+ one requested node. Conflicting identity or listing evidence still fails closed.
697
727
  It requires complete active and filtered terminal snapshot markers, traverses both nested child
698
728
  collection aliases, and rejects contradictory aliases within a broker response before correlation.
699
729
  It correlates the root by the transmitted client ID and its complete ticket. It correlates each
@@ -701,13 +731,30 @@ descendant by the deterministic client order ID of its exact parent, plus the co
701
731
  combo legs, order type, side, quantity, applicable signed limit or stop price, TIF, and
702
732
  regular/overnight session. IBKR can report combo legs in a different order on each endpoint, so
703
733
  recovery compares the complete signed `(conid, ratio)` multiset without using response order.
704
- Recovery
705
- accepts terminal members when the evidence is
706
- non-ambiguous and complete, preserves broker terminal states for each member, and fails closed when
707
- evidence is partial, duplicated, ambiguous, unknown, includes an unexpected attached order, or cannot
708
- prove required account, broker ID, or parent identity links.
734
+ Recovery accepts terminal members when the evidence is non-ambiguous and complete, preserves broker
735
+ terminal states for each member, and fails closed when evidence is partial, duplicated, ambiguous,
736
+ unknown, includes an unexpected attached order, or cannot prove required account, broker ID, or
737
+ parent identity links.
709
738
  No recoveries involve writes.
710
739
  Failed terminal snapshot lookups force `recovery_required`; trade-linked members whose exact status
711
740
  lookup fails remain preserved as uncorrelated evidence instead of being discarded.
712
741
  This recovery API is the safety boundary: consumers should not bypass it with the private raw request
713
742
  client.
743
+
744
+ Build the request with every identity in place before submission:
745
+
746
+ ```ts
747
+ const request = {
748
+ accountId,
749
+ rootClientOrderId: "hg-root",
750
+ nodes: [
751
+ { ...entry, memberId: "entry", clientOrderId: "hg-root" },
752
+ {
753
+ ...profit,
754
+ memberId: "profit",
755
+ parentMemberId: "entry",
756
+ clientOrderId: "hg-profit",
757
+ },
758
+ ],
759
+ };
760
+ ```
@@ -1,5 +1,5 @@
1
1
  import type { IbkrOauth1Config } from "./oauthConfig.js";
2
- import type { AccountBalances, AccountSettlementEvidence, OptionSeriesReferenceEvidence, UnderlyingInstrumentReferenceEvidence, ActiveDerivativeOrder, AuthStatus, IbkrSessionEvidence, IbkrSessionLifecycleClient, BrokerAccountOrders, BrokerClient, BrokerInstrument, BrokerInstrumentSearchProjection, BrokerOrdersOptions, BrokerPosition, BrokerQuote, BrokerQuoteOptions, BrokerQuoteRequest, BrokerTransactionHistory, BrokerErrorDetail, DerivativeContract, DerivativeContractQuery, DerivativeComboExecutionRequest, DerivativeComboReconciliation, DerivativeComboReconciliationRequest, DerivativeComboPreviewRequest, DerivativeComboPreviewResult, DerivativeContingentChildOrderRequest, DerivativeContingentParentOrderRequest, DerivativeDiscoveryClient, DerivativeExecutionClient, DerivativeExecution, DerivativeExecutionQuery, DerivativeMultiOrderResult, DerivativeOrderGraphLookup, DerivativeOrderGraphRequest, DerivativeOrderGraphResult, DerivativeOrderGraphWarningContinuation, DerivativeOrderCancellationResult, DerivativeOrderCancelRequest, DerivativeOrderLifecycle, DerivativeOrderLookup, DerivativeOrderSubmissionResult, DerivativeSingleOrderRequest, DerivativePreviewClient, DerivativeExpiry, DerivativeExpiryQuery, DerivativeQuote, DerivativeReferenceQuote, OptionChainSnapshot, OptionContract, OptionDefinitionCache, OptionDiscoveryTelemetry, OptionMarketQuote, OptionStrikeRange, OptionQuoteRequest, OptionRight, PriceHistoryContractCandidate, PriceHistoryRequest, PriceHistoryResult, PriceHistoryTelemetry, TradingDiagnostics } from "../types.js";
2
+ import type { AccountBalances, AccountSettlementEvidence, ContractTransactionEvidence, OptionSeriesReferenceEvidence, UnderlyingInstrumentReferenceEvidence, ActiveDerivativeOrder, AuthStatus, IbkrSessionEvidence, IbkrSessionLifecycleClient, BrokerAccountOrders, BrokerClient, BrokerInstrument, BrokerInstrumentSearchProjection, BrokerOrdersOptions, BrokerPosition, BrokerQuote, BrokerQuoteOptions, BrokerQuoteRequest, BrokerTransactionHistory, BrokerErrorDetail, DerivativeContract, DerivativeContractQuery, DerivativeComboExecutionRequest, DerivativeComboReconciliation, DerivativeComboReconciliationRequest, DerivativeComboPreviewRequest, DerivativeComboPreviewResult, DerivativeContingentChildOrderRequest, DerivativeContingentParentOrderRequest, DerivativeDiscoveryClient, DerivativeExecutionClient, DerivativeExecution, DerivativeExecutionQuery, DerivativeMultiOrderResult, DerivativeOrderGraphLookup, DerivativeOrderGraphRequest, DerivativeOrderGraphResult, DerivativeOrderGraphWarningContinuation, DerivativeOrderCancellationResult, DerivativeOrderCancelRequest, DerivativeOrderLifecycle, DerivativeOrderLookup, DerivativeOrderSubmissionResult, DerivativeSingleOrderRequest, DerivativePreviewClient, DerivativeExpiry, DerivativeExpiryQuery, DerivativeQuote, DerivativeReferenceQuote, OptionChainSnapshot, OptionContract, OptionDefinitionCache, OptionDiscoveryTelemetry, OptionMarketQuote, OptionStrikeRange, OptionQuoteRequest, OptionRight, PriceHistoryContractCandidate, PriceHistoryRequest, PriceHistoryResult, PriceHistoryTelemetry, TradingDiagnostics } from "../types.js";
3
3
  import { type IbkrRequestSchedulerOptions, type IbkrRequestTelemetry } from "./requestScheduler.js";
4
4
  interface IbkrRequestInput {
5
5
  path: string;
@@ -272,6 +272,56 @@ export declare class IbkrClient implements BrokerClient, IbkrSessionLifecycleCli
272
272
  private fetchQuotes;
273
273
  /** Resolve equity/ETF symbols to IBKR contracts via `trsrv/stocks`. */
274
274
  searchInstruments(symbol: string, projection?: BrokerInstrumentSearchProjection): Promise<BrokerInstrument[]>;
275
+ /**
276
+ * Read the transaction activity IBKR states for named contracts, without ever
277
+ * asking which contracts the account still holds.
278
+ *
279
+ * {@link fetchTransactionHistory} loops over HELD conids, so a contract that
280
+ * left the account - assigned, exercised, or expired - can never be reached
281
+ * through it. The `pa/transactions` endpoint does not require a conid to be
282
+ * held: it answers for the conids it is given. This method gives it the conids
283
+ * the caller names, so the row of a gone contract stays reachable.
284
+ *
285
+ * The caller states the currency, and this method never supplies a default.
286
+ * IBKR converts every figure into the requested currency, so a wrong currency
287
+ * returns a converted number that looks exactly like a real one.
288
+ * {@link fetchTransactionHistory} reads it from the environment and falls back
289
+ * to `"USD"`; that habit is deliberately not repeated here.
290
+ *
291
+ * Every field is echoed as the broker stated it. A field the broker did not
292
+ * state reads `null`, a stated zero stays `0`, and `type` and `desc` keep
293
+ * their own case. A missing field never makes this method throw. Only an
294
+ * identity or a window this read could not ask about at all is refused.
295
+ *
296
+ * This method proves no event and infers nothing. An empty list is not proof
297
+ * that nothing happened. The CONSUMER, not this package, decides whether a row
298
+ * states an assignment, an exercise, or an expiration.
299
+ */
300
+ getContractTransactionEvidence(input: {
301
+ /** The conids to ask about. They need not be held. */
302
+ conids: readonly number[];
303
+ /** The currency IBKR must report in. Never defaulted. */
304
+ currency: string;
305
+ /** The window in days back from the broker's today. IBKR serves 1 through 90. */
306
+ days: number;
307
+ /** The account to ask for. Discovered when the caller states none. */
308
+ accountId?: string;
309
+ }): Promise<ContractTransactionEvidence>;
310
+ /**
311
+ * One provider string, echoed exactly as the broker wrote it.
312
+ *
313
+ * {@link trimmedString} is deliberately NOT used here. `type` and `desc` are the only place IBKR
314
+ * names an assignment, an exercise, or an expiration, and the public type states they are echoed
315
+ * exactly. Trimming would change what a consumer classifies and what an audit comparison sees,
316
+ * and a stated whitespace-only string is still a statement, never silence. A value that is not a
317
+ * string is not text the broker stated, so it reads `null`.
318
+ */
319
+ private verbatimString;
320
+ /**
321
+ * One `pa/transactions` row, echoed. Nothing here maps, classifies, or
322
+ * defaults a value; a field the broker did not state reads `null`.
323
+ */
324
+ private contractTransactionRecord;
275
325
  fetchTransactionHistory(startDate: Date, endDate: Date): Promise<BrokerTransactionHistory[]>;
276
326
  fetchOrders(options: BrokerOrdersOptions): Promise<BrokerAccountOrders[]>;
277
327
  private validateComboPreview;
@@ -1 +1 @@
1
- {"version":3,"file":"ibkrClient.d.ts","sourceRoot":"","sources":["../../src/ibkr/ibkrClient.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EACV,eAAe,EAEf,yBAAyB,EAGzB,6BAA6B,EAC7B,qCAAqC,EACrC,qBAAqB,EAGrB,UAAU,EACV,mBAAmB,EAEnB,0BAA0B,EAC1B,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,gCAAgC,EAGhC,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAElB,wBAAwB,EACxB,iBAAiB,EAGjB,kBAAkB,EAClB,uBAAuB,EACvB,+BAA+B,EAC/B,6BAA6B,EAC7B,oCAAoC,EACpC,6BAA6B,EAC7B,4BAA4B,EAC5B,qCAAqC,EAErC,sCAAsC,EACtC,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,EACnB,wBAAwB,EAGxB,0BAA0B,EAE1B,0BAA0B,EAE1B,2BAA2B,EAC3B,0BAA0B,EAC1B,uCAAuC,EACvC,iCAAiC,EAEjC,4BAA4B,EAC5B,wBAAwB,EACxB,qBAAqB,EAErB,+BAA+B,EAC/B,4BAA4B,EAE5B,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EAInB,cAAc,EACd,qBAAqB,EAGrB,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EAIX,6BAA6B,EAC7B,mBAAmB,EAEnB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAiCrB,OAAO,EAIL,KAAK,2BAA2B,EAChC,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAgY/B,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAwFD,MAAM,WAAW,sBAAsB;IACrC,0EAA0E;IAC1E,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,EAAE,IAAI,CAAC,2BAA2B,EAAE,eAAe,GAAG,aAAa,CAAC,CAAC;IACtF,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC3D,oFAAoF;IACpF,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACjE,0EAA0E;IAC1E,0BAA0B,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACvE;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;CAC/C;AAED,qFAAqF;AACrF,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,oDAAoD;AACpD,qBAAa,aAAc,SAAQ,KAAK;IAKpC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,QAAQ,EAAE,qBAAqB;IAL1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAG1B,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,qBAAqB,EACxC,OAAO,CAAC,EAAE,YAAY;CAMzB;AAED;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAG9C,QAAQ,CAAC,MAAM,EAAE,iBAAiB;gBADlC,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,iBAAiB,EAClC,OAAO,CAAC,EAAE,YAAY;CAKzB;AAED,sFAAsF;AACtF,qBAAa,6BAA8B,SAAQ,KAAK;IAGpD,QAAQ,CAAC,IAAI,EACX,oBAAoB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,mBAAmB;IACxF,QAAQ,CAAC,UAAU,EAAE,SAAS,6BAA6B,EAAE;gBAH7D,OAAO,EAAE,MAAM,EACN,IAAI,EACX,oBAAoB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,mBAAmB,EAC/E,UAAU,GAAE,SAAS,6BAA6B,EAAO;CAKrE;AAED,yFAAyF;AACzF,qBAAa,4BAA6B,SAAQ,KAAK;IAEnD,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;gBAJ3B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,EACpC,OAAO,CAAC,EAAE,YAAY;CAKzB;AAED;;;;;GAKG;AACH,qBAAa,UACX,YACE,YAAY,EACZ,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB;IAE3B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,WAAW,CAAC,CAAgB;IACpC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,0BAA0B,CAAoC;IACtE,OAAO,CAAC,gBAAgB,CAAC,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqD;IACrF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAoC;IAC1E,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAqD;IAC9F,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAG3C;IACJ,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAoD;IACxF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuB;IACxD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAC1C,OAAO,CAAC,iBAAiB,CAAoC;IAC7D,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAyC;IACjF,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAA+C;IAC1F,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwC;gBAE/D,MAAM,EAAE,gBAAgB,EAAE,OAAO,GAAE,iBAAsB;IAoBrE;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrB,0BAA0B,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAexF,qBAAqB,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBjF,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAkBlD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAKvB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAS7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWhB,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAcpC,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmCrE,sBAAsB,CAC1B,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,4BAA4B,CAAC;IAsBlC,qBAAqB,CACzB,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,+BAA+B,CAAC;IAkCrC,2BAA2B,CAC/B,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,+BAA+B,CAAC;IA6BrC,gCAAgC,CAAC,OAAO,EAAE;QAC9C,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,sCAAsC,CAAC;QAC/C,KAAK,EAAE,qCAAqC,CAAC;KAC9C,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAkDjC,0BAA0B,CAC9B,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,0BAA0B,CAAC;IAmBhC,sCAAsC,CAAC,KAAK,EAAE;QAClD,YAAY,EAAE,uCAAuC,CAAC;QACtD,SAAS,EAAE,IAAI,CAAC;KACjB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IA2BjC,2BAA2B,CAC/B,KAAK,EAAE,0BAA0B,EACjC,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,0BAA0B,CAAC;IAsLtC,OAAO,CAAC,6BAA6B;IAiCrC,OAAO,CAAC,uBAAuB;YAYjB,mCAAmC;IAsQjD,OAAO,CAAC,4BAA4B;IAOpC,OAAO,CAAC,kCAAkC;IAW1C,OAAO,CAAC,+BAA+B;IAmBvC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,yBAAyB;IA4CjC,OAAO,CAAC,kCAAkC;IAe1C,OAAO,CAAC,0BAA0B;IAyBlC,OAAO,CAAC,4BAA4B;IAQpC,OAAO,CAAC,0BAA0B;IAMlC,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,8BAA8B;IA6EtC,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,iCAAiC;IAQzC,OAAO,CAAC,2BAA2B;IAUnC,OAAO,CAAC,6BAA6B;IA6B/B,uBAAuB,CAAC,KAAK,EAAE;QACnC,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,IAAI,CAAC;KACjB,GAAG,OAAO,CAAC,+BAA+B,CAAC;IAsBtC,iCAAiC,CAAC,KAAK,EAAE;QAC7C,YAAY,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,mBAAmB,EAAE,MAAM,CAAA;SAAE,CAAC;QAClF,SAAS,EAAE,IAAI,CAAC;KACjB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAmCjC,wBAAwB,CAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;YAWtB,gCAAgC;IAoBxC,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IA2BpF,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IA6D/E,uBAAuB,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAkCxF,iCAAiC,CACrC,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,6BAA6B,CAAC;IA2BnC,qBAAqB,CACzB,KAAK,EAAE,4BAA4B,GAClC,OAAO,CAAC,iCAAiC,CAAC;IAoBvC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAa/B,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;IAoDpD;;;;;;;;;;;;;;OAcG;IACG,4BAA4B,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAuBxE;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB;IAgBzB,4EAA4E;IAC5E,OAAO,CAAC,iBAAiB;IAMzB,iFAAiF;IACjF,OAAO,CAAC,gBAAgB;IAUxB,sFAAsF;IACtF,OAAO,CAAC,wBAAwB;IAMhC;;;;;;;;;;;;;;;;;;;OAmBG;IACG,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAcrF;;;;;;;;;;;OAWG;IACG,gCAAgC,CACpC,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,qCAAqC,CAAC;IAKjD;;;;;OAKG;YACW,qBAAqB;IAwBnC,iFAAiF;IACjF,OAAO,CAAC,yBAAyB;IA6B3B,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAyB9D,yEAAyE;YAC3D,iBAAiB;IAc/B,kFAAkF;YACpE,WAAW;IAqBzB,OAAO,CAAC,iBAAiB;IA0BnB,SAAS,CACb,QAAQ,EAAE,SAAS,kBAAkB,EAAE,EACvC,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAmCzB,WAAW;IAuCzB,uEAAuE;IACjE,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,gCAAkD,GAC7D,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAkBxB,uBAAuB,CAC3B,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,IAAI,GACZ,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAqChC,WAAW,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IA8B/E,OAAO,CAAC,oBAAoB;IA4C5B,OAAO,CAAC,kBAAkB;IAoC1B,OAAO,CAAC,uBAAuB;IAkB/B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAO5B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,gBAAgB;IAiCxB,OAAO,CAAC,yBAAyB;IA4EjC,OAAO,CAAC,6BAA6B;IAYrC,OAAO,CAAC,iCAAiC;IAczC,OAAO,CAAC,6BAA6B;IAqBrC,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,yBAAyB;IA+BjC,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,gBAAgB;IA2BxB,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,wBAAwB;IAkDhC,OAAO,CAAC,mBAAmB;IAuD3B,OAAO,CAAC,yBAAyB;IAWjC,OAAO,CAAC,6BAA6B;IAuIrC,OAAO,CAAC,0BAA0B;IA+DlC,OAAO,CAAC,oBAAoB;IAqF5B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,sBAAsB;IAoB9B,OAAO,CAAC,6BAA6B;IA0ErC,OAAO,CAAC,2BAA2B;IA+CnC,OAAO,CAAC,qBAAqB;IA0G7B,OAAO,CAAC,yBAAyB;IAcjC,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,wBAAwB;IAsChC,OAAO,CAAC,oBAAoB;IA+B5B;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAqBjC,gGAAgG;IAChG,OAAO,CAAC,iBAAiB;IASzB,0EAA0E;IAC1E,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,uBAAuB;IA4B/B,OAAO,CAAC,iCAAiC;IAiEzC,OAAO,CAAC,4BAA4B;IAuCpC,OAAO,CAAC,8BAA8B;IA+EtC,OAAO,CAAC,6BAA6B;IAiGrC,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,4BAA4B;IAsCpC,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,uBAAuB;IAkB/B,OAAO,CAAC,uBAAuB;IAgB/B,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,6BAA6B;IAwBrC,OAAO,CAAC,gCAAgC;IA+IxC,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,0BAA0B;IAIlC,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,8BAA8B;IAetC,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,qBAAqB;IA8B7B,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,gBAAgB;YAOV,uBAAuB;IAoBrC,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,sBAAsB;IAe9B;;;;;;;;;;;;;OAaG;YACW,oBAAoB;IAsDlC,wFAAwF;IACxF,OAAO,CAAC,mBAAmB;IAmB3B,6FAA6F;IAC7F,OAAO,CAAC,wBAAwB;IAkBhC,qFAAqF;IACrF,OAAO,CAAC,UAAU;IAMlB,mFAAmF;IAC7E,eAAe,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmC9E,OAAO,CAAC,iCAAiC;YAa3B,2BAA2B;YA+F3B,4BAA4B;IA4D1C,0EAA0E;IACpE,qBAAqB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAiDtF,wFAAwF;IAClF,sBAAsB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAqB3F,sFAAsF;IAChF,yBAAyB,CAC7B,KAAK,EAAE,uBAAuB,GAAG;QAAE,KAAK,EAAE,WAAW,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GACtE,OAAO,CAAC,kBAAkB,CAAC;IAmB9B,mFAAmF;IAC7E,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAiBpF,sFAAsF;IAChF,2BAA2B,CAC/B,QAAQ,EAAE,kBAAkB,GAC3B,OAAO,CAAC,wBAAwB,CAAC;IAuDpC,mFAAmF;IAC7E,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,MAAM,EAAE,CAAC;IAqBpB,2FAA2F;IACrF,cAAc,CAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,WAAW,EACnB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAsB/B,gGAAgG;IAC1F,sBAAsB,CAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,mBAAmB,CAAC;IAiB/B,2EAA2E;IACrE,cAAc,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAOlF,2EAA2E;IACrE,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA+BtE,OAAO,CAAC,qBAAqB;IA2B7B,yFAAyF;IACzF,OAAO,CAAC,uBAAuB;YAOjB,6BAA6B;IAgG3C,OAAO,CAAC,uBAAuB;IAkC/B,OAAO,CAAC,uBAAuB;YAoBjB,6BAA6B;YAmG7B,qBAAqB;IA+CnC,OAAO,CAAC,eAAe;YAyCT,oBAAoB;YA6BpB,mBAAmB;IAyNjC;;;;;;OAMG;YACW,2BAA2B;IAiCzC,+FAA+F;YACjF,4BAA4B;YAY5B,wBAAwB;YAmCxB,yBAAyB;YA+DzB,iBAAiB;IA0C/B,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,4BAA4B;YAoBtB,mBAAmB;YA4BnB,mBAAmB;IAmFjC,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,wBAAwB;IA+BhC,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,qBAAqB;IAwB7B,OAAO,CAAC,6BAA6B;IAuBrC,OAAO,CAAC,wBAAwB;IAiBhC,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,sBAAsB;YAgDhB,iBAAiB;IA0C/B,OAAO,CAAC,oBAAoB;IA2C5B,OAAO,CAAC,cAAc;IAsDtB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,8BAA8B;IAOtC,OAAO,CAAC,oBAAoB;IAmC5B,OAAO,CAAC,cAAc;IAUtB,6EAA6E;IAC7E,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,yEAAyE;IACzE,SAAS,CAAC,GAAG,IAAI,MAAM;IAIvB,2EAA2E;IAC3E,SAAS,CAAC,MAAM,IAAI,MAAM;IAI1B,OAAO,CAAC,cAAc;IAoDtB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,cAAc;IAStB;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,cAAc;IAmBtB,iEAAiE;cACjD,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC;IAQnE,SAAS,CAAC,GAAG,CAAC,CAAC,EACb,KAAK,EAAE,gBAAgB,EACvB,MAAM,CAAC,EAAE,WAAW,EACpB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAC3C,OAAO,CAAC,CAAC,CAAC;IAIb,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,gBAAgB;IA2BxB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,oBAAoB;IAwB5B,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,2BAA2B;IAKnC,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,yBAAyB;IAcjC,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,WAAW;CAuBpB"}
1
+ {"version":3,"file":"ibkrClient.d.ts","sourceRoot":"","sources":["../../src/ibkr/ibkrClient.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EACV,eAAe,EAEf,yBAAyB,EAEzB,2BAA2B,EAG3B,6BAA6B,EAC7B,qCAAqC,EACrC,qBAAqB,EAGrB,UAAU,EACV,mBAAmB,EAEnB,0BAA0B,EAC1B,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,gCAAgC,EAGhC,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAElB,wBAAwB,EACxB,iBAAiB,EAGjB,kBAAkB,EAClB,uBAAuB,EACvB,+BAA+B,EAC/B,6BAA6B,EAC7B,oCAAoC,EACpC,6BAA6B,EAC7B,4BAA4B,EAC5B,qCAAqC,EAErC,sCAAsC,EACtC,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,EACnB,wBAAwB,EAGxB,0BAA0B,EAE1B,0BAA0B,EAE1B,2BAA2B,EAC3B,0BAA0B,EAC1B,uCAAuC,EACvC,iCAAiC,EAEjC,4BAA4B,EAC5B,wBAAwB,EACxB,qBAAqB,EAErB,+BAA+B,EAC/B,4BAA4B,EAE5B,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EAInB,cAAc,EACd,qBAAqB,EAGrB,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EAIX,6BAA6B,EAC7B,mBAAmB,EAEnB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAiCrB,OAAO,EAIL,KAAK,2BAA2B,EAChC,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAgY/B,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAwFD,MAAM,WAAW,sBAAsB;IACrC,0EAA0E;IAC1E,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,EAAE,IAAI,CAAC,2BAA2B,EAAE,eAAe,GAAG,aAAa,CAAC,CAAC;IACtF,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC3D,oFAAoF;IACpF,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACjE,0EAA0E;IAC1E,0BAA0B,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACvE;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;CAC/C;AAED,qFAAqF;AACrF,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,oDAAoD;AACpD,qBAAa,aAAc,SAAQ,KAAK;IAKpC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,QAAQ,EAAE,qBAAqB;IAL1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAG1B,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,qBAAqB,EACxC,OAAO,CAAC,EAAE,YAAY;CAMzB;AAED;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAG9C,QAAQ,CAAC,MAAM,EAAE,iBAAiB;gBADlC,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,iBAAiB,EAClC,OAAO,CAAC,EAAE,YAAY;CAKzB;AAED,sFAAsF;AACtF,qBAAa,6BAA8B,SAAQ,KAAK;IAGpD,QAAQ,CAAC,IAAI,EACX,oBAAoB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,mBAAmB;IACxF,QAAQ,CAAC,UAAU,EAAE,SAAS,6BAA6B,EAAE;gBAH7D,OAAO,EAAE,MAAM,EACN,IAAI,EACX,oBAAoB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,mBAAmB,EAC/E,UAAU,GAAE,SAAS,6BAA6B,EAAO;CAKrE;AAED,yFAAyF;AACzF,qBAAa,4BAA6B,SAAQ,KAAK;IAEnD,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;gBAJ3B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,EACpC,OAAO,CAAC,EAAE,YAAY;CAKzB;AAED;;;;;GAKG;AACH,qBAAa,UACX,YACE,YAAY,EACZ,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB;IAE3B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,WAAW,CAAC,CAAgB;IACpC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,0BAA0B,CAAoC;IACtE,OAAO,CAAC,gBAAgB,CAAC,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqD;IACrF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAoC;IAC1E,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAqD;IAC9F,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAG3C;IACJ,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAoD;IACxF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuB;IACxD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAC1C,OAAO,CAAC,iBAAiB,CAAoC;IAC7D,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAyC;IACjF,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAA+C;IAC1F,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwC;gBAE/D,MAAM,EAAE,gBAAgB,EAAE,OAAO,GAAE,iBAAsB;IAoBrE;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrB,0BAA0B,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAexF,qBAAqB,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBjF,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAkBlD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAKvB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAS7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWhB,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAcpC,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmCrE,sBAAsB,CAC1B,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,4BAA4B,CAAC;IAsBlC,qBAAqB,CACzB,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,+BAA+B,CAAC;IAkCrC,2BAA2B,CAC/B,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,+BAA+B,CAAC;IA6BrC,gCAAgC,CAAC,OAAO,EAAE;QAC9C,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,sCAAsC,CAAC;QAC/C,KAAK,EAAE,qCAAqC,CAAC;KAC9C,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAkDjC,0BAA0B,CAC9B,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,0BAA0B,CAAC;IAmBhC,sCAAsC,CAAC,KAAK,EAAE;QAClD,YAAY,EAAE,uCAAuC,CAAC;QACtD,SAAS,EAAE,IAAI,CAAC;KACjB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IA2BjC,2BAA2B,CAC/B,KAAK,EAAE,0BAA0B,EACjC,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,0BAA0B,CAAC;IAsLtC,OAAO,CAAC,6BAA6B;IAiCrC,OAAO,CAAC,uBAAuB;YAYjB,mCAAmC;IAsQjD,OAAO,CAAC,4BAA4B;IAOpC,OAAO,CAAC,kCAAkC;IAW1C,OAAO,CAAC,+BAA+B;IAmBvC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,yBAAyB;IA4CjC,OAAO,CAAC,kCAAkC;IAe1C,OAAO,CAAC,0BAA0B;IA6BlC,OAAO,CAAC,4BAA4B;IAQpC,OAAO,CAAC,0BAA0B;IAMlC,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,8BAA8B;IA6EtC,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,iCAAiC;IAQzC,OAAO,CAAC,2BAA2B;IAUnC,OAAO,CAAC,6BAA6B;IA6B/B,uBAAuB,CAAC,KAAK,EAAE;QACnC,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,IAAI,CAAC;KACjB,GAAG,OAAO,CAAC,+BAA+B,CAAC;IAsBtC,iCAAiC,CAAC,KAAK,EAAE;QAC7C,YAAY,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,mBAAmB,EAAE,MAAM,CAAA;SAAE,CAAC;QAClF,SAAS,EAAE,IAAI,CAAC;KACjB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAmCjC,wBAAwB,CAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;YAWtB,gCAAgC;IAoBxC,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IA2BpF,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IA6D/E,uBAAuB,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAkCxF,iCAAiC,CACrC,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,6BAA6B,CAAC;IA2BnC,qBAAqB,CACzB,KAAK,EAAE,4BAA4B,GAClC,OAAO,CAAC,iCAAiC,CAAC;IAoBvC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAa/B,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;IAoDpD;;;;;;;;;;;;;;OAcG;IACG,4BAA4B,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAuBxE;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB;IAgBzB,4EAA4E;IAC5E,OAAO,CAAC,iBAAiB;IAMzB,iFAAiF;IACjF,OAAO,CAAC,gBAAgB;IAUxB,sFAAsF;IACtF,OAAO,CAAC,wBAAwB;IAMhC;;;;;;;;;;;;;;;;;;;OAmBG;IACG,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAcrF;;;;;;;;;;;OAWG;IACG,gCAAgC,CACpC,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,qCAAqC,CAAC;IAKjD;;;;;OAKG;YACW,qBAAqB;IAwBnC,iFAAiF;IACjF,OAAO,CAAC,yBAAyB;IA6B3B,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAyB9D,yEAAyE;YAC3D,iBAAiB;IAc/B,kFAAkF;YACpE,WAAW;IAqBzB,OAAO,CAAC,iBAAiB;IA0BnB,SAAS,CACb,QAAQ,EAAE,SAAS,kBAAkB,EAAE,EACvC,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAmCzB,WAAW;IAuCzB,uEAAuE;IACjE,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,gCAAkD,GAC7D,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAkB9B;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,8BAA8B,CAAC,KAAK,EAAE;QAC1C,sDAAsD;QACtD,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;QAC1B,yDAAyD;QACzD,QAAQ,EAAE,MAAM,CAAC;QACjB,iFAAiF;QACjF,IAAI,EAAE,MAAM,CAAC;QACb,sEAAsE;QACtE,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,2BAA2B,CAAC;IA8DxC;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;IAItB;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAiB3B,uBAAuB,CAC3B,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,IAAI,GACZ,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAqChC,WAAW,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IA8B/E,OAAO,CAAC,oBAAoB;IA4C5B,OAAO,CAAC,kBAAkB;IA4D1B,OAAO,CAAC,uBAAuB;IAkB/B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAO5B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,gBAAgB;IAiCxB,OAAO,CAAC,yBAAyB;IA4EjC,OAAO,CAAC,6BAA6B;IAYrC,OAAO,CAAC,iCAAiC;IAczC,OAAO,CAAC,6BAA6B;IAqBrC,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,yBAAyB;IA+BjC,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,gBAAgB;IA2BxB,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,wBAAwB;IAkDhC,OAAO,CAAC,mBAAmB;IAuD3B,OAAO,CAAC,yBAAyB;IAWjC,OAAO,CAAC,6BAA6B;IAuIrC,OAAO,CAAC,0BAA0B;IA+DlC,OAAO,CAAC,oBAAoB;IAqF5B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,sBAAsB;IAoB9B,OAAO,CAAC,6BAA6B;IA0ErC,OAAO,CAAC,2BAA2B;IA+CnC,OAAO,CAAC,qBAAqB;IA0G7B,OAAO,CAAC,yBAAyB;IAcjC,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,wBAAwB;IAsChC,OAAO,CAAC,oBAAoB;IA+B5B;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAqBjC,gGAAgG;IAChG,OAAO,CAAC,iBAAiB;IASzB,0EAA0E;IAC1E,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,uBAAuB;IA4B/B,OAAO,CAAC,iCAAiC;IAiEzC,OAAO,CAAC,4BAA4B;IAuCpC,OAAO,CAAC,8BAA8B;IA+EtC,OAAO,CAAC,6BAA6B;IAiGrC,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,4BAA4B;IAsCpC,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,uBAAuB;IAkB/B,OAAO,CAAC,uBAAuB;IAgB/B,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,6BAA6B;IAwBrC,OAAO,CAAC,gCAAgC;IA+IxC,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,0BAA0B;IAIlC,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,8BAA8B;IAetC,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,qBAAqB;IA8B7B,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,gBAAgB;YAOV,uBAAuB;IAoBrC,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,sBAAsB;IAe9B;;;;;;;;;;;;;OAaG;YACW,oBAAoB;IAsDlC,wFAAwF;IACxF,OAAO,CAAC,mBAAmB;IAmB3B,6FAA6F;IAC7F,OAAO,CAAC,wBAAwB;IAkBhC,qFAAqF;IACrF,OAAO,CAAC,UAAU;IAMlB,mFAAmF;IAC7E,eAAe,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmC9E,OAAO,CAAC,iCAAiC;YAa3B,2BAA2B;YA+F3B,4BAA4B;IA4D1C,0EAA0E;IACpE,qBAAqB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAiDtF,wFAAwF;IAClF,sBAAsB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAqB3F,sFAAsF;IAChF,yBAAyB,CAC7B,KAAK,EAAE,uBAAuB,GAAG;QAAE,KAAK,EAAE,WAAW,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GACtE,OAAO,CAAC,kBAAkB,CAAC;IAmB9B,mFAAmF;IAC7E,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAiBpF,sFAAsF;IAChF,2BAA2B,CAC/B,QAAQ,EAAE,kBAAkB,GAC3B,OAAO,CAAC,wBAAwB,CAAC;IAuDpC,mFAAmF;IAC7E,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,MAAM,EAAE,CAAC;IAqBpB,2FAA2F;IACrF,cAAc,CAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,WAAW,EACnB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAsB/B,gGAAgG;IAC1F,sBAAsB,CAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,mBAAmB,CAAC;IAiB/B,2EAA2E;IACrE,cAAc,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAOlF,2EAA2E;IACrE,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA+BtE,OAAO,CAAC,qBAAqB;IA2B7B,yFAAyF;IACzF,OAAO,CAAC,uBAAuB;YAOjB,6BAA6B;IAgG3C,OAAO,CAAC,uBAAuB;IAkC/B,OAAO,CAAC,uBAAuB;YAoBjB,6BAA6B;YAmG7B,qBAAqB;IA+CnC,OAAO,CAAC,eAAe;YAyCT,oBAAoB;YA6BpB,mBAAmB;IAyNjC;;;;;;OAMG;YACW,2BAA2B;IAiCzC,+FAA+F;YACjF,4BAA4B;YAY5B,wBAAwB;YAmCxB,yBAAyB;YA+DzB,iBAAiB;IA0C/B,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,4BAA4B;YAoBtB,mBAAmB;YA4BnB,mBAAmB;IAmFjC,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,wBAAwB;IA+BhC,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,qBAAqB;IAwB7B,OAAO,CAAC,6BAA6B;IAuBrC,OAAO,CAAC,wBAAwB;IAiBhC,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,sBAAsB;YAgDhB,iBAAiB;IA0C/B,OAAO,CAAC,oBAAoB;IA2C5B,OAAO,CAAC,cAAc;IAsDtB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,8BAA8B;IAOtC,OAAO,CAAC,oBAAoB;IAmC5B,OAAO,CAAC,cAAc;IAUtB,6EAA6E;IAC7E,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,yEAAyE;IACzE,SAAS,CAAC,GAAG,IAAI,MAAM;IAIvB,2EAA2E;IAC3E,SAAS,CAAC,MAAM,IAAI,MAAM;IAI1B,OAAO,CAAC,cAAc;IAoDtB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,cAAc;IAStB;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,cAAc;IAmBtB,iEAAiE;cACjD,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC;IAQnE,SAAS,CAAC,GAAG,CAAC,CAAC,EACb,KAAK,EAAE,gBAAgB,EACvB,MAAM,CAAC,EAAE,WAAW,EACpB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAC3C,OAAO,CAAC,CAAC,CAAC;IAIb,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,gBAAgB;IA2BxB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,oBAAoB;IAwB5B,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,2BAA2B;IAKnC,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,yBAAyB;IAcjC,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,WAAW;CAuBpB"}
@@ -1219,8 +1219,10 @@ export class IbkrClient {
1219
1219
  const clientIdentity = this.consistentStringAliases(order.cOID, order.order_ref);
1220
1220
  if (!parentIdentity.valid || !clientIdentity.valid)
1221
1221
  return null;
1222
- const clientOrderId = clientIdentity.value;
1223
- if (clientOrderId === request.rootClientOrderId && parentIdentity.value === undefined) {
1222
+ const rootNode = request.nodes.find(({ parentMemberId }) => parentMemberId === undefined);
1223
+ if (rootNode !== undefined &&
1224
+ clientIdentity.value === this.graphClientOrderId(request, rootNode) &&
1225
+ parentIdentity.value === undefined) {
1224
1226
  return "root";
1225
1227
  }
1226
1228
  if (parentIdentity.value !== undefined &&
@@ -1991,6 +1993,114 @@ export class IbkrClient {
1991
1993
  });
1992
1994
  return (response[query] ?? []).flatMap((listing) => this.normalizeStockListing(query, listing));
1993
1995
  }
1996
+ /**
1997
+ * Read the transaction activity IBKR states for named contracts, without ever
1998
+ * asking which contracts the account still holds.
1999
+ *
2000
+ * {@link fetchTransactionHistory} loops over HELD conids, so a contract that
2001
+ * left the account - assigned, exercised, or expired - can never be reached
2002
+ * through it. The `pa/transactions` endpoint does not require a conid to be
2003
+ * held: it answers for the conids it is given. This method gives it the conids
2004
+ * the caller names, so the row of a gone contract stays reachable.
2005
+ *
2006
+ * The caller states the currency, and this method never supplies a default.
2007
+ * IBKR converts every figure into the requested currency, so a wrong currency
2008
+ * returns a converted number that looks exactly like a real one.
2009
+ * {@link fetchTransactionHistory} reads it from the environment and falls back
2010
+ * to `"USD"`; that habit is deliberately not repeated here.
2011
+ *
2012
+ * Every field is echoed as the broker stated it. A field the broker did not
2013
+ * state reads `null`, a stated zero stays `0`, and `type` and `desc` keep
2014
+ * their own case. A missing field never makes this method throw. Only an
2015
+ * identity or a window this read could not ask about at all is refused.
2016
+ *
2017
+ * This method proves no event and infers nothing. An empty list is not proof
2018
+ * that nothing happened. The CONSUMER, not this package, decides whether a row
2019
+ * states an assignment, an exercise, or an expiration.
2020
+ */
2021
+ async getContractTransactionEvidence(input) {
2022
+ this.assertOpen();
2023
+ const currency = input.currency.trim();
2024
+ if (!currency) {
2025
+ throw new Error("Contract transaction evidence requires an explicit currency; it is never defaulted");
2026
+ }
2027
+ if (input.conids.length === 0) {
2028
+ throw new Error("Contract transaction evidence requires at least one conid");
2029
+ }
2030
+ for (const conid of input.conids) {
2031
+ if (!Number.isSafeInteger(conid) || conid <= 0) {
2032
+ throw new Error(`Contract transaction evidence received an unusable conid: ${String(conid)}`);
2033
+ }
2034
+ }
2035
+ if (!Number.isSafeInteger(input.days) || input.days < 1 || input.days > 90) {
2036
+ throw new Error("Contract transaction evidence days must be an integer from 1 through 90");
2037
+ }
2038
+ // Every value the evidence reports is captured BEFORE the await, so a caller that reuses and
2039
+ // mutates its own input object while this read is in flight can never receive evidence that
2040
+ // claims a window or an identity IBKR was not asked for.
2041
+ const conids = [...input.conids];
2042
+ const days = input.days;
2043
+ const accountId = input.accountId ?? (await this.getAccountId());
2044
+ // Read as `unknown`: the declared wire type describes the SUCCESS shape, and the whole point of
2045
+ // the guard below is that IBKR does not always send it.
2046
+ const response = await this.req({
2047
+ path: "pa/transactions",
2048
+ method: "POST",
2049
+ data: { acctIds: [accountId], conids, currency, days },
2050
+ });
2051
+ const envelope = typeof response === "object" && response !== null ? response : {};
2052
+ // A response that states no transaction ARRAY did not answer this question. An error envelope,
2053
+ // an empty object, and an explicit null are unknown broker states, and this package never
2054
+ // reports an unknown state as a successful empty read: the consumer of this evidence decides
2055
+ // whether an assignment happened, and it must not read a refusal as "no activity". A STATED
2056
+ // empty array is a real answer and passes through untouched.
2057
+ if (!Array.isArray(envelope.transactions)) {
2058
+ const present = Object.keys(envelope).sort();
2059
+ throw new Error("IBKR stated no transaction list for this contract transaction read; " +
2060
+ `present response keys: ${present.length === 0 ? "(none)" : present.join(", ")}`);
2061
+ }
2062
+ const rows = envelope.transactions;
2063
+ return {
2064
+ accountId,
2065
+ observedAtEpochMillis: this.now(),
2066
+ requestedConids: conids,
2067
+ requestedCurrency: currency,
2068
+ requestedDays: days,
2069
+ transactions: rows.map((transaction) => this.contractTransactionRecord(transaction)),
2070
+ };
2071
+ }
2072
+ /**
2073
+ * One provider string, echoed exactly as the broker wrote it.
2074
+ *
2075
+ * {@link trimmedString} is deliberately NOT used here. `type` and `desc` are the only place IBKR
2076
+ * names an assignment, an exercise, or an expiration, and the public type states they are echoed
2077
+ * exactly. Trimming would change what a consumer classifies and what an audit comparison sees,
2078
+ * and a stated whitespace-only string is still a statement, never silence. A value that is not a
2079
+ * string is not text the broker stated, so it reads `null`.
2080
+ */
2081
+ verbatimString(value) {
2082
+ return typeof value === "string" ? value : null;
2083
+ }
2084
+ /**
2085
+ * One `pa/transactions` row, echoed. Nothing here maps, classifies, or
2086
+ * defaults a value; a field the broker did not state reads `null`.
2087
+ */
2088
+ contractTransactionRecord(transaction) {
2089
+ return {
2090
+ conid: toNullableNumber(transaction.conid),
2091
+ accountId: this.verbatimString(transaction.acctid),
2092
+ date: this.verbatimString(transaction.date),
2093
+ rawDate: this.verbatimString(transaction.rawDate),
2094
+ type: this.verbatimString(transaction.type),
2095
+ description: this.verbatimString(transaction.desc),
2096
+ currency: this.verbatimString(transaction.cur),
2097
+ amount: toNullableNumber(transaction.amt),
2098
+ quantity: toNullableNumber(transaction.qty),
2099
+ price: toNullableNumber(transaction.pr),
2100
+ fxRate: toNullableNumber(transaction.fxRate),
2101
+ presentFieldNames: Object.keys(transaction).sort(),
2102
+ };
2103
+ }
1994
2104
  async fetchTransactionHistory(startDate, endDate) {
1995
2105
  this.assertOpen();
1996
2106
  const accountId = await this.getAccountId();
@@ -2091,8 +2201,8 @@ export class IbkrClient {
2091
2201
  validateOrderGraph(request) {
2092
2202
  if (!request.accountId.trim())
2093
2203
  throw new Error("An explicit IBKR account ID is required");
2094
- if (!request.rootClientOrderId.trim() || request.rootClientOrderId.length > 48) {
2095
- throw new Error("Root client order ID must contain 1 to 48 characters");
2204
+ if (!request.rootClientOrderId.trim() || request.rootClientOrderId.length > 64) {
2205
+ throw new Error("Root client order ID must contain 1 to 64 characters");
2096
2206
  }
2097
2207
  if (request.nodes.length < 1 || request.nodes.length > 8) {
2098
2208
  throw new Error("Derivative order graphs require 1 to 8 members");
@@ -2124,6 +2234,28 @@ export class IbkrClient {
2124
2234
  if (roots !== 1 || request.nodes[0]?.parentMemberId !== undefined) {
2125
2235
  throw new Error("Derivative order graphs require exactly one root as the first member");
2126
2236
  }
2237
+ for (const node of request.nodes) {
2238
+ if (node.clientOrderId !== undefined &&
2239
+ (typeof node.clientOrderId !== "string" ||
2240
+ node.clientOrderId.trim() !== node.clientOrderId ||
2241
+ node.clientOrderId.length === 0 ||
2242
+ node.clientOrderId.length > 64)) {
2243
+ throw new TypeError("Invalid graph member client order ID");
2244
+ }
2245
+ }
2246
+ const root = request.nodes.find(({ parentMemberId }) => parentMemberId === undefined);
2247
+ if (root?.clientOrderId !== undefined && root.clientOrderId !== request.rootClientOrderId) {
2248
+ throw new TypeError("Invalid graph root client order ID");
2249
+ }
2250
+ const effectiveIds = request.nodes.map((node) => this.graphClientOrderId(request, node));
2251
+ for (const clientOrderId of effectiveIds) {
2252
+ if (clientOrderId.length > 64) {
2253
+ throw new TypeError("Graph member client order ID must contain 1 to 64 characters");
2254
+ }
2255
+ }
2256
+ if (new Set(effectiveIds).size !== effectiveIds.length) {
2257
+ throw new TypeError("Duplicate graph member client order ID");
2258
+ }
2127
2259
  }
2128
2260
  validateGraphSingleNode(node) {
2129
2261
  const orderType = node.orderType;
@@ -2163,6 +2295,8 @@ export class IbkrClient {
2163
2295
  return this.firstNumber(order.stopPrice, order.stop_price, order.auxPrice, order.aux_price);
2164
2296
  }
2165
2297
  graphClientOrderId(request, node) {
2298
+ if (node.clientOrderId !== undefined)
2299
+ return node.clientOrderId;
2166
2300
  return node.parentMemberId === undefined
2167
2301
  ? request.rootClientOrderId
2168
2302
  : `${request.rootClientOrderId}:${node.memberId}`;