@kuest/bindings 0.0.0-stage → 0.13.1

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,2 @@
1
+ import {R,O,S,T}from'../chunk-53SZ2ZWR.js';import {$a,Za,Xa,Qa,Ua as Ua$1,Ra,Ub,qa,b,a,S as S$1,Y,Pb,aa,Ca as Ca$1,Ga,ub}from'../chunk-XSRN2HAT.js';import {Aa,Pa,A,Wa,Fa,ba,ga,Ua,la,Ba,Ca,ea,Ra as Ra$1,ya,U}from'../chunk-2KNK5TP7.js';export{d as TradeStatus}from'../chunk-2KNK5TP7.js';import {z as z$1}from'zod';var _=z$1.preprocess(e=>typeof e=="string"?e.toUpperCase():e,Aa),ce=(p=>(p.Live="LIVE",p.Matched="MATCHED",p.Delayed="DELAYED",p.Unmatched="UNMATCHED",p.Canceled="CANCELED",p))(ce||{}),Re=z$1.enum(ce),pe=z$1.object({price:Pa,size:Pa}),z=z$1.string().regex(/^\d+$/).transform(e=>A(new Date(Number(e)*1e3).toISOString())),Oe=z$1.string().regex(/^\d+$/).transform(e=>e==="0"?void 0:A(new Date(Number(e)*1e3).toISOString())),de=z$1.object({event_type:z$1.literal("book"),market:ba,asset_id:Fa,bids:z$1.array(pe),asks:z$1.array(pe),hash:z$1.string().nullish(),timestamp:ga.nullish(),min_order_size:Wa,tick_size:Wa,neg_risk:z$1.boolean().nullish(),last_trade_price:Wa}).transform(({event_type:e,asset_id:n,min_order_size:r,tick_size:a,neg_risk:o,last_trade_price:p,...S})=>({topic:"market",type:e,payload:{...S,conditionId:S.market,market:S.market,assetId:n,tokenId:n,minOrderSize:r,tickSize:a,negRisk:o,lastTradePrice:p}})),je=z$1.object({asset_id:Fa,price:Pa,size:Pa,side:_,hash:z$1.string().nullish(),best_bid:Wa,best_ask:Wa}).transform(({asset_id:e,best_bid:n,best_ask:r,...a})=>({...a,assetId:e,tokenId:e,bestBid:n,bestAsk:r})),le=z$1.object({event_type:z$1.literal("price_change"),market:ba,price_changes:z$1.array(je),timestamp:ga.nullish()}).transform(({event_type:e,price_changes:n,...r})=>({topic:"market",type:e,payload:{...r,conditionId:r.market,market:r.market,priceChanges:n}})),me=z$1.object({event_type:z$1.literal("last_trade_price"),market:ba,asset_id:Fa,price:Pa,size:Wa,fee_rate_bps:Wa,side:_,timestamp:ga.nullish(),transaction_hash:z$1.string().nullish()}).transform(({event_type:e,asset_id:n,fee_rate_bps:r,transaction_hash:a,...o})=>({topic:"market",type:e,payload:{...o,conditionId:o.market,market:o.market,assetId:n,tokenId:n,feeRateBps:r,transactionHash:a}})),ye=z$1.object({event_type:z$1.literal("tick_size_change"),market:ba,asset_id:Fa,old_tick_size:Wa,new_tick_size:Pa,timestamp:ga.nullish()}).transform(({event_type:e,asset_id:n,old_tick_size:r,new_tick_size:a,...o})=>({topic:"market",type:e,payload:{...o,conditionId:o.market,market:o.market,assetId:n,tokenId:n,oldTickSize:r,newTickSize:a}})),ue=z$1.object({event_type:z$1.literal("best_bid_ask"),market:ba,asset_id:Fa,best_bid:Wa,best_ask:Wa,spread:Wa,timestamp:ga.nullish()}).transform(({event_type:e,asset_id:n,best_bid:r,best_ask:a,...o})=>({topic:"market",type:e,payload:{...o,conditionId:o.market,market:o.market,assetId:n,tokenId:n,bestBid:r,bestAsk:a}})),he=z$1.object({id:z$1.string(),ticker:z$1.string().nullish(),slug:z$1.string().nullish(),title:z$1.string().nullish(),description:z$1.string().nullish()}),Se=z$1.object({event_type:z$1.literal("new_market"),id:z$1.string(),question:z$1.string().nullish(),market:z$1.string(),slug:z$1.string().nullish(),description:z$1.string().nullish(),assets_ids:z$1.array(Fa).nullish(),outcomes:z$1.array(z$1.string()).nullish(),event_message:he.nullish(),timestamp:ga.nullish(),tags:z$1.array(z$1.string()).nullish(),condition_id:ba.nullish(),active:z$1.boolean().nullish(),clob_token_ids:z$1.array(z$1.string()).nullish(),sports_market_type:z$1.string().nullish(),line:Wa,game_start_time:z$1.preprocess(Ua,la.nullish()),order_price_min_tick_size:Wa,group_item_title:z$1.string().nullish(),taker_base_fee:Wa,fees_enabled:z$1.boolean().nullish(),fee_schedule:z$1.unknown().nullish()}).transform(({event_type:e,assets_ids:n,event_message:r,condition_id:a,clob_token_ids:o,sports_market_type:p,game_start_time:S,order_price_min_tick_size:I,group_item_title:x,taker_base_fee:C,fees_enabled:y,fee_schedule:T,...U})=>({topic:"market",type:e,payload:{...U,assetIds:n,tokenIds:n,eventMessage:r,conditionId:a,clobTokenIds:o,sportsMarketType:p,gameStartTime:S,orderPriceMinTickSize:I,groupItemTitle:x,takerBaseFee:C,feesEnabled:y,feeSchedule:T}})),fe=z$1.object({event_type:z$1.literal("market_resolved"),id:z$1.string(),market:ba,assets_ids:z$1.array(Fa).nullish(),winning_asset_id:Fa.nullish(),winning_outcome:z$1.string().nullish(),event_message:he.nullish(),timestamp:ga.nullish(),tags:z$1.array(z$1.string()).nullish()}).transform(({event_type:e,assets_ids:n,winning_asset_id:r,winning_outcome:a,event_message:o,...p})=>({topic:"market",type:e,payload:{...p,conditionId:p.market,market:p.market,assetIds:n,tokenIds:n,winningAssetId:r,winningTokenId:r,winningOutcome:a,eventMessage:o}})),ve=(a=>(a.Placement="PLACEMENT",a.Update="UPDATE",a.Cancellation="CANCELLATION",a))(ve||{}),Ne=z$1.enum(ve),Fe=z$1.object({event_type:z$1.literal("order"),id:z$1.string(),owner:z$1.string(),market:ba,asset_id:Fa,side:_,order_owner:z$1.string().nullish(),original_size:Pa,size_matched:Pa,price:Pa,associate_trades:z$1.array(z$1.string()).nullish(),outcome:z$1.string().nullish(),type:Ne,created_at:z.nullish(),expiration:Oe.nullish(),order_type:Ba.nullish(),status:Re.nullish(),maker_address:z$1.string().nullish(),timestamp:ga}).transform(({event_type:e,type:n,asset_id:r,order_owner:a,original_size:o,size_matched:p,associate_trades:S,created_at:I,expiration:x,order_type:C,maker_address:y,...T})=>({topic:"user",type:e,payload:{...T,conditionId:T.market,market:T.market,orderEventType:n,assetId:r,tokenId:r,orderOwner:a,originalSize:o,sizeMatched:p,associateTrades:S,createdAt:I,expiresAt:x,orderType:C,makerAddress:y}})),Le=z$1.object({order_id:z$1.string(),owner:z$1.string(),maker_address:z$1.string().nullish(),matched_amount:Pa,price:Pa,fee_rate_bps:Wa,asset_id:Fa,outcome:z$1.string().nullish(),outcome_index:z$1.number().int().nullish(),side:_}).transform(({order_id:e,maker_address:n,matched_amount:r,fee_rate_bps:a,asset_id:o,outcome_index:p,...S})=>({...S,orderId:e,makerAddress:n,matchedAmount:r,feeRateBps:a,assetId:o,tokenId:o,outcomeIndex:p})),Ze=z$1.object({event_type:z$1.literal("trade"),type:z$1.literal("TRADE"),id:z$1.string(),taker_order_id:z$1.string(),market:ba,asset_id:Fa,side:_,size:Pa,fee_rate_bps:Wa,price:Pa,status:Ca,match_time:z.nullish(),matchtime:z.nullish(),last_update:z.nullish(),outcome:z$1.string().nullish(),owner:z$1.string(),trade_owner:z$1.string().nullish(),maker_address:z$1.string().nullish(),transaction_hash:z$1.string().nullish(),bucket_index:z$1.number().int().nullish(),maker_orders:z$1.array(Le).nullish(),trader_side:z$1.union([z$1.literal("TAKER"),z$1.literal("MAKER")]).nullish(),timestamp:ga}).transform(({event_type:e,type:n,taker_order_id:r,asset_id:a,fee_rate_bps:o,match_time:p,matchtime:S,last_update:I,trade_owner:x,maker_address:C,transaction_hash:y,bucket_index:T,maker_orders:U,trader_side:De,...q})=>({topic:"user",type:e,payload:{...q,conditionId:q.market,market:q.market,takerOrderId:r,assetId:a,tokenId:a,feeRateBps:o,matchedAt:p??S,updatedAt:I,tradeOwner:x,makerAddress:C,transactionHash:y,bucketIndex:T,makerOrders:U,traderSide:De}})),an=z$1.discriminatedUnion("event_type",[de,le,me,ye]),on=z$1.discriminatedUnion("event_type",[ue,Se,fe]),sn=z$1.discriminatedUnion("event_type",[de,le,me,ye,ue,Se,fe]),pn=z$1.discriminatedUnion("event_type",[Fe,Ze]);var Pe=z$1.number().int().nonnegative(),Ee=ea.refine(e=>e>=0).transform(e=>e===0?null:e),$e=z$1.string().regex(/^trades::\d+$/),He=z$1.string().regex(/^bbo::\d+$/),We=z$1.string().regex(/^book::\d+$/),Ye=z$1.string().regex(/^tickers::(all|\d+)$/),Ve=z$1.string().regex(/^statistics::(all|\d+)$/),Qe=z$1.string().regex(/^klines::\d+::(1m|5m|15m|1h|4h|1d|1w)$/),Ge=z$1.string().regex(/^tpsl::\d+$/),Ke=z$1.enum(["balances","portfolio","orders","fills","funding","deposits","withdrawals","notifications"]),E=z$1.object({ts:ea,ets:Ee,sq:Pe}),Je=E.extend({ch:$e,data:z$1.array($a)}).transform(({ch:e,ts:n,ets:r,sq:a,data:o})=>({topic:"perps.trades",type:"trade",channel:e,timestamp:n,eventTimestamp:r,sequence:a,payload:o})),Xe=E.extend({ch:He,data:Za}).transform(({ch:e,ts:n,ets:r,sq:a,data:o})=>({topic:"perps.bbo",type:"bbo",channel:e,timestamp:n,eventTimestamp:r,sequence:a,payload:o})),et=E.extend({ch:We,data:Xa}).transform(({ch:e,ts:n,ets:r,sq:a,data:o})=>({topic:"perps.book",type:"book",channel:e,timestamp:n,eventTimestamp:r,sequence:a,payload:{instrumentId:ke(e),...o}})),tt=E.extend({ch:Ye,data:Qa}).transform(({ch:e,ts:n,ets:r,sq:a,data:o})=>({topic:"perps.tickers",type:"ticker",channel:e,timestamp:n,eventTimestamp:r,sequence:a,payload:o})),nt=E.extend({ch:Ve,data:Ua$1}).transform(({ch:e,ts:n,ets:r,sq:a,data:o})=>({topic:"perps.statistics",type:"statistic",channel:e,timestamp:n,eventTimestamp:r,sequence:a,payload:o})),it=E.extend({ch:Qe,data:z$1.array(Ra)}).transform(({ch:e,ts:n,ets:r,sq:a,data:o})=>({topic:"perps.candles",type:"candle",channel:e,timestamp:n,eventTimestamp:r,sequence:a,payload:{instrumentId:ke(e),interval:St(e),candles:o}})),En=z$1.union([Je,Xe,et,tt,nt,it]),rt=E.extend({ch:Ke});function k(e,n,r){return rt.extend({ch:z$1.literal(n),data:r}).transform(a=>{let o=a;return {type:e,channel:o.ch,timestamp:o.ts,eventTimestamp:o.ets,sequence:o.sq,payload:o.data}})}var at=k("balance","balances",S$1),ot=k("portfolio","portfolio",Y),st=k("order","orders",Pb),pt=k("fill","fills",z$1.array(Ub)),ct=E.extend({ch:z$1.literal("builderFills"),data:z$1.array(qa)}).transform(({ch:e,ts:n,ets:r,sq:a,data:o})=>({type:"builderFill",channel:e,timestamp:n,eventTimestamp:r,sequence:a,payload:o})),dt=k("funding","funding",aa),lt=k("deposit","deposits",Ca$1),mt=k("withdrawal","withdrawals",Ga),yt=k("notification","notifications",ub),kn=z$1.object({ch:z$1.literal("notifications"),ts:ea,ets:Ee,sq:Pe,type:z$1.literal("resync")}).transform(({ch:e,ts:n,ets:r,sq:a})=>({type:"resync",reason:"server",channel:e,timestamp:n,eventTimestamp:r,sequence:a})),ut=z$1.object({oid:b,st:z$1.enum(["untriggered","armed","activated","cancelled","expired"]),reason:z$1.string().optional()}),ht=E.extend({ch:Ge,data:ut.transform(e=>({orderId:e.oid,status:e.st,reason:e.reason}))}).transform(({ch:e,ts:n,ets:r,sq:a,data:o})=>({type:"tpsl",channel:e,timestamp:n,eventTimestamp:r,sequence:a,payload:o})),gn=z$1.union([at,ot,st,pt,ct,dt,lt,mt,yt,ht]);function ke(e){let[,n]=e.split("::");return a.parse(Number(n))}function St(e){let[,,n]=e.split("::");return n}var ft=(y=>(y.BadOp="bad_op",y.BadChannel="bad_channel",y.BadFilter="bad_filter",y.SubscriptionLimit="sub_limit",y.RateLimited="rate_limited",y.AuthRequired="auth_required",y.AuthUnavailable="auth_unavailable",y.AuthExpired="auth_expired",y.AuthAttempts="auth_attempts",y.AuthInvalid="auth_invalid",y))(ft||{}),vt=(a=>(a.Pyth="pyth",a.Chainlink="chainlink",a.Massive="massive",a))(vt||{}),M=z$1.string().transform(e=>e),ge=(o=>(o.Crypto="price.crypto",o.Twap="price.crypto.twap",o.Equity="price.equity",o.EquityTwap="price.equity.twap",o))(ge||{}),Pt=(r=>(r.Chainlink="chainlink",r.Pyth="pyth",r))(Pt||{}),Te=(p=>(p.Subscribed="subscribed",p.Unsubscribed="unsubscribed",p.Pong="pong",p.Authed="authed",p.Error="error",p))(Te||{}),Cn=z$1.object({op:z$1.enum(Te),channel:z$1.string().optional(),rid:z$1.string().optional(),provider:M.optional(),code:z$1.string().transform(e=>e).optional()}),bn=z$1.object({v:z$1.literal(1),channel:z$1.enum(ge),seq:z$1.number().int().nonnegative(),ts:ea,snapshot:z$1.boolean().optional(),dropped:z$1.number().int().nonnegative().optional(),payload:z$1.unknown()}),Et=z$1.object({timestamp:ea,value:Ra$1,full_accuracy_value:Pa}).transform(({timestamp:e,full_accuracy_value:n})=>({timestamp:e,value:n})),Ie=z$1.object({symbol:z$1.string(),source:M,timestamp:ea,value:Ra$1,full_accuracy_value:Pa,received_at:ea.optional(),is_carried_forward:z$1.boolean().optional()}).transform(({symbol:e,source:n,timestamp:r,full_accuracy_value:a,received_at:o,is_carried_forward:p})=>({symbol:e,source:n,timestamp:r,value:a,receivedAt:o,isCarriedForward:p})),D=z$1.object({symbol:z$1.string(),source:M,data:z$1.array(Et)}),xe=z$1.literal(60),Ce=z$1.object({symbol:z$1.string(),source:M,timestamp:ea,value:Ra$1,full_accuracy_value:Pa,window_seconds:xe}).transform(({symbol:e,source:n,timestamp:r,full_accuracy_value:a,window_seconds:o})=>({symbol:e,source:n,timestamp:r,value:a,windowSeconds:o})),be=D.extend({window_seconds:xe}).transform(({symbol:e,source:n,data:r,window_seconds:a})=>({symbol:e,source:n,data:r,windowSeconds:a})),g=z$1.object({timestamp:ea,seq:z$1.number().optional(),dropped:z$1.number().optional()}),kt=z$1.union([g.extend({topic:z$1.literal("prices.crypto"),type:z$1.literal("update"),payload:Ie}),g.extend({topic:z$1.literal("prices.crypto"),type:z$1.literal("subscribe"),payload:D})]),gt=z$1.union([g.extend({topic:z$1.literal("prices.crypto.twap"),type:z$1.literal("update"),payload:Ce}),g.extend({topic:z$1.literal("prices.crypto.twap"),type:z$1.literal("subscribe"),payload:be})]),Tt=z$1.union([g.extend({topic:z$1.literal("prices.equity"),type:z$1.literal("update"),payload:Ie}),g.extend({topic:z$1.literal("prices.equity"),type:z$1.literal("subscribe"),payload:D})]),It=z$1.union([g.extend({topic:z$1.literal("prices.equity.twap"),type:z$1.literal("update"),payload:Ce}),g.extend({topic:z$1.literal("prices.equity.twap"),type:z$1.literal("subscribe"),payload:be})]);function _n(e){let n={timestamp:e.ts,seq:e.seq,dropped:e.dropped,type:e.snapshot?"subscribe":"update",payload:e.payload};switch(e.channel){case "price.crypto":return kt.safeParse({...n,topic:"prices.crypto"}).data;case "price.crypto.twap":return gt.safeParse({...n,topic:"prices.crypto.twap"}).data;case "price.equity":return Tt.safeParse({...n,topic:"prices.equity"}).data;case "price.equity.twap":return It.safeParse({...n,topic:"prices.equity.twap"}).data}}var xt=z$1.object({id:z$1.string(),body:z$1.string().nullish(),parentEntityType:ya.nullish(),parentEntityID:z$1.number().int().nullish(),parentCommentID:z$1.string().nullish(),userAddress:z$1.string().nullish(),replyAddress:z$1.string().nullish(),createdAt:z$1.string().nullish(),updatedAt:z$1.string().nullish(),media:z$1.array(S).nullish(),profile:O.nullish(),reactions:z$1.array(R).nullish(),reportCount:z$1.number().int().nullish(),reactionCount:z$1.number().int().nullish(),tradeAsset:z$1.string().nullish()}),Ct=z$1.object({topic:z$1.literal("comments"),type:z$1.literal("comment_created"),timestamp:ea,payload:T}),bt=z$1.object({topic:z$1.literal("comments"),type:z$1.literal("comment_removed"),timestamp:ea,payload:xt}),_t=z$1.object({topic:z$1.literal("comments"),type:z$1.literal("reaction_created"),timestamp:ea,payload:R}),wt=z$1.object({topic:z$1.literal("comments"),type:z$1.literal("reaction_removed"),timestamp:ea,payload:R}),we=z$1.object({symbol:z$1.string(),timestamp:ea,value:Ra$1}),zt="prices.crypto.binance",Mt="prices.crypto.chainlink",ze="prices.crypto.chainlink.twap",Ut=z$1.literal("crypto_prices"),qt=z$1.literal("crypto_prices_chainlink"),At=z$1.literal("crypto_prices_twap_thirty"),Dt=z$1.literal("crypto_prices_twap_sixty"),Bt=Ut.transform(()=>zt),Rt=qt.transform(()=>Mt),Ot=At.transform(()=>ze),jt=Dt.transform(()=>ze),Nt=z$1.object({topic:Bt,type:z$1.literal("update"),timestamp:ea,payload:we}),Ft=z$1.object({topic:Rt,type:z$1.literal("update"),timestamp:ea,payload:we}),_e=1000000000000000000n;function Lt(e){let n=BigInt(e),r=n<0n,a=r?-n:n,o=a/_e,p=(a%_e).toString().padStart(18,"0").replace(/0+$/,"");return U(`${r?"-":""}${o}${p===""?"":`.${p}`}`)}var Zt=z$1.string().regex(/^-?\d+$/).transform(Lt),$t=z$1.object({symbol:z$1.string(),value:Ra$1,full_accuracy_value:Zt,timestamp:ea});function Me(e){return $t.extend({window_s:z$1.literal(e)}).transform(n=>({symbol:n.symbol,timestamp:n.timestamp,value:n.full_accuracy_value,windowSeconds:n.window_s}))}var Ue=z$1.object({topic:Ot,type:z$1.literal("update"),timestamp:ea,payload:Me(30)}),qe=z$1.object({topic:jt,type:z$1.literal("update"),timestamp:ea,payload:Me(60)}),qn=z$1.union([Ue,qe]),Ht=z$1.discriminatedUnion("topic",[Nt,Ft,Ue,qe]),Wt=z$1.object({symbol:z$1.string(),value:Ra$1,full_accuracy_value:Pa.nullish(),timestamp:ea,received_at:ea.nullish(),is_carried_forward:z$1.boolean().nullish()}).transform(({full_accuracy_value:e,received_at:n,is_carried_forward:r,value:a,...o})=>({...o,value:e??a,receivedAt:n,isCarriedForward:r})),Yt=z$1.object({timestamp:z$1.number(),value:Ra$1}),Vt=z$1.object({symbol:z$1.string(),data:z$1.array(Yt)}),Qt=z$1.literal("equity_prices"),Gt="prices.equity.pyth",Ae=Qt.transform(()=>Gt),Kt=z$1.object({topic:Ae,type:z$1.literal("update"),timestamp:ea,payload:Wt}),Jt=z$1.object({topic:Ae,type:z$1.literal("subscribe"),timestamp:ea,payload:Vt}),Xt=z$1.discriminatedUnion("type",[Kt,Jt]),en=z$1.discriminatedUnion("type",[Ct,bt,_t,wt]),An=z$1.discriminatedUnion("topic",[en,Ht,Xt]);var tn=z$1.object({gameId:z$1.number().int(),sportradarGameId:z$1.string().nullish(),slug:z$1.string().nullish(),leagueAbbreviation:z$1.string(),homeTeam:z$1.string().nullish(),awayTeam:z$1.string().nullish(),status:z$1.string(),live:z$1.boolean(),ended:z$1.boolean(),score:z$1.string(),period:z$1.string().nullish(),elapsed:z$1.string().nullish(),finishedTimestamp:la.nullish(),finished_timestamp:la.nullish(),turn:z$1.string().nullish()}).transform(({finishedTimestamp:e,finished_timestamp:n,...r})=>({...r,finishedAt:e??n})),On=tn.transform(e=>({topic:"sports",type:"sport_result",payload:e}));export{Ct as CommentCreatedEventSchema,bt as CommentRemovedEventSchema,en as CommentsEventSchema,kt as CryptoPriceEventSchema,Nt as CryptoPricesBinanceEventSchema,Ft as CryptoPricesChainlinkEventSchema,qn as CryptoPricesChainlinkTwapEventSchema,qe as CryptoPricesChainlinkTwapSixtyEventSchema,Ue as CryptoPricesChainlinkTwapThirtyEventSchema,Ht as CryptoPricesEventSchema,gt as CryptoTwapPriceEventSchema,on as CustomMarketEventSchema,Tt as EquityPriceEventSchema,Xt as EquityPricesEventSchema,Jt as EquityPricesSubscribeEventSchema,Kt as EquityPricesUpdateEventSchema,It as EquityTwapPriceEventSchema,vt as KnownPriceSource,ue as MarketBestBidAskEventSchema,de as MarketBookEventSchema,sn as MarketEventSchema,me as MarketLastTradePriceEventSchema,le as MarketPriceChangeEventSchema,fe as MarketResolvedEventSchema,ye as MarketTickSizeChangeEventSchema,Se as NewMarketEventSchema,at as PerpsBalanceUpdateEventSchema,Xe as PerpsBboEventSchema,et as PerpsBookEventSchema,ct as PerpsBuilderFillUpdateEventSchema,it as PerpsCandleEventSchema,lt as PerpsDepositUpdateEventSchema,pt as PerpsFillUpdateEventSchema,dt as PerpsFundingUpdateEventSchema,En as PerpsMarketDataEventSchema,yt as PerpsNotificationUpdateEventSchema,kn as PerpsNotificationsResyncFrameSchema,st as PerpsOrderUpdateEventSchema,ot as PerpsPortfolioUpdateEventSchema,gn as PerpsSessionUpdateEventSchema,nt as PerpsStatisticEventSchema,tt as PerpsTickerEventSchema,ht as PerpsTpSlUpdateEventSchema,Je as PerpsTradeEventSchema,mt as PerpsWithdrawalUpdateEventSchema,Te as PolyboltAckOp,Cn as PolyboltAckSchema,ge as PolyboltChannel,bn as PolyboltEnvelopeSchema,Pt as PriceProvider,_t as ReactionCreatedEventSchema,wt as ReactionRemovedEventSchema,An as RealtimeEventSchema,ft as RealtimeKnownErrorCode,On as SportsResultEventSchema,an as StandardMarketEventSchema,pn as UserEventSchema,Fe as UserOrderEventSchema,ve as UserOrderEventType,ce as UserOrderStatus,Ze as UserTradeEventSchema,_n as parsePolyboltEvent};//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/subscriptions/clob.ts","../../src/subscriptions/perps.ts","../../src/subscriptions/polybolt.ts","../../src/subscriptions/rtds.ts","../../src/subscriptions/sports.ts"],"names":["NormalizedOrderSideSchema","z","value","OrderSideSchema","UserOrderStatus","UserOrderStatusSchema","OrderBookLevelSchema","DecimalStringSchema","EpochSecondsStringToIsoDateTimeStringSchema","toIsoDateTimeString","ExpirationToIsoDateTimeStringSchema","MarketBookEventSchema","ConditionIdSchema","ClobAssetIdSchema","EpochMillisecondsStringSchema","OptionalDecimalStringSchema","event_type","asset_id","min_order_size","tick_size","neg_risk","last_trade_price","rest","PriceChangeSchema","best_bid","best_ask","MarketPriceChangeEventSchema","price_changes","MarketLastTradePriceEventSchema","fee_rate_bps","transaction_hash","MarketTickSizeChangeEventSchema","old_tick_size","new_tick_size","MarketBestBidAskEventSchema","MarketEventMessageSchema","NewMarketEventSchema","emptyStringToNull","EpochMillisecondsToIsoDateTimeStringSchema","assets_ids","event_message","condition_id","clob_token_ids","sports_market_type","game_start_time","order_price_min_tick_size","group_item_title","taker_base_fee","fees_enabled","fee_schedule","MarketResolvedEventSchema","winning_asset_id","winning_outcome","UserOrderEventType","UserOrderEventTypeSchema","UserOrderEventSchema","OrderTypeSchema","orderEventType","order_owner","original_size","size_matched","associate_trades","created_at","expiration","order_type","maker_address","TradeMakerOrderSchema","order_id","matched_amount","outcome_index","UserTradeEventSchema","TradeStatusSchema","_","taker_order_id","match_time","matchtime","last_update","trade_owner","bucket_index","maker_orders","trader_side","StandardMarketEventSchema","CustomMarketEventSchema","MarketEventSchema","UserEventSchema","SequenceSchema","PerpsEventHorizonSchema","EpochMillisecondsSchema","TradesChannelSchema","BboChannelSchema","BookChannelSchema","TickersChannelSchema","StatisticsChannelSchema","CandlesChannelSchema","TpslChannelSchema","PerpsSessionChannelSchema","PerpsUpdateEnvelopeSchema","PerpsTradeEventSchema","PerpsPublicTradeUpdateSchema","ch","ts","ets","sq","data","PerpsBboEventSchema","PerpsBboUpdateSchema","PerpsBookEventSchema","PerpsBookUpdateSchema","instrumentIdFromChannel","PerpsTickerEventSchema","PerpsTickerEntrySchema","PerpsStatisticEventSchema","PerpsStatisticUpdateSchema","PerpsCandleEventSchema","PerpsCandleSchema","candleIntervalFromChannel","PerpsMarketDataEventSchema","PerpsSessionUpdateEnvelopeSchema","perpsSessionEventSchema","type","channel","payload","message","event","PerpsBalanceUpdateEventSchema","PerpsBalanceSchema","PerpsPortfolioUpdateEventSchema","PerpsPortfolioSchema","PerpsOrderUpdateEventSchema","PerpsOrderUpdateSchema","PerpsFillUpdateEventSchema","PerpsAccountFillUpdateSchema","PerpsBuilderFillUpdateEventSchema","PerpsBuilderEarningSchema","PerpsFundingUpdateEventSchema","PerpsAccountFundingPaymentEntrySchema","PerpsDepositUpdateEventSchema","PerpsDepositUpdateSchema","PerpsWithdrawalUpdateEventSchema","PerpsWithdrawalUpdateSchema","PerpsNotificationUpdateEventSchema","PerpsNotificationSchema","PerpsNotificationsResyncFrameSchema","PerpsTpSlLifecycleUpdateSchema","PerpsOrderIdSchema","PerpsTpSlUpdateEventSchema","update","PerpsSessionUpdateEventSchema","rawInstrumentId","PerpsInstrumentIdSchema","interval","RealtimeKnownErrorCode","KnownPriceSource","PriceSourceSchema","PolyboltChannel","PriceProvider","PolyboltAckOp","PolyboltAckSchema","PolyboltEnvelopeSchema","PricePointSchema","DecimalishSchema","timestamp","full_accuracy_value","PricePayloadSchema","symbol","source","received_at","is_carried_forward","SnapshotPayloadSchema","TwapWindowSchema","TwapPayloadSchema","window_seconds","TwapSnapshotSchema","EventMetadataSchema","CryptoPriceEventSchema","CryptoTwapPriceEventSchema","EquityPriceEventSchema","EquityTwapPriceEventSchema","parsePolyboltEvent","envelope","CommentRemovedPayloadSchema","CommentParentEntityTypeSchema","CommentMediaSchema","CommentProfileSchema","ReactionSchema","CommentCreatedEventSchema","CommentSchema","CommentRemovedEventSchema","ReactionCreatedEventSchema","ReactionRemovedEventSchema","PriceUpdatePayloadSchema","CRYPTO_PRICES_BINANCE_TOPIC","CRYPTO_PRICES_CHAINLINK_TOPIC","CRYPTO_PRICES_CHAINLINK_TWAP_TOPIC","RawCryptoPricesBinanceTopicSchema","RawCryptoPricesChainlinkTopicSchema","RawCryptoPricesChainlinkTwapThirtyTopicSchema","RawCryptoPricesChainlinkTwapSixtyTopicSchema","CryptoPricesBinanceTopicSchema","CryptoPricesChainlinkTopicSchema","CryptoPricesChainlinkTwapThirtyTopicSchema","CryptoPricesChainlinkTwapSixtyTopicSchema","CryptoPricesBinanceEventSchema","CryptoPricesChainlinkEventSchema","CHAINLINK_PRICE_SCALE","chainlinkE18PriceToDecimalString","scaledValue","isNegative","absoluteValue","whole","fraction","toDecimalString","ChainlinkFullAccuracyPriceSchema","CryptoPricesChainlinkTwapPayloadBaseSchema","cryptoPricesChainlinkTwapPayloadSchema","windowSeconds","CryptoPricesChainlinkTwapThirtyEventSchema","CryptoPricesChainlinkTwapSixtyEventSchema","CryptoPricesChainlinkTwapEventSchema","CryptoPricesEventSchema","EquityPriceUpdatePayloadSchema","EquityPriceSnapshotPointSchema","EquityPriceSubscribePayloadSchema","RawEquityPricesTopicSchema","EQUITY_PRICES_TOPIC","EquityPricesTopicSchema","EquityPricesUpdateEventSchema","EquityPricesSubscribeEventSchema","EquityPricesEventSchema","CommentsEventSchema","RealtimeEventSchema","SportsResultPayloadSchema","finishedTimestamp","finished_timestamp","SportsResultEventSchema"],"mappings":"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","file":"index.js","sourcesContent":["import { z } from 'zod';\nimport {\n ClobAssetIdSchema,\n type ConditionId,\n ConditionIdSchema,\n type DecimalString,\n DecimalStringSchema,\n type EpochMilliseconds,\n EpochMillisecondsStringSchema,\n EpochMillisecondsToIsoDateTimeStringSchema,\n emptyStringToNull,\n type IsoDateTimeString,\n OptionalDecimalStringSchema,\n type OrderSide,\n OrderSideSchema,\n type OrderType,\n OrderTypeSchema,\n type PositionId,\n type TokenId,\n type TradeStatus,\n TradeStatusSchema,\n toIsoDateTimeString,\n} from '../shared';\n\n// The websocket serializes absent optional decimals as an empty string (for\n// example `fee_rate_bps` on a trade with no fee, or `best_bid`/`best_ask` when\n// there is none), so optional decimal fields in these schemas use the\n// ''-normalizing OptionalDecimalStringSchema.\n\nconst NormalizedOrderSideSchema: z.ZodType<OrderSide> = z.preprocess(\n (value) => (typeof value === 'string' ? value.toUpperCase() : value),\n OrderSideSchema,\n);\n\nexport { TradeStatus } from '../shared';\n\nexport enum UserOrderStatus {\n Live = 'LIVE',\n Matched = 'MATCHED',\n Delayed = 'DELAYED',\n Unmatched = 'UNMATCHED',\n Canceled = 'CANCELED',\n}\n\nconst UserOrderStatusSchema = z.enum(UserOrderStatus);\n\nconst OrderBookLevelSchema = z.object({\n price: DecimalStringSchema,\n size: DecimalStringSchema,\n});\n\nconst EpochSecondsStringToIsoDateTimeStringSchema = z\n .string()\n .regex(/^\\d+$/)\n .transform((value) =>\n toIsoDateTimeString(new Date(Number(value) * 1000).toISOString()),\n );\n\nconst ExpirationToIsoDateTimeStringSchema = z\n .string()\n .regex(/^\\d+$/)\n .transform((value) =>\n value === '0'\n ? undefined\n : toIsoDateTimeString(new Date(Number(value) * 1000).toISOString()),\n );\n\nexport type OrderBookLevel = z.infer<typeof OrderBookLevelSchema>;\n\nexport const MarketBookEventSchema = z\n .object({\n event_type: z.literal('book'),\n market: ConditionIdSchema,\n asset_id: ClobAssetIdSchema,\n bids: z.array(OrderBookLevelSchema),\n asks: z.array(OrderBookLevelSchema),\n hash: z.string().nullish(),\n timestamp: EpochMillisecondsStringSchema.nullish(),\n min_order_size: OptionalDecimalStringSchema,\n tick_size: OptionalDecimalStringSchema,\n neg_risk: z.boolean().nullish(),\n last_trade_price: OptionalDecimalStringSchema,\n })\n .transform(\n ({\n event_type,\n asset_id,\n min_order_size,\n tick_size,\n neg_risk,\n last_trade_price,\n ...rest\n }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'market' as const,\n type: event_type,\n payload: {\n ...rest,\n conditionId: rest.market,\n market: rest.market,\n assetId: asset_id,\n tokenId: asset_id,\n minOrderSize: min_order_size,\n tickSize: tick_size,\n negRisk: neg_risk,\n lastTradePrice: last_trade_price,\n },\n };\n },\n ) satisfies z.ZodType<MarketBookEvent>;\n\nexport type MarketBookEvent = {\n topic: 'market';\n type: 'book';\n payload: {\n assetId: PositionId | TokenId;\n /** @deprecated Use `assetId`. */\n tokenId: PositionId | TokenId;\n conditionId: ConditionId;\n /** @deprecated Use `conditionId`. */\n market: ConditionId;\n bids: OrderBookLevel[];\n asks: OrderBookLevel[];\n hash?: string | null;\n timestamp?: EpochMilliseconds | null;\n minOrderSize: DecimalString | null | undefined;\n tickSize: DecimalString | null | undefined;\n negRisk: boolean | null | undefined;\n lastTradePrice: DecimalString | null | undefined;\n };\n};\n\nconst PriceChangeSchema = z\n .object({\n asset_id: ClobAssetIdSchema,\n price: DecimalStringSchema,\n size: DecimalStringSchema,\n side: NormalizedOrderSideSchema,\n hash: z.string().nullish(),\n best_bid: OptionalDecimalStringSchema,\n best_ask: OptionalDecimalStringSchema,\n })\n .transform(({ asset_id, best_bid, best_ask, ...rest }) => ({\n ...rest,\n assetId: asset_id,\n tokenId: asset_id,\n bestBid: best_bid,\n bestAsk: best_ask,\n })) satisfies z.ZodType<PriceChange>;\n\nexport type PriceChange = {\n assetId: PositionId | TokenId;\n /** @deprecated Use `assetId`. */\n tokenId: PositionId | TokenId;\n price: DecimalString;\n size: DecimalString;\n side: OrderSide;\n hash?: string | null;\n bestBid: DecimalString | null | undefined;\n bestAsk: DecimalString | null | undefined;\n};\n\nexport const MarketPriceChangeEventSchema = z\n .object({\n event_type: z.literal('price_change'),\n market: ConditionIdSchema,\n price_changes: z.array(PriceChangeSchema),\n timestamp: EpochMillisecondsStringSchema.nullish(),\n })\n .transform(({ event_type, price_changes, ...rest }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'market' as const,\n type: event_type,\n payload: {\n ...rest,\n conditionId: rest.market,\n market: rest.market,\n priceChanges: price_changes,\n },\n };\n }) satisfies z.ZodType<MarketPriceChangeEvent>;\n\nexport type MarketPriceChangeEvent = {\n topic: 'market';\n type: 'price_change';\n payload: {\n conditionId: ConditionId;\n /** @deprecated Use `conditionId`. */\n market: ConditionId;\n priceChanges: PriceChange[];\n timestamp?: EpochMilliseconds | null;\n };\n};\n\nexport const MarketLastTradePriceEventSchema = z\n .object({\n event_type: z.literal('last_trade_price'),\n market: ConditionIdSchema,\n asset_id: ClobAssetIdSchema,\n price: DecimalStringSchema,\n size: OptionalDecimalStringSchema,\n fee_rate_bps: OptionalDecimalStringSchema,\n side: NormalizedOrderSideSchema,\n timestamp: EpochMillisecondsStringSchema.nullish(),\n transaction_hash: z.string().nullish(),\n })\n .transform(\n ({ event_type, asset_id, fee_rate_bps, transaction_hash, ...rest }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'market' as const,\n type: event_type,\n payload: {\n ...rest,\n conditionId: rest.market,\n market: rest.market,\n assetId: asset_id,\n tokenId: asset_id,\n feeRateBps: fee_rate_bps,\n transactionHash: transaction_hash,\n },\n };\n },\n ) satisfies z.ZodType<MarketLastTradePriceEvent>;\n\nexport type MarketLastTradePriceEvent = {\n topic: 'market';\n type: 'last_trade_price';\n payload: {\n assetId: PositionId | TokenId;\n /** @deprecated Use `assetId`. */\n tokenId: PositionId | TokenId;\n conditionId: ConditionId;\n /** @deprecated Use `conditionId`. */\n market: ConditionId;\n price: DecimalString;\n side: OrderSide;\n size?: DecimalString | null;\n feeRateBps: DecimalString | null | undefined;\n timestamp?: EpochMilliseconds | null;\n transactionHash: string | null | undefined;\n };\n};\n\nexport const MarketTickSizeChangeEventSchema = z\n .object({\n event_type: z.literal('tick_size_change'),\n market: ConditionIdSchema,\n asset_id: ClobAssetIdSchema,\n old_tick_size: OptionalDecimalStringSchema,\n new_tick_size: DecimalStringSchema,\n timestamp: EpochMillisecondsStringSchema.nullish(),\n })\n .transform(\n ({ event_type, asset_id, old_tick_size, new_tick_size, ...rest }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'market' as const,\n type: event_type,\n payload: {\n ...rest,\n conditionId: rest.market,\n market: rest.market,\n assetId: asset_id,\n tokenId: asset_id,\n oldTickSize: old_tick_size,\n newTickSize: new_tick_size,\n },\n };\n },\n ) satisfies z.ZodType<MarketTickSizeChangeEvent>;\n\nexport type MarketTickSizeChangeEvent = {\n topic: 'market';\n type: 'tick_size_change';\n payload: {\n assetId: PositionId | TokenId;\n /** @deprecated Use `assetId`. */\n tokenId: PositionId | TokenId;\n conditionId: ConditionId;\n /** @deprecated Use `conditionId`. */\n market: ConditionId;\n oldTickSize: DecimalString | null | undefined;\n newTickSize: DecimalString;\n timestamp?: EpochMilliseconds | null;\n };\n};\n\nexport const MarketBestBidAskEventSchema = z\n .object({\n event_type: z.literal('best_bid_ask'),\n market: ConditionIdSchema,\n asset_id: ClobAssetIdSchema,\n best_bid: OptionalDecimalStringSchema,\n best_ask: OptionalDecimalStringSchema,\n spread: OptionalDecimalStringSchema,\n timestamp: EpochMillisecondsStringSchema.nullish(),\n })\n .transform(({ event_type, asset_id, best_bid, best_ask, ...rest }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'market' as const,\n type: event_type,\n payload: {\n ...rest,\n conditionId: rest.market,\n market: rest.market,\n assetId: asset_id,\n tokenId: asset_id,\n bestBid: best_bid,\n bestAsk: best_ask,\n },\n };\n }) satisfies z.ZodType<MarketBestBidAskEvent>;\n\nexport type MarketBestBidAskEvent = {\n topic: 'market';\n type: 'best_bid_ask';\n payload: {\n assetId: PositionId | TokenId;\n /** @deprecated Use `assetId`. */\n tokenId: PositionId | TokenId;\n conditionId: ConditionId;\n /** @deprecated Use `conditionId`. */\n market: ConditionId;\n bestBid: DecimalString | null | undefined;\n bestAsk: DecimalString | null | undefined;\n spread?: DecimalString | null;\n timestamp?: EpochMilliseconds | null;\n };\n};\n\nconst MarketEventMessageSchema = z.object({\n id: z.string(),\n ticker: z.string().nullish(),\n slug: z.string().nullish(),\n title: z.string().nullish(),\n description: z.string().nullish(),\n});\n\nexport type MarketEventMessage = z.infer<typeof MarketEventMessageSchema>;\n\nexport const NewMarketEventSchema = z\n .object({\n event_type: z.literal('new_market'),\n id: z.string(),\n question: z.string().nullish(),\n market: z.string(),\n slug: z.string().nullish(),\n description: z.string().nullish(),\n assets_ids: z.array(ClobAssetIdSchema).nullish(),\n outcomes: z.array(z.string()).nullish(),\n event_message: MarketEventMessageSchema.nullish(),\n timestamp: EpochMillisecondsStringSchema.nullish(),\n tags: z.array(z.string()).nullish(),\n condition_id: ConditionIdSchema.nullish(),\n active: z.boolean().nullish(),\n clob_token_ids: z.array(z.string()).nullish(),\n sports_market_type: z.string().nullish(),\n line: OptionalDecimalStringSchema,\n game_start_time: z.preprocess(\n emptyStringToNull,\n EpochMillisecondsToIsoDateTimeStringSchema.nullish(),\n ),\n order_price_min_tick_size: OptionalDecimalStringSchema,\n group_item_title: z.string().nullish(),\n taker_base_fee: OptionalDecimalStringSchema,\n fees_enabled: z.boolean().nullish(),\n fee_schedule: z.unknown().nullish(),\n })\n .transform(\n ({\n event_type,\n assets_ids,\n event_message,\n condition_id,\n clob_token_ids,\n sports_market_type,\n game_start_time,\n order_price_min_tick_size,\n group_item_title,\n taker_base_fee,\n fees_enabled,\n fee_schedule,\n ...rest\n }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'market' as const,\n type: event_type,\n payload: {\n ...rest,\n assetIds: assets_ids,\n tokenIds: assets_ids,\n eventMessage: event_message,\n conditionId: condition_id,\n clobTokenIds: clob_token_ids,\n sportsMarketType: sports_market_type,\n gameStartTime: game_start_time,\n orderPriceMinTickSize: order_price_min_tick_size,\n groupItemTitle: group_item_title,\n takerBaseFee: taker_base_fee,\n feesEnabled: fees_enabled,\n feeSchedule: fee_schedule,\n },\n };\n },\n ) satisfies z.ZodType<NewMarketEvent>;\n\nexport type NewMarketEvent = {\n topic: 'market';\n type: 'new_market';\n payload: {\n id: string;\n market: string;\n assetIds: Array<PositionId | TokenId> | null | undefined;\n /** @deprecated Use `assetIds`. */\n tokenIds: Array<PositionId | TokenId> | null | undefined;\n eventMessage: MarketEventMessage | null | undefined;\n conditionId: ConditionId | null | undefined;\n clobTokenIds: string[] | null | undefined;\n sportsMarketType: string | null | undefined;\n gameStartTime: IsoDateTimeString | null | undefined;\n orderPriceMinTickSize: DecimalString | null | undefined;\n groupItemTitle: string | null | undefined;\n takerBaseFee: DecimalString | null | undefined;\n feesEnabled: boolean | null | undefined;\n feeSchedule: unknown;\n question?: string | null;\n slug?: string | null;\n description?: string | null;\n outcomes?: string[] | null;\n timestamp?: EpochMilliseconds | null;\n tags?: string[] | null;\n active?: boolean | null;\n line?: DecimalString | null;\n };\n};\n\nexport const MarketResolvedEventSchema = z\n .object({\n event_type: z.literal('market_resolved'),\n id: z.string(),\n market: ConditionIdSchema,\n assets_ids: z.array(ClobAssetIdSchema).nullish(),\n winning_asset_id: ClobAssetIdSchema.nullish(),\n winning_outcome: z.string().nullish(),\n event_message: MarketEventMessageSchema.nullish(),\n timestamp: EpochMillisecondsStringSchema.nullish(),\n tags: z.array(z.string()).nullish(),\n })\n .transform(\n ({\n event_type,\n assets_ids,\n winning_asset_id,\n winning_outcome,\n event_message,\n ...rest\n }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'market' as const,\n type: event_type,\n payload: {\n ...rest,\n conditionId: rest.market,\n market: rest.market,\n assetIds: assets_ids,\n tokenIds: assets_ids,\n winningAssetId: winning_asset_id,\n winningTokenId: winning_asset_id,\n winningOutcome: winning_outcome,\n eventMessage: event_message,\n },\n };\n },\n ) satisfies z.ZodType<MarketResolvedEvent>;\n\nexport type MarketResolvedEvent = {\n topic: 'market';\n type: 'market_resolved';\n payload: {\n id: string;\n conditionId: ConditionId;\n /** @deprecated Use `conditionId`. */\n market: ConditionId;\n assetIds: Array<PositionId | TokenId> | null | undefined;\n /** @deprecated Use `assetIds`. */\n tokenIds: Array<PositionId | TokenId> | null | undefined;\n winningAssetId: PositionId | TokenId | null | undefined;\n /** @deprecated Use `winningAssetId`. */\n winningTokenId: PositionId | TokenId | null | undefined;\n winningOutcome: string | null | undefined;\n eventMessage: MarketEventMessage | null | undefined;\n timestamp?: EpochMilliseconds | null;\n tags?: string[] | null;\n };\n};\n\nexport enum UserOrderEventType {\n Placement = 'PLACEMENT',\n Update = 'UPDATE',\n Cancellation = 'CANCELLATION',\n}\n\nconst UserOrderEventTypeSchema = z.enum(UserOrderEventType);\n\nexport const UserOrderEventSchema = z\n .object({\n event_type: z.literal('order'),\n id: z.string(),\n owner: z.string(),\n market: ConditionIdSchema,\n asset_id: ClobAssetIdSchema,\n side: NormalizedOrderSideSchema,\n order_owner: z.string().nullish(),\n original_size: DecimalStringSchema,\n size_matched: DecimalStringSchema,\n price: DecimalStringSchema,\n associate_trades: z.array(z.string()).nullish(),\n outcome: z.string().nullish(),\n type: UserOrderEventTypeSchema,\n created_at: EpochSecondsStringToIsoDateTimeStringSchema.nullish(),\n expiration: ExpirationToIsoDateTimeStringSchema.nullish(),\n order_type: OrderTypeSchema.nullish(),\n status: UserOrderStatusSchema.nullish(),\n maker_address: z.string().nullish(),\n timestamp: EpochMillisecondsStringSchema,\n })\n .transform(\n ({\n event_type,\n type: orderEventType,\n asset_id,\n order_owner,\n original_size,\n size_matched,\n associate_trades,\n created_at,\n expiration,\n order_type,\n maker_address,\n ...rest\n }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'user' as const,\n type: event_type,\n payload: {\n ...rest,\n conditionId: rest.market,\n market: rest.market,\n orderEventType,\n assetId: asset_id,\n tokenId: asset_id,\n orderOwner: order_owner,\n originalSize: original_size,\n sizeMatched: size_matched,\n associateTrades: associate_trades,\n createdAt: created_at,\n expiresAt: expiration,\n orderType: order_type,\n makerAddress: maker_address,\n },\n };\n },\n ) satisfies z.ZodType<UserOrderEvent>;\n\nexport type UserOrderEvent = {\n topic: 'user';\n type: 'order';\n payload: {\n id: string;\n owner: string;\n assetId: PositionId | TokenId;\n /** @deprecated Use `assetId`. */\n tokenId: PositionId | TokenId;\n conditionId: ConditionId;\n /** @deprecated Use `conditionId`. */\n market: ConditionId;\n side: OrderSide;\n orderOwner: string | null | undefined;\n originalSize: DecimalString;\n sizeMatched: DecimalString;\n price: DecimalString;\n associateTrades: string[] | null | undefined;\n outcome?: string | null;\n orderEventType: UserOrderEventType;\n createdAt: IsoDateTimeString | null | undefined;\n expiresAt: IsoDateTimeString | null | undefined;\n orderType: OrderType | null | undefined;\n status?: UserOrderStatus | null;\n makerAddress: string | null | undefined;\n timestamp: EpochMilliseconds;\n };\n};\n\nconst TradeMakerOrderSchema = z\n .object({\n order_id: z.string(),\n owner: z.string(),\n maker_address: z.string().nullish(),\n matched_amount: DecimalStringSchema,\n price: DecimalStringSchema,\n fee_rate_bps: OptionalDecimalStringSchema,\n asset_id: ClobAssetIdSchema,\n outcome: z.string().nullish(),\n outcome_index: z.number().int().nullish(),\n side: NormalizedOrderSideSchema,\n })\n .transform(\n ({\n order_id,\n maker_address,\n matched_amount,\n fee_rate_bps,\n asset_id,\n outcome_index,\n ...rest\n }) => ({\n ...rest,\n orderId: order_id,\n makerAddress: maker_address,\n matchedAmount: matched_amount,\n feeRateBps: fee_rate_bps,\n assetId: asset_id,\n tokenId: asset_id,\n outcomeIndex: outcome_index,\n }),\n ) satisfies z.ZodType<TradeMakerOrder>;\n\nexport type TradeMakerOrder = {\n orderId: string;\n owner: string;\n assetId: PositionId | TokenId;\n /** @deprecated Use `assetId`. */\n tokenId: PositionId | TokenId;\n makerAddress: string | null | undefined;\n matchedAmount: DecimalString;\n price: DecimalString;\n feeRateBps: DecimalString | null | undefined;\n outcome?: string | null;\n outcomeIndex: number | null | undefined;\n side: OrderSide;\n};\n\nexport const UserTradeEventSchema = z\n .object({\n event_type: z.literal('trade'),\n type: z.literal('TRADE'),\n id: z.string(),\n taker_order_id: z.string(),\n market: ConditionIdSchema,\n asset_id: ClobAssetIdSchema,\n side: NormalizedOrderSideSchema,\n size: DecimalStringSchema,\n fee_rate_bps: OptionalDecimalStringSchema,\n price: DecimalStringSchema,\n status: TradeStatusSchema,\n match_time: EpochSecondsStringToIsoDateTimeStringSchema.nullish(),\n matchtime: EpochSecondsStringToIsoDateTimeStringSchema.nullish(),\n last_update: EpochSecondsStringToIsoDateTimeStringSchema.nullish(),\n outcome: z.string().nullish(),\n owner: z.string(),\n trade_owner: z.string().nullish(),\n maker_address: z.string().nullish(),\n transaction_hash: z.string().nullish(),\n bucket_index: z.number().int().nullish(),\n maker_orders: z.array(TradeMakerOrderSchema).nullish(),\n trader_side: z.union([z.literal('TAKER'), z.literal('MAKER')]).nullish(),\n timestamp: EpochMillisecondsStringSchema,\n })\n .transform(\n ({\n event_type,\n type: _,\n taker_order_id,\n asset_id,\n fee_rate_bps,\n match_time,\n matchtime,\n last_update,\n trade_owner,\n maker_address,\n transaction_hash,\n bucket_index,\n maker_orders,\n trader_side,\n ...rest\n }) => {\n return {\n // Normalize to a consistent event envelope: `topic`, `type`, and `payload`.\n topic: 'user' as const,\n type: event_type,\n payload: {\n ...rest,\n conditionId: rest.market,\n market: rest.market,\n takerOrderId: taker_order_id,\n assetId: asset_id,\n tokenId: asset_id,\n feeRateBps: fee_rate_bps,\n matchedAt: match_time ?? matchtime,\n updatedAt: last_update,\n tradeOwner: trade_owner,\n makerAddress: maker_address,\n transactionHash: transaction_hash,\n bucketIndex: bucket_index,\n makerOrders: maker_orders,\n traderSide: trader_side,\n },\n };\n },\n ) satisfies z.ZodType<UserTradeEvent>;\n\nexport type UserTradeEvent = {\n topic: 'user';\n type: 'trade';\n payload: {\n id: string;\n takerOrderId: string;\n assetId: PositionId | TokenId;\n /** @deprecated Use `assetId`. */\n tokenId: PositionId | TokenId;\n conditionId: ConditionId;\n /** @deprecated Use `conditionId`. */\n market: ConditionId;\n side: OrderSide;\n size: DecimalString;\n feeRateBps: DecimalString | null | undefined;\n price: DecimalString;\n status: TradeStatus;\n matchedAt: IsoDateTimeString | null | undefined;\n updatedAt: IsoDateTimeString | null | undefined;\n outcome?: string | null;\n owner: string;\n tradeOwner: string | null | undefined;\n makerAddress: string | null | undefined;\n transactionHash: string | null | undefined;\n bucketIndex: number | null | undefined;\n makerOrders: TradeMakerOrder[] | null | undefined;\n traderSide: 'TAKER' | 'MAKER' | null | undefined;\n timestamp: EpochMilliseconds;\n };\n};\n\nexport const StandardMarketEventSchema = z.discriminatedUnion('event_type', [\n MarketBookEventSchema,\n MarketPriceChangeEventSchema,\n MarketLastTradePriceEventSchema,\n MarketTickSizeChangeEventSchema,\n]) satisfies z.ZodType<StandardMarketEvent>;\n\nexport type StandardMarketEvent =\n | MarketBookEvent\n | MarketPriceChangeEvent\n | MarketLastTradePriceEvent\n | MarketTickSizeChangeEvent;\n\nexport const CustomMarketEventSchema = z.discriminatedUnion('event_type', [\n MarketBestBidAskEventSchema,\n NewMarketEventSchema,\n MarketResolvedEventSchema,\n]) satisfies z.ZodType<CustomMarketEvent>;\n\nexport type CustomMarketEvent =\n | MarketBestBidAskEvent\n | NewMarketEvent\n | MarketResolvedEvent;\n\nexport const MarketEventSchema = z.discriminatedUnion('event_type', [\n MarketBookEventSchema,\n MarketPriceChangeEventSchema,\n MarketLastTradePriceEventSchema,\n MarketTickSizeChangeEventSchema,\n MarketBestBidAskEventSchema,\n NewMarketEventSchema,\n MarketResolvedEventSchema,\n]) satisfies z.ZodType<MarketEvent>;\n\nexport type MarketEvent = StandardMarketEvent | CustomMarketEvent;\n\nexport const UserEventSchema = z.discriminatedUnion('event_type', [\n UserOrderEventSchema,\n UserTradeEventSchema,\n]) satisfies z.ZodType<UserEvent>;\n\nexport type UserEvent = UserOrderEvent | UserTradeEvent;\n","import { z } from 'zod';\nimport {\n PerpsAccountFundingPaymentEntrySchema,\n PerpsBalanceSchema,\n PerpsPortfolioSchema,\n} from '../perps/account';\nimport { PerpsBuilderEarningSchema } from '../perps/builders';\nimport {\n PerpsInstrumentIdSchema,\n type PerpsKlineInterval,\n PerpsOrderIdSchema,\n} from '../perps/common';\nimport {\n PerpsDepositUpdateSchema,\n PerpsWithdrawalUpdateSchema,\n} from '../perps/funds';\nimport {\n PerpsBboUpdateSchema,\n PerpsBookUpdateSchema,\n PerpsCandleSchema,\n PerpsPublicTradeUpdateSchema,\n PerpsStatisticUpdateSchema,\n PerpsTickerEntrySchema,\n} from '../perps/market';\nimport { PerpsNotificationSchema } from '../perps/notifications';\nimport {\n PerpsAccountFillUpdateSchema,\n PerpsOrderUpdateSchema,\n} from '../perps/orders';\nimport { type EpochMilliseconds, EpochMillisecondsSchema } from '../shared';\n\nconst SequenceSchema = z.number().int().nonnegative();\n\n// Wire ets is an unsigned epoch-ms value; zero attests no event horizon.\nconst PerpsEventHorizonSchema = EpochMillisecondsSchema.refine(\n (value) => value >= 0,\n).transform((value) => (value === 0 ? null : value));\n\nconst TradesChannelSchema = z.string().regex(/^trades::\\d+$/);\nconst BboChannelSchema = z.string().regex(/^bbo::\\d+$/);\nconst BookChannelSchema = z.string().regex(/^book::\\d+$/);\nconst TickersChannelSchema = z.string().regex(/^tickers::(all|\\d+)$/);\nconst StatisticsChannelSchema = z.string().regex(/^statistics::(all|\\d+)$/);\nconst CandlesChannelSchema = z\n .string()\n .regex(/^klines::\\d+::(1m|5m|15m|1h|4h|1d|1w)$/);\nconst TpslChannelSchema = z.string().regex(/^tpsl::\\d+$/);\nconst PerpsSessionChannelSchema = z.enum([\n 'balances',\n 'portfolio',\n 'orders',\n 'fills',\n 'funding',\n 'deposits',\n 'withdrawals',\n 'notifications',\n]);\n\nconst PerpsUpdateEnvelopeSchema = z.object({\n ts: EpochMillisecondsSchema,\n ets: PerpsEventHorizonSchema,\n sq: SequenceSchema,\n});\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsTradeEventSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: TradesChannelSchema,\n data: z.array(PerpsPublicTradeUpdateSchema),\n}).transform(({ ch, ts, ets, sq, data }) => ({\n topic: 'perps.trades' as const,\n type: 'trade' as const,\n channel: ch,\n timestamp: ts,\n /** Newest reflected event time; null means the event horizon is unknown. */\n eventTimestamp: ets,\n sequence: sq,\n payload: data,\n}));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsTradeEvent = z.infer<typeof PerpsTradeEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsBboEventSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: BboChannelSchema,\n data: PerpsBboUpdateSchema,\n}).transform(({ ch, ts, ets, sq, data }) => ({\n topic: 'perps.bbo' as const,\n type: 'bbo' as const,\n channel: ch,\n timestamp: ts,\n /** Newest reflected event time; null means the event horizon is unknown. */\n eventTimestamp: ets,\n sequence: sq,\n payload: data,\n}));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsBboEvent = z.infer<typeof PerpsBboEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsBookEventSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: BookChannelSchema,\n data: PerpsBookUpdateSchema,\n}).transform(({ ch, ts, ets, sq, data }) => ({\n topic: 'perps.book' as const,\n type: 'book' as const,\n channel: ch,\n timestamp: ts,\n /** Newest reflected event time; null means the event horizon is unknown. */\n eventTimestamp: ets,\n sequence: sq,\n payload: {\n instrumentId: instrumentIdFromChannel(ch),\n ...data,\n },\n}));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsBookEvent = z.infer<typeof PerpsBookEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsTickerEventSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: TickersChannelSchema,\n data: PerpsTickerEntrySchema,\n}).transform(({ ch, ts, ets, sq, data }) => ({\n topic: 'perps.tickers' as const,\n type: 'ticker' as const,\n channel: ch,\n timestamp: ts,\n /** Newest reflected event time; null means the event horizon is unknown. */\n eventTimestamp: ets,\n sequence: sq,\n payload: data,\n}));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsTickerEvent = z.infer<typeof PerpsTickerEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsStatisticEventSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: StatisticsChannelSchema,\n data: PerpsStatisticUpdateSchema,\n}).transform(({ ch, ts, ets, sq, data }) => ({\n topic: 'perps.statistics' as const,\n type: 'statistic' as const,\n channel: ch,\n timestamp: ts,\n /** Newest reflected event time; null means the event horizon is unknown. */\n eventTimestamp: ets,\n sequence: sq,\n payload: data,\n}));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsStatisticEvent = z.infer<typeof PerpsStatisticEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsCandleEventSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: CandlesChannelSchema,\n data: z.array(PerpsCandleSchema),\n}).transform(({ ch, ts, ets, sq, data }) => ({\n topic: 'perps.candles' as const,\n type: 'candle' as const,\n channel: ch,\n timestamp: ts,\n /** Newest reflected event time; null means the event horizon is unknown. */\n eventTimestamp: ets,\n sequence: sq,\n payload: {\n instrumentId: instrumentIdFromChannel(ch),\n interval: candleIntervalFromChannel(ch),\n candles: data,\n },\n}));\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsCandleEvent = z.infer<typeof PerpsCandleEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsMarketDataEventSchema = z.union([\n PerpsTradeEventSchema,\n PerpsBboEventSchema,\n PerpsBookEventSchema,\n PerpsTickerEventSchema,\n PerpsStatisticEventSchema,\n PerpsCandleEventSchema,\n]);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsMarketDataEvent = z.infer<typeof PerpsMarketDataEventSchema>;\n\nconst PerpsSessionUpdateEnvelopeSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: PerpsSessionChannelSchema,\n});\n\nfunction perpsSessionEventSchema<\n TType extends string,\n TChannel extends z.infer<typeof PerpsSessionChannelSchema>,\n TPayload extends z.ZodType,\n>(type: TType, channel: TChannel, payload: TPayload) {\n return PerpsSessionUpdateEnvelopeSchema.extend({\n ch: z.literal(channel),\n data: payload,\n }).transform((message) => {\n const event = message as {\n ch: TChannel;\n data: z.output<TPayload>;\n sq: number;\n ts: number;\n ets: EpochMilliseconds | null;\n };\n\n return {\n type,\n channel: event.ch,\n timestamp: event.ts,\n /** Newest reflected event time; null means the event horizon is unknown. */\n eventTimestamp: event.ets,\n sequence: event.sq,\n payload: event.data,\n };\n });\n}\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsBalanceUpdateEventSchema = perpsSessionEventSchema(\n 'balance',\n 'balances',\n PerpsBalanceSchema,\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsBalanceUpdateEvent = z.infer<\n typeof PerpsBalanceUpdateEventSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsPortfolioUpdateEventSchema = perpsSessionEventSchema(\n 'portfolio',\n 'portfolio',\n PerpsPortfolioSchema,\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsPortfolioUpdateEvent = z.infer<\n typeof PerpsPortfolioUpdateEventSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsOrderUpdateEventSchema = perpsSessionEventSchema(\n 'order',\n 'orders',\n PerpsOrderUpdateSchema,\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsOrderUpdateEvent = z.infer<typeof PerpsOrderUpdateEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsFillUpdateEventSchema = perpsSessionEventSchema(\n 'fill',\n 'fills',\n z.array(PerpsAccountFillUpdateSchema),\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsFillUpdateEvent = z.infer<typeof PerpsFillUpdateEventSchema>;\n\n/**\n * Live builder receipts. Sequence numbers are sparse engine sequences.\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsBuilderFillUpdateEventSchema =\n PerpsUpdateEnvelopeSchema.extend({\n ch: z.literal('builderFills'),\n data: z.array(PerpsBuilderEarningSchema),\n }).transform(({ ch, ts, ets, sq, data }) => ({\n type: 'builderFill' as const,\n channel: ch,\n timestamp: ts,\n /** Newest reflected event time; null means the event horizon is unknown. */\n eventTimestamp: ets,\n sequence: sq,\n payload: data,\n }));\n\n/** @experimental This API may change in a breaking way in any release, including patch releases. */\nexport type PerpsBuilderFillUpdateEvent = z.infer<\n typeof PerpsBuilderFillUpdateEventSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsFundingUpdateEventSchema = perpsSessionEventSchema(\n 'funding',\n 'funding',\n PerpsAccountFundingPaymentEntrySchema,\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsFundingUpdateEvent = z.infer<\n typeof PerpsFundingUpdateEventSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsDepositUpdateEventSchema = perpsSessionEventSchema(\n 'deposit',\n 'deposits',\n PerpsDepositUpdateSchema,\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsDepositUpdateEvent = z.infer<\n typeof PerpsDepositUpdateEventSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsWithdrawalUpdateEventSchema = perpsSessionEventSchema(\n 'withdrawal',\n 'withdrawals',\n PerpsWithdrawalUpdateSchema,\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsWithdrawalUpdateEvent = z.infer<\n typeof PerpsWithdrawalUpdateEventSchema\n>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsNotificationUpdateEventSchema = perpsSessionEventSchema(\n 'notification',\n 'notifications',\n PerpsNotificationSchema,\n);\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsNotificationUpdateEvent = z.infer<\n typeof PerpsNotificationUpdateEventSchema\n>;\n\n/**\n * Backpressure control frame on the `notifications` channel. The server sends\n * it when one or more notification data frames were dropped; `sq` is the\n * highest engine sequence among the dropped notifications.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsNotificationsResyncFrameSchema = z\n .object({\n ch: z.literal('notifications'),\n ts: EpochMillisecondsSchema,\n ets: PerpsEventHorizonSchema,\n sq: SequenceSchema,\n type: z.literal('resync'),\n })\n .transform(({ ch, ts, ets, sq }) => ({\n type: 'resync' as const,\n reason: 'server' as const,\n channel: ch,\n timestamp: ts,\n /** Newest reflected event time; null means the event horizon is unknown. */\n eventTimestamp: ets,\n sequence: sq,\n }));\n\nconst PerpsTpSlLifecycleUpdateSchema = z.object({\n oid: PerpsOrderIdSchema,\n st: z.enum(['untriggered', 'armed', 'activated', 'cancelled', 'expired']),\n reason: z.string().optional(),\n});\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsTpSlUpdateEventSchema = PerpsUpdateEnvelopeSchema.extend({\n ch: TpslChannelSchema,\n data: PerpsTpSlLifecycleUpdateSchema.transform((update) => ({\n orderId: update.oid,\n status: update.st,\n reason: update.reason,\n })),\n}).transform(({ ch, ts, ets, sq, data }) => ({\n type: 'tpsl' as const,\n channel: ch,\n timestamp: ts,\n /** Newest reflected event time; null means the event horizon is unknown. */\n eventTimestamp: ets,\n sequence: sq,\n payload: data,\n}));\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsTpSlUpdateEvent = z.infer<typeof PerpsTpSlUpdateEventSchema>;\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport const PerpsSessionUpdateEventSchema = z.union([\n PerpsBalanceUpdateEventSchema,\n PerpsPortfolioUpdateEventSchema,\n PerpsOrderUpdateEventSchema,\n PerpsFillUpdateEventSchema,\n PerpsBuilderFillUpdateEventSchema,\n PerpsFundingUpdateEventSchema,\n PerpsDepositUpdateEventSchema,\n PerpsWithdrawalUpdateEventSchema,\n PerpsNotificationUpdateEventSchema,\n PerpsTpSlUpdateEventSchema,\n]);\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsSessionUpdateEvent = z.infer<\n typeof PerpsSessionUpdateEventSchema\n>;\n\n/**\n * A recovery signal after reconnect, a sequence gap, or dropped notifications.\n * For `reason: 'server'`, `sequence` is the highest dropped notification\n * sequence, not a backfill lower bound. Backfill from the last notification\n * successfully processed and deduplicate by notification id.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsResyncEvent =\n | {\n type: 'resync';\n reason: 'reconnect' | 'sequence_gap';\n /** Local recovery has no attested event horizon. */\n eventTimestamp?: never;\n channel?: string;\n previousSequence?: number;\n sequence?: number;\n }\n | (z.infer<typeof PerpsNotificationsResyncFrameSchema> & {\n previousSequence?: never;\n });\n\n/**\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsSessionEvent = PerpsSessionUpdateEvent | PerpsResyncEvent;\n\nfunction instrumentIdFromChannel(channel: string) {\n const [, rawInstrumentId] = channel.split('::');\n return PerpsInstrumentIdSchema.parse(Number(rawInstrumentId));\n}\n\nfunction candleIntervalFromChannel(channel: string) {\n const [, , interval] = channel.split('::');\n return interval as Exclude<PerpsKlineInterval, PerpsKlineInterval.OneSecond>;\n}\n","import { z } from 'zod';\nimport {\n DecimalishSchema,\n DecimalStringSchema,\n EpochMillisecondsSchema,\n} from '../shared';\n\nexport enum RealtimeKnownErrorCode {\n BadOp = 'bad_op',\n BadChannel = 'bad_channel',\n BadFilter = 'bad_filter',\n SubscriptionLimit = 'sub_limit',\n RateLimited = 'rate_limited',\n AuthRequired = 'auth_required',\n AuthUnavailable = 'auth_unavailable',\n AuthExpired = 'auth_expired',\n AuthAttempts = 'auth_attempts',\n AuthInvalid = 'auth_invalid',\n}\n\n/**\n * A realtime error code. Known codes are enumerated in {@link RealtimeKnownErrorCode};\n * newly introduced codes flow through as plain strings so they can be handled\n * before a client release that enumerates them.\n */\nexport type RealtimeErrorCode = RealtimeKnownErrorCode | (string & {});\n\n/** Known sources reported by realtime price events. */\nexport enum KnownPriceSource {\n Pyth = 'pyth',\n Chainlink = 'chainlink',\n Massive = 'massive',\n}\n\n/**\n * The source of a realtime price. Known values are enumerated in\n * {@link KnownPriceSource}; newly introduced sources remain available as strings.\n */\nexport type PriceSource = KnownPriceSource | (string & {});\n\nconst PriceSourceSchema = z.string().transform((value): PriceSource => value);\n\nexport enum PolyboltChannel {\n Crypto = 'price.crypto',\n Twap = 'price.crypto.twap',\n Equity = 'price.equity',\n EquityTwap = 'price.equity.twap',\n}\n\n/** A provider that can be requested for a price subscription. */\nexport enum PriceProvider {\n Chainlink = 'chainlink',\n Pyth = 'pyth',\n}\n\n/** A filter sent to a PolyBolt price channel. */\nexport type PolyboltFilter =\n | { symbol: string; window_seconds?: 60; provider?: PriceProvider }\n | { asset_id: string };\n\n/** One item in a PolyBolt subscription operation. */\nexport type PolyboltSubscription = {\n channel: PolyboltChannel;\n filter: PolyboltFilter;\n};\n\nexport enum PolyboltAckOp {\n Subscribed = 'subscribed',\n Unsubscribed = 'unsubscribed',\n Pong = 'pong',\n Authed = 'authed',\n Error = 'error',\n}\n\nexport const PolyboltAckSchema = z.object({\n op: z.enum(PolyboltAckOp),\n channel: z.string().optional(),\n rid: z.string().optional(),\n provider: PriceSourceSchema.optional(),\n code: z\n .string()\n .transform((value): RealtimeErrorCode => value)\n .optional(),\n});\nexport type PolyboltAck = z.infer<typeof PolyboltAckSchema>;\n\nexport const PolyboltEnvelopeSchema = z.object({\n v: z.literal(1),\n channel: z.enum(PolyboltChannel),\n seq: z.number().int().nonnegative(),\n ts: EpochMillisecondsSchema,\n snapshot: z.boolean().optional(),\n dropped: z.number().int().nonnegative().optional(),\n payload: z.unknown(),\n});\nexport type PolyboltEnvelope = z.infer<typeof PolyboltEnvelopeSchema>;\n\nconst PricePointSchema = z\n .object({\n timestamp: EpochMillisecondsSchema,\n value: DecimalishSchema,\n full_accuracy_value: DecimalStringSchema,\n })\n .transform(({ timestamp, full_accuracy_value }) => ({\n timestamp,\n value: full_accuracy_value,\n }));\n\nconst PricePayloadSchema = z\n .object({\n symbol: z.string(),\n source: PriceSourceSchema,\n timestamp: EpochMillisecondsSchema,\n value: DecimalishSchema,\n full_accuracy_value: DecimalStringSchema,\n received_at: EpochMillisecondsSchema.optional(),\n is_carried_forward: z.boolean().optional(),\n })\n .transform(\n ({\n symbol,\n source,\n timestamp,\n full_accuracy_value,\n received_at,\n is_carried_forward,\n }) => ({\n symbol,\n source,\n timestamp,\n value: full_accuracy_value,\n receivedAt: received_at,\n isCarriedForward: is_carried_forward,\n }),\n );\n\nconst SnapshotPayloadSchema = z.object({\n symbol: z.string(),\n source: PriceSourceSchema,\n data: z.array(PricePointSchema),\n});\nconst TwapWindowSchema = z.literal(60);\nconst TwapPayloadSchema = z\n .object({\n symbol: z.string(),\n source: PriceSourceSchema,\n timestamp: EpochMillisecondsSchema,\n value: DecimalishSchema,\n full_accuracy_value: DecimalStringSchema,\n window_seconds: TwapWindowSchema,\n })\n .transform(\n ({ symbol, source, timestamp, full_accuracy_value, window_seconds }) => ({\n symbol,\n source,\n timestamp,\n value: full_accuracy_value,\n windowSeconds: window_seconds,\n }),\n );\nconst TwapSnapshotSchema = SnapshotPayloadSchema.extend({\n window_seconds: TwapWindowSchema,\n}).transform(({ symbol, source, data, window_seconds }) => ({\n symbol,\n source,\n data,\n windowSeconds: window_seconds,\n}));\nconst EventMetadataSchema = z.object({\n timestamp: EpochMillisecondsSchema,\n seq: z.number().optional(),\n dropped: z.number().optional(),\n});\nexport const CryptoPriceEventSchema = z.union([\n EventMetadataSchema.extend({\n topic: z.literal('prices.crypto'),\n type: z.literal('update'),\n payload: PricePayloadSchema,\n }),\n EventMetadataSchema.extend({\n topic: z.literal('prices.crypto'),\n type: z.literal('subscribe'),\n payload: SnapshotPayloadSchema,\n }),\n]);\n/**\n * A cryptocurrency price event.\n *\n * `seq` is scoped to one channel on one WebSocket connection and resets after\n * reconnecting. When an SDK subscription spans multiple connections, sequence\n * values from those connections may interleave.\n */\nexport type CryptoPriceEvent = z.infer<typeof CryptoPriceEventSchema>;\nexport type CryptoPriceSnapshotEvent = Extract<\n CryptoPriceEvent,\n { type: 'subscribe' }\n>;\nexport const CryptoTwapPriceEventSchema = z.union([\n EventMetadataSchema.extend({\n topic: z.literal('prices.crypto.twap'),\n type: z.literal('update'),\n payload: TwapPayloadSchema,\n }),\n EventMetadataSchema.extend({\n topic: z.literal('prices.crypto.twap'),\n type: z.literal('subscribe'),\n payload: TwapSnapshotSchema,\n }),\n]);\n/**\n * A cryptocurrency TWAP event.\n *\n * `seq` is scoped to one channel on one WebSocket connection and resets after\n * reconnecting. When an SDK subscription spans multiple connections, sequence\n * values from those connections may interleave.\n */\nexport type CryptoTwapPriceEvent = z.infer<typeof CryptoTwapPriceEventSchema>;\nexport type CryptoTwapPriceSnapshotEvent = Extract<\n CryptoTwapPriceEvent,\n { type: 'subscribe' }\n>;\nexport const EquityPriceEventSchema = z.union([\n EventMetadataSchema.extend({\n topic: z.literal('prices.equity'),\n type: z.literal('update'),\n payload: PricePayloadSchema,\n }),\n EventMetadataSchema.extend({\n topic: z.literal('prices.equity'),\n type: z.literal('subscribe'),\n payload: SnapshotPayloadSchema,\n }),\n]);\n/**\n * An equity price event.\n *\n * `seq` is scoped to one channel on one WebSocket connection and resets after\n * reconnecting. When an SDK subscription spans multiple connections, sequence\n * values from those connections may interleave.\n */\nexport type EquityPriceEvent = z.infer<typeof EquityPriceEventSchema>;\nexport const EquityTwapPriceEventSchema = z.union([\n EventMetadataSchema.extend({\n topic: z.literal('prices.equity.twap'),\n type: z.literal('update'),\n payload: TwapPayloadSchema,\n }),\n EventMetadataSchema.extend({\n topic: z.literal('prices.equity.twap'),\n type: z.literal('subscribe'),\n payload: TwapSnapshotSchema,\n }),\n]);\n/**\n * An equity TWAP event, denominated in the symbol's quote currency.\n *\n * `seq` is scoped to one channel on one WebSocket connection and resets after\n * reconnecting. When an SDK subscription spans multiple connections, sequence\n * values from those connections may interleave.\n */\nexport type EquityTwapPriceEvent = z.infer<typeof EquityTwapPriceEventSchema>;\nexport type EquityTwapPriceSnapshotEvent = Extract<\n EquityTwapPriceEvent,\n { type: 'subscribe' }\n>;\nexport type PriceEvent =\n | CryptoPriceEvent\n | CryptoTwapPriceEvent\n | EquityPriceEvent\n | EquityTwapPriceEvent;\n\n/** @internal Normalizes validated envelopes, dropping unknown payloads. */\nexport function parsePolyboltEvent(\n envelope: PolyboltEnvelope,\n): PriceEvent | undefined {\n const event = {\n timestamp: envelope.ts,\n seq: envelope.seq,\n dropped: envelope.dropped,\n type: envelope.snapshot ? 'subscribe' : 'update',\n payload: envelope.payload,\n };\n switch (envelope.channel) {\n case PolyboltChannel.Crypto:\n return CryptoPriceEventSchema.safeParse({\n ...event,\n topic: 'prices.crypto',\n }).data;\n case PolyboltChannel.Twap:\n return CryptoTwapPriceEventSchema.safeParse({\n ...event,\n topic: 'prices.crypto.twap',\n }).data;\n case PolyboltChannel.Equity:\n return EquityPriceEventSchema.safeParse({\n ...event,\n topic: 'prices.equity',\n }).data;\n case PolyboltChannel.EquityTwap:\n return EquityTwapPriceEventSchema.safeParse({\n ...event,\n topic: 'prices.equity.twap',\n }).data;\n }\n}\n","import { z } from 'zod';\nimport {\n CommentMediaSchema,\n CommentProfileSchema,\n CommentSchema,\n ReactionSchema,\n} from '../gamma/comment';\nimport {\n CommentParentEntityTypeSchema,\n DecimalishSchema,\n DecimalStringSchema,\n EpochMillisecondsSchema,\n toDecimalString,\n} from '../shared';\n\nconst CommentRemovedPayloadSchema = z.object({\n id: z.string(),\n body: z.string().nullish(),\n parentEntityType: CommentParentEntityTypeSchema.nullish(),\n parentEntityID: z.number().int().nullish(),\n parentCommentID: z.string().nullish(),\n userAddress: z.string().nullish(),\n replyAddress: z.string().nullish(),\n createdAt: z.string().nullish(),\n updatedAt: z.string().nullish(),\n media: z.array(CommentMediaSchema).nullish(),\n profile: CommentProfileSchema.nullish(),\n reactions: z.array(ReactionSchema).nullish(),\n reportCount: z.number().int().nullish(),\n reactionCount: z.number().int().nullish(),\n tradeAsset: z.string().nullish(),\n});\n\nexport type CommentRemovedPayload = z.infer<typeof CommentRemovedPayloadSchema>;\n\nexport const CommentCreatedEventSchema = z.object({\n topic: z.literal('comments'),\n type: z.literal('comment_created'),\n timestamp: EpochMillisecondsSchema,\n payload: CommentSchema,\n});\n\nexport type CommentCreatedEvent = z.infer<typeof CommentCreatedEventSchema>;\n\nexport const CommentRemovedEventSchema = z.object({\n topic: z.literal('comments'),\n type: z.literal('comment_removed'),\n timestamp: EpochMillisecondsSchema,\n payload: CommentRemovedPayloadSchema,\n});\n\nexport type CommentRemovedEvent = z.infer<typeof CommentRemovedEventSchema>;\n\nexport const ReactionCreatedEventSchema = z.object({\n topic: z.literal('comments'),\n type: z.literal('reaction_created'),\n timestamp: EpochMillisecondsSchema,\n payload: ReactionSchema,\n});\n\nexport type ReactionCreatedEvent = z.infer<typeof ReactionCreatedEventSchema>;\n\nexport const ReactionRemovedEventSchema = z.object({\n topic: z.literal('comments'),\n type: z.literal('reaction_removed'),\n timestamp: EpochMillisecondsSchema,\n payload: ReactionSchema,\n});\n\nexport type ReactionRemovedEvent = z.infer<typeof ReactionRemovedEventSchema>;\n\nconst PriceUpdatePayloadSchema = z.object({\n symbol: z.string(),\n timestamp: EpochMillisecondsSchema,\n value: DecimalishSchema,\n});\n\nexport type PriceUpdatePayload = z.infer<typeof PriceUpdatePayloadSchema>;\n\nconst CRYPTO_PRICES_BINANCE_TOPIC = 'prices.crypto.binance' as const;\nconst CRYPTO_PRICES_CHAINLINK_TOPIC = 'prices.crypto.chainlink' as const;\nconst CRYPTO_PRICES_CHAINLINK_TWAP_TOPIC =\n 'prices.crypto.chainlink.twap' as const;\n\nexport type CryptoPricesBinanceTopic = typeof CRYPTO_PRICES_BINANCE_TOPIC;\nexport type CryptoPricesChainlinkTopic = typeof CRYPTO_PRICES_CHAINLINK_TOPIC;\nexport type CryptoPricesChainlinkTwapTopic =\n typeof CRYPTO_PRICES_CHAINLINK_TWAP_TOPIC;\nexport type CryptoPricesChainlinkTwapWindowSeconds = 30 | 60;\nexport type CryptoPricesTopic =\n | CryptoPricesBinanceTopic\n | CryptoPricesChainlinkTopic;\n\nconst RawCryptoPricesBinanceTopicSchema = z.literal('crypto_prices');\nconst RawCryptoPricesChainlinkTopicSchema = z.literal(\n 'crypto_prices_chainlink',\n);\nconst RawCryptoPricesChainlinkTwapThirtyTopicSchema = z.literal(\n 'crypto_prices_twap_thirty',\n);\nconst RawCryptoPricesChainlinkTwapSixtyTopicSchema = z.literal(\n 'crypto_prices_twap_sixty',\n);\n\nconst CryptoPricesBinanceTopicSchema: z.ZodType<CryptoPricesBinanceTopic> =\n RawCryptoPricesBinanceTopicSchema.transform(() => {\n return CRYPTO_PRICES_BINANCE_TOPIC;\n });\n\nconst CryptoPricesChainlinkTopicSchema: z.ZodType<CryptoPricesChainlinkTopic> =\n RawCryptoPricesChainlinkTopicSchema.transform(() => {\n return CRYPTO_PRICES_CHAINLINK_TOPIC;\n });\n\nconst CryptoPricesChainlinkTwapThirtyTopicSchema =\n RawCryptoPricesChainlinkTwapThirtyTopicSchema.transform(() => {\n return CRYPTO_PRICES_CHAINLINK_TWAP_TOPIC;\n });\n\nconst CryptoPricesChainlinkTwapSixtyTopicSchema =\n RawCryptoPricesChainlinkTwapSixtyTopicSchema.transform(() => {\n return CRYPTO_PRICES_CHAINLINK_TWAP_TOPIC;\n });\n\nexport const CryptoPricesBinanceEventSchema = z.object({\n topic: CryptoPricesBinanceTopicSchema,\n type: z.literal('update'),\n timestamp: EpochMillisecondsSchema,\n payload: PriceUpdatePayloadSchema,\n});\n\nexport type CryptoPricesBinanceEvent = z.infer<\n typeof CryptoPricesBinanceEventSchema\n>;\n\nexport const CryptoPricesChainlinkEventSchema = z.object({\n topic: CryptoPricesChainlinkTopicSchema,\n type: z.literal('update'),\n timestamp: EpochMillisecondsSchema,\n payload: PriceUpdatePayloadSchema,\n});\n\nexport type CryptoPricesChainlinkEvent = z.infer<\n typeof CryptoPricesChainlinkEventSchema\n>;\n\nconst CHAINLINK_PRICE_SCALE = 1_000_000_000_000_000_000n;\n\nfunction chainlinkE18PriceToDecimalString(value: string) {\n const scaledValue = BigInt(value);\n const isNegative = scaledValue < 0n;\n const absoluteValue = isNegative ? -scaledValue : scaledValue;\n const whole = absoluteValue / CHAINLINK_PRICE_SCALE;\n const fraction = (absoluteValue % CHAINLINK_PRICE_SCALE)\n .toString()\n .padStart(18, '0')\n .replace(/0+$/, '');\n\n return toDecimalString(\n `${isNegative ? '-' : ''}${whole}${fraction === '' ? '' : `.${fraction}`}`,\n );\n}\n\n// Chainlink publishes a float for display convenience and the exact\n// BenchmarkPrice as a signed E18 integer. Normalize from the exact field.\nconst ChainlinkFullAccuracyPriceSchema = z\n .string()\n .regex(/^-?\\d+$/)\n .transform(chainlinkE18PriceToDecimalString);\n\nconst CryptoPricesChainlinkTwapPayloadBaseSchema = z.object({\n symbol: z.string(),\n value: DecimalishSchema,\n full_accuracy_value: ChainlinkFullAccuracyPriceSchema,\n timestamp: EpochMillisecondsSchema,\n});\n\nfunction cryptoPricesChainlinkTwapPayloadSchema<\n const TWindowSeconds extends CryptoPricesChainlinkTwapWindowSeconds,\n>(windowSeconds: TWindowSeconds) {\n return CryptoPricesChainlinkTwapPayloadBaseSchema.extend({\n window_s: z.literal(windowSeconds),\n }).transform((payload) => {\n return {\n symbol: payload.symbol,\n timestamp: payload.timestamp,\n value: payload.full_accuracy_value,\n windowSeconds: payload.window_s,\n };\n });\n}\n\nexport const CryptoPricesChainlinkTwapThirtyEventSchema = z.object({\n topic: CryptoPricesChainlinkTwapThirtyTopicSchema,\n type: z.literal('update'),\n timestamp: EpochMillisecondsSchema,\n payload: cryptoPricesChainlinkTwapPayloadSchema(30),\n});\n\nexport type CryptoPricesChainlinkTwapThirtyEvent = z.infer<\n typeof CryptoPricesChainlinkTwapThirtyEventSchema\n>;\n\nexport const CryptoPricesChainlinkTwapSixtyEventSchema = z.object({\n topic: CryptoPricesChainlinkTwapSixtyTopicSchema,\n type: z.literal('update'),\n timestamp: EpochMillisecondsSchema,\n payload: cryptoPricesChainlinkTwapPayloadSchema(60),\n});\n\nexport type CryptoPricesChainlinkTwapSixtyEvent = z.infer<\n typeof CryptoPricesChainlinkTwapSixtyEventSchema\n>;\n\nexport const CryptoPricesChainlinkTwapEventSchema = z.union([\n CryptoPricesChainlinkTwapThirtyEventSchema,\n CryptoPricesChainlinkTwapSixtyEventSchema,\n]);\n\nexport type CryptoPricesChainlinkTwapEvent = z.infer<\n typeof CryptoPricesChainlinkTwapEventSchema\n>;\n\nexport const CryptoPricesEventSchema = z.discriminatedUnion('topic', [\n CryptoPricesBinanceEventSchema,\n CryptoPricesChainlinkEventSchema,\n CryptoPricesChainlinkTwapThirtyEventSchema,\n CryptoPricesChainlinkTwapSixtyEventSchema,\n]);\n\nexport type CryptoPricesEvent = z.infer<typeof CryptoPricesEventSchema>;\n\nconst EquityPriceUpdatePayloadSchema = z\n .object({\n symbol: z.string(),\n value: DecimalishSchema,\n full_accuracy_value: DecimalStringSchema.nullish(),\n timestamp: EpochMillisecondsSchema,\n received_at: EpochMillisecondsSchema.nullish(),\n is_carried_forward: z.boolean().nullish(),\n })\n .transform(\n ({\n full_accuracy_value,\n received_at,\n is_carried_forward,\n value,\n ...rest\n }) => ({\n ...rest,\n value: full_accuracy_value ?? value,\n receivedAt: received_at,\n isCarriedForward: is_carried_forward,\n }),\n );\n\nexport type EquityPriceUpdatePayload = z.infer<\n typeof EquityPriceUpdatePayloadSchema\n>;\n\nconst EquityPriceSnapshotPointSchema = z.object({\n timestamp: z.number(),\n value: DecimalishSchema,\n});\n\nexport type EquityPriceSnapshotPoint = z.infer<\n typeof EquityPriceSnapshotPointSchema\n>;\n\nconst EquityPriceSubscribePayloadSchema = z.object({\n symbol: z.string(),\n data: z.array(EquityPriceSnapshotPointSchema),\n});\n\nexport type EquityPriceSubscribePayload = z.infer<\n typeof EquityPriceSubscribePayloadSchema\n>;\n\nconst RawEquityPricesTopicSchema = z.literal('equity_prices');\n\nconst EQUITY_PRICES_TOPIC = 'prices.equity.pyth' as const;\n\nexport type EquityPricesTopic = typeof EQUITY_PRICES_TOPIC;\n\nconst EquityPricesTopicSchema: z.ZodType<EquityPricesTopic> =\n RawEquityPricesTopicSchema.transform(() => {\n return EQUITY_PRICES_TOPIC;\n });\n\nexport const EquityPricesUpdateEventSchema = z.object({\n topic: EquityPricesTopicSchema,\n type: z.literal('update'),\n timestamp: EpochMillisecondsSchema,\n payload: EquityPriceUpdatePayloadSchema,\n});\n\nexport type EquityPricesUpdateEvent = z.infer<\n typeof EquityPricesUpdateEventSchema\n>;\n\nexport const EquityPricesSubscribeEventSchema = z.object({\n topic: EquityPricesTopicSchema,\n type: z.literal('subscribe'),\n timestamp: EpochMillisecondsSchema,\n payload: EquityPriceSubscribePayloadSchema,\n});\n\nexport type EquityPricesSubscribeEvent = z.infer<\n typeof EquityPricesSubscribeEventSchema\n>;\n\nexport const EquityPricesEventSchema = z.discriminatedUnion('type', [\n EquityPricesUpdateEventSchema,\n EquityPricesSubscribeEventSchema,\n]);\n\nexport type EquityPricesEvent = z.infer<typeof EquityPricesEventSchema>;\n\nexport const CommentsEventSchema = z.discriminatedUnion('type', [\n CommentCreatedEventSchema,\n CommentRemovedEventSchema,\n ReactionCreatedEventSchema,\n ReactionRemovedEventSchema,\n]);\n\nexport type CommentsEvent = z.infer<typeof CommentsEventSchema>;\n\nexport const RealtimeEventSchema = z.discriminatedUnion('topic', [\n CommentsEventSchema,\n CryptoPricesEventSchema,\n EquityPricesEventSchema,\n]);\n\nexport type RealtimeEvent = z.infer<typeof RealtimeEventSchema>;\n","import { z } from 'zod';\nimport { EpochMillisecondsToIsoDateTimeStringSchema } from '../shared';\n\nconst SportsResultPayloadSchema = z\n .object({\n gameId: z.number().int(),\n sportradarGameId: z.string().nullish(),\n slug: z.string().nullish(),\n leagueAbbreviation: z.string(),\n homeTeam: z.string().nullish(),\n awayTeam: z.string().nullish(),\n status: z.string(),\n live: z.boolean(),\n ended: z.boolean(),\n score: z.string(),\n period: z.string().nullish(),\n elapsed: z.string().nullish(),\n finishedTimestamp: EpochMillisecondsToIsoDateTimeStringSchema.nullish(),\n finished_timestamp: EpochMillisecondsToIsoDateTimeStringSchema.nullish(),\n turn: z.string().nullish(),\n })\n .transform(({ finishedTimestamp, finished_timestamp, ...rest }) => ({\n ...rest,\n finishedAt: finishedTimestamp ?? finished_timestamp,\n }));\n\nexport const SportsResultEventSchema = SportsResultPayloadSchema.transform(\n (payload) => {\n return {\n // Normalize to the shared subscription event envelope so mixed-stream\n // consumers can discriminate by `event.topic` and `event.type`.\n topic: 'sports' as const,\n type: 'sport_result' as const,\n payload,\n };\n },\n);\n\nexport type SportsEvent = z.infer<typeof SportsResultEventSchema>;\n"]}
package/package.json CHANGED
@@ -1,6 +1,95 @@
1
1
  {
2
2
  "name": "@kuest/bindings",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "0.13.1",
4
+ "description": "Internal API bindings for the unified SDK",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/kuest/ts-sdk.git",
8
+ "directory": "packages/bindings"
9
+ },
10
+ "type": "module",
11
+ "engines": {
12
+ "node": ">=24"
13
+ },
14
+ "main": "dist/index.js",
15
+ "types": "dist/index.d.ts",
16
+ "exports": {
17
+ ".": {
18
+ "types": "./dist/index.d.ts",
19
+ "default": "./dist/index.js"
20
+ },
21
+ "./clob": {
22
+ "types": "./dist/clob/index.d.ts",
23
+ "default": "./dist/clob/index.js"
24
+ },
25
+ "./combos": {
26
+ "types": "./dist/combos/index.d.ts",
27
+ "default": "./dist/combos/index.js"
28
+ },
29
+ "./gamma": {
30
+ "types": "./dist/gamma/index.d.ts",
31
+ "default": "./dist/gamma/index.js"
32
+ },
33
+ "./data": {
34
+ "types": "./dist/data/index.d.ts",
35
+ "default": "./dist/data/index.js"
36
+ },
37
+ "./relayer": {
38
+ "types": "./dist/relayer/index.d.ts",
39
+ "default": "./dist/relayer/index.js"
40
+ },
41
+ "./perps": {
42
+ "types": "./dist/perps/index.d.ts",
43
+ "default": "./dist/perps/index.js"
44
+ },
45
+ "./subscriptions": {
46
+ "types": "./dist/subscriptions/index.d.ts",
47
+ "default": "./dist/subscriptions/index.js"
48
+ }
49
+ },
50
+ "typesVersions": {
51
+ "*": {
52
+ "clob": [
53
+ "./dist/clob/index.d.ts"
54
+ ],
55
+ "combos": [
56
+ "./dist/combos/index.d.ts"
57
+ ],
58
+ "data": [
59
+ "./dist/data/index.d.ts"
60
+ ],
61
+ "gamma": [
62
+ "./dist/gamma/index.d.ts"
63
+ ],
64
+ "perps": [
65
+ "./dist/perps/index.d.ts"
66
+ ],
67
+ "relayer": [
68
+ "./dist/relayer/index.d.ts"
69
+ ],
70
+ "subscriptions": [
71
+ "./dist/subscriptions/index.d.ts"
72
+ ]
73
+ }
74
+ },
75
+ "files": [
76
+ "dist"
77
+ ],
78
+ "sideEffects": false,
79
+ "dependencies": {
80
+ "zod": "^4.3.6",
81
+ "@kuest/types": "0.2.1"
82
+ },
83
+ "devDependencies": {
84
+ "tsup": "^8.5.1",
85
+ "typescript": "^6.0.2"
86
+ },
87
+ "license": "MIT",
88
+ "publishConfig": {
89
+ "access": "public"
90
+ },
91
+ "scripts": {
92
+ "build": "tsup",
93
+ "typecheck": "tsc -p tsconfig.json --noEmit"
94
+ }
6
95
  }