@agg-build/sdk 4.28.0 → 4.29.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agg-websocket-BpZ8ljCl.d.ts","names":["TradeSide","TradeSide","WithdrawTokenSymbol","WithdrawalSourceTokenSymbol","WithdrawalSourceStatus","computeBestSplitsByAmount","TradeSide","_$__agg_websocket0.AggWebSocketOptions","_$__agg_websocket0.AggWebSocket","MarkSource","computeBestSplitsByAmountFromCommon","_$__0.AggWebSocketDiagnostics","_$__market_data_engine0.MarketView"],"sources":["../../common/src/enums/venue.ts","../../common/src/enums/image-size.ts","../../common/src/enums/account.ts","../../common/src/enums/chain.ts","../../common/src/enums/market-status.ts","../../common/src/enums/trading.ts","../../common/src/types-standalone.ts","../../common/src/typebox/schemas/errors.ts","../../common/src/typebox/schemas/hosted-venue-account.ts","../../common/src/utils/format-market-display.ts","../../common/src/utils/auth.ts","../../common/src/utils/validate.ts","../../common/src/utils/trading-splits.ts","../../common/src/utils/image-url.ts","../../common/src/utils/venue-market-cluster.ts","../../common/src/utils/sort-venues.ts","../../common/src/utils/venue-url.ts","../../common/src/utils/limit-price-ticks.ts","../../common/src/utils/balance-refill.ts","../../common/src/orderbook-checksum.ts","../src/types.ts","../src/client.ts","../src/best-split.ts","../src/ws-types.ts","../src/orderbook-utils.ts","../src/self-custody-signing.ts","../src/errors.ts","../src/candle-builder.ts","../src/eip55.ts","../src/market-aggregator.ts","../src/market-history.ts","../src/hosted-venue-funding.ts","../src/index.ts","../src/market-data/engine.ts","../src/agg-websocket.ts"],"mappings":"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AO;IACP;IACA,MAAMA;IACN;IACA;IACA;IACA;IACA;;;KAIQ;EACV;IAAU,OAAO;IAAO;MAAU;;;EAClC;IAAW;IAAiB,OAAO;;;KAGzB;EAAoB,OAAO;;KAE3B;EACV,OAAO;EACP;EACA;IAAY;IAA0C;;;KAG5C;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;KAGU;EACV;EACA;EACA;EACA;EACA;EACA;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;KAIQ;;;;;;;;;;;KAYA;KASA;EACV,OAAO;EACP;EACA;EACA;EACA;EACA,aAAa;EACb,aAAa;;KAGH;EACV;IACE;IACA;IACA;IACA;IACA;IACA;MACE;MACA;MACA;MACA;MACA;MACA;MACA;MACA;;MAEA;MACA;;MAEA,QAAQ;MACR;MACA;MACA;;MAEA;;;;;;MAMA;;;EAGJ;IACE,OAAO;IACP;IACA;IACA;IACA;;EAEF;IACE;IACA,mBAAmB;IACnB,OAAO;IACP;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;;;;;EAOF;IACE;IACA;IACA;;IAEA;IACA;;IAEA;;;KAIQ;EACV,OAAO;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;KAGU;EACV;IACE,OAAO;IACP;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAEF;EACA;;KAGU;EACV,OAAO;EACP;EACA;EACA;;KAGU;EACV,SAAS;EACT;EACA;;EAEA;;EAEA;;EAEA;;EAEA;EACA;EACA;;KAGU;EACV;EACA;EACA;EACA;EACA;;EAEA;;EAEA;;KAGU;EACV;EACA;;;;;;EAMA;;EAEA;;EAEA;EACA,WAAW;EACX,WAAW;EACX,OAAO;EACP;EACA;EACA;EACA;EACA;EACA,aAAa;EACb;EACA,WAAW;EACX;EACA;EACA;EACA;EACA;EACA;EACA,oBAAoB;EACpB,cAAc;;;;;;;;EAQd;EACA;EACA;EACA;;;;;;;EAOA;EACA;EACA;;EAEA;;;;;EAKA;EACA;;;;;;EAMA;;;;;;;;;;;EAWA;;;;;;IAOM;IACA;;MAEE;;MAEA;MACA;;IAEF;;MAEE;;MAEA;MACA;QACE;;QAEA;;QAEA;QACA;;MAEF;QACE;QACA;QACA;QACA;;;;EAKV;EACA;EACA;;EAEA;EACA;IACE;IACA;IACA;IACA;;EAEF;IAAsB;IAAe;;;KAG3B;EACV;IACE;IACA;IACA;IACA,QAAQ;IACR;MACE;MACA;MACA;MACA;MACA;QACE,mBAAmB;QACnB,OAAO;QACP;QACA;QACA;QACA;QACA;QACA;;MAEF;;MAEA;;;;;;;MAOA;MACA;MACA;MACA;;MAEA;MACA,aAAa;MACb,aAAa;;;EAGjB;EACA;EACA;EACA;EACA;;KAGU;EACV;EACA,OAAO;EACP;EACA;IACE;;IAEA;IACA;IACA;IACA;IACA;IACA;;IAEA;;IAEA;;IAEA;;;;;IAKA;MAA+B;MAAuB;;;EAExD;EACA,SAAS;EACT;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;;;;;EAMA;;;;EAIA;EACA;IAEM;IACA,OAAO;IACP;IACA;IACA,SAAS;IACT;IACA;IACA;IACA;IACA;IACA;MAEM;;MAEA;MACA;MACA;MACA;MACA;;MAEA;;MAEA;;IAGN;IACA;MAEM;MACA;MACA;MACA;QAEM;QACA;QACA;QACA;;;;;KAWR;EACV;EACA,OAAO;EACP;EACA;EACA;EACA;IACE;IACA;MACE;MACA;MACA;MACA;MACA;MACA;MACA;;;EAGJ,SAAS;EACT;EACA;EACA;EACA;EACA;EACA;;;;;;;EAOA;EACA;EACA;EACA,SAAS;EACT;EACA;;;;;;;;;EASA;EACA;;;;;;;EAOA;;EAEA;;EAEA;;EAEA;;EAEA,iBAAiB;;;;;;;EAOjB;;KAKU;EACV;IAAQ;IAAe;;EACvB;IAAQ;IAAe;;EACvB;;KAGU;EACV;EACA;EACA,QAAQ;;KAGE;EACV;IAAQ;IAAe;IAAc,QAAQ;;EAC7C;IAAQ;IAAe;IAAc,QAAQ;;;KAGnC;EACV;EACA;EACA;EACA;EACA;EACA;;KAGU;EACV,OAAO;EACP;EACA;EACA;IACE;IACA;IACA;IACA;IACA;IACA;;;KAIQ;EACV;IACE,OAAO;IACP;IACA;IACA;MACE;MACA;MACA;MACA;MACA;MACA;;;;KAKM;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;KAGU;EACV;EACA;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;;;;;KAQQ;EACV;EACA;;KAGU;EACV;;;;;;EAMA;EACA;EACA;EACA;EACA;EACA;;EAEA;;EAEA;;EAEA;;;EAGA,6BAA6B;;KAGnB,wBAAwB;EAAe,cAAc;;KAErD,sBAAsB,KAAK;KAE3B,qBAAqB;EAC/B,cAAc;EACd;;;;;KAMU;EACV;EACA;EACA;EACA;;KAGU;EACV;EACA;;;EAGA;;;EAGA,WAAW;;KAGD;EACV;EACA;EACA;EACA;EACA;;KAGU;EACV;EACA;EACA;EACA;EACA;EACA,UAAU;EACV,SAAS;EACT;;KAGU;EACV,MAAMA;EACN;IAAc,OAAO;IAAO;;EAC5B;;KAGU;EACV;IACE,OAAO;IACP;IACA,MAAMA;IACN;IACA;IACA;IACA;IACA;;EAEF;EACA;;KAGU;EACV;EACA;EACA;EACA;EACA;EACA;EACA;;KAGU;EAAqB;EAAc;;KAEnC;EACV;EACA;EACA,UAAU;EACV;;KAGU;EACV;EACA,aAAa;;KAKH;EAA0B;;KAU1B;EACV;EACA;EACA;;KAWUC;KACAC,gCAA8BD;KAE9B;;EAEV;EACA,aAAaA;;EAEb;;EAEA;;KAWUE;KAuBA;EACV;EACA;EACA,aAAaD;;EAEb;;;;;;EAMA;EACA;EACA;EACA;EACA;EACA;EACA,QAAQC;EACR;EACA;;;;;;EAMA;;;KAgCU;EACV;EACA;EACA;EACA;;KAkBU;EAAyB;;;;;;;;;;;;;cCloCxB,8CAAgB,oCAAA,yDAAA,uDAAA,gEAAA,yDAAA,6DAAA,2DAAA,0DAAA,8DAAA,4DAAA,2DAAA,oEAAA,+DAAA,8EAAA,oEAAA,+EAAA,sFAAA,mFAAA,qFAAA,8DAAA,2DAAA;KAiGjB,iBAAiB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ACT;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf,QAAQ;EACR;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA,KAAK;EACL,MAAM;;UAGS;;;;;EAKf;;EAEA;;EAEA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA,YAAYA;EACZ;EACA,gBAAgB;;UAGD;EACf;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA,YAAY;;UAGG;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YAAY;EACZ;EACA;EACA;EACA;;KAGU;EACN;EAAqB;;EACrB;EAAoB;;EACpB;EAA6B,OAAO;EAAO;;EAE3C;EACA,OAAO;EACP;EACA;EACA;EACA;EACA;EACA;EACA,YAAY;;UAGD;EACf,OAAO;EACP;;UAGe,wCAAwC;EACvD;EACA;;UAGe;EACf,UAAU;EACV;EACA;EACA,kBAAkB;EAClB,UAAU;EACV,gBAAgB;EAChB,SAAS;;UAGM;EACf;EAMA;;UAGe;EACf;EACA;EACA,YAAY;;UAGG;EACf,QAAQ;EACR,OAAO;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,QAAQ;EACR,OAAO;;UAGQ;EACf,MAAM;EACN;EACA;;KAGU;UAEK;EACf,OAAO;EACP;EACA;EACA;EACA,QAAQ;EACR;EACA;EACA;EACA,YAAY;;UAGG;EACf;EACA,KAAK;EACL,KAAK;EACL;EACA;EACA,SAAS;;UAGM;EACf,gBAAgB;EAChB;IACE,IAAI;IACJ,MAAM;;;UAIO;EACf,OAAO;EACP;EACA;EACA;EACA;EACA;EACA,QAAQ;EACR;;EAEA;;EAEA;EACA,UAAU;EACV,SAAS;EACT,YAAY;EACZ,gBAAgB;;UAGD;EACf;EACA;EACA;EACA,UAAU;EACV;EACA;EACA,QAAQ;EACR,SAAS;EACT,aAAa;;UAGE;EACf,MAAM;EACN;EACA;;;UAIe;EACf;EACA;;;EAGA;;;EAGA;EACA,WAAW;;;;;;;EAOX;;EAEA,aAAaA;;;;;;;;EAQb;;;UAIe;EACf,MAAM;IACJ;IACA,QAAQ;IACR,OAAO;IACP,iBAAiB;IACjB,iBAAiB,eAAe;IAChC,gBAAgB;;EAElB;IACE;IACA;IACA;;;;UAKa;EACf;EACA;EACA;EACA;EACA;EACA;;EAEA,aAAaA;;;;;;EAMb;;EAEA;;EAEA;;;UAIe;EACf;EACA;EACA;;EAEA,aAAaA;;EAEb;;EAEA;;;UAIe;EACf,MAAM,MACJ;IACE,UAAU;IACV,SAAS;;;;;;;;IAQT;;;;;IAKA,eAAe;;;;;;IAMf;MACE;MACA;MACA;;;;;UAOS;;EAEf;EACA;EACA;EACA;EACA;IACE,MAAM;MAAQ;MAAe;;IAC7B,MAAM;MAAQ;MAAe;;;EAE/B;EACA;EACA;EACA;EACA;;EAEA;;EAEA,YAAYA;;;UAIG,kBAAkB;EACjC,MAAM;EACN;EACA;;UAGe;EACf;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf,QAAQ;EACR;;;UAMe;EACf;EACA;EACA,QAAQ;;;UAIO;EACf;EACA;;;UAIe;EACf;EACA;;;UAIe;EACf;EACA;IACE,MAAM;IACN,MAAM;;EAER,iBAAiB;IAAiB,MAAM;IAAwB,MAAM;;EACtE,QAAQ,eAAe;EACvB;EACA;EACA;;EAEA;;EAEA;;EAEA,iBAAiB;IAAQ;IAAe;;;UAKzB;EACf;;;;;;;;EAQA;;EAEA,OAAO;;;;;;;;;EASP;IACE;IACA;IACA;IACA;IACA,gBAAgB;;;;;;EAMlB;;;;;EAKA;;;;;;;;;;;;;;;;;;;;;EAqBA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;;;;;;;;;;;EAWA,oBAAoB;;KAGV;KAEA;EACN;EAAmB;;EAEnB;EACA;IAAU;IAAgB,SAAS;MAAQ;MAAW;;;EACtD;EACA;IAAa;IAAW;IAAW;;;UAGxB;EACf;EACA;EACA;EACA,iBAAiB;;UAGF;;;;;;EAMf,OAAO;EACP;EACA;EACA;EACA;EACA,aAAa;EACb;EACA;EACA;;EAEA;;EAEA,cAAc;;EAEd;;UAGe;EACf;;EAEA;EACA;EAYA,OAAO;EACP;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf,OAAO;EACP;EACA;;EAEA;;EAEA;;;;;EAKA;;EAEA;;EAEA;;EAEA,gBAAgB;;EAEhB;;EAEA,oBAAoB;;EAEpB;;EAEA;;EAEA,yBAAyB;;EAEzB;;EAEA;;;;;;;;;EASA;;;;;;;;EAQA;;;;;;;;EAQA;;;;;;EAMA;;UAGe;EACf;EACA;EACA,OAAO;EACP;EACA;;EAEA;;EAEA;;EAEA;;UAGe;EACf;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;;KAGU;KACA;UAEK;EACf;EACA;EACA,QAAQ;;EAER;;EAEA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;;EAEA;;EAEA;EACA;EACA;EACA,QAAQ;EACR;EACA;EACA;EACA;EACA;EACA;EACA;EACA,eAAe;;UAGA;EACf;EACA;EACA;EACA;;EAEA;;EAEA;;UAGe;EACf;EACA;EACA;EACA;EACA,SAAS;;KAGC;KACA,8BAA8B;UAEzB;;EAEf;;EAEA;EACA,aAAa;;EAEb;;EAEA;;;;;;EAMA;;KAGU;KAQA;KAEA;KACA;UAEK;EACf,MAAM;EACN,QAAQ;EACR;EACA;EACA;EACA;EACA;;EAEA;;UAGe;EACf;EACA;EACA,aAAa;;EAEb;;;;;EAKA;EACA;;EAEA;;EAEA;EACA;;EAEA;EACA,QAAQ;EACR;EACA;;;;;;EAMA;;;;;;;UAae;EACf;EACA;EACA;;;KAIU,wBAAwB;UAEnB;EACf,aAAa;EACb;;UAGe;EACf,aAAa;EACb;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA,QAAQ;EACR;IAAa,aAAa;IAAqB;;;;;;EAK/C;EACA;IAAe;IAAiB;IAAiB,aAAa;;EAC9D,MAAM;EACN,UAAU;EACV;;;;;;;EAOA;EACA,SAAS;;UAGM;EACf;EACA;EACA;;UAGe;EACf;EACA;EACA,QAAQ;;UAGO;EACf;EACA;EACA;EACA,iBAAiB;;UAGF;EACf;;KAGU,2BACR,gCACA;UAEa;EACf;EACA;EACA;EACA,OAAO;EACP;EACA;;UAGe;EACf;EACA;EACA;;UAKe;EACf;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAAO;;KAEG,uBAAuB;EAAmB,OAAO;;KACjD,qBAAqB;KACrB;EAAyB;EAAiB,OAAO;;KACjD;UAWK;EACf;EACA;EACA;EACA;EACA;EACA,WAAW;EACX;EACA;;KAEU;KACA;UAOK;EACf;EACA;EACA;EACA;EACA;EACA;EACA;;EAGA;;EAEA,MAAM;;EAEN;;EAEA,aAAa;;EAEb;;EAEA;IACE;IACA;IACA;IACA;;;UAGa;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;UAEe;EACf;EACA;EACA;EACA,cAAc;EACd;EACA;EACA;EACA,aAAa;EACb,OAAO;EACP,QAAQ;;;;;;;;EAQR,oBAAoB;;KAEV,0BAA0B;EAAsB,OAAO;;KACvD,yBAAyB;;KAEzB;KACA;EAA0B,OAAO;EAAe,UAAU;;KAC1D,0BAA0B;UAIrB;;EAEf;;UAGe;EACf;EACA;;UAGe,sCAAsC;EACrD;;UAGe;EACf;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;;UAGe;EACf;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;;KAGU;KAEA;UAEK;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YAAY;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,iBAAiB;EACjB;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf,SAAS;EACT;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,WAAW;;UAGI;EACf,MAAM;EACN;EACA;;UAGe;EACf,MAAM;EACN;EACA;;UAGe;EACf,MAAM;EACN;EACA;;UAGe;EACf,SAAS;EACT,YAAY;;KAKF;UAEF;EACR;EACA;EACA;EACA;;UAGQ;EACR;EACA;EACA;EACA;;UAGQ;EACR;EACA;EACA;EACA;;UAGe,0BAA0B;EACzC;EACA;EACA;EACA;EACA;EACA;EACA,aAAa;EACb,oBAAoB;EACpB;EACA;;EAEA;;EAEA;;UAGe,+BAA+B;EAC9C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe,2BAA2B;EAC1C;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe,4BAA4B;EAC3C;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe,2BAA2B;EAC1C;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,aAAa;EACb,oBAAoB,KAAK;;UAGV,2BAA2B;EAC1C;EACA;EACA,MAAM;;KAGI,mBACR,oBACA,yBACA,qBACA,sBACA,qBACA;UAEa;EACf,OAAO;EACP;EACA;;;KAMU;UAEK;;EAEf;EACA;EACA,SAAS;;EAET;EACA;;EAEA;EACA;;EAEA;;EAEA;;EAEA;;EAEA;;;;;;EAMA;;UAGe;;EAEf;EACA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;;UAIe;;EAEf;;EAEA;EACA;EACA;;EAEA;;EAEA;;EAEA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe,+BAA+B;;EAE9C;;EAEA;;EAEA;;UAGe;;EAEf;EACA;EACA;;EAEA,QAAQ;;EAER,QAAQ;;UAKO;EACf;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;;KAIU;;UAgBK;EACf;EACA;EACA;;;UAIe;;EAEf;;EAEA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAAO;EACP;EACA;EACA;;;;;;EAMA;;;;;;EAMA;;;EAGA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;;EAEA;;EAEA;;EAEA;EACA;;UAGe;EACf;EACA;;EAEA;;;;;;;;;EASA;EACA;EACA;;UAGe;EACf;IAAiB;IAAe;IAAc;;;;;;;;EAO9C;;EAEA;EACA;;;;;;;EAOA;EACA;EACA;EACA;EACA;EACA;EACA;;;;;;;EAOA;EACA;;EAEA,OAAO;EACP,cAAc;EACd,cAAc;;;;;;;;;EASd,aAAa;;EAEb;;;;;;;;;;EAUA,eAAe;;;KAIL;;KAGA;;KAGA;;UAGK;EACf;;EAEA;;EAEA;;EAEA,OAAO;;EAEP,YAAY;;EAEZ,OAAO;EACP;;EAEA;EACA,gBAAgB;EAChB;EACA;;EAEA,gBAAgB;;;;;;;;;;;;EAYhB;;EAEA;;EAEA,oBAAoB;;EAEpB;;EAEA;;EAEA,yBAAyB;;EAEzB;;EAEA;;EAEA;;EAEA;;;;;;;;;EASA;;;UAIe;;;;;;;EAOf;EACA;;EAEA;;EAEA;;;EAGA;;;EAGA;;;UAIe;EACf;EACA;;;;;;;EAOA;;;;EAIA;EACA;EACA;EACA;;EAEA,aAAa;;EAEb;;;;;;;;;;;;EAYA;;EAEA;;EAEA,oBAAoB;;EAEpB;;EAEA;;EAEA;;EAEA,yBAAyB;;;UAIV;EACf;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA,YAAY;;;UAIG;;EAEf;;EAEA;;EAEA;;EAEA;;;UAIe;EACf;EACA;;UAGe;;EAEf,YAAY;IACV;IACA;IACA;IACA;IACA;;EAGF;EACA;IAAiB;IAAe;IAAc;;EAC9C;EACA;EACA;EACA;EACA;;;;;;EAMA;EACA,QAAQ;EACR,OAAO;EACP;EACA;EACA;EACA;EACA,gBAAgB;IAAQ;IAAe;;EACvC;EACA;EACA,iBAAiB;EACjB,WAAW;IAAQ;IAAe;IAA8B;;EAChE,kBAAkB;EAClB,cAAc;EACd,cAAc;;;;;;EAMd,WAAW;;;EAGX;;;EAGA;;;EAGA;;;;;EAKA;;;EAGA;;EAEA;;EAEA;;;;;EAKA,eAAe;;;;;;;;;;;EAWf;;IAEE;IACA;IACA;;IAEA,cAAc;;;EAGhB;IACE;;IAEA;;IAEA,iBAAiB;IACjB;IACA;;IAEA;IACA;;;;;;;;EAQF;IACE;IACA,qBAAqB;MACnB;MACA;MACA;MACA;;;;EAIJ,OAAO;EACP,kBAAkB;;UAGH;EACf;EACA;EACA;;KAGU;KAEA;UAEK;EACf;EACA,QAAQ;EACR;EACA;EACA;EACA;;UAGe;EACf;;;;;;EAMA,OAAO;;UAGQ;EACf;EACA,SAAS;;KAKC;UAEK;EACf;EACA;EACA,MAAM;EACN;;;;;;;EAOA,SAAS;EACT;EACA;;;;;;EAMA;;KAGU,eAAe;EACzB;IAAS;IAAoB;;EAC7B,MAAM;EACN,MAAM;EACN;EACA;;UAKe;EACf;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,UAAU;;UAGK;EACf,SAAS;;UAGM;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;EAEF,SAAS;EACT;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,UAAU;;UAGK;EACf,MAAM;EACN;EACA;;UAGe;EACf,MAAM;EACN;EACA;;UAGe;EACf,OAAO;IACL;IACA;IACA;;;UAIa;EACf;IAAY;IAAe;;EAC3B;IAAa;IAAe;;EAC5B,aAAa;IACX;IACA;IACA;;EAEF;IACE;IACA;IACA;IACA;;;KAMQ;KACA;UAEK;EACf;EACA;EACA,MAAM;EACN,WAAW;EACX;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA,SAAS;;UAGM;EACf;IACE;IACA;IACA;;EAEF;IACE;IACA;IACA;;EAEF;IACE;IACA;IACA;;EAEF;IACE;IACA;IACA;IACA;IACA;;;UAIa;EACf;EACA;EACA,cAAc;EACd;EACA;EACA;EACA,aAAa;EACb;EACA;EACA;EACA,eAAe;EACf;EACA;;UAGe;EACf;EACA;EACA,aAAa;EACb;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf,MAAM;EACN;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA,OAAO;EACP;EACA;EACA;EACA;;KAGU;EAEN;IAAU;IAAY;;IACpB;EAEF;IAAU;IAAY;;EACtB;EACA;;UAGW,0CAA0C;EACzD;IAAU;IAAY;;;;UAIP;EACf;EACA,OAAO;EACP,SAAS,kBAAkB;EAC3B;EACA;IAAc;IAAiD;;EAC/D;IAAa;IAAqB;;;;;KCvtF/B,qBAAqB;KACrB;EAAmB;EAAqB;EAAuB,MAAM;;cA6H7D;UACH;UACA;UACA;UACA;UACA;;UAEA;UACA;UACA;UACA;mBACS;;mBAEA;;UAET;;UAEA;UACA;UACA;UACA;UACA;WACC;mBACQ;UACT;UACA;UACA;;UAEA;;mBAES;EAEL,YAAA,SAAS;UAoBb;UAUA;UAIA;UAIA;UASA;UAQA;UAkBA;UA6BA;UAoBA;;EA+BR;;;;;;;;EAea,QAAQ,GACnB,cACA,OAAO;IAAgB,QAAQ;KAC/B,UAAU,UAAU,aAAa,QAAQ,KACxC,QAAQ;UA6BG;UA0CA;;;;;UAgDN;UASA;UAuBA;UAUM;;EASd,eAAe;;EASf,WAAW,SAAS;;EAyBpB;UAWQ;;;;;;MAaJ;;MAKA,cAAc;;MAKd;;MAKA;;EAKJ,kBAAkB,UAAU;UAKpB;;MAQJ,QAAQ;;;;;;;;;;;EAgBZ,iBAAiB,QAAQ;;EAqBzB,iBAAiB,QAAQ;;EAgBnB,OAAO,MAAM,oBAAoB,QAAQ;;EAyBzC,aAAa,MAAM,oBAAoB,QAAQ;;EAK/C,UAAU,MAAM,mBAAmB,QAAQ;;EAY3C,UAAU,MAAM,mBAAmB,QAAQ;;;;;;;;;;;;;;EAiB3C,YAAY,MAAM,qBAAqB,QAAQ;;;;;;;;;;;;;;EA4B/C,mBACJ,gBAAgB,kCACf,QAAQ;;EAkBL,iBAAiB,eAAe,QAAQ;;EAyBxC,sBAAsB;;EAyBtB,kBAAkB,QAAQ;;EAU1B,WAAW,MAAM,iBAAiB,QAAQ;;EAgB1C,eAAe;IACnB;IACA;IACA;MACE,QAAQ;;EAYN,sBAAsB,sBAAsB;IAChD;IACA;IACA;;;;;;;EAgBI,kBACJ,iFACA;IAAY;MACX;IAAU;;;EAWP,WAAW;;EAyBX,gBAAgB;IACpB,OAAO;IACP;IACA;IACA;MACE,QAAQ,kBAAkB;;EAYxB,UAAU,SAAQ,iBAAsB,QAAQ;;;;;;;;;;;EAsBhD,mBACJ,SAAQ,sBACR;IAAY,SAAS;MACpB,QAAQ,kBAAkB;;;;;;;;EA0BvB,mBAAmB,QAAQ,uBAAuB,QAAQ;;EAQ1D,gBACJ,SAAQ,mBACR;IAAY,SAAS;MACpB,QAAQ,kBAAkB;;;;;EAgBvB,eAAe,SAAQ,mBAAwB,QAAQ,kBAAkB;;;;;;;EA+BzE,qBAAqB,QAAQ,yBAAyB,QAAQ;;EAkB9D,sBACJ,SAAQ,0BACP,QAAQ,kBAAkB;;;;;;;;;;;;;;;EA4BvB,mBACJ,SAAQ,uBACR;IAAY,SAAS;MACpB,QAAQ;;EAWL,sBACJ,iBACA,SAAQ,wBACP,QAAQ;;EAUL,uBACJ,iBACA,SAAQ,2BACP,QAAQ;;EAaL,4BACJ,iBACA,MAAM,kCACL,QAAQ;;EAWL,6BACJ,iBACA,SAAQ,wBACP,QAAQ;;EAQL,oBACJ,iBACA,MAAM,+BACL,QAAQ;;EAQL,yBACJ,iBACA,sBACA,SAAQ,wBACP,QAAQ;;EASL,eAAe,MAAM,iBAAiB,QAAQ;;EAQ9C,iBAAiB,QAAQ;;EAKzB,kBAAkB,OAAO,QAAQ,QAAQ;;EAKzC,eAAe,OAAO,QAAQ;;EAK9B,0BACJ,QAAQ,iCACR,UAAU,yBACT,QAAQ;;EAQL,yBACJ,SAAQ,gCAAgC,yBACvC,QAAQ;;EAQL,uBACJ,mBACA,UAAU,yBACT,QAAQ;;EAOL,uBACJ,mBACA,QAAQ,8BACR,UAAU,yBACT,QAAQ;;EAWL,yBACJ,mBACA,SAAQ,gCACR,UAAU,yBACT,QAAQ;;EAWL,uBACJ,mBACA,QAAQ,8BACR,UAAU,yBACT,QAAQ;;EAWL,0BACJ,mBACA,SAAQ,yBAAyB,yBAChC,QAAQ;;EAWL,uBACJ,mBACA,SAAQ,yBAAyB,yBAChC,QAAQ;;EAWL,yBACJ,mBACA,UAAU,yBACT,QAAQ;;;;;EAUL,mBACJ,iBACA;IAAY,SAAS;IAAa,kBAAkB;MACnD,QAAQ;;;;;;EAgBL,iBACJ,QAAQ,wBACR;IAAY,SAAS;MACpB,QAAQ;;EAWL,eAAe;IACnB,SAAS;IACT;IACA;IACA,cAAc;IACd,SAAS;IACT;IACA;IACA;IACA,aAAa,mBAAmB;IAChC;IACA;IACA;IACA;;IAEA;;IAEA;IACA,SAAS;;;;;;;IAOT;MACE,QAAQ,kBAAkB;;EA4BxB,kBACJ,iBACA;IAAY;IAAgB;IAAoB,SAAS;MACxD,QAAQ;EAcL,kBACJ,YACA;IACE,SAAS;;;;;;;IAOT;;;;;IAKA;MAED,QAAQ;;EAiBL,cACJ,oBACA;IAAY,SAAS;MACpB,QAAQ;;EAsBL,2BACJ,UAAU;IAAsC,SAAS;MACxD,QAAQ;;EAsCL,yBACJ,SAAS,kCACR,QAAQ;;EAsDL,gBACJ;IACE,QAAQ;IACR;;IAEA;;;;;;;IAOA;IACA;IACA,cAAc;IACd,SAAS;IACT;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;IAEA;;IAEA;KAEF;IAAmB,SAAS;MAC3B,QAAQ,kBAAkB;;EAoCvB,cAAc;IAClB;IACA;IACA;MACE,QAAQ,kBAAkB;;EAWxB,aAAa,OAAO,cAAc,QAAQ;;;;;;;EAU1C,kBAAkB,OAAO,cAAc,QAAQ;;EAK/C,YAAY,OAAO,cAAc,QAAQ;UAIvC;;EAUF,aAAa;IAAY,SAAS;MAAgB,QAAQ;;EAO1D,YACJ,kBACA,UAAU;IAAwB,SAAS;MAC1C,QAAQ;;EAQL,mBACJ,kBACA,UAAU;IAAwB,SAAS;MAC1C,QAAQ;;EAWL,kBAAkB;IAAY,SAAS;MAAgB,QAAQ;;EAO/D,cACJ,QAAQ,0BACR;IAAY,SAAS;MACpB,QAAQ;;;;;;EAaL,OAAO,IAAI,YACf,QAAQ,cACR;IAAY,SAAS;MACpB,QAAQ,eAAe;;EAiBpB,2BAA2B;IAC/B,SAAS;MACP,QAAQ;;EAON,2BACJ,uBACA;IAAY,SAAS;IAAa;MACjC,QAAQ;;EAUL,uBACJ;IACE;IACA;IACA;IACA;IACA;KAEF;IAAY,SAAS;MACpB;IAAU,SAAS;;;EAShB,2BACJ;IACE;IACA;IACA;IACA;IACA;IACA;KAEF;IAAY,SAAS;MACpB,QAAQ;;EAcL,yBACJ,QAAQ,gCACR;IAAY,SAAS;MACpB,QAAQ;;EAUL,aACJ;IACE;IACA,aAAa;IACb;IACA;IACA;KAEF;IAAY,SAAS;IAAa,UAAU,oBAAoB,QAAQ;MACvE,QAAQ;EA8BL,wBACJ;IACE;IACA,aAAa;IACb;IACA;IACA;KAEF;IAAY,SAAS;MACpB,QAAQ;;EAiBL,cACJ;IAAU;IAA0B;KACpC;IAAY,SAAS;MACpB,QAAQ;;EAaL,aACJ;IAAU;IAA0B;IAAqB;KACzD;IAAY,SAAS;IAAa;MACjC,QAAQ;EACL,aACJ,0BACA;IAAY,SAAS;IAAa;IAAqB;MACtD,QAAQ;;EAgDL,oBACJ,mBACA;IAAY;IAAgB,SAAS;MACpC,QAAQ;;;;;;;EAuBL,cACJ,QAAQ,kBACR;IAAY,SAAS;MACpB,QAAQ;;EA+CL,qBACJ;IAAU;IAAiC;KAC3C;IAAY,SAAS;MACpB;IAAU,OAAO;;;;;;;EAepB,gBACE,YAAY,uBACZ;IACE;;;;;;IAMA,uBAAuB,KAAK;;;;;IAK5B,gBAAgB;MAEjB;UAoCK;;;;;;;UAUA;UAiBA;;EA2JF,eAAe,QAAQ,uBAAuB,QAAQ;;EAWtD,qBACJ,iBAIA,YAAY;IAAQ;IAAgB;IAAoB;OACvD,QAAQ;IAA2B;;;;;;;;;;;;;;EAsBhC,gBAAgB,QAAQ,uBAAuB,QAAQ;;;;;;EAyMvD,gBAAgB,QAAQ,wBAAwB,QAAQ;;;;;;;EAaxD,WAAW,QAAQ,mBAAmB,QAAQ;;EAQ9C,OAAO,MAAM,gBAAgB,QAAQ;;EAQrC,4BAA4B,QAAQ;;EAKpC,0BACJ,QAAQ,kCACP,QAAQ;;EAQL,0BACJ,kBACA,QAAQ,kCACP,QAAQ;;EASL,yBAAyB,mBAAmB,QAAQ;;EAQpD,gBAAgB,QAAQ,wBAAwB,QAAQ;;;;;;EAYxD,gBAAgB,QAAQ,wBAAwB,QAAQ;;EAQxD,mBAAmB,QAAQ,wBAAwB,QAAQ;;;;;;;;EAc3D,oBAAoB,uBAAuB,QAAQ;;EAUnD,uBAAuB,QAAQ;;EAQ/B,oBAAoB;IAAY,SAAS;MAAgB,QAAQ;;;;;;EAWjE,oBAAoB;IAAQ;IAAiB;MAAmB;;EAQhE,aACJ,SAAS,oBACT;IAAY,SAAS;MACpB,QAAQ,kBAAkB;;EAiBvB,cAAc,QAAQ,mBAAmB,QAAQ;;EAQjD,kBAAkB,QAAQ,qBAAqB,QAAQ;;EAQvD,sBAAsB;IAAU;;;EAKhC,YACJ,eACA,sBACC;IAAU;IAAgB;;;;;cC5zFlB,kCAAyBC;;;;;;;;;KCK1B,qCAAqC;;KAGrC;UAEK;EACf;EACA;;UAGe;EACf,MAAM;EACN,MAAM;;UAKS;EACf;EACA;EACA;EACA;EACA;EACA,MAAM;EACN,MAAM;EACN,iBAAiB,eAAe;EAChC,QAAQ,eAAe;EACvB;EACA;;EAEA;;;;;;EAMA;;EAEA,aAAa;;;;;;KAOH;KAWP,aAAa;UAED;EACf;EACA;EACA;EACA;EACA;EACA,YAAY;EACZ,YAAY;EACZ,iBAAiB;IAAiB,YAAY;IAAgB,YAAY;;EAC1E,QAAQ,eAAe;EACvB;EACA;;EAEA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;;EAEA;;KAGU;UAEK;EACf;;;EAGA;;;EAGA;EACA;;EAEA;;UAGe;EACf;;EAEA;;EAEA;EACA;EACA;;UAGe;EACf;EACA;EACA;;EAEA;;EAEA;;UAGe;EACf;EACA;;EAEA;EACA;;;UAIe;EACf;EACA;;EAEA;;;;;;UAOe;EACf;EACA;EACA;;;;;;;UAQe;EACf;EACA;EACA;EACA;EACA;EACA;;;;;;;UAQe;EACf;EACA;EACA;;UAGe;EACf;;EAEA;;UAGe;EACf;EACA;EACA;;;;;;EAMA;;EAEA;;UAGe;EACf;EACA;EACA;;EAEA;;EAEA,UAAU;;EAEV;;;KAIU;UAoBK;EACf;;EAEA,OAAO;EACP;;EAEA;;EAEA;;EAEA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;;EAEA;;;;;;EAMA;EACA;;EAEA;;UAGe;EACf;EACA;EACA;EACA;;EAEA;;EAEA;;;;;;EAMA;EACA;;EAEA;;KAGU;UA0BK;EACf;EACA,OAAO;EACP;EACA;;EAEA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;;EAEA,YAAY;EACZ;EACA;;;;;;;;EAQA;EACA;EACA;EACA;;;EAGA;;;;;;;EAOA;;;;;;EAMA;EACA;EACA;EACA;;EAEA;;;;;;EAMA;EACA;;EAEA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;;EAEA;;;;;;EAMA;EACA;;EAEA;;;KAMU;KAQA;UAEK;EACf;EACA;EACA;EACA,QAAQ;EACR;EACA;EACA;;EAEA;;;;;;UAOe;EACf;EACA;EACA;EACA,QAAQ;;EAER;;EAEA;;EAEA;;EAEA;;EAEA,MAAM;;EAEN,OAAO;;EAEP;EACA;;EAEA;;;;;;EAMA;EACA;;EAEA;;UAKe;EACf;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;;EAEA;EACA,SAAS;EACT;EACA;EACA;;KAGU,kBACR,sBACA,mBACA,UACA,eACA,iBACA,cACA,kBACA,cACA,mBACA,UACA,mBACA,kBACA,eACA,gBACA,6BACA,oBACA,iBACA,iBACA,gBACA,YACA;;;;;;KAOQ,eACP,KAAK;EAAmC;MACxC,KAAK;EAAkC;KACxC,gBACC,KAAK;EAAgC;KACtC;EACE;EAAgB;;KAIV;EACN;EAAqB;EAAiC;;EACtD;EAAuB;EAAiC;;EACxD;EAAsB;EAAsB;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"}
@@ -486,6 +486,21 @@ var IndexedOrderbook = class {
486
486
  */
487
487
  const RECONNECT_BASE_MS = 1e3;
488
488
  const RECONNECT_MAX_MS = 3e4;
489
+ /** WebSocket.OPEN — a literal so environments without a global WebSocket still load. */
490
+ const WS_OPEN = 1;
491
+ /** Close codes for configuration errors that a retry cannot fix. */
492
+ const NON_RETRYABLE_CLOSE_CODES = /* @__PURE__ */ new Set([4001, 4003]);
493
+ /** Most ids sent in one frame; the server rejects frames over 1000. */
494
+ const MAX_IDS_PER_FRAME = 500;
495
+ /** Recent event ids remembered to drop resume duplicates. */
496
+ const SEEN_EVENT_IDS_MAX = 1e3;
497
+ const USER_EVENT_TYPES = /* @__PURE__ */ new Set([
498
+ "order_submitted",
499
+ "balance_update",
500
+ "order_event",
501
+ "redeem_event",
502
+ "withdrawal_lifecycle"
503
+ ]);
489
504
  const STALE_TIMEOUT_MS = 45e3;
490
505
  const ORDERBOOK_DEBUG_TOP_LEVELS = 5;
491
506
  const WATCHDOG_SILENCE_MS = 3e5;
@@ -529,8 +544,16 @@ var AggWebSocket = class {
529
544
  this.lastMessageTime = 0;
530
545
  this.destroyed = false;
531
546
  this.historyControllers = /* @__PURE__ */ new Set();
547
+ this.lastEventId = {};
548
+ this.seenEventIds = /* @__PURE__ */ new Set();
549
+ this.hasConnected = false;
550
+ this.appEventCbs = /* @__PURE__ */ new Set();
551
+ this.rejected = false;
532
552
  this.deferBookViews = options.deferBookViews ?? false;
533
553
  this.url = options.url;
554
+ this.webSocketImpl = options.webSocketImpl;
555
+ this.headers = options.headers;
556
+ this.resumeEvents = options.resumeEvents ?? true;
534
557
  this.callbacks = options.callbacks ?? {};
535
558
  this.initialToken = options.initialToken;
536
559
  this.enableLogs = options.enableLogs ?? false;
@@ -772,11 +795,47 @@ var AggWebSocket = class {
772
795
  /** Send a JWT to authenticate (or re-authenticate) the connection. */
773
796
  authenticate(token) {
774
797
  this.initialToken = token;
775
- if (this.ws?.readyState === WebSocket.OPEN) this.send({
798
+ if (this.ws?.readyState === WS_OPEN) this.send({
776
799
  action: "authenticate",
777
800
  token
778
801
  });
779
802
  }
803
+ /**
804
+ * Receive every user event of this app (orders, balances, redeems,
805
+ * withdrawals) — the server-side counterpart of a user session. Requires
806
+ * a connection opened with an `x-app-api-key` for this app (pass
807
+ * `webSocketImpl` + `headers`). Frames are raw: timestamps in ms. The
808
+ * stream resumes from the last `eventId` across reconnects.
809
+ */
810
+ subscribeAppEvents(cb) {
811
+ const first = this.appEventCbs.size === 0;
812
+ this.appEventCbs.add(cb);
813
+ if (first && this._connected) this.sendAppEventsSubscribe();
814
+ this.ensureConnected();
815
+ return () => {
816
+ if (!this.appEventCbs.delete(cb)) return;
817
+ if (this.appEventCbs.size === 0 && this._connected) this.send({
818
+ action: "unsubscribe",
819
+ channel: "app-events"
820
+ });
821
+ };
822
+ }
823
+ sendAppEventsSubscribe() {
824
+ const resumeFrom = this.resumeEvents ? this.lastEventId.app : void 0;
825
+ this.send({
826
+ action: "subscribe",
827
+ channel: "app-events",
828
+ ...resumeFrom ? { resumeFrom } : {}
829
+ });
830
+ }
831
+ authenticateMessage(token) {
832
+ const resumeFrom = this.resumeEvents && this.hasConnected ? this.lastEventId.user : void 0;
833
+ return {
834
+ action: "authenticate",
835
+ token,
836
+ ...resumeFrom ? { resumeFrom } : {}
837
+ };
838
+ }
780
839
  /** Request a fresh snapshot for one or more subscribed outcomes. */
781
840
  resnapshot(outcomeIdOrIds) {
782
841
  (Array.isArray(outcomeIdOrIds) ? outcomeIdOrIds : [outcomeIdOrIds]).forEach((outcomeId) => {
@@ -785,6 +844,7 @@ var AggWebSocket = class {
785
844
  }
786
845
  /** Connect (idempotent). Called automatically on first subscribe. */
787
846
  connect() {
847
+ this.rejected = false;
788
848
  this.ensureConnected();
789
849
  }
790
850
  /** Disconnect and clean up. Reusable — call connect() to reconnect. */
@@ -826,6 +886,8 @@ var AggWebSocket = class {
826
886
  this.pendingFlushTradeUnsubs.clear();
827
887
  this.arbSubs.clear();
828
888
  this.arbFeedCbs.clear();
889
+ this.appEventCbs.clear();
890
+ this.seenEventIds.clear();
829
891
  this.latestArb.clear();
830
892
  this.pendingFlushArbSubs.clear();
831
893
  this.pendingFlushArbUnsubs.clear();
@@ -837,23 +899,23 @@ var AggWebSocket = class {
837
899
  }
838
900
  ensureConnected() {
839
901
  if (this.destroyed) return;
840
- if (this.ws?.readyState === WebSocket.OPEN || this.connecting) return;
902
+ if (this.rejected) return;
903
+ if (this.ws?.readyState === WS_OPEN || this.connecting) return;
841
904
  this.doConnect();
842
905
  }
843
906
  doConnect() {
844
907
  if (this.destroyed) return;
908
+ const Impl = this.webSocketImpl ?? globalThis.WebSocket;
909
+ if (!Impl) throw new Error("No WebSocket implementation available. Pass `webSocketImpl` (e.g. the `ws` package).");
845
910
  this.connecting = true;
846
- const ws = new WebSocket(this.url);
911
+ const ws = this.headers ? new Impl(this.url, { headers: this.headers }) : new Impl(this.url);
847
912
  this.ws = ws;
848
913
  ws.onopen = () => {
849
914
  if (this.destroyed || this.ws !== ws) return;
850
915
  this.connecting = false;
851
916
  this.reconnectAttempts = 0;
852
917
  this.resetStaleTimer();
853
- if (this.initialToken) this.send({
854
- action: "authenticate",
855
- token: this.initialToken
856
- });
918
+ if (this.initialToken) this.send(this.authenticateMessage(this.initialToken));
857
919
  };
858
920
  ws.onmessage = (event) => {
859
921
  if (this.destroyed || this.ws !== ws) return;
@@ -865,20 +927,31 @@ var AggWebSocket = class {
865
927
  this.handleMessage(raw);
866
928
  } catch {}
867
929
  };
868
- ws.onclose = () => {
930
+ ws.onclose = (event) => {
869
931
  this.ws = null;
870
932
  this.connecting = false;
871
933
  const wasConnected = this._connected;
872
934
  this._connected = false;
873
935
  this.cancelStaleTimer();
874
936
  if (wasConnected) this.callbacks.onConnectionStateChange?.(false);
875
- if (!this.destroyed && (this.subs.size > 0 || this.arbSubs.size > 0 || this.arbFeedCbs.size > 0)) this.scheduleReconnect();
937
+ const code = event?.code ?? 0;
938
+ if (NON_RETRYABLE_CLOSE_CODES.has(code)) {
939
+ this.rejected = true;
940
+ this.emitDiagnostic({
941
+ type: "connection_rejected",
942
+ code,
943
+ reason: event?.reason ?? ""
944
+ });
945
+ return;
946
+ }
947
+ if (!this.destroyed && (this.subs.size > 0 || this.arbSubs.size > 0 || this.arbFeedCbs.size > 0 || this.appEventCbs.size > 0 || !!this.initialToken)) this.scheduleReconnect();
876
948
  };
877
949
  ws.onerror = () => {};
878
950
  }
879
951
  scheduleReconnect() {
880
952
  this.cancelReconnect();
881
- const delay = Math.min(RECONNECT_BASE_MS * Math.pow(2, this.reconnectAttempts), RECONNECT_MAX_MS);
953
+ const step = Math.min(RECONNECT_BASE_MS * Math.pow(2, this.reconnectAttempts), RECONNECT_MAX_MS);
954
+ const delay = Math.round(step * (.5 + Math.random() * .5));
882
955
  this.reconnectAttempts++;
883
956
  this.emitDiagnostic({
884
957
  type: "reconnect",
@@ -915,6 +988,7 @@ var AggWebSocket = class {
915
988
  }
916
989
  handleMessage(raw) {
917
990
  const type = raw.type;
991
+ if (USER_EVENT_TYPES.has(type) && !this.acceptEvent(raw)) return;
918
992
  if ([
919
993
  "orderbook_snapshot",
920
994
  "orderbook_delta",
@@ -949,9 +1023,31 @@ var AggWebSocket = class {
949
1023
  case "connected":
950
1024
  this.handleConnected(raw);
951
1025
  break;
952
- case "authenticated":
953
- this.callbacks.onAuthenticated?.(raw);
1026
+ case "authenticated": {
1027
+ const msg = raw;
1028
+ if (this.lastEventUserId && this.lastEventUserId !== msg.userId) this.lastEventId.user = void 0;
1029
+ this.lastEventUserId = msg.userId;
1030
+ this.callbacks.onAuthenticated?.(msg);
1031
+ break;
1032
+ }
1033
+ case "auth_expiring":
1034
+ this.callbacks.onAuthExpiring?.(raw);
1035
+ break;
1036
+ case "auth_expired":
1037
+ this.callbacks.onAuthExpired?.(raw);
954
1038
  break;
1039
+ case "resumed":
1040
+ this.callbacks.onResumed?.(raw);
1041
+ break;
1042
+ case "stream_interrupted": {
1043
+ const msg = raw;
1044
+ this.emitDiagnostic({
1045
+ type: "stream_interrupted",
1046
+ channels: msg.channels
1047
+ });
1048
+ this.callbacks.onStreamInterrupted?.(msg);
1049
+ break;
1050
+ }
955
1051
  case "market_resolved":
956
1052
  this.handleMarketResolved(raw);
957
1053
  break;
@@ -1008,6 +1104,7 @@ var AggWebSocket = class {
1008
1104
  */
1009
1105
  handleConnected(msg) {
1010
1106
  this._connected = true;
1107
+ this.hasConnected = true;
1011
1108
  if (this.bookWatchdog && !this.watchdogTimer && !this.destroyed) this.watchdogTimer = setInterval(() => void this.checkSilentBooks(), this.bookWatchdog.checkIntervalMs ?? WATCHDOG_CHECK_INTERVAL_MS);
1012
1109
  this.callbacks.onConnectionStateChange?.(true);
1013
1110
  this.callbacks.onConnected?.(msg);
@@ -1054,6 +1151,31 @@ var AggWebSocket = class {
1054
1151
  action: "subscribe",
1055
1152
  channel: "arb-feed"
1056
1153
  });
1154
+ if (this.appEventCbs.size > 0) this.sendAppEventsSubscribe();
1155
+ }
1156
+ /**
1157
+ * Track `eventId` per stream and drop duplicates a resume re-delivers.
1158
+ * App-stream frames go to `subscribeAppEvents` listeners only. Returns
1159
+ * false when the frame was consumed (duplicate or app event).
1160
+ */
1161
+ acceptEvent(raw) {
1162
+ const stream = raw.stream === "app" ? "app" : "user";
1163
+ const eventId = typeof raw.eventId === "string" ? raw.eventId : void 0;
1164
+ if (eventId) {
1165
+ const key = `${stream}:${eventId}`;
1166
+ if (this.seenEventIds.has(key)) return false;
1167
+ this.seenEventIds.add(key);
1168
+ if (this.seenEventIds.size > SEEN_EVENT_IDS_MAX) {
1169
+ const oldest = this.seenEventIds.values().next().value;
1170
+ if (oldest !== void 0) this.seenEventIds.delete(oldest);
1171
+ }
1172
+ if (compareEventIds(eventId, this.lastEventId[stream]) > 0) this.lastEventId[stream] = eventId;
1173
+ }
1174
+ if (stream === "app") {
1175
+ for (const cb of this.appEventCbs) cb(raw);
1176
+ return false;
1177
+ }
1178
+ return true;
1057
1179
  }
1058
1180
  handleSnapshot(raw) {
1059
1181
  if (!this.subs.has(raw.outcomeId)) return;
@@ -1387,7 +1509,18 @@ var AggWebSocket = class {
1387
1509
  });
1388
1510
  }
1389
1511
  send(msg) {
1390
- if (this.ws?.readyState === WebSocket.OPEN) this.ws.send(JSON.stringify(msg));
1512
+ if (this.ws?.readyState !== WS_OPEN) return;
1513
+ const m = msg;
1514
+ const key = m.outcomeIds ? "outcomeIds" : m.marketIds ? "marketIds" : void 0;
1515
+ const ids = key ? m[key] : void 0;
1516
+ if (key && ids && ids.length > MAX_IDS_PER_FRAME) {
1517
+ for (let i = 0; i < ids.length; i += MAX_IDS_PER_FRAME) this.ws.send(JSON.stringify({
1518
+ ...m,
1519
+ [key]: ids.slice(i, i + MAX_IDS_PER_FRAME)
1520
+ }));
1521
+ return;
1522
+ }
1523
+ this.ws.send(JSON.stringify(msg));
1391
1524
  }
1392
1525
  activeOrderbookMarkets() {
1393
1526
  const markets = [];
@@ -1423,6 +1556,13 @@ var AggWebSocket = class {
1423
1556
  return this.enableLogs;
1424
1557
  }
1425
1558
  };
1559
+ /** Order server event ids ("<ms>-<seq>"); an absent id sorts first. */
1560
+ function compareEventIds(a, b) {
1561
+ if (b === void 0) return 1;
1562
+ const [am, as] = a.split("-").map(Number);
1563
+ const [bm, bs] = b.split("-").map(Number);
1564
+ return am - bm || as - bs;
1565
+ }
1426
1566
  //#endregion
1427
1567
  Object.defineProperty(exports, "AggWebSocket", {
1428
1568
  enumerable: true,
@@ -486,6 +486,21 @@ var IndexedOrderbook = class {
486
486
  */
487
487
  const RECONNECT_BASE_MS = 1e3;
488
488
  const RECONNECT_MAX_MS = 3e4;
489
+ /** WebSocket.OPEN — a literal so environments without a global WebSocket still load. */
490
+ const WS_OPEN = 1;
491
+ /** Close codes for configuration errors that a retry cannot fix. */
492
+ const NON_RETRYABLE_CLOSE_CODES = /* @__PURE__ */ new Set([4001, 4003]);
493
+ /** Most ids sent in one frame; the server rejects frames over 1000. */
494
+ const MAX_IDS_PER_FRAME = 500;
495
+ /** Recent event ids remembered to drop resume duplicates. */
496
+ const SEEN_EVENT_IDS_MAX = 1e3;
497
+ const USER_EVENT_TYPES = /* @__PURE__ */ new Set([
498
+ "order_submitted",
499
+ "balance_update",
500
+ "order_event",
501
+ "redeem_event",
502
+ "withdrawal_lifecycle"
503
+ ]);
489
504
  const STALE_TIMEOUT_MS = 45e3;
490
505
  const ORDERBOOK_DEBUG_TOP_LEVELS = 5;
491
506
  const WATCHDOG_SILENCE_MS = 3e5;
@@ -529,8 +544,16 @@ var AggWebSocket = class {
529
544
  this.lastMessageTime = 0;
530
545
  this.destroyed = false;
531
546
  this.historyControllers = /* @__PURE__ */ new Set();
547
+ this.lastEventId = {};
548
+ this.seenEventIds = /* @__PURE__ */ new Set();
549
+ this.hasConnected = false;
550
+ this.appEventCbs = /* @__PURE__ */ new Set();
551
+ this.rejected = false;
532
552
  this.deferBookViews = options.deferBookViews ?? false;
533
553
  this.url = options.url;
554
+ this.webSocketImpl = options.webSocketImpl;
555
+ this.headers = options.headers;
556
+ this.resumeEvents = options.resumeEvents ?? true;
534
557
  this.callbacks = options.callbacks ?? {};
535
558
  this.initialToken = options.initialToken;
536
559
  this.enableLogs = options.enableLogs ?? false;
@@ -772,11 +795,47 @@ var AggWebSocket = class {
772
795
  /** Send a JWT to authenticate (or re-authenticate) the connection. */
773
796
  authenticate(token) {
774
797
  this.initialToken = token;
775
- if (this.ws?.readyState === WebSocket.OPEN) this.send({
798
+ if (this.ws?.readyState === WS_OPEN) this.send({
776
799
  action: "authenticate",
777
800
  token
778
801
  });
779
802
  }
803
+ /**
804
+ * Receive every user event of this app (orders, balances, redeems,
805
+ * withdrawals) — the server-side counterpart of a user session. Requires
806
+ * a connection opened with an `x-app-api-key` for this app (pass
807
+ * `webSocketImpl` + `headers`). Frames are raw: timestamps in ms. The
808
+ * stream resumes from the last `eventId` across reconnects.
809
+ */
810
+ subscribeAppEvents(cb) {
811
+ const first = this.appEventCbs.size === 0;
812
+ this.appEventCbs.add(cb);
813
+ if (first && this._connected) this.sendAppEventsSubscribe();
814
+ this.ensureConnected();
815
+ return () => {
816
+ if (!this.appEventCbs.delete(cb)) return;
817
+ if (this.appEventCbs.size === 0 && this._connected) this.send({
818
+ action: "unsubscribe",
819
+ channel: "app-events"
820
+ });
821
+ };
822
+ }
823
+ sendAppEventsSubscribe() {
824
+ const resumeFrom = this.resumeEvents ? this.lastEventId.app : void 0;
825
+ this.send({
826
+ action: "subscribe",
827
+ channel: "app-events",
828
+ ...resumeFrom ? { resumeFrom } : {}
829
+ });
830
+ }
831
+ authenticateMessage(token) {
832
+ const resumeFrom = this.resumeEvents && this.hasConnected ? this.lastEventId.user : void 0;
833
+ return {
834
+ action: "authenticate",
835
+ token,
836
+ ...resumeFrom ? { resumeFrom } : {}
837
+ };
838
+ }
780
839
  /** Request a fresh snapshot for one or more subscribed outcomes. */
781
840
  resnapshot(outcomeIdOrIds) {
782
841
  (Array.isArray(outcomeIdOrIds) ? outcomeIdOrIds : [outcomeIdOrIds]).forEach((outcomeId) => {
@@ -785,6 +844,7 @@ var AggWebSocket = class {
785
844
  }
786
845
  /** Connect (idempotent). Called automatically on first subscribe. */
787
846
  connect() {
847
+ this.rejected = false;
788
848
  this.ensureConnected();
789
849
  }
790
850
  /** Disconnect and clean up. Reusable — call connect() to reconnect. */
@@ -826,6 +886,8 @@ var AggWebSocket = class {
826
886
  this.pendingFlushTradeUnsubs.clear();
827
887
  this.arbSubs.clear();
828
888
  this.arbFeedCbs.clear();
889
+ this.appEventCbs.clear();
890
+ this.seenEventIds.clear();
829
891
  this.latestArb.clear();
830
892
  this.pendingFlushArbSubs.clear();
831
893
  this.pendingFlushArbUnsubs.clear();
@@ -837,23 +899,23 @@ var AggWebSocket = class {
837
899
  }
838
900
  ensureConnected() {
839
901
  if (this.destroyed) return;
840
- if (this.ws?.readyState === WebSocket.OPEN || this.connecting) return;
902
+ if (this.rejected) return;
903
+ if (this.ws?.readyState === WS_OPEN || this.connecting) return;
841
904
  this.doConnect();
842
905
  }
843
906
  doConnect() {
844
907
  if (this.destroyed) return;
908
+ const Impl = this.webSocketImpl ?? globalThis.WebSocket;
909
+ if (!Impl) throw new Error("No WebSocket implementation available. Pass `webSocketImpl` (e.g. the `ws` package).");
845
910
  this.connecting = true;
846
- const ws = new WebSocket(this.url);
911
+ const ws = this.headers ? new Impl(this.url, { headers: this.headers }) : new Impl(this.url);
847
912
  this.ws = ws;
848
913
  ws.onopen = () => {
849
914
  if (this.destroyed || this.ws !== ws) return;
850
915
  this.connecting = false;
851
916
  this.reconnectAttempts = 0;
852
917
  this.resetStaleTimer();
853
- if (this.initialToken) this.send({
854
- action: "authenticate",
855
- token: this.initialToken
856
- });
918
+ if (this.initialToken) this.send(this.authenticateMessage(this.initialToken));
857
919
  };
858
920
  ws.onmessage = (event) => {
859
921
  if (this.destroyed || this.ws !== ws) return;
@@ -865,20 +927,31 @@ var AggWebSocket = class {
865
927
  this.handleMessage(raw);
866
928
  } catch {}
867
929
  };
868
- ws.onclose = () => {
930
+ ws.onclose = (event) => {
869
931
  this.ws = null;
870
932
  this.connecting = false;
871
933
  const wasConnected = this._connected;
872
934
  this._connected = false;
873
935
  this.cancelStaleTimer();
874
936
  if (wasConnected) this.callbacks.onConnectionStateChange?.(false);
875
- if (!this.destroyed && (this.subs.size > 0 || this.arbSubs.size > 0 || this.arbFeedCbs.size > 0)) this.scheduleReconnect();
937
+ const code = event?.code ?? 0;
938
+ if (NON_RETRYABLE_CLOSE_CODES.has(code)) {
939
+ this.rejected = true;
940
+ this.emitDiagnostic({
941
+ type: "connection_rejected",
942
+ code,
943
+ reason: event?.reason ?? ""
944
+ });
945
+ return;
946
+ }
947
+ if (!this.destroyed && (this.subs.size > 0 || this.arbSubs.size > 0 || this.arbFeedCbs.size > 0 || this.appEventCbs.size > 0 || !!this.initialToken)) this.scheduleReconnect();
876
948
  };
877
949
  ws.onerror = () => {};
878
950
  }
879
951
  scheduleReconnect() {
880
952
  this.cancelReconnect();
881
- const delay = Math.min(RECONNECT_BASE_MS * Math.pow(2, this.reconnectAttempts), RECONNECT_MAX_MS);
953
+ const step = Math.min(RECONNECT_BASE_MS * Math.pow(2, this.reconnectAttempts), RECONNECT_MAX_MS);
954
+ const delay = Math.round(step * (.5 + Math.random() * .5));
882
955
  this.reconnectAttempts++;
883
956
  this.emitDiagnostic({
884
957
  type: "reconnect",
@@ -915,6 +988,7 @@ var AggWebSocket = class {
915
988
  }
916
989
  handleMessage(raw) {
917
990
  const type = raw.type;
991
+ if (USER_EVENT_TYPES.has(type) && !this.acceptEvent(raw)) return;
918
992
  if ([
919
993
  "orderbook_snapshot",
920
994
  "orderbook_delta",
@@ -949,9 +1023,31 @@ var AggWebSocket = class {
949
1023
  case "connected":
950
1024
  this.handleConnected(raw);
951
1025
  break;
952
- case "authenticated":
953
- this.callbacks.onAuthenticated?.(raw);
1026
+ case "authenticated": {
1027
+ const msg = raw;
1028
+ if (this.lastEventUserId && this.lastEventUserId !== msg.userId) this.lastEventId.user = void 0;
1029
+ this.lastEventUserId = msg.userId;
1030
+ this.callbacks.onAuthenticated?.(msg);
1031
+ break;
1032
+ }
1033
+ case "auth_expiring":
1034
+ this.callbacks.onAuthExpiring?.(raw);
1035
+ break;
1036
+ case "auth_expired":
1037
+ this.callbacks.onAuthExpired?.(raw);
954
1038
  break;
1039
+ case "resumed":
1040
+ this.callbacks.onResumed?.(raw);
1041
+ break;
1042
+ case "stream_interrupted": {
1043
+ const msg = raw;
1044
+ this.emitDiagnostic({
1045
+ type: "stream_interrupted",
1046
+ channels: msg.channels
1047
+ });
1048
+ this.callbacks.onStreamInterrupted?.(msg);
1049
+ break;
1050
+ }
955
1051
  case "market_resolved":
956
1052
  this.handleMarketResolved(raw);
957
1053
  break;
@@ -1008,6 +1104,7 @@ var AggWebSocket = class {
1008
1104
  */
1009
1105
  handleConnected(msg) {
1010
1106
  this._connected = true;
1107
+ this.hasConnected = true;
1011
1108
  if (this.bookWatchdog && !this.watchdogTimer && !this.destroyed) this.watchdogTimer = setInterval(() => void this.checkSilentBooks(), this.bookWatchdog.checkIntervalMs ?? WATCHDOG_CHECK_INTERVAL_MS);
1012
1109
  this.callbacks.onConnectionStateChange?.(true);
1013
1110
  this.callbacks.onConnected?.(msg);
@@ -1054,6 +1151,31 @@ var AggWebSocket = class {
1054
1151
  action: "subscribe",
1055
1152
  channel: "arb-feed"
1056
1153
  });
1154
+ if (this.appEventCbs.size > 0) this.sendAppEventsSubscribe();
1155
+ }
1156
+ /**
1157
+ * Track `eventId` per stream and drop duplicates a resume re-delivers.
1158
+ * App-stream frames go to `subscribeAppEvents` listeners only. Returns
1159
+ * false when the frame was consumed (duplicate or app event).
1160
+ */
1161
+ acceptEvent(raw) {
1162
+ const stream = raw.stream === "app" ? "app" : "user";
1163
+ const eventId = typeof raw.eventId === "string" ? raw.eventId : void 0;
1164
+ if (eventId) {
1165
+ const key = `${stream}:${eventId}`;
1166
+ if (this.seenEventIds.has(key)) return false;
1167
+ this.seenEventIds.add(key);
1168
+ if (this.seenEventIds.size > SEEN_EVENT_IDS_MAX) {
1169
+ const oldest = this.seenEventIds.values().next().value;
1170
+ if (oldest !== void 0) this.seenEventIds.delete(oldest);
1171
+ }
1172
+ if (compareEventIds(eventId, this.lastEventId[stream]) > 0) this.lastEventId[stream] = eventId;
1173
+ }
1174
+ if (stream === "app") {
1175
+ for (const cb of this.appEventCbs) cb(raw);
1176
+ return false;
1177
+ }
1178
+ return true;
1057
1179
  }
1058
1180
  handleSnapshot(raw) {
1059
1181
  if (!this.subs.has(raw.outcomeId)) return;
@@ -1387,7 +1509,18 @@ var AggWebSocket = class {
1387
1509
  });
1388
1510
  }
1389
1511
  send(msg) {
1390
- if (this.ws?.readyState === WebSocket.OPEN) this.ws.send(JSON.stringify(msg));
1512
+ if (this.ws?.readyState !== WS_OPEN) return;
1513
+ const m = msg;
1514
+ const key = m.outcomeIds ? "outcomeIds" : m.marketIds ? "marketIds" : void 0;
1515
+ const ids = key ? m[key] : void 0;
1516
+ if (key && ids && ids.length > MAX_IDS_PER_FRAME) {
1517
+ for (let i = 0; i < ids.length; i += MAX_IDS_PER_FRAME) this.ws.send(JSON.stringify({
1518
+ ...m,
1519
+ [key]: ids.slice(i, i + MAX_IDS_PER_FRAME)
1520
+ }));
1521
+ return;
1522
+ }
1523
+ this.ws.send(JSON.stringify(msg));
1391
1524
  }
1392
1525
  activeOrderbookMarkets() {
1393
1526
  const markets = [];
@@ -1423,7 +1556,14 @@ var AggWebSocket = class {
1423
1556
  return this.enableLogs;
1424
1557
  }
1425
1558
  };
1559
+ /** Order server event ids ("<ms>-<seq>"); an absent id sorts first. */
1560
+ function compareEventIds(a, b) {
1561
+ if (b === void 0) return 1;
1562
+ const [am, as] = a.split("-").map(Number);
1563
+ const [bm, bs] = b.split("-").map(Number);
1564
+ return am - bm || as - bs;
1565
+ }
1426
1566
  //#endregion
1427
1567
  export { loadImmutableHistory as a, orderbookCrc32 as c, snapshotToOrderbook as i, projectedOrderbookChecksum as l, applyOrderbookDelta as n, decodeChartHistory as o, computeChecksum as r, readChartHistoryText as s, AggWebSocket as t };
1428
1568
 
1429
- //# sourceMappingURL=agg-websocket-BrkWNijv.mjs.map
1569
+ //# sourceMappingURL=agg-websocket-ClGhhROZ.mjs.map