omegga 1.5.2 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -2
- package/bin/omegga +1 -1
- package/dist/cli/terminal.js +46 -0
- package/dist/cli/terminal.js.map +1 -1
- package/dist/omegga/commandInjector.js +13 -6
- package/dist/omegga/commandInjector.js.map +1 -1
- package/dist/omegga/player.js +2 -2
- package/dist/omegga/player.js.map +1 -1
- package/dist/plugin.js.map +1 -1
- package/dist/webserver/backend/database.js +219 -7
- package/dist/webserver/backend/database.js.map +1 -1
- package/dist/webserver/backend/events.js +1 -1
- package/dist/webserver/backend/events.js.map +1 -1
- package/dist/webserver/backend/index.js +120 -2
- package/dist/webserver/backend/index.js.map +1 -1
- package/dist/webserver/backend/permissions.js +74 -0
- package/dist/webserver/backend/permissions.js.map +1 -0
- package/dist/webserver/backend/router/chat.js +9 -7
- package/dist/webserver/backend/router/chat.js.map +1 -1
- package/dist/webserver/backend/router/index.js +3 -1
- package/dist/webserver/backend/router/index.js.map +1 -1
- package/dist/webserver/backend/router/mfa.js +162 -0
- package/dist/webserver/backend/router/mfa.js.map +1 -0
- package/dist/webserver/backend/router/player.js +7 -6
- package/dist/webserver/backend/router/player.js.map +1 -1
- package/dist/webserver/backend/router/plugin.js +14 -10
- package/dist/webserver/backend/router/plugin.js.map +1 -1
- package/dist/webserver/backend/router/role.js +2 -1
- package/dist/webserver/backend/router/role.js.map +1 -1
- package/dist/webserver/backend/router/server.js +85 -71
- package/dist/webserver/backend/router/server.js.map +1 -1
- package/dist/webserver/backend/router/session.js +11 -2
- package/dist/webserver/backend/router/session.js.map +1 -1
- package/dist/webserver/backend/router/user.js +175 -13
- package/dist/webserver/backend/router/user.js.map +1 -1
- package/dist/webserver/backend/router/world.js +10 -9
- package/dist/webserver/backend/router/world.js.map +1 -1
- package/dist/webserver/backend/scopes.js +303 -0
- package/dist/webserver/backend/scopes.js.map +1 -0
- package/dist/webserver/backend/totp.js +32 -0
- package/dist/webserver/backend/totp.js.map +1 -0
- package/dist/webserver/backend/trpc.js +47 -4
- package/dist/webserver/backend/trpc.js.map +1 -1
- package/doc/permissions.md +193 -0
- package/package.json +7 -2
- package/public/app.html +932 -526
- package/public/assets/IconShieldCheck-Bjlm8mX2.js +2 -0
- package/public/assets/IconShieldCheck-Bjlm8mX2.js.map +1 -0
- package/public/assets/IconWorld-XmQNg6JI.js +2 -0
- package/public/assets/IconWorld-XmQNg6JI.js.map +1 -0
- package/public/assets/IconWorldPlus-CxGGv2eD.js +2 -0
- package/public/assets/IconWorldPlus-CxGGv2eD.js.map +1 -0
- package/public/assets/app-DMr_-wik.js +7 -0
- package/public/assets/app-DMr_-wik.js.map +1 -0
- package/public/assets/auth-CEYiizOt.js +2 -0
- package/public/assets/auth-CEYiizOt.js.map +1 -0
- package/public/assets/index-BDkarAkX.js +3 -0
- package/public/assets/index-BDkarAkX.js.map +1 -0
- package/public/assets/{index-2cgXLhrt.js → index-DEL-PD_8.js} +2 -2
- package/public/assets/{index-2cgXLhrt.js.map → index-DEL-PD_8.js.map} +1 -1
- package/public/assets/index-D_STNela.js +2 -0
- package/public/assets/index-D_STNela.js.map +1 -0
- package/public/assets/index-Dkh3HiBz.js +4 -0
- package/public/assets/index-Dkh3HiBz.js.map +1 -0
- package/public/assets/shared/@components-CgsSYMe6.js +2 -0
- package/public/assets/shared/@components-CgsSYMe6.js.map +1 -0
- package/public/assets/shared/@hooks-DT93N7wd.js +2 -0
- package/public/assets/shared/{@hooks-Ch_hJYh0.js.map → @hooks-DT93N7wd.js.map} +1 -1
- package/public/assets/shared/@tabler_icons-react-DrVFX3uL.js +3 -0
- package/public/assets/shared/{@tabler_icons-react-iQk11eD_.js.map → @tabler_icons-react-DrVFX3uL.js.map} +1 -1
- package/public/assets/shared/{wouter-CUC1caxu.js → wouter-CNISJ5i6.js} +2 -2
- package/public/assets/shared/wouter-CNISJ5i6.js.map +1 -0
- package/public/assets/useHasScope-BOdFktko.js +2 -0
- package/public/assets/useHasScope-BOdFktko.js.map +1 -0
- package/public/auth.html +97 -33
- package/templates/safe-ts/omegga.d.ts +1 -1
- package/public/assets/IconArrowRight-BuVxhqKX.js +0 -2
- package/public/assets/IconArrowRight-BuVxhqKX.js.map +0 -1
- package/public/assets/IconWorld-B6GK5qpx.js +0 -2
- package/public/assets/IconWorld-B6GK5qpx.js.map +0 -1
- package/public/assets/IconWorldPlus-Dkos72Ws.js +0 -2
- package/public/assets/IconWorldPlus-Dkos72Ws.js.map +0 -1
- package/public/assets/app-CLZ-5FIi.js +0 -6
- package/public/assets/app-CLZ-5FIi.js.map +0 -1
- package/public/assets/auth-6N37o421.js +0 -2
- package/public/assets/auth-6N37o421.js.map +0 -1
- package/public/assets/index-DLZ8-XzO.js +0 -4
- package/public/assets/index-DLZ8-XzO.js.map +0 -1
- package/public/assets/index-DY750sgZ.js +0 -2
- package/public/assets/index-DY750sgZ.js.map +0 -1
- package/public/assets/shared/@components-DPHARroA.js +0 -2
- package/public/assets/shared/@components-DPHARroA.js.map +0 -1
- package/public/assets/shared/@hooks-Ch_hJYh0.js +0 -2
- package/public/assets/shared/@tabler_icons-react-iQk11eD_.js +0 -3
- package/public/assets/shared/wouter-CUC1caxu.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-DLZ8-XzO.js","sources":["../../node_modules/linkifyjs/dist/linkify.mjs","../../node_modules/linkify-react/dist/linkify-react.mjs","../../frontend/src/components/chat-time/index.tsx","../../frontend/src/components/chat-entry/index.tsx","../../frontend/src/components/dropdown/index.tsx","../../frontend/src/components/infinite-scroll/index.tsx","../../node_modules/@tanstack/query-core/build/modern/subscribable.js","../../node_modules/@tanstack/query-core/build/modern/timeoutManager.js","../../node_modules/@tanstack/query-core/build/modern/utils.js","../../node_modules/@tanstack/query-core/build/modern/focusManager.js","../../node_modules/@tanstack/query-core/build/modern/thenable.js","../../node_modules/@tanstack/query-core/build/modern/notifyManager.js","../../node_modules/@tanstack/query-core/build/modern/onlineManager.js","../../node_modules/@tanstack/query-core/build/modern/retryer.js","../../node_modules/@tanstack/query-core/build/modern/removable.js","../../node_modules/@tanstack/query-core/build/modern/query.js","../../node_modules/@tanstack/query-core/build/modern/queryObserver.js","../../node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","../../node_modules/@tanstack/query-core/build/modern/infiniteQueryObserver.js","../../node_modules/@tanstack/query-core/build/modern/mutation.js","../../node_modules/@tanstack/query-core/build/modern/mutationCache.js","../../node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../node_modules/@tanstack/query-core/build/modern/queriesObserver.js","../../node_modules/@tanstack/query-core/build/modern/queryCache.js","../../node_modules/@tanstack/query-core/build/modern/queryClient.js","../../node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js","../../node_modules/@tanstack/react-query/build/modern/IsRestoringProvider.js","../../node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js","../../node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js","../../node_modules/@tanstack/react-query/build/modern/suspense.js","../../node_modules/@tanstack/react-query/build/modern/useQueries.js","../../node_modules/@tanstack/react-query/build/modern/useBaseQuery.js","../../node_modules/@tanstack/react-query/build/modern/useQuery.js","../../node_modules/@tanstack/react-query/build/modern/useSuspenseQuery.js","../../node_modules/@tanstack/react-query/build/modern/useSuspenseInfiniteQuery.js","../../node_modules/@tanstack/react-query/build/modern/useSuspenseQueries.js","../../node_modules/@tanstack/react-query/build/modern/usePrefetchQuery.js","../../node_modules/@tanstack/react-query/build/modern/usePrefetchInfiniteQuery.js","../../node_modules/@tanstack/react-query/build/modern/useMutation.js","../../node_modules/@tanstack/react-query/build/modern/useInfiniteQuery.js","../../node_modules/@trpc/client/dist/objectSpread2-BvkFp-_Y.mjs","../../node_modules/@trpc/server/dist/observable-UMO3vUa_.mjs","../../node_modules/@trpc/server/dist/observable-CUiPknO-.mjs","../../node_modules/@trpc/client/dist/splitLink-B7Cuf2c_.mjs","../../node_modules/@trpc/server/dist/codes-DagpWZLc.mjs","../../node_modules/@trpc/server/dist/getErrorShape-vC8mUXJD.mjs","../../node_modules/@trpc/server/dist/tracked-Bjtgv3wJ.mjs","../../node_modules/@trpc/server/dist/resolveResponse-BLZa62-J.mjs","../../node_modules/@trpc/client/dist/TRPCClientError-apv8gw59.mjs","../../node_modules/@trpc/client/dist/unstable-internals-Bg7n9BBj.mjs","../../node_modules/@trpc/client/dist/httpUtils-Dv57hbOd.mjs","../../node_modules/@trpc/client/dist/httpLink-Cz9h1Qgh.mjs","../../node_modules/@trpc/client/dist/httpBatchLink-fQ1NAi-e.mjs","../../node_modules/@trpc/client/dist/loggerLink-ineCN1PO.mjs","../../node_modules/@trpc/client/dist/wsLink-DSf4KOdW.mjs","../../node_modules/@trpc/client/dist/index.mjs","../../node_modules/@trpc/react-query/dist/getQueryKey-BY58RNzP.mjs","../../node_modules/@trpc/react-query/dist/shared-JtnEvJvB.mjs","../../node_modules/@trpc/react-query/dist/index.mjs","../../frontend/src/trpc.ts","../../frontend/src/components/role-dropdown/index.tsx","../../frontend/src/components/list-input/index.tsx","../../frontend/src/stores/user.ts","../../frontend/src/components/navbar/index.tsx","../../frontend/src/components/page/index.tsx","../../frontend/src/components/player-dropdown/index.tsx","../../frontend/src/components/scroll/index.tsx","../../frontend/src/components/sidenav/index.tsx","../../frontend/src/components/table/SortIcons.tsx","../../frontend/src/components/toggle/index.tsx"],"sourcesContent":["// THIS FILE IS AUTOMATICALLY GENERATED DO NOT EDIT DIRECTLY\n// See update-tlds.js for encoding/decoding format\n// https://data.iana.org/TLD/tlds-alpha-by-domain.txt\nconst encodedTlds = 'aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3nlop4pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2o0dyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rckmsd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0stone5umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2olterskluwer11odside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2';\n// Internationalized domain names containing non-ASCII\nconst encodedUtlds = 'ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2';\n\n/**\n * Finite State Machine generation utilities\n */\n\n/**\n * @template T\n * @typedef {{ [group: string]: T[] }} Collections\n */\n\n/**\n * @typedef {{ [group: string]: true }} Flags\n */\n\n// Keys in scanner Collections instances\nconst numeric = 'numeric';\nconst ascii = 'ascii';\nconst alpha = 'alpha';\nconst asciinumeric = 'asciinumeric';\nconst alphanumeric = 'alphanumeric';\nconst domain = 'domain';\nconst emoji = 'emoji';\nconst scheme = 'scheme';\nconst slashscheme = 'slashscheme';\nconst whitespace = 'whitespace';\n\n/**\n * @template T\n * @param {string} name\n * @param {Collections<T>} groups to register in\n * @returns {T[]} Current list of tokens in the given collection\n */\nfunction registerGroup(name, groups) {\n if (!(name in groups)) {\n groups[name] = [];\n }\n return groups[name];\n}\n\n/**\n * @template T\n * @param {T} t token to add\n * @param {Collections<T>} groups\n * @param {Flags} flags\n */\nfunction addToGroups(t, flags, groups) {\n if (flags[numeric]) {\n flags[asciinumeric] = true;\n flags[alphanumeric] = true;\n }\n if (flags[ascii]) {\n flags[asciinumeric] = true;\n flags[alpha] = true;\n }\n if (flags[asciinumeric]) {\n flags[alphanumeric] = true;\n }\n if (flags[alpha]) {\n flags[alphanumeric] = true;\n }\n if (flags[alphanumeric]) {\n flags[domain] = true;\n }\n if (flags[emoji]) {\n flags[domain] = true;\n }\n for (const k in flags) {\n const group = registerGroup(k, groups);\n if (group.indexOf(t) < 0) {\n group.push(t);\n }\n }\n}\n\n/**\n * @template T\n * @param {T} t token to check\n * @param {Collections<T>} groups\n * @returns {Flags} group flags that contain this token\n */\nfunction flagsForToken(t, groups) {\n const result = {};\n for (const c in groups) {\n if (groups[c].indexOf(t) >= 0) {\n result[c] = true;\n }\n }\n return result;\n}\n\n/**\n * @template T\n * @typedef {null | T } Transition\n */\n\n/**\n * Define a basic state machine state. j is the list of character transitions,\n * jr is the list of regex-match transitions, jd is the default state to\n * transition to t is the accepting token type, if any. If this is the terminal\n * state, then it does not emit a token.\n *\n * The template type T represents the type of the token this state accepts. This\n * should be a string (such as of the token exports in `text.js`) or a\n * MultiToken subclass (from `multi.js`)\n *\n * @template T\n * @param {T} [token] Token that this state emits\n */\nfunction State(token = null) {\n // this.n = null; // DEBUG: State name\n /** @type {{ [input: string]: State<T> }} j */\n this.j = {}; // IMPLEMENTATION 1\n // this.j = []; // IMPLEMENTATION 2\n /** @type {[RegExp, State<T>][]} jr */\n this.jr = [];\n /** @type {?State<T>} jd */\n this.jd = null;\n /** @type {?T} t */\n this.t = token;\n}\n\n/**\n * Scanner token groups\n * @type Collections<string>\n */\nState.groups = {};\nState.prototype = {\n accepts() {\n return !!this.t;\n },\n /**\n * Follow an existing transition from the given input to the next state.\n * Does not mutate.\n * @param {string} input character or token type to transition on\n * @returns {?State<T>} the next state, if any\n */\n go(input) {\n const state = this;\n const nextState = state.j[input];\n if (nextState) {\n return nextState;\n }\n for (let i = 0; i < state.jr.length; i++) {\n const regex = state.jr[i][0];\n const nextState = state.jr[i][1]; // note: might be empty to prevent default jump\n if (nextState && regex.test(input)) {\n return nextState;\n }\n }\n // Nowhere left to jump! Return default, if any\n return state.jd;\n },\n /**\n * Whether the state has a transition for the given input. Set the second\n * argument to true to only look for an exact match (and not a default or\n * regular-expression-based transition)\n * @param {string} input\n * @param {boolean} exactOnly\n */\n has(input, exactOnly = false) {\n return exactOnly ? input in this.j : !!this.go(input);\n },\n /**\n * Short for \"transition all\"; create a transition from the array of items\n * in the given list to the same final resulting state.\n * @param {string | string[]} inputs Group of inputs to transition on\n * @param {Transition<T> | State<T>} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections<T>} [groups] Master list of token groups\n */\n ta(inputs, next, flags, groups) {\n for (let i = 0; i < inputs.length; i++) {\n this.tt(inputs[i], next, flags, groups);\n }\n },\n /**\n * Short for \"take regexp transition\"; defines a transition for this state\n * when it encounters a token which matches the given regular expression\n * @param {RegExp} regexp Regular expression transition (populate first)\n * @param {T | State<T>} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections<T>} [groups] Master list of token groups\n * @returns {State<T>} taken after the given input\n */\n tr(regexp, next, flags, groups) {\n groups = groups || State.groups;\n let nextState;\n if (next && next.j) {\n nextState = next;\n } else {\n // Token with maybe token groups\n nextState = new State(next);\n if (flags && groups) {\n addToGroups(next, flags, groups);\n }\n }\n this.jr.push([regexp, nextState]);\n return nextState;\n },\n /**\n * Short for \"take transitions\", will take as many sequential transitions as\n * the length of the given input and returns the\n * resulting final state.\n * @param {string | string[]} input\n * @param {T | State<T>} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections<T>} [groups] Master list of token groups\n * @returns {State<T>} taken after the given input\n */\n ts(input, next, flags, groups) {\n let state = this;\n const len = input.length;\n if (!len) {\n return state;\n }\n for (let i = 0; i < len - 1; i++) {\n state = state.tt(input[i]);\n }\n return state.tt(input[len - 1], next, flags, groups);\n },\n /**\n * Short for \"take transition\", this is a method for building/working with\n * state machines.\n *\n * If a state already exists for the given input, returns it.\n *\n * If a token is specified, that state will emit that token when reached by\n * the linkify engine.\n *\n * If no state exists, it will be initialized with some default transitions\n * that resemble existing default transitions.\n *\n * If a state is given for the second argument, that state will be\n * transitioned to on the given input regardless of what that input\n * previously did.\n *\n * Specify a token group flags to define groups that this token belongs to.\n * The token will be added to corresponding entires in the given groups\n * object.\n *\n * @param {string} input character, token type to transition on\n * @param {T | State<T>} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections<T>} [groups] Master list of groups\n * @returns {State<T>} taken after the given input\n */\n tt(input, next, flags, groups) {\n groups = groups || State.groups;\n const state = this;\n\n // Check if existing state given, just a basic transition\n if (next && next.j) {\n state.j[input] = next;\n return next;\n }\n const t = next;\n\n // Take the transition with the usual default mechanisms and use that as\n // a template for creating the next state\n let nextState,\n templateState = state.go(input);\n if (templateState) {\n nextState = new State();\n Object.assign(nextState.j, templateState.j);\n nextState.jr.push.apply(nextState.jr, templateState.jr);\n nextState.jd = templateState.jd;\n nextState.t = templateState.t;\n } else {\n nextState = new State();\n }\n if (t) {\n // Ensure newly token is in the same groups as the old token\n if (groups) {\n if (nextState.t && typeof nextState.t === 'string') {\n const allFlags = Object.assign(flagsForToken(nextState.t, groups), flags);\n addToGroups(t, allFlags, groups);\n } else if (flags) {\n addToGroups(t, flags, groups);\n }\n }\n nextState.t = t; // overwrite anything that was previously there\n }\n state.j[input] = nextState;\n return nextState;\n }\n};\n\n// Helper functions to improve minification (not exported outside linkifyjs module)\n\n/**\n * @template T\n * @param {State<T>} state\n * @param {string | string[]} input\n * @param {Flags} [flags]\n * @param {Collections<T>} [groups]\n */\nconst ta = (state, input, next, flags, groups) => state.ta(input, next, flags, groups);\n\n/**\n * @template T\n * @param {State<T>} state\n * @param {RegExp} regexp\n * @param {T | State<T>} [next]\n * @param {Flags} [flags]\n * @param {Collections<T>} [groups]\n */\nconst tr = (state, regexp, next, flags, groups) => state.tr(regexp, next, flags, groups);\n\n/**\n * @template T\n * @param {State<T>} state\n * @param {string | string[]} input\n * @param {T | State<T>} [next]\n * @param {Flags} [flags]\n * @param {Collections<T>} [groups]\n */\nconst ts = (state, input, next, flags, groups) => state.ts(input, next, flags, groups);\n\n/**\n * @template T\n * @param {State<T>} state\n * @param {string} input\n * @param {T | State<T>} [next]\n * @param {Collections<T>} [groups]\n * @param {Flags} [flags]\n */\nconst tt = (state, input, next, flags, groups) => state.tt(input, next, flags, groups);\n\n/******************************************************************************\nText Tokens\nIdentifiers for token outputs from the regexp scanner\n******************************************************************************/\n\n// A valid web domain token\nconst WORD = 'WORD'; // only contains a-z\nconst UWORD = 'UWORD'; // contains letters other than a-z, used for IDN\nconst ASCIINUMERICAL = 'ASCIINUMERICAL'; // contains a-z, 0-9\nconst ALPHANUMERICAL = 'ALPHANUMERICAL'; // contains numbers and letters other than a-z, used for IDN\n\n// Special case of word\nconst LOCALHOST = 'LOCALHOST';\n\n// Valid top-level domain, special case of WORD (see tlds.js)\nconst TLD = 'TLD';\n\n// Valid IDN TLD, special case of UWORD (see tlds.js)\nconst UTLD = 'UTLD';\n\n// The scheme portion of a web URI protocol. Supported types include: `mailto`,\n// `file`, and user-defined custom protocols. Limited to schemes that contain\n// only letters\nconst SCHEME = 'SCHEME';\n\n// Similar to SCHEME, except makes distinction for schemes that must always be\n// followed by `://`, not just `:`. Supported types include `http`, `https`,\n// `ftp`, `ftps`\nconst SLASH_SCHEME = 'SLASH_SCHEME';\n\n// Any sequence of digits 0-9\nconst NUM = 'NUM';\n\n// Any number of consecutive whitespace characters that are not newline\nconst WS = 'WS';\n\n// New line (unix style)\nconst NL = 'NL'; // \\n\n\n// Opening/closing bracket classes\n// TODO: Rename OPEN -> LEFT and CLOSE -> RIGHT in v5 to fit with Unicode names\n// Also rename angle brackes to LESSTHAN and GREATER THAN\nconst OPENBRACE = 'OPENBRACE'; // {\nconst CLOSEBRACE = 'CLOSEBRACE'; // }\nconst OPENBRACKET = 'OPENBRACKET'; // [\nconst CLOSEBRACKET = 'CLOSEBRACKET'; // ]\nconst OPENPAREN = 'OPENPAREN'; // (\nconst CLOSEPAREN = 'CLOSEPAREN'; // )\nconst OPENANGLEBRACKET = 'OPENANGLEBRACKET'; // <\nconst CLOSEANGLEBRACKET = 'CLOSEANGLEBRACKET'; // >\nconst FULLWIDTHLEFTPAREN = 'FULLWIDTHLEFTPAREN'; // (\nconst FULLWIDTHRIGHTPAREN = 'FULLWIDTHRIGHTPAREN'; // )\nconst LEFTCORNERBRACKET = 'LEFTCORNERBRACKET'; // 「\nconst RIGHTCORNERBRACKET = 'RIGHTCORNERBRACKET'; // 」\nconst LEFTWHITECORNERBRACKET = 'LEFTWHITECORNERBRACKET'; // 『\nconst RIGHTWHITECORNERBRACKET = 'RIGHTWHITECORNERBRACKET'; // 』\nconst FULLWIDTHLESSTHAN = 'FULLWIDTHLESSTHAN'; // <\nconst FULLWIDTHGREATERTHAN = 'FULLWIDTHGREATERTHAN'; // >\n\n// Various symbols\nconst AMPERSAND = 'AMPERSAND'; // &\nconst APOSTROPHE = 'APOSTROPHE'; // '\nconst ASTERISK = 'ASTERISK'; // *\nconst AT = 'AT'; // @\nconst BACKSLASH = 'BACKSLASH'; // \\\nconst BACKTICK = 'BACKTICK'; // `\nconst CARET = 'CARET'; // ^\nconst COLON = 'COLON'; // :\nconst COMMA = 'COMMA'; // ,\nconst DOLLAR = 'DOLLAR'; // $\nconst DOT = 'DOT'; // .\nconst EQUALS = 'EQUALS'; // =\nconst EXCLAMATION = 'EXCLAMATION'; // !\nconst HYPHEN = 'HYPHEN'; // -\nconst PERCENT = 'PERCENT'; // %\nconst PIPE = 'PIPE'; // |\nconst PLUS = 'PLUS'; // +\nconst POUND = 'POUND'; // #\nconst QUERY = 'QUERY'; // ?\nconst QUOTE = 'QUOTE'; // \"\nconst FULLWIDTHMIDDLEDOT = 'FULLWIDTHMIDDLEDOT'; // ・\n\nconst SEMI = 'SEMI'; // ;\nconst SLASH = 'SLASH'; // /\nconst TILDE = 'TILDE'; // ~\nconst UNDERSCORE = 'UNDERSCORE'; // _\n\n// Emoji symbol\nconst EMOJI$1 = 'EMOJI';\n\n// Default token - anything that is not one of the above\nconst SYM = 'SYM';\n\nvar tk = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tALPHANUMERICAL: ALPHANUMERICAL,\n\tAMPERSAND: AMPERSAND,\n\tAPOSTROPHE: APOSTROPHE,\n\tASCIINUMERICAL: ASCIINUMERICAL,\n\tASTERISK: ASTERISK,\n\tAT: AT,\n\tBACKSLASH: BACKSLASH,\n\tBACKTICK: BACKTICK,\n\tCARET: CARET,\n\tCLOSEANGLEBRACKET: CLOSEANGLEBRACKET,\n\tCLOSEBRACE: CLOSEBRACE,\n\tCLOSEBRACKET: CLOSEBRACKET,\n\tCLOSEPAREN: CLOSEPAREN,\n\tCOLON: COLON,\n\tCOMMA: COMMA,\n\tDOLLAR: DOLLAR,\n\tDOT: DOT,\n\tEMOJI: EMOJI$1,\n\tEQUALS: EQUALS,\n\tEXCLAMATION: EXCLAMATION,\n\tFULLWIDTHGREATERTHAN: FULLWIDTHGREATERTHAN,\n\tFULLWIDTHLEFTPAREN: FULLWIDTHLEFTPAREN,\n\tFULLWIDTHLESSTHAN: FULLWIDTHLESSTHAN,\n\tFULLWIDTHMIDDLEDOT: FULLWIDTHMIDDLEDOT,\n\tFULLWIDTHRIGHTPAREN: FULLWIDTHRIGHTPAREN,\n\tHYPHEN: HYPHEN,\n\tLEFTCORNERBRACKET: LEFTCORNERBRACKET,\n\tLEFTWHITECORNERBRACKET: LEFTWHITECORNERBRACKET,\n\tLOCALHOST: LOCALHOST,\n\tNL: NL,\n\tNUM: NUM,\n\tOPENANGLEBRACKET: OPENANGLEBRACKET,\n\tOPENBRACE: OPENBRACE,\n\tOPENBRACKET: OPENBRACKET,\n\tOPENPAREN: OPENPAREN,\n\tPERCENT: PERCENT,\n\tPIPE: PIPE,\n\tPLUS: PLUS,\n\tPOUND: POUND,\n\tQUERY: QUERY,\n\tQUOTE: QUOTE,\n\tRIGHTCORNERBRACKET: RIGHTCORNERBRACKET,\n\tRIGHTWHITECORNERBRACKET: RIGHTWHITECORNERBRACKET,\n\tSCHEME: SCHEME,\n\tSEMI: SEMI,\n\tSLASH: SLASH,\n\tSLASH_SCHEME: SLASH_SCHEME,\n\tSYM: SYM,\n\tTILDE: TILDE,\n\tTLD: TLD,\n\tUNDERSCORE: UNDERSCORE,\n\tUTLD: UTLD,\n\tUWORD: UWORD,\n\tWORD: WORD,\n\tWS: WS\n});\n\n// Note that these two Unicode ones expand into a really big one with Babel\nconst ASCII_LETTER = /[a-z]/;\nconst LETTER = /\\p{L}/u; // Any Unicode character with letter data type\nconst EMOJI = /\\p{Emoji}/u; // Any Unicode emoji character\nconst EMOJI_VARIATION$1 = /\\ufe0f/;\nconst DIGIT = /\\d/;\nconst SPACE = /\\s/;\n\nvar regexp = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tASCII_LETTER: ASCII_LETTER,\n\tDIGIT: DIGIT,\n\tEMOJI: EMOJI,\n\tEMOJI_VARIATION: EMOJI_VARIATION$1,\n\tLETTER: LETTER,\n\tSPACE: SPACE\n});\n\n/**\n\tThe scanner provides an interface that takes a string of text as input, and\n\toutputs an array of tokens instances that can be used for easy URL parsing.\n*/\n\nconst CR = '\\r'; // carriage-return character\nconst LF = '\\n'; // line-feed character\nconst EMOJI_VARIATION = '\\ufe0f'; // Variation selector, follows heart and others\nconst EMOJI_JOINER = '\\u200d'; // zero-width joiner\nconst OBJECT_REPLACEMENT = '\\ufffc'; // whitespace placeholder that sometimes appears in rich text editors\n\nlet tlds = null,\n utlds = null; // don't change so only have to be computed once\n\n/**\n * Scanner output token:\n * - `t` is the token name (e.g., 'NUM', 'EMOJI', 'TLD')\n * - `v` is the value of the token (e.g., '123', '❤️', 'com')\n * - `s` is the start index of the token in the original string\n * - `e` is the end index of the token in the original string\n * @typedef {{t: string, v: string, s: number, e: number}} Token\n */\n\n/**\n * @template T\n * @typedef {{ [collection: string]: T[] }} Collections\n */\n\n/**\n * Initialize the scanner character-based state machine for the given start\n * state\n * @param {[string, boolean][]} customSchemes List of custom schemes, where each\n * item is a length-2 tuple with the first element set to the string scheme, and\n * the second element set to `true` if the `://` after the scheme is optional\n */\nfunction init$2(customSchemes = []) {\n // Frequently used states (name argument removed during minification)\n /** @type Collections<string> */\n const groups = {}; // of tokens\n State.groups = groups;\n /** @type State<string> */\n const Start = new State();\n if (tlds == null) {\n tlds = decodeTlds(encodedTlds);\n }\n if (utlds == null) {\n utlds = decodeTlds(encodedUtlds);\n }\n\n // States for special URL symbols that accept immediately after start\n tt(Start, \"'\", APOSTROPHE);\n tt(Start, '{', OPENBRACE);\n tt(Start, '}', CLOSEBRACE);\n tt(Start, '[', OPENBRACKET);\n tt(Start, ']', CLOSEBRACKET);\n tt(Start, '(', OPENPAREN);\n tt(Start, ')', CLOSEPAREN);\n tt(Start, '<', OPENANGLEBRACKET);\n tt(Start, '>', CLOSEANGLEBRACKET);\n tt(Start, '(', FULLWIDTHLEFTPAREN);\n tt(Start, ')', FULLWIDTHRIGHTPAREN);\n tt(Start, '「', LEFTCORNERBRACKET);\n tt(Start, '」', RIGHTCORNERBRACKET);\n tt(Start, '『', LEFTWHITECORNERBRACKET);\n tt(Start, '』', RIGHTWHITECORNERBRACKET);\n tt(Start, '<', FULLWIDTHLESSTHAN);\n tt(Start, '>', FULLWIDTHGREATERTHAN);\n tt(Start, '&', AMPERSAND);\n tt(Start, '*', ASTERISK);\n tt(Start, '@', AT);\n tt(Start, '`', BACKTICK);\n tt(Start, '^', CARET);\n tt(Start, ':', COLON);\n tt(Start, ',', COMMA);\n tt(Start, '$', DOLLAR);\n tt(Start, '.', DOT);\n tt(Start, '=', EQUALS);\n tt(Start, '!', EXCLAMATION);\n tt(Start, '-', HYPHEN);\n tt(Start, '%', PERCENT);\n tt(Start, '|', PIPE);\n tt(Start, '+', PLUS);\n tt(Start, '#', POUND);\n tt(Start, '?', QUERY);\n tt(Start, '\"', QUOTE);\n tt(Start, '/', SLASH);\n tt(Start, ';', SEMI);\n tt(Start, '~', TILDE);\n tt(Start, '_', UNDERSCORE);\n tt(Start, '\\\\', BACKSLASH);\n tt(Start, '・', FULLWIDTHMIDDLEDOT);\n const Num = tr(Start, DIGIT, NUM, {\n [numeric]: true\n });\n tr(Num, DIGIT, Num);\n const Asciinumeric = tr(Num, ASCII_LETTER, ASCIINUMERICAL, {\n [asciinumeric]: true\n });\n const Alphanumeric = tr(Num, LETTER, ALPHANUMERICAL, {\n [alphanumeric]: true\n });\n\n // State which emits a word token\n const Word = tr(Start, ASCII_LETTER, WORD, {\n [ascii]: true\n });\n tr(Word, DIGIT, Asciinumeric);\n tr(Word, ASCII_LETTER, Word);\n tr(Asciinumeric, DIGIT, Asciinumeric);\n tr(Asciinumeric, ASCII_LETTER, Asciinumeric);\n\n // Same as previous, but specific to non-fsm.ascii alphabet words\n const UWord = tr(Start, LETTER, UWORD, {\n [alpha]: true\n });\n tr(UWord, ASCII_LETTER); // Non-accepting\n tr(UWord, DIGIT, Alphanumeric);\n tr(UWord, LETTER, UWord);\n tr(Alphanumeric, DIGIT, Alphanumeric);\n tr(Alphanumeric, ASCII_LETTER); // Non-accepting\n tr(Alphanumeric, LETTER, Alphanumeric); // Non-accepting\n\n // Whitespace jumps\n // Tokens of only non-newline whitespace are arbitrarily long\n // If any whitespace except newline, more whitespace!\n const Nl = tt(Start, LF, NL, {\n [whitespace]: true\n });\n const Cr = tt(Start, CR, WS, {\n [whitespace]: true\n });\n const Ws = tr(Start, SPACE, WS, {\n [whitespace]: true\n });\n tt(Start, OBJECT_REPLACEMENT, Ws);\n tt(Cr, LF, Nl); // \\r\\n\n tt(Cr, OBJECT_REPLACEMENT, Ws);\n tr(Cr, SPACE, Ws);\n tt(Ws, CR); // non-accepting state to avoid mixing whitespaces\n tt(Ws, LF); // non-accepting state to avoid mixing whitespaces\n tr(Ws, SPACE, Ws);\n tt(Ws, OBJECT_REPLACEMENT, Ws);\n\n // Emoji tokens. They are not grouped by the scanner except in cases where a\n // zero-width joiner is present\n const Emoji = tr(Start, EMOJI, EMOJI$1, {\n [emoji]: true\n });\n tt(Emoji, '#'); // no transition, emoji regex seems to match #\n tr(Emoji, EMOJI, Emoji);\n tt(Emoji, EMOJI_VARIATION, Emoji);\n // tt(Start, EMOJI_VARIATION, Emoji); // This one is sketchy\n\n const EmojiJoiner = tt(Emoji, EMOJI_JOINER);\n tt(EmojiJoiner, '#');\n tr(EmojiJoiner, EMOJI, Emoji);\n // tt(EmojiJoiner, EMOJI_VARIATION, Emoji); // also sketchy\n\n // Generates states for top-level domains\n // Note that this is most accurate when tlds are in alphabetical order\n const wordjr = [[ASCII_LETTER, Word], [DIGIT, Asciinumeric]];\n const uwordjr = [[ASCII_LETTER, null], [LETTER, UWord], [DIGIT, Alphanumeric]];\n for (let i = 0; i < tlds.length; i++) {\n fastts(Start, tlds[i], TLD, WORD, wordjr);\n }\n for (let i = 0; i < utlds.length; i++) {\n fastts(Start, utlds[i], UTLD, UWORD, uwordjr);\n }\n addToGroups(TLD, {\n tld: true,\n ascii: true\n }, groups);\n addToGroups(UTLD, {\n utld: true,\n alpha: true\n }, groups);\n\n // Collect the states generated by different protocols. NOTE: If any new TLDs\n // get added that are also protocols, set the token to be the same as the\n // protocol to ensure parsing works as expected.\n fastts(Start, 'file', SCHEME, WORD, wordjr);\n fastts(Start, 'mailto', SCHEME, WORD, wordjr);\n fastts(Start, 'http', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'https', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftp', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftps', SLASH_SCHEME, WORD, wordjr);\n addToGroups(SCHEME, {\n scheme: true,\n ascii: true\n }, groups);\n addToGroups(SLASH_SCHEME, {\n slashscheme: true,\n ascii: true\n }, groups);\n\n // Register custom schemes. Assumes each scheme is asciinumeric with hyphens\n customSchemes = customSchemes.sort((a, b) => a[0] > b[0] ? 1 : -1);\n for (let i = 0; i < customSchemes.length; i++) {\n const sch = customSchemes[i][0];\n const optionalSlashSlash = customSchemes[i][1];\n const flags = optionalSlashSlash ? {\n [scheme]: true\n } : {\n [slashscheme]: true\n };\n if (sch.indexOf('-') >= 0) {\n flags[domain] = true;\n } else if (!ASCII_LETTER.test(sch)) {\n flags[numeric] = true; // numbers only\n } else if (DIGIT.test(sch)) {\n flags[asciinumeric] = true;\n } else {\n flags[ascii] = true;\n }\n ts(Start, sch, sch, flags);\n }\n\n // Localhost token\n ts(Start, 'localhost', LOCALHOST, {\n ascii: true\n });\n\n // Set default transition for start state (some symbol)\n Start.jd = new State(SYM);\n return {\n start: Start,\n tokens: Object.assign({\n groups\n }, tk)\n };\n}\n\n/**\n\tGiven a string, returns an array of TOKEN instances representing the\n\tcomposition of that string.\n\n\t@method run\n\t@param {State<string>} start scanner starting state\n\t@param {string} str input string to scan\n\t@return {Token[]} list of tokens, each with a type and value\n*/\nfunction run$1(start, str) {\n // State machine is not case sensitive, so input is tokenized in lowercased\n // form (still returns regular case). Uses selective `toLowerCase` because\n // lowercasing the entire string causes the length and character position to\n // vary in some non-English strings with V8-based runtimes.\n const iterable = stringToArray(str.replace(/[A-Z]/g, c => c.toLowerCase()));\n const charCount = iterable.length; // <= len if there are emojis, etc\n const tokens = []; // return value\n\n // cursor through the string itself, accounting for characters that have\n // width with length 2 such as emojis\n let cursor = 0;\n\n // Cursor through the array-representation of the string\n let charCursor = 0;\n\n // Tokenize the string\n while (charCursor < charCount) {\n let state = start;\n let nextState = null;\n let tokenLength = 0;\n let latestAccepting = null;\n let sinceAccepts = -1;\n let charsSinceAccepts = -1;\n while (charCursor < charCount && (nextState = state.go(iterable[charCursor]))) {\n state = nextState;\n\n // Keep track of the latest accepting state\n if (state.accepts()) {\n sinceAccepts = 0;\n charsSinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts += iterable[charCursor].length;\n charsSinceAccepts++;\n }\n tokenLength += iterable[charCursor].length;\n cursor += iterable[charCursor].length;\n charCursor++;\n }\n\n // Roll back to the latest accepting state\n cursor -= sinceAccepts;\n charCursor -= charsSinceAccepts;\n tokenLength -= sinceAccepts;\n\n // No more jumps, just make a new token from the last accepting one\n tokens.push({\n t: latestAccepting.t,\n // token type/name\n v: str.slice(cursor - tokenLength, cursor),\n // string value\n s: cursor - tokenLength,\n // start index\n e: cursor // end index (excluding)\n });\n }\n return tokens;\n}\n\n/**\n * Convert a String to an Array of characters, taking into account that some\n * characters like emojis take up two string indexes.\n *\n * Adapted from core-js (MIT license)\n * https://github.com/zloirock/core-js/blob/2d69cf5f99ab3ea3463c395df81e5a15b68f49d9/packages/core-js/internals/string-multibyte.js\n *\n * @function stringToArray\n * @param {string} str\n * @returns {string[]}\n */\nfunction stringToArray(str) {\n const result = [];\n const len = str.length;\n let index = 0;\n while (index < len) {\n let first = str.charCodeAt(index);\n let second;\n let char = first < 0xd800 || first > 0xdbff || index + 1 === len || (second = str.charCodeAt(index + 1)) < 0xdc00 || second > 0xdfff ? str[index] // single character\n : str.slice(index, index + 2); // two-index characters\n result.push(char);\n index += char.length;\n }\n return result;\n}\n\n/**\n * Fast version of ts function for when transition defaults are well known\n * @param {State<string>} state\n * @param {string} input\n * @param {string} t\n * @param {string} defaultt\n * @param {[RegExp, State<string>][]} jr\n * @returns {State<string>}\n */\nfunction fastts(state, input, t, defaultt, jr) {\n let next;\n const len = input.length;\n for (let i = 0; i < len - 1; i++) {\n const char = input[i];\n if (state.j[char]) {\n next = state.j[char];\n } else {\n next = new State(defaultt);\n next.jr = jr.slice();\n state.j[char] = next;\n }\n state = next;\n }\n next = new State(t);\n next.jr = jr.slice();\n state.j[input[len - 1]] = next;\n return next;\n}\n\n/**\n * Converts a string of Top-Level Domain names encoded in update-tlds.js back\n * into a list of strings.\n * @param {str} encoded encoded TLDs string\n * @returns {str[]} original TLDs list\n */\nfunction decodeTlds(encoded) {\n const words = [];\n const stack = [];\n let i = 0;\n let digits = '0123456789';\n while (i < encoded.length) {\n let popDigitCount = 0;\n while (digits.indexOf(encoded[i + popDigitCount]) >= 0) {\n popDigitCount++; // encountered some digits, have to pop to go one level up trie\n }\n if (popDigitCount > 0) {\n words.push(stack.join('')); // whatever preceded the pop digits must be a word\n for (let popCount = parseInt(encoded.substring(i, i + popDigitCount), 10); popCount > 0; popCount--) {\n stack.pop();\n }\n i += popDigitCount;\n } else {\n stack.push(encoded[i]); // drop down a level into the trie\n i++;\n }\n }\n return words;\n}\n\n/**\n * An object where each key is a valid DOM Event Name such as `click` or `focus`\n * and each value is an event handler function.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/Element#events\n * @typedef {?{ [event: string]: Function }} EventListeners\n */\n\n/**\n * All formatted properties required to render a link, including `tagName`,\n * `attributes`, `content` and `eventListeners`.\n * @typedef {{ tagName: any, attributes: {[attr: string]: any}, content: string,\n * eventListeners: EventListeners }} IntermediateRepresentation\n */\n\n/**\n * Specify either an object described by the template type `O` or a function.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `O`\n * @template O\n * @typedef {O | ((value: string, type: string, token: MultiToken) => O)} OptObj\n */\n\n/**\n * Specify either a function described by template type `F` or an object.\n *\n * Each key in the object should be a link type (`'url'`, `'hashtag`', etc.). Each\n * value should be a function with template type `F` that is called when the\n * corresponding link type is encountered.\n * @template F\n * @typedef {F | { [type: string]: F}} OptFn\n */\n\n/**\n * Specify either a value with template type `V`, a function that returns `V` or\n * an object where each value resolves to `V`.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `V`\n *\n * For the object, each key should be a link type (`'url'`, `'hashtag`', etc.).\n * Each value should either have type `V` or a function that returns V. This\n * function similarly takes a string value and a token.\n *\n * Example valid types for `Opt<string>`:\n *\n * ```js\n * 'hello'\n * (value, type, token) => 'world'\n * { url: 'hello', email: (value, token) => 'world'}\n * ```\n * @template V\n * @typedef {V | ((value: string, type: string, token: MultiToken) => V) | { [type: string]: V | ((value: string, token: MultiToken) => V) }} Opt\n */\n\n/**\n * See available options: https://linkify.js.org/docs/options.html\n * @typedef {{\n * \tdefaultProtocol?: string,\n * events?: OptObj<EventListeners>,\n * \tformat?: Opt<string>,\n * \tformatHref?: Opt<string>,\n * \tnl2br?: boolean,\n * \ttagName?: Opt<any>,\n * \ttarget?: Opt<string>,\n * \trel?: Opt<string>,\n * \tvalidate?: Opt<boolean>,\n * \ttruncate?: Opt<number>,\n * \tclassName?: Opt<string>,\n * \tattributes?: OptObj<({ [attr: string]: any })>,\n * ignoreTags?: string[],\n * \trender?: OptFn<((ir: IntermediateRepresentation) => any)>\n * }} Opts\n */\n\n/**\n * @type Required<Opts>\n */\nconst defaults = {\n defaultProtocol: 'http',\n events: null,\n format: noop,\n formatHref: noop,\n nl2br: false,\n tagName: 'a',\n target: null,\n rel: null,\n validate: true,\n truncate: Infinity,\n className: null,\n attributes: null,\n ignoreTags: [],\n render: null\n};\n\n/**\n * Utility class for linkify interfaces to apply specified\n * {@link Opts formatting and rendering options}.\n *\n * @param {Opts | Options} [opts] Option value overrides.\n * @param {(ir: IntermediateRepresentation) => any} [defaultRender] (For\n * internal use) default render function that determines how to generate an\n * HTML element based on a link token's derived tagName, attributes and HTML.\n * Similar to render option\n */\nfunction Options(opts, defaultRender = null) {\n let o = Object.assign({}, defaults);\n if (opts) {\n o = Object.assign(o, opts instanceof Options ? opts.o : opts);\n }\n\n // Ensure all ignored tags are uppercase\n const ignoredTags = o.ignoreTags;\n const uppercaseIgnoredTags = [];\n for (let i = 0; i < ignoredTags.length; i++) {\n uppercaseIgnoredTags.push(ignoredTags[i].toUpperCase());\n }\n /** @protected */\n this.o = o;\n if (defaultRender) {\n this.defaultRender = defaultRender;\n }\n this.ignoreTags = uppercaseIgnoredTags;\n}\nOptions.prototype = {\n o: defaults,\n /**\n * @type string[]\n */\n ignoreTags: [],\n /**\n * @param {IntermediateRepresentation} ir\n * @returns {any}\n */\n defaultRender(ir) {\n return ir;\n },\n /**\n * Returns true or false based on whether a token should be displayed as a\n * link based on the user options.\n * @param {MultiToken} token\n * @returns {boolean}\n */\n check(token) {\n return this.get('validate', token.toString(), token);\n },\n // Private methods\n\n /**\n * Resolve an option's value based on the value of the option and the given\n * params. If operator and token are specified and the target option is\n * callable, automatically calls the function with the given argument.\n * @template {keyof Opts} K\n * @param {K} key Name of option to use\n * @param {string} [operator] will be passed to the target option if it's a\n * function. If not specified, RAW function value gets returned\n * @param {MultiToken} [token] The token from linkify.tokenize\n * @returns {Opts[K] | any}\n */\n get(key, operator, token) {\n const isCallable = operator != null;\n let option = this.o[key];\n if (!option) {\n return option;\n }\n if (typeof option === 'object') {\n option = token.t in option ? option[token.t] : defaults[key];\n if (typeof option === 'function' && isCallable) {\n option = option(operator, token);\n }\n } else if (typeof option === 'function' && isCallable) {\n option = option(operator, token.t, token);\n }\n return option;\n },\n /**\n * @template {keyof Opts} L\n * @param {L} key Name of options object to use\n * @param {string} [operator]\n * @param {MultiToken} [token]\n * @returns {Opts[L] | any}\n */\n getObj(key, operator, token) {\n let obj = this.o[key];\n if (typeof obj === 'function' && operator != null) {\n obj = obj(operator, token.t, token);\n }\n return obj;\n },\n /**\n * Convert the given token to a rendered element that may be added to the\n * calling-interface's DOM\n * @param {MultiToken} token Token to render to an HTML element\n * @returns {any} Render result; e.g., HTML string, DOM element, React\n * Component, etc.\n */\n render(token) {\n const ir = token.render(this); // intermediate representation\n const renderFn = this.get('render', null, token) || this.defaultRender;\n return renderFn(ir, token.t, token);\n }\n};\nfunction noop(val) {\n return val;\n}\n\nvar options = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tOptions: Options,\n\tdefaults: defaults\n});\n\n/******************************************************************************\n\tMulti-Tokens\n\tTokens composed of arrays of TextTokens\n******************************************************************************/\n\n/**\n * @param {string} value\n * @param {Token[]} tokens\n */\nfunction MultiToken(value, tokens) {\n this.t = 'token';\n this.v = value;\n this.tk = tokens;\n}\n\n/**\n * Abstract class used for manufacturing tokens of text tokens. That is rather\n * than the value for a token being a small string of text, it's value an array\n * of text tokens.\n *\n * Used for grouping together URLs, emails, hashtags, and other potential\n * creations.\n * @class MultiToken\n * @property {string} t\n * @property {string} v\n * @property {Token[]} tk\n * @abstract\n */\nMultiToken.prototype = {\n isLink: false,\n /**\n * Return the string this token represents.\n * @return {string}\n */\n toString() {\n return this.v;\n },\n /**\n * What should the value for this token be in the `href` HTML attribute?\n * Returns the `.toString` value by default.\n * @param {string} [scheme]\n * @return {string}\n */\n toHref(scheme) {\n return this.toString();\n },\n /**\n * @param {Options} options Formatting options\n * @returns {string}\n */\n toFormattedString(options) {\n const val = this.toString();\n const truncate = options.get('truncate', val, this);\n const formatted = options.get('format', val, this);\n return truncate && formatted.length > truncate ? formatted.substring(0, truncate) + '…' : formatted;\n },\n /**\n *\n * @param {Options} options\n * @returns {string}\n */\n toFormattedHref(options) {\n return options.get('formatHref', this.toHref(options.get('defaultProtocol')), this);\n },\n /**\n * The start index of this token in the original input string\n * @returns {number}\n */\n startIndex() {\n return this.tk[0].s;\n },\n /**\n * The end index of this token in the original input string (up to this\n * index but not including it)\n * @returns {number}\n */\n endIndex() {\n return this.tk[this.tk.length - 1].e;\n },\n /**\n \tReturns an object of relevant values for this token, which includes keys\n \t* type - Kind of token ('url', 'email', etc.)\n \t* value - Original text\n \t* href - The value that should be added to the anchor tag's href\n \t\tattribute\n \t\t@method toObject\n \t@param {string} [protocol] `'http'` by default\n */\n toObject(protocol = defaults.defaultProtocol) {\n return {\n type: this.t,\n value: this.toString(),\n isLink: this.isLink,\n href: this.toHref(protocol),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n *\n * @param {Options} options Formatting option\n */\n toFormattedObject(options) {\n return {\n type: this.t,\n value: this.toFormattedString(options),\n isLink: this.isLink,\n href: this.toFormattedHref(options),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n * Whether this token should be rendered as a link according to the given options\n * @param {Options} options\n * @returns {boolean}\n */\n validate(options) {\n return options.get('validate', this.toString(), this);\n },\n /**\n * Return an object that represents how this link should be rendered.\n * @param {Options} options Formattinng options\n */\n render(options) {\n const token = this;\n const href = this.toHref(options.get('defaultProtocol'));\n const formattedHref = options.get('formatHref', href, this);\n const tagName = options.get('tagName', href, token);\n const content = this.toFormattedString(options);\n const attributes = {};\n const className = options.get('className', href, token);\n const target = options.get('target', href, token);\n const rel = options.get('rel', href, token);\n const attrs = options.getObj('attributes', href, token);\n const eventListeners = options.getObj('events', href, token);\n attributes.href = formattedHref;\n if (className) {\n attributes.class = className;\n }\n if (target) {\n attributes.target = target;\n }\n if (rel) {\n attributes.rel = rel;\n }\n if (attrs) {\n Object.assign(attributes, attrs);\n }\n return {\n tagName,\n attributes,\n content,\n eventListeners\n };\n }\n};\n\n/**\n * Create a new token that can be emitted by the parser state machine\n * @param {string} type readable type of the token\n * @param {object} props properties to assign or override, including isLink = true or false\n * @returns {new (value: string, tokens: Token[]) => MultiToken} new token class\n */\nfunction createTokenClass(type, props) {\n class Token extends MultiToken {\n constructor(value, tokens) {\n super(value, tokens);\n this.t = type;\n }\n }\n for (const p in props) {\n Token.prototype[p] = props[p];\n }\n Token.t = type;\n return Token;\n}\n\n/**\n\tRepresents a list of tokens making up a valid email address\n*/\nconst Email = createTokenClass('email', {\n isLink: true,\n toHref() {\n return 'mailto:' + this.toString();\n }\n});\n\n/**\n\tRepresents some plain text\n*/\nconst Text = createTokenClass('text');\n\n/**\n\tMulti-linebreak token - represents a line break\n\t@class Nl\n*/\nconst Nl = createTokenClass('nl');\n\n/**\n\tRepresents a list of text tokens making up a valid URL\n\t@class Url\n*/\nconst Url = createTokenClass('url', {\n isLink: true,\n /**\n \tLowercases relevant parts of the domain and adds the protocol if\n \trequired. Note that this will not escape unsafe HTML characters in the\n \tURL.\n \t\t@param {string} [scheme] default scheme (e.g., 'https')\n \t@return {string} the full href\n */\n toHref(scheme = defaults.defaultProtocol) {\n // Check if already has a prefix scheme\n return this.hasProtocol() ? this.v : `${scheme}://${this.v}`;\n },\n /**\n * Check whether this URL token has a protocol\n * @return {boolean}\n */\n hasProtocol() {\n const tokens = this.tk;\n return tokens.length >= 2 && tokens[0].t !== LOCALHOST && tokens[1].t === COLON;\n }\n});\n\nvar multi = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tBase: MultiToken,\n\tEmail: Email,\n\tMultiToken: MultiToken,\n\tNl: Nl,\n\tText: Text,\n\tUrl: Url,\n\tcreateTokenClass: createTokenClass\n});\n\n/**\n\tNot exactly parser, more like the second-stage scanner (although we can\n\ttheoretically hotswap the code here with a real parser in the future... but\n\tfor a little URL-finding utility abstract syntax trees may be a little\n\toverkill).\n\n\tURL format: http://en.wikipedia.org/wiki/URI_scheme\n\tEmail format: http://en.wikipedia.org/wiki/EmailAddress (links to RFC in\n\treference)\n\n\t@module linkify\n\t@submodule parser\n\t@main run\n*/\n\nconst makeState = arg => new State(arg);\n\n/**\n * Generate the parser multi token-based state machine\n * @param {{ groups: Collections<string> }} tokens\n */\nfunction init$1({\n groups\n}) {\n // Types of characters the URL can definitely end in\n const qsAccepting = groups.domain.concat([AMPERSAND, ASTERISK, AT, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, NUM, PERCENT, PIPE, PLUS, POUND, SLASH, SYM, TILDE, UNDERSCORE]);\n\n // Types of tokens that can follow a URL and be part of the query string\n // but cannot be the very last characters\n // Characters that cannot appear in the URL at all should be excluded\n const qsNonAccepting = [APOSTROPHE, COLON, COMMA, DOT, EXCLAMATION, PERCENT, QUERY, QUOTE, SEMI, OPENANGLEBRACKET, CLOSEANGLEBRACKET, OPENBRACE, CLOSEBRACE, CLOSEBRACKET, OPENBRACKET, OPENPAREN, CLOSEPAREN, FULLWIDTHLEFTPAREN, FULLWIDTHRIGHTPAREN, LEFTCORNERBRACKET, RIGHTCORNERBRACKET, LEFTWHITECORNERBRACKET, RIGHTWHITECORNERBRACKET, FULLWIDTHLESSTHAN, FULLWIDTHGREATERTHAN];\n\n // For addresses without the mailto prefix\n // Tokens allowed in the localpart of the email\n const localpartAccepting = [AMPERSAND, APOSTROPHE, ASTERISK, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, OPENBRACE, CLOSEBRACE, PERCENT, PIPE, PLUS, POUND, QUERY, SLASH, SYM, TILDE, UNDERSCORE];\n\n // The universal starting state.\n /**\n * @type State<Token>\n */\n const Start = makeState();\n const Localpart = tt(Start, TILDE); // Local part of the email address\n ta(Localpart, localpartAccepting, Localpart);\n ta(Localpart, groups.domain, Localpart);\n const Domain = makeState(),\n Scheme = makeState(),\n SlashScheme = makeState();\n ta(Start, groups.domain, Domain); // parsed string ends with a potential domain name (A)\n ta(Start, groups.scheme, Scheme); // e.g., 'mailto'\n ta(Start, groups.slashscheme, SlashScheme); // e.g., 'http'\n\n ta(Domain, localpartAccepting, Localpart);\n ta(Domain, groups.domain, Domain);\n const LocalpartAt = tt(Domain, AT); // Local part of the email address plus @\n\n tt(Localpart, AT, LocalpartAt); // close to an email address now\n\n // Local part of an email address can be e.g. 'http' or 'mailto'\n tt(Scheme, AT, LocalpartAt);\n tt(SlashScheme, AT, LocalpartAt);\n const LocalpartDot = tt(Localpart, DOT); // Local part of the email address plus '.' (localpart cannot end in .)\n ta(LocalpartDot, localpartAccepting, Localpart);\n ta(LocalpartDot, groups.domain, Localpart);\n const EmailDomain = makeState();\n ta(LocalpartAt, groups.domain, EmailDomain); // parsed string starts with local email info + @ with a potential domain name\n ta(EmailDomain, groups.domain, EmailDomain);\n const EmailDomainDot = tt(EmailDomain, DOT); // domain followed by DOT\n ta(EmailDomainDot, groups.domain, EmailDomain);\n const Email$1 = makeState(Email); // Possible email address (could have more tlds)\n ta(EmailDomainDot, groups.tld, Email$1);\n ta(EmailDomainDot, groups.utld, Email$1);\n tt(LocalpartAt, LOCALHOST, Email$1);\n\n // Hyphen can jump back to a domain name\n const EmailDomainHyphen = tt(EmailDomain, HYPHEN); // parsed string starts with local email info + @ with a potential domain name\n tt(EmailDomainHyphen, HYPHEN, EmailDomainHyphen);\n ta(EmailDomainHyphen, groups.domain, EmailDomain);\n ta(Email$1, groups.domain, EmailDomain);\n tt(Email$1, DOT, EmailDomainDot);\n tt(Email$1, HYPHEN, EmailDomainHyphen);\n\n // Final possible email states\n const EmailColon = tt(Email$1, COLON); // URL followed by colon (potential port number here)\n /*const EmailColonPort = */\n ta(EmailColon, groups.numeric, Email); // URL followed by colon and port number\n\n // Account for dots and hyphens. Hyphens are usually parts of domain names\n // (but not TLDs)\n const DomainHyphen = tt(Domain, HYPHEN); // domain followed by hyphen\n const DomainDot = tt(Domain, DOT); // domain followed by DOT\n tt(DomainHyphen, HYPHEN, DomainHyphen);\n ta(DomainHyphen, groups.domain, Domain);\n ta(DomainDot, localpartAccepting, Localpart);\n ta(DomainDot, groups.domain, Domain);\n const DomainDotTld = makeState(Url); // Simplest possible URL with no query string\n ta(DomainDot, groups.tld, DomainDotTld);\n ta(DomainDot, groups.utld, DomainDotTld);\n ta(DomainDotTld, groups.domain, Domain);\n ta(DomainDotTld, localpartAccepting, Localpart);\n tt(DomainDotTld, DOT, DomainDot);\n tt(DomainDotTld, HYPHEN, DomainHyphen);\n tt(DomainDotTld, AT, LocalpartAt);\n const DomainDotTldColon = tt(DomainDotTld, COLON); // URL followed by colon (potential port number here)\n const DomainDotTldColonPort = makeState(Url); // TLD followed by a port number\n ta(DomainDotTldColon, groups.numeric, DomainDotTldColonPort);\n\n // Long URL with optional port and maybe query string\n const Url$1 = makeState(Url);\n\n // URL with extra symbols at the end, followed by an opening bracket\n const UrlNonaccept = makeState(); // URL followed by some symbols (will not be part of the final URL)\n\n // Query strings\n ta(Url$1, qsAccepting, Url$1);\n ta(Url$1, qsNonAccepting, UrlNonaccept);\n ta(UrlNonaccept, qsAccepting, Url$1);\n ta(UrlNonaccept, qsNonAccepting, UrlNonaccept);\n\n // Become real URLs after `SLASH` or `COLON NUM SLASH`\n // Here works with or without scheme:// prefix\n tt(DomainDotTld, SLASH, Url$1);\n tt(DomainDotTldColonPort, SLASH, Url$1);\n\n // Note that domains that begin with schemes are treated slighly differently\n const SchemeColon = tt(Scheme, COLON); // e.g., 'mailto:'\n const SlashSchemeColon = tt(SlashScheme, COLON); // e.g., 'http:'\n const SlashSchemeColonSlash = tt(SlashSchemeColon, SLASH); // e.g., 'http:/'\n\n const UriPrefix = tt(SlashSchemeColonSlash, SLASH); // e.g., 'http://'\n\n // Scheme states can transition to domain states\n ta(Scheme, groups.domain, Domain);\n tt(Scheme, DOT, DomainDot);\n tt(Scheme, HYPHEN, DomainHyphen);\n ta(SlashScheme, groups.domain, Domain);\n tt(SlashScheme, DOT, DomainDot);\n tt(SlashScheme, HYPHEN, DomainHyphen);\n\n // Force URL with scheme prefix followed by anything sane\n ta(SchemeColon, groups.domain, Url$1);\n tt(SchemeColon, SLASH, Url$1);\n tt(SchemeColon, QUERY, Url$1);\n ta(UriPrefix, groups.domain, Url$1);\n ta(UriPrefix, qsAccepting, Url$1);\n tt(UriPrefix, SLASH, Url$1);\n const bracketPairs = [[OPENBRACE, CLOSEBRACE],\n // {}\n [OPENBRACKET, CLOSEBRACKET],\n // []\n [OPENPAREN, CLOSEPAREN],\n // ()\n [OPENANGLEBRACKET, CLOSEANGLEBRACKET],\n // <>\n [FULLWIDTHLEFTPAREN, FULLWIDTHRIGHTPAREN],\n // ()\n [LEFTCORNERBRACKET, RIGHTCORNERBRACKET],\n // 「」\n [LEFTWHITECORNERBRACKET, RIGHTWHITECORNERBRACKET],\n // 『』\n [FULLWIDTHLESSTHAN, FULLWIDTHGREATERTHAN] // <>\n ];\n for (let i = 0; i < bracketPairs.length; i++) {\n const [OPEN, CLOSE] = bracketPairs[i];\n const UrlOpen = tt(Url$1, OPEN); // URL followed by open bracket\n\n // Continue not accepting for open brackets\n tt(UrlNonaccept, OPEN, UrlOpen);\n\n // Closing bracket component. This character WILL be included in the URL\n tt(UrlOpen, CLOSE, Url$1);\n\n // URL that beings with an opening bracket, followed by a symbols.\n // Note that the final state can still be `UrlOpen` (if the URL has a\n // single opening bracket for some reason).\n const UrlOpenQ = makeState(Url);\n ta(UrlOpen, qsAccepting, UrlOpenQ);\n const UrlOpenSyms = makeState(); // UrlOpen followed by some symbols it cannot end it\n ta(UrlOpen, qsNonAccepting);\n\n // URL that begins with an opening bracket, followed by some symbols\n ta(UrlOpenQ, qsAccepting, UrlOpenQ);\n ta(UrlOpenQ, qsNonAccepting, UrlOpenSyms);\n ta(UrlOpenSyms, qsAccepting, UrlOpenQ);\n ta(UrlOpenSyms, qsNonAccepting, UrlOpenSyms);\n\n // Close brace/bracket to become regular URL\n tt(UrlOpenQ, CLOSE, Url$1);\n tt(UrlOpenSyms, CLOSE, Url$1);\n }\n tt(Start, LOCALHOST, DomainDotTld); // localhost is a valid URL state\n tt(Start, NL, Nl); // single new line\n\n return {\n start: Start,\n tokens: tk\n };\n}\n\n/**\n * Run the parser state machine on a list of scanned string-based tokens to\n * create a list of multi tokens, each of which represents a URL, email address,\n * plain text, etc.\n *\n * @param {State<MultiToken>} start parser start state\n * @param {string} input the original input used to generate the given tokens\n * @param {Token[]} tokens list of scanned tokens\n * @returns {MultiToken[]}\n */\nfunction run(start, input, tokens) {\n let len = tokens.length;\n let cursor = 0;\n let multis = [];\n let textTokens = [];\n while (cursor < len) {\n let state = start;\n let secondState = null;\n let nextState = null;\n let multiLength = 0;\n let latestAccepting = null;\n let sinceAccepts = -1;\n while (cursor < len && !(secondState = state.go(tokens[cursor].t))) {\n // Starting tokens with nowhere to jump to.\n // Consider these to be just plain text\n textTokens.push(tokens[cursor++]);\n }\n while (cursor < len && (nextState = secondState || state.go(tokens[cursor].t))) {\n // Get the next state\n secondState = null;\n state = nextState;\n\n // Keep track of the latest accepting state\n if (state.accepts()) {\n sinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts++;\n }\n cursor++;\n multiLength++;\n }\n if (sinceAccepts < 0) {\n // No accepting state was found, part of a regular text token add\n // the first text token to the text tokens array and try again from\n // the next\n cursor -= multiLength;\n if (cursor < len) {\n textTokens.push(tokens[cursor]);\n cursor++;\n }\n } else {\n // Accepting state!\n // First close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n textTokens = [];\n }\n\n // Roll back to the latest accepting state\n cursor -= sinceAccepts;\n multiLength -= sinceAccepts;\n\n // Create a new multitoken\n const Multi = latestAccepting.t;\n const subtokens = tokens.slice(cursor - multiLength, cursor);\n multis.push(initMultiToken(Multi, input, subtokens));\n }\n }\n\n // Finally close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n }\n return multis;\n}\n\n/**\n * Utility function for instantiating a new multitoken with all the relevant\n * fields during parsing.\n * @param {new (value: string, tokens: Token[]) => MultiToken} Multi class to instantiate\n * @param {string} input original input string\n * @param {Token[]} tokens consecutive tokens scanned from input string\n * @returns {MultiToken}\n */\nfunction initMultiToken(Multi, input, tokens) {\n const startIdx = tokens[0].s;\n const endIdx = tokens[tokens.length - 1].e;\n const value = input.slice(startIdx, endIdx);\n return new Multi(value, tokens);\n}\n\nconst warn = typeof console !== 'undefined' && console && console.warn || (() => {});\nconst warnAdvice = 'until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.';\n\n// Side-effect initialization state\nconst INIT = {\n scanner: null,\n parser: null,\n tokenQueue: [],\n pluginQueue: [],\n customSchemes: [],\n initialized: false\n};\n\n/**\n * @typedef {{\n * \tstart: State<string>,\n * \ttokens: { groups: Collections<string> } & typeof tk\n * }} ScannerInit\n */\n\n/**\n * @typedef {{\n * \tstart: State<MultiToken>,\n * \ttokens: typeof multi\n * }} ParserInit\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit }) => void} TokenPlugin\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit, parser: ParserInit }) => void} Plugin\n */\n\n/**\n * De-register all plugins and reset the internal state-machine. Used for\n * testing; not required in practice.\n * @private\n */\nfunction reset() {\n State.groups = {};\n INIT.scanner = null;\n INIT.parser = null;\n INIT.tokenQueue = [];\n INIT.pluginQueue = [];\n INIT.customSchemes = [];\n INIT.initialized = false;\n return INIT;\n}\n\n/**\n * Register a token plugin to allow the scanner to recognize additional token\n * types before the parser state machine is constructed from the results.\n * @param {string} name of plugin to register\n * @param {TokenPlugin} plugin function that accepts the scanner state machine\n * and available scanner tokens and collections and extends the state machine to\n * recognize additional tokens or groups.\n */\nfunction registerTokenPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(`linkifyjs: Invalid token plugin ${plugin} (expects function)`);\n }\n for (let i = 0; i < INIT.tokenQueue.length; i++) {\n if (name === INIT.tokenQueue[i][0]) {\n warn(`linkifyjs: token plugin \"${name}\" already registered - will be overwritten`);\n INIT.tokenQueue[i] = [name, plugin];\n return;\n }\n }\n INIT.tokenQueue.push([name, plugin]);\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register token plugin \"${name}\" ${warnAdvice}`);\n }\n}\n\n/**\n * Register a linkify plugin\n * @param {string} name of plugin to register\n * @param {Plugin} plugin function that accepts the parser state machine and\n * extends the parser to recognize additional link types\n */\nfunction registerPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(`linkifyjs: Invalid plugin ${plugin} (expects function)`);\n }\n for (let i = 0; i < INIT.pluginQueue.length; i++) {\n if (name === INIT.pluginQueue[i][0]) {\n warn(`linkifyjs: plugin \"${name}\" already registered - will be overwritten`);\n INIT.pluginQueue[i] = [name, plugin];\n return;\n }\n }\n INIT.pluginQueue.push([name, plugin]);\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register plugin \"${name}\" ${warnAdvice}`);\n }\n}\n\n/**\n * Detect URLs with the following additional protocol. Anything with format\n * \"protocol://...\" will be considered a link. If `optionalSlashSlash` is set to\n * `true`, anything with format \"protocol:...\" will be considered a link.\n * @param {string} scheme\n * @param {boolean} [optionalSlashSlash]\n */\nfunction registerCustomProtocol(scheme, optionalSlashSlash = false) {\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register custom scheme \"${scheme}\" ${warnAdvice}`);\n }\n if (!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(scheme)) {\n throw new Error(`linkifyjs: incorrect scheme format.\n1. Must only contain digits, lowercase ASCII letters or \"-\"\n2. Cannot start or end with \"-\"\n3. \"-\" cannot repeat`);\n }\n INIT.customSchemes.push([scheme, optionalSlashSlash]);\n}\n\n/**\n * Initialize the linkify state machine. Called automatically the first time\n * linkify is called on a string, but may be called manually as well.\n */\nfunction init() {\n // Initialize scanner state machine and plugins\n INIT.scanner = init$2(INIT.customSchemes);\n for (let i = 0; i < INIT.tokenQueue.length; i++) {\n INIT.tokenQueue[i][1]({\n scanner: INIT.scanner\n });\n }\n\n // Initialize parser state machine and plugins\n INIT.parser = init$1(INIT.scanner.tokens);\n for (let i = 0; i < INIT.pluginQueue.length; i++) {\n INIT.pluginQueue[i][1]({\n scanner: INIT.scanner,\n parser: INIT.parser\n });\n }\n INIT.initialized = true;\n return INIT;\n}\n\n/**\n * Parse a string into tokens that represent linkable and non-linkable sub-components\n * @param {string} str\n * @return {MultiToken[]} tokens\n */\nfunction tokenize(str) {\n if (!INIT.initialized) {\n init();\n }\n return run(INIT.parser.start, str, run$1(INIT.scanner.start, str));\n}\ntokenize.scan = run$1; // for testing\n\n/**\n * Find a list of linkable items in the given string.\n * @param {string} str string to find links in\n * @param {string | Opts} [type] either formatting options or specific type of\n * links to find, e.g., 'url' or 'email'\n * @param {Opts} [opts] formatting options for final output. Cannot be specified\n * if opts already provided in `type` argument\n */\nfunction find(str, type = null, opts = null) {\n if (type && typeof type === 'object') {\n if (opts) {\n throw Error(`linkifyjs: Invalid link type ${type}; must be a string`);\n }\n opts = type;\n type = null;\n }\n const options = new Options(opts);\n const tokens = tokenize(str);\n const filtered = [];\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n if (token.isLink && (!type || token.t === type) && options.check(token)) {\n filtered.push(token.toFormattedObject(options));\n }\n }\n return filtered;\n}\n\n/**\n * Is the given string valid linkable text of some sort. Note that this does not\n * trim the text for you.\n *\n * Optionally pass in a second `type` param, which is the type of link to test\n * for.\n *\n * For example,\n *\n * linkify.test(str, 'email');\n *\n * Returns `true` if str is a valid email.\n * @param {string} str string to test for links\n * @param {string} [type] optional specific link type to look for\n * @returns boolean true/false\n */\nfunction test(str, type = null) {\n const tokens = tokenize(str);\n return tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].t === type);\n}\n\nexport { MultiToken, Options, State, createTokenClass, find, init, multi, options, regexp, registerCustomProtocol, registerPlugin, registerTokenPlugin, reset, stringToArray, test, multi as text, tokenize };\n","import * as React from 'react';\nimport { Options, tokenize } from 'linkifyjs';\n\n/**\n * Given a string, converts to an array of valid React components\n * (which may include strings)\n * @param {string} str\n * @param {Options} opts\n * @param {{ [elementId: string]: number }} meta\n * @returns {React.ReactNodeArray}\n */\nfunction stringToElements(str, opts, meta) {\n const tokens = tokenize(str);\n const elements = [];\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n if (token.t === 'nl' && opts.get('nl2br')) {\n const key = `__linkify-el-${meta.elementId++}`;\n elements.push(React.createElement('br', {\n key\n }));\n } else if (!token.isLink || !opts.check(token)) {\n // Regular text\n elements.push(token.toString());\n } else {\n let rendered = opts.render(token);\n if (!('key' in rendered.props)) {\n // Ensure generated element has unique key\n const key = `__linkify-el-${meta.elementId++}`;\n const props = Object.assign({\n key\n }, rendered.props);\n rendered = React.cloneElement(rendered, props);\n }\n elements.push(rendered);\n }\n }\n return elements;\n}\n\n// Recursively linkify the contents of the given React Element instance\n/**\n * @template P\n * @template {string | React.JSXElementConstructor<P>} T\n * @param {React.ReactElement<P, T>} element\n * @param {Options} opts\n * @param {{ [elementId: string]: number }} meta\n * @returns {React.ReactElement<P, T>}\n */\nfunction linkifyReactElement(element, opts, meta) {\n if (React.Children.count(element.props.children) === 0) {\n // No need to clone if the element had no children\n return element;\n }\n const children = [];\n React.Children.forEach(element.props.children, child => {\n if (typeof child === 'string') {\n // ensure that we always generate unique element IDs for keys\n children.push.apply(children, stringToElements(child, opts, meta));\n } else if (React.isValidElement(child)) {\n if (typeof child.type === 'string' && opts.ignoreTags.indexOf(child.type.toUpperCase()) >= 0) {\n // Don't linkify this element\n children.push(child);\n } else {\n children.push(linkifyReactElement(child, opts, meta));\n }\n } else {\n // Unknown element type, just push\n children.push(child);\n }\n });\n\n // Set a default unique key, copy over remaining props\n const key = `__linkify-el-${meta.elementId++}`;\n const newProps = Object.assign({\n key\n }, element.props);\n return React.cloneElement(element, newProps, children);\n}\n\n/**\n * @template P\n * @template {string | React.JSXElementConstructor<P>} T\n * @param {P & { as?: T, tagName?: T, options?: import('linkifyjs').Opts, children?: React.ReactNode}} props\n * @returns {React.ReactElement<P, T>}\n */\nconst Linkify = props => {\n // Copy over all non-linkify-specific props\n let linkId = 0;\n const defaultLinkRender = ({\n tagName,\n attributes,\n content\n }) => {\n attributes.key = `__linkify-lnk-${linkId++}`;\n if (attributes.class) {\n attributes.className = attributes.class;\n delete attributes.class;\n }\n return React.createElement(tagName, attributes, content);\n };\n const newProps = {\n key: '__linkify-wrapper'\n };\n for (const prop in props) {\n if (prop !== 'options' && prop !== 'as' && prop !== 'tagName' && prop !== 'children') {\n newProps[prop] = props[prop];\n }\n }\n const opts = new Options(props.options, defaultLinkRender);\n const as = props.as || props.tagName || React.Fragment || 'span';\n const children = props.children;\n const element = React.createElement(as, newProps, children);\n return linkifyReactElement(element, opts, {\n elementId: 0\n });\n};\n\nexport { Linkify as default };\n","export const ChatTime = ({ time }: { time: string | number | Date }) => {\n const date = new Date(time);\n let hours = date.getHours();\n const pm = hours >= 12 ? 'PM' : 'AM';\n if (hours > 12) {\n hours -= 12;\n } else if (hours === 0) {\n hours = 12;\n }\n const minutes = String(date.getMinutes()).padStart(2, '0');\n return (\n <div className=\"chat-timestamp\">\n {hours}:{minutes} {pm}\n </div>\n );\n};\n","import type { IChatUser } from '@backend/types';\nimport { IconLink } from '@tabler/icons-react';\nimport Linkify from 'linkify-react';\nimport { Link, useRoute } from 'wouter';\nimport type { RouterOutputs } from '../../trpc';\nimport { ChatTime } from '../chat-time';\n\ntype ChatLogEntry = RouterOutputs['chat']['history'][number];\n\nexport const UserName = ({\n color,\n user,\n link,\n className,\n}: {\n color?: boolean;\n link?: boolean;\n user?: Partial<IChatUser>;\n className?: string;\n}) => {\n const props = {\n className,\n style: color ? { color: `#${user?.color}` } : undefined,\n 'data-tooltip': [\n user?.name && `Username: ${user?.name}`,\n user?.displayName && `Display Name: ${user?.displayName}`,\n ]\n .filter(Boolean)\n .join('\\n'),\n };\n\n if (link && user?.id)\n return (\n <Link href={`/players/${user.id}`} {...props}>\n {user?.displayName ?? user?.name}\n </Link>\n );\n\n return <span {...props}>{user?.displayName ?? user?.name}</span>;\n};\n\nexport const ChatEntry = ({ log }: { log: ChatLogEntry }) => {\n const [_match, params] = useRoute('/history/:time?');\n const isFocused = params?.time === log.created + '';\n\n return (\n <div className={`log-entry ${isFocused ? 'focused' : ''}`}>\n <div className=\"log-row\">\n <Link\n href={`/history/${isFocused ? '' : log.created}`}\n className=\"time-link\"\n >\n <IconLink />\n <ChatTime time={log.created} />\n </Link>\n {log.action === 'msg' && (\n <div className=\"chat-message message\">\n {log.user.web ? '[' : ''}\n {log.user.web ? (\n <UserName color user={log.user} />\n ) : (\n <UserName link color className=\"user\" user={log.user} />\n )}\n {log.user.web ? ']' : ''}:{' '}\n <Linkify as=\"span\">{log.message}</Linkify>\n </div>\n )}\n {log.action === 'leave' && (\n <div className=\"message join-message\">\n <UserName link className=\"user\" user={log.user} /> left the game.\n </div>\n )}\n {log.action === 'join' && (\n <div className=\"message join-message\">\n <UserName link className=\"user\" user={log.user} /> joined the game\n {log.user.isFirst ? ' for the first time' : ''}.\n </div>\n )}\n {log.action === 'server' && (\n <div className=\"message server-message\">{log.message}</div>\n )}\n </div>\n </div>\n );\n};\n","import { IconCaretDown } from '@tabler/icons-react';\nimport { useEffect, useRef, useState } from 'react';\n\nexport const Dropdown = ({\n disabled = false,\n options = [],\n value,\n onChange,\n}: {\n disabled?: boolean;\n options: (string | number)[];\n value: string | number;\n onChange: (value: string | number) => void;\n}) => {\n const [open, setOpen] = useState(false);\n const selfRef = useRef<HTMLDivElement>(null);\n\n // Hide the dropdown when clicking outside of it\n useEffect(() => {\n if (!open) return;\n function handler(e: MouseEvent) {\n if (e.target && !selfRef.current?.contains(e.target as Node)) {\n console.log('[debug] close');\n setOpen(false);\n }\n }\n document.addEventListener('click', handler);\n return () => document.removeEventListener('click', handler);\n }, [open]);\n\n return (\n <div className={`dropdown ${disabled ? 'disabled' : ''}`} ref={selfRef}>\n {open && (\n <div className=\"options\">\n {options.map(o => (\n <div\n className={`option ${value === o ? 'green' : ''}`}\n key={o}\n onClick={() => {\n setOpen(false);\n onChange(o);\n }}\n >\n {o}\n </div>\n ))}\n </div>\n )}\n <div\n className=\"selected\"\n onClick={() => {\n !disabled && setOpen(o => !o);\n }}\n >\n <div className=\"value\">{value}</div>\n <IconCaretDown />\n </div>\n </div>\n );\n};\n","import React, {\n useCallback,\n useLayoutEffect,\n useRef,\n type HTMLAttributes,\n} from 'react';\n\nexport const InfiniteScroll = ({\n loading,\n offset = 0,\n onTopScrollsToBottom = true,\n onBottom,\n onTop,\n children,\n className,\n ...props\n}: {\n loading: boolean;\n offset?: number;\n onTopScrollsToBottom?: boolean;\n onBottom: () => void;\n onTop: () => void;\n children: React.ReactNode;\n} & HTMLAttributes<HTMLDivElement>) => {\n const targetRef = useRef<HTMLDivElement>(null);\n const prevScrollTopRef = useRef(0);\n const lastDirectionRef = useRef('');\n const loadingRef = useRef(loading);\n // Snapshot of scrollHeight taken when loading starts, before DOM changes\n const scrollHeightBeforeLoad = useRef(0);\n // Skip the next scroll event (caused by programmatic scrollTop assignment)\n const skipNextScroll = useRef(false);\n\n // Capture scroll height and current scroll position when loading starts\n if (loading && !loadingRef.current && targetRef.current) {\n scrollHeightBeforeLoad.current = targetRef.current.scrollHeight;\n prevScrollTopRef.current = targetRef.current.scrollTop;\n }\n loadingRef.current = loading;\n\n // Runs synchronously after DOM update but before browser paint\n useLayoutEffect(() => {\n if (loading || !targetRef.current) return;\n const el = targetRef.current;\n const dir = lastDirectionRef.current;\n lastDirectionRef.current = '';\n\n if (dir === 'top') {\n if (onTopScrollsToBottom) {\n el.scrollTop = el.scrollHeight - el.offsetHeight - offset - 2;\n } else {\n // New content was prepended — adjust scrollTop by the height of added content.\n // Use live el.scrollTop (not the stale ref) so we account for any\n // position changes since loading started.\n const heightDelta = el.scrollHeight - scrollHeightBeforeLoad.current;\n if (heightDelta > 0) {\n el.scrollTop += heightDelta;\n }\n }\n // The scrollTop assignment above will fire a scroll event — ignore it\n prevScrollTopRef.current = el.scrollTop;\n skipNextScroll.current = true;\n }\n }, [loading, onTopScrollsToBottom, offset]);\n\n const handleElementScroll = useCallback(\n (e: React.UIEvent<HTMLDivElement>) => {\n if (skipNextScroll.current) {\n skipNextScroll.current = false;\n return;\n }\n if (loadingRef.current) return;\n\n const target = e.currentTarget;\n const scrollTop = target.scrollTop;\n const prevScrollTop = prevScrollTopRef.current;\n\n // Scrolling down and near bottom\n if (\n scrollTop > prevScrollTop &&\n scrollTop + target.offsetHeight >= target.scrollHeight - offset\n ) {\n lastDirectionRef.current = 'bottom';\n prevScrollTopRef.current = scrollTop;\n onBottom();\n return;\n }\n\n // Scrolling up (or already at top) and near top\n if (scrollTop <= offset && scrollTop <= prevScrollTop) {\n lastDirectionRef.current = 'top';\n prevScrollTopRef.current = scrollTop;\n onTop();\n return;\n }\n\n prevScrollTopRef.current = scrollTop;\n },\n [offset, onBottom, onTop],\n );\n\n return (\n <div\n ref={targetRef}\n onScroll={handleElementScroll}\n className={className}\n style={{ overflowAnchor: 'none' }}\n {...props}\n >\n {children}\n </div>\n );\n};\n","// src/subscribable.ts\nvar Subscribable = class {\n constructor() {\n this.listeners = /* @__PURE__ */ new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n subscribe(listener) {\n this.listeners.add(listener);\n this.onSubscribe();\n return () => {\n this.listeners.delete(listener);\n this.onUnsubscribe();\n };\n }\n hasListeners() {\n return this.listeners.size > 0;\n }\n onSubscribe() {\n }\n onUnsubscribe() {\n }\n};\nexport {\n Subscribable\n};\n//# sourceMappingURL=subscribable.js.map","// src/timeoutManager.ts\nvar defaultTimeoutProvider = {\n // We need the wrapper function syntax below instead of direct references to\n // global setTimeout etc.\n //\n // BAD: `setTimeout: setTimeout`\n // GOOD: `setTimeout: (cb, delay) => setTimeout(cb, delay)`\n //\n // If we use direct references here, then anything that wants to spy on or\n // replace the global setTimeout (like tests) won't work since we'll already\n // have a hard reference to the original implementation at the time when this\n // file was imported.\n setTimeout: (callback, delay) => setTimeout(callback, delay),\n clearTimeout: (timeoutId) => clearTimeout(timeoutId),\n setInterval: (callback, delay) => setInterval(callback, delay),\n clearInterval: (intervalId) => clearInterval(intervalId)\n};\nvar TimeoutManager = class {\n // We cannot have TimeoutManager<T> as we must instantiate it with a concrete\n // type at app boot; and if we leave that type, then any new timer provider\n // would need to support ReturnType<typeof setTimeout>, which is infeasible.\n //\n // We settle for type safety for the TimeoutProvider type, and accept that\n // this class is unsafe internally to allow for extension.\n #provider = defaultTimeoutProvider;\n #providerCalled = false;\n setTimeoutProvider(provider) {\n if (process.env.NODE_ENV !== \"production\") {\n if (this.#providerCalled && provider !== this.#provider) {\n console.error(\n `[timeoutManager]: Switching provider after calls to previous provider might result in unexpected behavior.`,\n { previous: this.#provider, provider }\n );\n }\n }\n this.#provider = provider;\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = false;\n }\n }\n setTimeout(callback, delay) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = true;\n }\n return this.#provider.setTimeout(callback, delay);\n }\n clearTimeout(timeoutId) {\n this.#provider.clearTimeout(timeoutId);\n }\n setInterval(callback, delay) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = true;\n }\n return this.#provider.setInterval(callback, delay);\n }\n clearInterval(intervalId) {\n this.#provider.clearInterval(intervalId);\n }\n};\nvar timeoutManager = new TimeoutManager();\nfunction systemSetTimeoutZero(callback) {\n setTimeout(callback, 0);\n}\nexport {\n TimeoutManager,\n defaultTimeoutProvider,\n systemSetTimeoutZero,\n timeoutManager\n};\n//# sourceMappingURL=timeoutManager.js.map","// src/utils.ts\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar isServer = typeof window === \"undefined\" || \"Deno\" in globalThis;\nfunction noop() {\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === \"function\" ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === \"number\" && value >= 0 && value !== Infinity;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction resolveStaleTime(staleTime, query) {\n return typeof staleTime === \"function\" ? staleTime(query) : staleTime;\n}\nfunction resolveEnabled(enabled, query) {\n return typeof enabled === \"function\" ? enabled(query) : enabled;\n}\nfunction matchQuery(filters, query) {\n const {\n type = \"all\",\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n if (queryKey) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n if (type !== \"all\") {\n const isActive = query.isActive();\n if (type === \"active\" && !isActive) {\n return false;\n }\n if (type === \"inactive\" && isActive) {\n return false;\n }\n }\n if (typeof stale === \"boolean\" && query.isStale() !== stale) {\n return false;\n }\n if (fetchStatus && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n if (predicate && !predicate(query)) {\n return false;\n }\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const { exact, status, predicate, mutationKey } = filters;\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n if (status && mutation.state.status !== status) {\n return false;\n }\n if (predicate && !predicate(mutation)) {\n return false;\n }\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = options?.queryKeyHashFn || hashKey;\n return hashFn(queryKey);\n}\nfunction hashKey(queryKey) {\n return JSON.stringify(\n queryKey,\n (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val\n );\n}\nfunction partialMatchKey(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (a && b && typeof a === \"object\" && typeof b === \"object\") {\n return Object.keys(b).every((key) => partialMatchKey(a[key], b[key]));\n }\n return false;\n}\nvar hasOwn = Object.prototype.hasOwnProperty;\nfunction replaceEqualDeep(a, b, depth = 0) {\n if (a === b) {\n return a;\n }\n if (depth > 500) return b;\n const array = isPlainArray(a) && isPlainArray(b);\n if (!array && !(isPlainObject(a) && isPlainObject(b))) return b;\n const aItems = array ? a : Object.keys(a);\n const aSize = aItems.length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? new Array(bSize) : {};\n let equalItems = 0;\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n const aItem = a[key];\n const bItem = b[key];\n if (aItem === bItem) {\n copy[key] = aItem;\n if (array ? i < aSize : hasOwn.call(a, key)) equalItems++;\n continue;\n }\n if (aItem === null || bItem === null || typeof aItem !== \"object\" || typeof bItem !== \"object\") {\n copy[key] = bItem;\n continue;\n }\n const v = replaceEqualDeep(aItem, bItem, depth + 1);\n copy[key] = v;\n if (v === aItem) equalItems++;\n }\n return aSize === bSize && equalItems === aSize ? a : copy;\n}\nfunction shallowEqualObjects(a, b) {\n if (!b || Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (ctor === void 0) {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n if (Object.getPrototypeOf(o) !== Object.prototype) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction sleep(timeout) {\n return new Promise((resolve) => {\n timeoutManager.setTimeout(resolve, timeout);\n });\n}\nfunction replaceData(prevData, data, options) {\n if (typeof options.structuralSharing === \"function\") {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n if (process.env.NODE_ENV !== \"production\") {\n try {\n return replaceEqualDeep(prevData, data);\n } catch (error) {\n console.error(\n `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`\n );\n throw error;\n }\n }\n return replaceEqualDeep(prevData, data);\n }\n return data;\n}\nfunction keepPreviousData(previousData) {\n return previousData;\n}\nfunction addToEnd(items, item, max = 0) {\n const newItems = [...items, item];\n return max && newItems.length > max ? newItems.slice(1) : newItems;\n}\nfunction addToStart(items, item, max = 0) {\n const newItems = [item, ...items];\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n}\nvar skipToken = /* @__PURE__ */ Symbol();\nfunction ensureQueryFn(options, fetchOptions) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\n `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`\n );\n }\n }\n if (!options.queryFn && fetchOptions?.initialPromise) {\n return () => fetchOptions.initialPromise;\n }\n if (!options.queryFn || options.queryFn === skipToken) {\n return () => Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`));\n }\n return options.queryFn;\n}\nfunction shouldThrowError(throwOnError, params) {\n if (typeof throwOnError === \"function\") {\n return throwOnError(...params);\n }\n return !!throwOnError;\n}\nfunction addConsumeAwareSignal(object, getSignal, onCancelled) {\n let consumed = false;\n let signal;\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n signal ??= getSignal();\n if (consumed) {\n return signal;\n }\n consumed = true;\n if (signal.aborted) {\n onCancelled();\n } else {\n signal.addEventListener(\"abort\", onCancelled, { once: true });\n }\n return signal;\n }\n });\n return object;\n}\nexport {\n addConsumeAwareSignal,\n addToEnd,\n addToStart,\n ensureQueryFn,\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n isPlainArray,\n isPlainObject,\n isServer,\n isValidTimeout,\n keepPreviousData,\n matchMutation,\n matchQuery,\n noop,\n partialMatchKey,\n replaceData,\n replaceEqualDeep,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n shouldThrowError,\n skipToken,\n sleep,\n timeUntilStale\n};\n//# sourceMappingURL=utils.js.map","// src/focusManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar FocusManager = class extends Subscribable {\n #focused;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onFocus) => {\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus();\n window.addEventListener(\"visibilitychange\", listener, false);\n return () => {\n window.removeEventListener(\"visibilitychange\", listener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup((focused) => {\n if (typeof focused === \"boolean\") {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n setFocused(focused) {\n const changed = this.#focused !== focused;\n if (changed) {\n this.#focused = focused;\n this.onFocus();\n }\n }\n onFocus() {\n const isFocused = this.isFocused();\n this.listeners.forEach((listener) => {\n listener(isFocused);\n });\n }\n isFocused() {\n if (typeof this.#focused === \"boolean\") {\n return this.#focused;\n }\n return globalThis.document?.visibilityState !== \"hidden\";\n }\n};\nvar focusManager = new FocusManager();\nexport {\n FocusManager,\n focusManager\n};\n//# sourceMappingURL=focusManager.js.map","// src/thenable.ts\nimport { noop } from \"./utils.js\";\nfunction pendingThenable() {\n let resolve;\n let reject;\n const thenable = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n thenable.status = \"pending\";\n thenable.catch(() => {\n });\n function finalize(data) {\n Object.assign(thenable, data);\n delete thenable.resolve;\n delete thenable.reject;\n }\n thenable.resolve = (value) => {\n finalize({\n status: \"fulfilled\",\n value\n });\n resolve(value);\n };\n thenable.reject = (reason) => {\n finalize({\n status: \"rejected\",\n reason\n });\n reject(reason);\n };\n return thenable;\n}\nfunction tryResolveSync(promise) {\n let data;\n promise.then((result) => {\n data = result;\n return result;\n }, noop)?.catch(noop);\n if (data !== void 0) {\n return { data };\n }\n return void 0;\n}\nexport {\n pendingThenable,\n tryResolveSync\n};\n//# sourceMappingURL=thenable.js.map","// src/notifyManager.ts\nimport { systemSetTimeoutZero } from \"./timeoutManager.js\";\nvar defaultScheduler = systemSetTimeoutZero;\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n let notifyFn = (callback) => {\n callback();\n };\n let batchNotifyFn = (callback) => {\n callback();\n };\n let scheduleFn = defaultScheduler;\n const schedule = (callback) => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleFn(() => {\n notifyFn(callback);\n });\n }\n };\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n if (originalQueue.length) {\n scheduleFn(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n return {\n batch: (callback) => {\n let result;\n transactions++;\n try {\n result = callback();\n } finally {\n transactions--;\n if (!transactions) {\n flush();\n }\n }\n return result;\n },\n /**\n * All calls to the wrapped function will be batched.\n */\n batchCalls: (callback) => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n },\n schedule,\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n setNotifyFunction: (fn) => {\n notifyFn = fn;\n },\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n setBatchNotifyFunction: (fn) => {\n batchNotifyFn = fn;\n },\n setScheduler: (fn) => {\n scheduleFn = fn;\n }\n };\n}\nvar notifyManager = createNotifyManager();\nexport {\n createNotifyManager,\n defaultScheduler,\n notifyManager\n};\n//# sourceMappingURL=notifyManager.js.map","// src/onlineManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar OnlineManager = class extends Subscribable {\n #online = true;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onOnline) => {\n if (!isServer && window.addEventListener) {\n const onlineListener = () => onOnline(true);\n const offlineListener = () => onOnline(false);\n window.addEventListener(\"online\", onlineListener, false);\n window.addEventListener(\"offline\", offlineListener, false);\n return () => {\n window.removeEventListener(\"online\", onlineListener);\n window.removeEventListener(\"offline\", offlineListener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup(this.setOnline.bind(this));\n }\n setOnline(online) {\n const changed = this.#online !== online;\n if (changed) {\n this.#online = online;\n this.listeners.forEach((listener) => {\n listener(online);\n });\n }\n }\n isOnline() {\n return this.#online;\n }\n};\nvar onlineManager = new OnlineManager();\nexport {\n OnlineManager,\n onlineManager\n};\n//# sourceMappingURL=onlineManager.js.map","// src/retryer.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport { isServer, sleep } from \"./utils.js\";\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1e3 * 2 ** failureCount, 3e4);\n}\nfunction canFetch(networkMode) {\n return (networkMode ?? \"online\") === \"online\" ? onlineManager.isOnline() : true;\n}\nvar CancelledError = class extends Error {\n constructor(options) {\n super(\"CancelledError\");\n this.revert = options?.revert;\n this.silent = options?.silent;\n }\n};\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let continueFn;\n const thenable = pendingThenable();\n const isResolved = () => thenable.status !== \"pending\";\n const cancel = (cancelOptions) => {\n if (!isResolved()) {\n const error = new CancelledError(cancelOptions);\n reject(error);\n config.onCancel?.(error);\n }\n };\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n const canContinue = () => focusManager.isFocused() && (config.networkMode === \"always\" || onlineManager.isOnline()) && config.canRun();\n const canStart = () => canFetch(config.networkMode) && config.canRun();\n const resolve = (value) => {\n if (!isResolved()) {\n continueFn?.();\n thenable.resolve(value);\n }\n };\n const reject = (value) => {\n if (!isResolved()) {\n continueFn?.();\n thenable.reject(value);\n }\n };\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n if (isResolved() || canContinue()) {\n continueResolve(value);\n }\n };\n config.onPause?.();\n }).then(() => {\n continueFn = void 0;\n if (!isResolved()) {\n config.onContinue?.();\n }\n });\n };\n const run = () => {\n if (isResolved()) {\n return;\n }\n let promiseOrValue;\n const initialPromise = failureCount === 0 ? config.initialPromise : void 0;\n try {\n promiseOrValue = initialPromise ?? config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n Promise.resolve(promiseOrValue).then(resolve).catch((error) => {\n if (isResolved()) {\n return;\n }\n const retry = config.retry ?? (isServer ? 0 : 3);\n const retryDelay = config.retryDelay ?? defaultRetryDelay;\n const delay = typeof retryDelay === \"function\" ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === \"number\" && failureCount < retry || typeof retry === \"function\" && retry(failureCount, error);\n if (isRetryCancelled || !shouldRetry) {\n reject(error);\n return;\n }\n failureCount++;\n config.onFail?.(failureCount, error);\n sleep(delay).then(() => {\n return canContinue() ? void 0 : pause();\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n };\n return {\n promise: thenable,\n status: () => thenable.status,\n cancel,\n continue: () => {\n continueFn?.();\n return thenable;\n },\n cancelRetry,\n continueRetry,\n canStart,\n start: () => {\n if (canStart()) {\n run();\n } else {\n pause().then(run);\n }\n return thenable;\n }\n };\n}\nexport {\n CancelledError,\n canFetch,\n createRetryer,\n isCancelledError\n};\n//# sourceMappingURL=retryer.js.map","// src/removable.ts\nimport { timeoutManager } from \"./timeoutManager.js\";\nimport { isServer, isValidTimeout } from \"./utils.js\";\nvar Removable = class {\n #gcTimeout;\n destroy() {\n this.clearGcTimeout();\n }\n scheduleGc() {\n this.clearGcTimeout();\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = timeoutManager.setTimeout(() => {\n this.optionalRemove();\n }, this.gcTime);\n }\n }\n updateGcTime(newGcTime) {\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (isServer ? Infinity : 5 * 60 * 1e3)\n );\n }\n clearGcTimeout() {\n if (this.#gcTimeout) {\n timeoutManager.clearTimeout(this.#gcTimeout);\n this.#gcTimeout = void 0;\n }\n }\n};\nexport {\n Removable\n};\n//# sourceMappingURL=removable.js.map","// src/query.ts\nimport {\n ensureQueryFn,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n skipToken,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { CancelledError, canFetch, createRetryer } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nvar Query = class extends Removable {\n #initialState;\n #revertState;\n #cache;\n #client;\n #retryer;\n #defaultOptions;\n #abortSignalConsumed;\n constructor(config) {\n super();\n this.#abortSignalConsumed = false;\n this.#defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.#client = config.client;\n this.#cache = this.#client.getQueryCache();\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.#initialState = getDefaultState(this.options);\n this.state = config.state ?? this.#initialState;\n this.scheduleGc();\n }\n get meta() {\n return this.options.meta;\n }\n get promise() {\n return this.#retryer?.promise;\n }\n setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n this.updateGcTime(this.options.gcTime);\n if (this.state && this.state.data === void 0) {\n const defaultState = getDefaultState(this.options);\n if (defaultState.data !== void 0) {\n this.setState(\n successState(defaultState.data, defaultState.dataUpdatedAt)\n );\n this.#initialState = defaultState;\n }\n }\n }\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === \"idle\") {\n this.#cache.remove(this);\n }\n }\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options);\n this.#dispatch({\n data,\n type: \"success\",\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual\n });\n return data;\n }\n setState(state, setStateOptions) {\n this.#dispatch({ type: \"setState\", state, setStateOptions });\n }\n cancel(options) {\n const promise = this.#retryer?.promise;\n this.#retryer?.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n destroy() {\n super.destroy();\n this.cancel({ silent: true });\n }\n reset() {\n this.destroy();\n this.setState(this.#initialState);\n }\n isActive() {\n return this.observers.some(\n (observer) => resolveEnabled(observer.options.enabled, this) !== false\n );\n }\n isDisabled() {\n if (this.getObserversCount() > 0) {\n return !this.isActive();\n }\n return this.options.queryFn === skipToken || this.state.dataUpdateCount + this.state.errorUpdateCount === 0;\n }\n isStatic() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => resolveStaleTime(observer.options.staleTime, this) === \"static\"\n );\n }\n return false;\n }\n isStale() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => observer.getCurrentResult().isStale\n );\n }\n return this.state.data === void 0 || this.state.isInvalidated;\n }\n isStaleByTime(staleTime = 0) {\n if (this.state.data === void 0) {\n return true;\n }\n if (staleTime === \"static\") {\n return false;\n }\n if (this.state.isInvalidated) {\n return true;\n }\n return !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n onFocus() {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n onOnline() {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer);\n this.clearGcTimeout();\n this.#cache.notify({ type: \"observerAdded\", query: this, observer });\n }\n }\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) => x !== observer);\n if (!this.observers.length) {\n if (this.#retryer) {\n if (this.#abortSignalConsumed) {\n this.#retryer.cancel({ revert: true });\n } else {\n this.#retryer.cancelRetry();\n }\n }\n this.scheduleGc();\n }\n this.#cache.notify({ type: \"observerRemoved\", query: this, observer });\n }\n }\n getObserversCount() {\n return this.observers.length;\n }\n invalidate() {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: \"invalidate\" });\n }\n }\n async fetch(options, fetchOptions) {\n if (this.state.fetchStatus !== \"idle\" && // If the promise in the retryer is already rejected, we have to definitely\n // re-start the fetch; there is a chance that the query is still in a\n // pending state when that happens\n this.#retryer?.status() !== \"rejected\") {\n if (this.state.data !== void 0 && fetchOptions?.cancelRefetch) {\n this.cancel({ silent: true });\n } else if (this.#retryer) {\n this.#retryer.continueRetry();\n return this.#retryer.promise;\n }\n }\n if (options) {\n this.setOptions(options);\n }\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn);\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`\n );\n }\n }\n const abortController = new AbortController();\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true;\n return abortController.signal;\n }\n });\n };\n const fetchFn = () => {\n const queryFn = ensureQueryFn(this.options, fetchOptions);\n const createQueryFnContext = () => {\n const queryFnContext2 = {\n client: this.#client,\n queryKey: this.queryKey,\n meta: this.meta\n };\n addSignalProperty(queryFnContext2);\n return queryFnContext2;\n };\n const queryFnContext = createQueryFnContext();\n this.#abortSignalConsumed = false;\n if (this.options.persister) {\n return this.options.persister(\n queryFn,\n queryFnContext,\n this\n );\n }\n return queryFn(queryFnContext);\n };\n const createFetchContext = () => {\n const context2 = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n client: this.#client,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context2);\n return context2;\n };\n const context = createFetchContext();\n this.options.behavior?.onFetch(context, this);\n this.#revertState = this.state;\n if (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) {\n this.#dispatch({ type: \"fetch\", meta: context.fetchOptions?.meta });\n }\n this.#retryer = createRetryer({\n initialPromise: fetchOptions?.initialPromise,\n fn: context.fetchFn,\n onCancel: (error) => {\n if (error instanceof CancelledError && error.revert) {\n this.setState({\n ...this.#revertState,\n fetchStatus: \"idle\"\n });\n }\n abortController.abort();\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n canRun: () => true\n });\n try {\n const data = await this.#retryer.start();\n if (data === void 0) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`\n );\n }\n throw new Error(`${this.queryHash} data is undefined`);\n }\n this.setData(data);\n this.#cache.config.onSuccess?.(data, this);\n this.#cache.config.onSettled?.(\n data,\n this.state.error,\n this\n );\n return data;\n } catch (error) {\n if (error instanceof CancelledError) {\n if (error.silent) {\n return this.#retryer.promise;\n } else if (error.revert) {\n if (this.state.data === void 0) {\n throw error;\n }\n return this.state.data;\n }\n }\n this.#dispatch({\n type: \"error\",\n error\n });\n this.#cache.config.onError?.(\n error,\n this\n );\n this.#cache.config.onSettled?.(\n this.state.data,\n error,\n this\n );\n throw error;\n } finally {\n this.scheduleGc();\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n fetchStatus: \"paused\"\n };\n case \"continue\":\n return {\n ...state,\n fetchStatus: \"fetching\"\n };\n case \"fetch\":\n return {\n ...state,\n ...fetchState(state.data, this.options),\n fetchMeta: action.meta ?? null\n };\n case \"success\":\n const newState = {\n ...state,\n ...successState(action.data, action.dataUpdatedAt),\n dataUpdateCount: state.dataUpdateCount + 1,\n ...!action.manual && {\n fetchStatus: \"idle\",\n fetchFailureCount: 0,\n fetchFailureReason: null\n }\n };\n this.#revertState = action.manual ? newState : void 0;\n return newState;\n case \"error\":\n const error = action.error;\n return {\n ...state,\n error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: \"idle\",\n status: \"error\",\n // flag existing data as invalidated if we get a background error\n // note that \"no data\" always means stale so we can set unconditionally here\n isInvalidated: true\n };\n case \"invalidate\":\n return {\n ...state,\n isInvalidated: true\n };\n case \"setState\":\n return {\n ...state,\n ...action.state\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate();\n });\n this.#cache.notify({ query: this, type: \"updated\", action });\n });\n }\n};\nfunction fetchState(data, options) {\n return {\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n ...data === void 0 && {\n error: null,\n status: \"pending\"\n }\n };\n}\nfunction successState(data, dataUpdatedAt) {\n return {\n data,\n dataUpdatedAt: dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: \"success\"\n };\n}\nfunction getDefaultState(options) {\n const data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n const hasData = data !== void 0;\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? \"success\" : \"pending\",\n fetchStatus: \"idle\"\n };\n}\nexport {\n Query,\n fetchState\n};\n//# sourceMappingURL=query.js.map","// src/queryObserver.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { fetchState } from \"./query.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n timeUntilStale\n} from \"./utils.js\";\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar QueryObserver = class extends Subscribable {\n constructor(client, options) {\n super();\n this.options = options;\n this.#client = client;\n this.#selectError = null;\n this.#currentThenable = pendingThenable();\n this.bindMethods();\n this.setOptions(options);\n }\n #client;\n #currentQuery = void 0;\n #currentQueryInitialState = void 0;\n #currentResult = void 0;\n #currentResultState;\n #currentResultOptions;\n #currentThenable;\n #selectError;\n #selectFn;\n #selectResult;\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData;\n #staleTimeoutId;\n #refetchIntervalId;\n #currentRefetchInterval;\n #trackedProps = /* @__PURE__ */ new Set();\n bindMethods() {\n this.refetch = this.refetch.bind(this);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this);\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch();\n } else {\n this.updateResult();\n }\n this.#updateTimers();\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n shouldFetchOnReconnect() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect\n );\n }\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus\n );\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#clearStaleTimeout();\n this.#clearRefetchInterval();\n this.#currentQuery.removeObserver(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n const prevQuery = this.#currentQuery;\n this.options = this.#client.defaultQueryOptions(options);\n if (this.options.enabled !== void 0 && typeof this.options.enabled !== \"boolean\" && typeof this.options.enabled !== \"function\" && typeof resolveEnabled(this.options.enabled, this.#currentQuery) !== \"boolean\") {\n throw new Error(\n \"Expected enabled to be a boolean or a callback that returns a boolean\"\n );\n }\n this.#updateQuery();\n this.#currentQuery.setOptions(this.options);\n if (prevOptions._defaulted && !shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getQueryCache().notify({\n type: \"observerOptionsUpdated\",\n query: this.#currentQuery,\n observer: this\n });\n }\n const mounted = this.hasListeners();\n if (mounted && shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions\n )) {\n this.#executeFetch();\n }\n this.updateResult();\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || resolveStaleTime(this.options.staleTime, this.#currentQuery) !== resolveStaleTime(prevOptions.staleTime, this.#currentQuery))) {\n this.#updateStaleTimeout();\n }\n const nextRefetchInterval = this.#computeRefetchInterval();\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || nextRefetchInterval !== this.#currentRefetchInterval)) {\n this.#updateRefetchInterval(nextRefetchInterval);\n }\n }\n getOptimisticResult(options) {\n const query = this.#client.getQueryCache().build(this.#client, options);\n const result = this.createResult(query, options);\n if (shouldAssignObserverCurrentProperties(this, result)) {\n this.#currentResult = result;\n this.#currentResultOptions = this.options;\n this.#currentResultState = this.#currentQuery.state;\n }\n return result;\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n trackResult(result, onPropTracked) {\n return new Proxy(result, {\n get: (target, key) => {\n this.trackProp(key);\n onPropTracked?.(key);\n if (key === \"promise\") {\n this.trackProp(\"data\");\n if (!this.options.experimental_prefetchInRender && this.#currentThenable.status === \"pending\") {\n this.#currentThenable.reject(\n new Error(\n \"experimental_prefetchInRender feature flag is not enabled\"\n )\n );\n }\n }\n return Reflect.get(target, key);\n }\n });\n }\n trackProp(key) {\n this.#trackedProps.add(key);\n }\n getCurrentQuery() {\n return this.#currentQuery;\n }\n refetch({ ...options } = {}) {\n return this.fetch({\n ...options\n });\n }\n fetchOptimistic(options) {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const query = this.#client.getQueryCache().build(this.#client, defaultedOptions);\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n fetch(fetchOptions) {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true\n }).then(() => {\n this.updateResult();\n return this.#currentResult;\n });\n }\n #executeFetch(fetchOptions) {\n this.#updateQuery();\n let promise = this.#currentQuery.fetch(\n this.options,\n fetchOptions\n );\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop);\n }\n return promise;\n }\n #updateStaleTimeout() {\n this.#clearStaleTimeout();\n const staleTime = resolveStaleTime(\n this.options.staleTime,\n this.#currentQuery\n );\n if (isServer || this.#currentResult.isStale || !isValidTimeout(staleTime)) {\n return;\n }\n const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime);\n const timeout = time + 1;\n this.#staleTimeoutId = timeoutManager.setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n #computeRefetchInterval() {\n return (typeof this.options.refetchInterval === \"function\" ? this.options.refetchInterval(this.#currentQuery) : this.options.refetchInterval) ?? false;\n }\n #updateRefetchInterval(nextInterval) {\n this.#clearRefetchInterval();\n this.#currentRefetchInterval = nextInterval;\n if (isServer || resolveEnabled(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {\n return;\n }\n this.#refetchIntervalId = timeoutManager.setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.#executeFetch();\n }\n }, this.#currentRefetchInterval);\n }\n #updateTimers() {\n this.#updateStaleTimeout();\n this.#updateRefetchInterval(this.#computeRefetchInterval());\n }\n #clearStaleTimeout() {\n if (this.#staleTimeoutId) {\n timeoutManager.clearTimeout(this.#staleTimeoutId);\n this.#staleTimeoutId = void 0;\n }\n }\n #clearRefetchInterval() {\n if (this.#refetchIntervalId) {\n timeoutManager.clearInterval(this.#refetchIntervalId);\n this.#refetchIntervalId = void 0;\n }\n }\n createResult(query, options) {\n const prevQuery = this.#currentQuery;\n const prevOptions = this.options;\n const prevResult = this.#currentResult;\n const prevResultState = this.#currentResultState;\n const prevResultOptions = this.#currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;\n const { state } = query;\n let newState = { ...state };\n let isPlaceholderData = false;\n let data;\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n if (fetchOnMount || fetchOptionally) {\n newState = {\n ...newState,\n ...fetchState(state.data, query.options)\n };\n }\n if (options._optimisticResults === \"isRestoring\") {\n newState.fetchStatus = \"idle\";\n }\n }\n let { error, errorUpdatedAt, status } = newState;\n data = newState.data;\n let skipSelect = false;\n if (options.placeholderData !== void 0 && data === void 0 && status === \"pending\") {\n let placeholderData;\n if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {\n placeholderData = prevResult.data;\n skipSelect = true;\n } else {\n placeholderData = typeof options.placeholderData === \"function\" ? options.placeholderData(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData\n ) : options.placeholderData;\n }\n if (placeholderData !== void 0) {\n status = \"success\";\n data = replaceData(\n prevResult?.data,\n placeholderData,\n options\n );\n isPlaceholderData = true;\n }\n }\n if (options.select && data !== void 0 && !skipSelect) {\n if (prevResult && data === prevResultState?.data && options.select === this.#selectFn) {\n data = this.#selectResult;\n } else {\n try {\n this.#selectFn = options.select;\n data = options.select(data);\n data = replaceData(prevResult?.data, data, options);\n this.#selectResult = data;\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n }\n if (this.#selectError) {\n error = this.#selectError;\n data = this.#selectResult;\n errorUpdatedAt = Date.now();\n status = \"error\";\n }\n const isFetching = newState.fetchStatus === \"fetching\";\n const isPending = status === \"pending\";\n const isError = status === \"error\";\n const isLoading = isPending && isFetching;\n const hasData = data !== void 0;\n const result = {\n status,\n fetchStatus: newState.fetchStatus,\n isPending,\n isSuccess: status === \"success\",\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: newState.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: newState.fetchFailureCount,\n failureReason: newState.fetchFailureReason,\n errorUpdateCount: newState.errorUpdateCount,\n isFetched: newState.dataUpdateCount > 0 || newState.errorUpdateCount > 0,\n isFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && !hasData,\n isPaused: newState.fetchStatus === \"paused\",\n isPlaceholderData,\n isRefetchError: isError && hasData,\n isStale: isStale(query, options),\n refetch: this.refetch,\n promise: this.#currentThenable,\n isEnabled: resolveEnabled(options.enabled, query) !== false\n };\n const nextResult = result;\n if (this.options.experimental_prefetchInRender) {\n const hasResultData = nextResult.data !== void 0;\n const isErrorWithoutData = nextResult.status === \"error\" && !hasResultData;\n const finalizeThenableIfPossible = (thenable) => {\n if (isErrorWithoutData) {\n thenable.reject(nextResult.error);\n } else if (hasResultData) {\n thenable.resolve(nextResult.data);\n }\n };\n const recreateThenable = () => {\n const pending = this.#currentThenable = nextResult.promise = pendingThenable();\n finalizeThenableIfPossible(pending);\n };\n const prevThenable = this.#currentThenable;\n switch (prevThenable.status) {\n case \"pending\":\n if (query.queryHash === prevQuery.queryHash) {\n finalizeThenableIfPossible(prevThenable);\n }\n break;\n case \"fulfilled\":\n if (isErrorWithoutData || nextResult.data !== prevThenable.value) {\n recreateThenable();\n }\n break;\n case \"rejected\":\n if (!isErrorWithoutData || nextResult.error !== prevThenable.reason) {\n recreateThenable();\n }\n break;\n }\n }\n return nextResult;\n }\n updateResult() {\n const prevResult = this.#currentResult;\n const nextResult = this.createResult(this.#currentQuery, this.options);\n this.#currentResultState = this.#currentQuery.state;\n this.#currentResultOptions = this.options;\n if (this.#currentResultState.data !== void 0) {\n this.#lastQueryWithDefinedData = this.#currentQuery;\n }\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n this.#currentResult = nextResult;\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n const { notifyOnChangeProps } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === \"function\" ? notifyOnChangeProps() : notifyOnChangeProps;\n if (notifyOnChangePropsValue === \"all\" || !notifyOnChangePropsValue && !this.#trackedProps.size) {\n return true;\n }\n const includedProps = new Set(\n notifyOnChangePropsValue ?? this.#trackedProps\n );\n if (this.options.throwOnError) {\n includedProps.add(\"error\");\n }\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key;\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n this.#notify({ listeners: shouldNotifyListeners() });\n }\n #updateQuery() {\n const query = this.#client.getQueryCache().build(this.#client, this.options);\n if (query === this.#currentQuery) {\n return;\n }\n const prevQuery = this.#currentQuery;\n this.#currentQuery = query;\n this.#currentQueryInitialState = query.state;\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this);\n query.addObserver(this);\n }\n }\n onQueryUpdate() {\n this.updateResult();\n if (this.hasListeners()) {\n this.#updateTimers();\n }\n }\n #notify(notifyOptions) {\n notifyManager.batch(() => {\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n }\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: \"observerResultsUpdated\"\n });\n });\n }\n};\nfunction shouldLoadOnMount(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.state.data === void 0 && !(query.state.status === \"error\" && options.retryOnMount === false);\n}\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.data !== void 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\nfunction shouldFetchOn(query, options, field) {\n if (resolveEnabled(options.enabled, query) !== false && resolveStaleTime(options.staleTime, query) !== \"static\") {\n const value = typeof field === \"function\" ? field(query) : field;\n return value === \"always\" || value !== false && isStale(query, options);\n }\n return false;\n}\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return (query !== prevQuery || resolveEnabled(prevOptions.enabled, query) === false) && (!options.suspense || query.state.status !== \"error\") && isStale(query, options);\n}\nfunction isStale(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.isStaleByTime(resolveStaleTime(options.staleTime, query));\n}\nfunction shouldAssignObserverCurrentProperties(observer, optimisticResult) {\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true;\n }\n return false;\n}\nexport {\n QueryObserver\n};\n//# sourceMappingURL=queryObserver.js.map","// src/infiniteQueryBehavior.ts\nimport {\n addConsumeAwareSignal,\n addToEnd,\n addToStart,\n ensureQueryFn\n} from \"./utils.js\";\nfunction infiniteQueryBehavior(pages) {\n return {\n onFetch: (context, query) => {\n const options = context.options;\n const direction = context.fetchOptions?.meta?.fetchMore?.direction;\n const oldPages = context.state.data?.pages || [];\n const oldPageParams = context.state.data?.pageParams || [];\n let result = { pages: [], pageParams: [] };\n let currentPage = 0;\n const fetchFn = async () => {\n let cancelled = false;\n const addSignalProperty = (object) => {\n addConsumeAwareSignal(\n object,\n () => context.signal,\n () => cancelled = true\n );\n };\n const queryFn = ensureQueryFn(context.options, context.fetchOptions);\n const fetchPage = async (data, param, previous) => {\n if (cancelled) {\n return Promise.reject();\n }\n if (param == null && data.pages.length) {\n return Promise.resolve(data);\n }\n const createQueryFnContext = () => {\n const queryFnContext2 = {\n client: context.client,\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? \"backward\" : \"forward\",\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext2);\n return queryFnContext2;\n };\n const queryFnContext = createQueryFnContext();\n const page = await queryFn(queryFnContext);\n const { maxPages } = context.options;\n const addTo = previous ? addToStart : addToEnd;\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages)\n };\n };\n if (direction && oldPages.length) {\n const previous = direction === \"backward\";\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams\n };\n const param = pageParamFn(options, oldData);\n result = await fetchPage(oldData, param, previous);\n } else {\n const remainingPages = pages ?? oldPages.length;\n do {\n const param = currentPage === 0 ? oldPageParams[0] ?? options.initialPageParam : getNextPageParam(options, result);\n if (currentPage > 0 && param == null) {\n break;\n }\n result = await fetchPage(result, param);\n currentPage++;\n } while (currentPage < remainingPages);\n }\n return result;\n };\n if (context.options.persister) {\n context.fetchFn = () => {\n return context.options.persister?.(\n fetchFn,\n {\n client: context.client,\n queryKey: context.queryKey,\n meta: context.options.meta,\n signal: context.signal\n },\n query\n );\n };\n } else {\n context.fetchFn = fetchFn;\n }\n }\n };\n}\nfunction getNextPageParam(options, { pages, pageParams }) {\n const lastIndex = pages.length - 1;\n return pages.length > 0 ? options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams\n ) : void 0;\n}\nfunction getPreviousPageParam(options, { pages, pageParams }) {\n return pages.length > 0 ? options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams) : void 0;\n}\nfunction hasNextPage(options, data) {\n if (!data) return false;\n return getNextPageParam(options, data) != null;\n}\nfunction hasPreviousPage(options, data) {\n if (!data || !options.getPreviousPageParam) return false;\n return getPreviousPageParam(options, data) != null;\n}\nexport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n};\n//# sourceMappingURL=infiniteQueryBehavior.js.map","// src/infiniteQueryObserver.ts\nimport { QueryObserver } from \"./queryObserver.js\";\nimport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n} from \"./infiniteQueryBehavior.js\";\nvar InfiniteQueryObserver = class extends QueryObserver {\n constructor(client, options) {\n super(client, options);\n }\n bindMethods() {\n super.bindMethods();\n this.fetchNextPage = this.fetchNextPage.bind(this);\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this);\n }\n setOptions(options) {\n super.setOptions({\n ...options,\n behavior: infiniteQueryBehavior()\n });\n }\n getOptimisticResult(options) {\n options.behavior = infiniteQueryBehavior();\n return super.getOptimisticResult(options);\n }\n fetchNextPage(options) {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: \"forward\" }\n }\n });\n }\n fetchPreviousPage(options) {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: \"backward\" }\n }\n });\n }\n createResult(query, options) {\n const { state } = query;\n const parentResult = super.createResult(query, options);\n const { isFetching, isRefetching, isError, isRefetchError } = parentResult;\n const fetchDirection = state.fetchMeta?.fetchMore?.direction;\n const isFetchNextPageError = isError && fetchDirection === \"forward\";\n const isFetchingNextPage = isFetching && fetchDirection === \"forward\";\n const isFetchPreviousPageError = isError && fetchDirection === \"backward\";\n const isFetchingPreviousPage = isFetching && fetchDirection === \"backward\";\n const result = {\n ...parentResult,\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, state.data),\n hasPreviousPage: hasPreviousPage(options, state.data),\n isFetchNextPageError,\n isFetchingNextPage,\n isFetchPreviousPageError,\n isFetchingPreviousPage,\n isRefetchError: isRefetchError && !isFetchNextPageError && !isFetchPreviousPageError,\n isRefetching: isRefetching && !isFetchingNextPage && !isFetchingPreviousPage\n };\n return result;\n }\n};\nexport {\n InfiniteQueryObserver\n};\n//# sourceMappingURL=infiniteQueryObserver.js.map","// src/mutation.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Removable } from \"./removable.js\";\nimport { createRetryer } from \"./retryer.js\";\nvar Mutation = class extends Removable {\n #client;\n #observers;\n #mutationCache;\n #retryer;\n constructor(config) {\n super();\n this.#client = config.client;\n this.mutationId = config.mutationId;\n this.#mutationCache = config.mutationCache;\n this.#observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n setOptions(options) {\n this.options = options;\n this.updateGcTime(this.options.gcTime);\n }\n get meta() {\n return this.options.meta;\n }\n addObserver(observer) {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer);\n this.clearGcTimeout();\n this.#mutationCache.notify({\n type: \"observerAdded\",\n mutation: this,\n observer\n });\n }\n }\n removeObserver(observer) {\n this.#observers = this.#observers.filter((x) => x !== observer);\n this.scheduleGc();\n this.#mutationCache.notify({\n type: \"observerRemoved\",\n mutation: this,\n observer\n });\n }\n optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === \"pending\") {\n this.scheduleGc();\n } else {\n this.#mutationCache.remove(this);\n }\n }\n }\n continue() {\n return this.#retryer?.continue() ?? // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables);\n }\n async execute(variables) {\n const onContinue = () => {\n this.#dispatch({ type: \"continue\" });\n };\n const mutationFnContext = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey\n };\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error(\"No mutationFn found\"));\n }\n return this.options.mutationFn(variables, mutationFnContext);\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue,\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n canRun: () => this.#mutationCache.canRun(this)\n });\n const restored = this.state.status === \"pending\";\n const isPaused = !this.#retryer.canStart();\n try {\n if (restored) {\n onContinue();\n } else {\n this.#dispatch({ type: \"pending\", variables, isPaused });\n if (this.#mutationCache.config.onMutate) {\n await this.#mutationCache.config.onMutate(\n variables,\n this,\n mutationFnContext\n );\n }\n const context = await this.options.onMutate?.(\n variables,\n mutationFnContext\n );\n if (context !== this.state.context) {\n this.#dispatch({\n type: \"pending\",\n context,\n variables,\n isPaused\n });\n }\n }\n const data = await this.#retryer.start();\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this,\n mutationFnContext\n );\n await this.options.onSuccess?.(\n data,\n variables,\n this.state.context,\n mutationFnContext\n );\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this,\n mutationFnContext\n );\n await this.options.onSettled?.(\n data,\n null,\n variables,\n this.state.context,\n mutationFnContext\n );\n this.#dispatch({ type: \"success\", data });\n return data;\n } catch (error) {\n try {\n await this.#mutationCache.config.onError?.(\n error,\n variables,\n this.state.context,\n this,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.options.onError?.(\n error,\n variables,\n this.state.context,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.#mutationCache.config.onSettled?.(\n void 0,\n error,\n this.state.variables,\n this.state.context,\n this,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.options.onSettled?.(\n void 0,\n error,\n variables,\n this.state.context,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n this.#dispatch({ type: \"error\", error });\n throw error;\n } finally {\n this.#mutationCache.runNext(this);\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n isPaused: true\n };\n case \"continue\":\n return {\n ...state,\n isPaused: false\n };\n case \"pending\":\n return {\n ...state,\n context: action.context,\n data: void 0,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: action.isPaused,\n status: \"pending\",\n variables: action.variables,\n submittedAt: Date.now()\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: \"success\",\n isPaused: false\n };\n case \"error\":\n return {\n ...state,\n data: void 0,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: \"error\"\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action);\n });\n this.#mutationCache.notify({\n mutation: this,\n type: \"updated\",\n action\n });\n });\n }\n};\nfunction getDefaultState() {\n return {\n context: void 0,\n data: void 0,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: \"idle\",\n variables: void 0,\n submittedAt: 0\n };\n}\nexport {\n Mutation,\n getDefaultState\n};\n//# sourceMappingURL=mutation.js.map","// src/mutationCache.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Mutation } from \"./mutation.js\";\nimport { matchMutation, noop } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar MutationCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#mutations = /* @__PURE__ */ new Set();\n this.#scopes = /* @__PURE__ */ new Map();\n this.#mutationId = 0;\n }\n #mutations;\n #scopes;\n #mutationId;\n build(client, options, state) {\n const mutation = new Mutation({\n client,\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state\n });\n this.add(mutation);\n return mutation;\n }\n add(mutation) {\n this.#mutations.add(mutation);\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n scopedMutations.push(mutation);\n } else {\n this.#scopes.set(scope, [mutation]);\n }\n }\n this.notify({ type: \"added\", mutation });\n }\n remove(mutation) {\n if (this.#mutations.delete(mutation)) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n if (scopedMutations.length > 1) {\n const index = scopedMutations.indexOf(mutation);\n if (index !== -1) {\n scopedMutations.splice(index, 1);\n }\n } else if (scopedMutations[0] === mutation) {\n this.#scopes.delete(scope);\n }\n }\n }\n }\n this.notify({ type: \"removed\", mutation });\n }\n canRun(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const mutationsWithSameScope = this.#scopes.get(scope);\n const firstPendingMutation = mutationsWithSameScope?.find(\n (m) => m.state.status === \"pending\"\n );\n return !firstPendingMutation || firstPendingMutation === mutation;\n } else {\n return true;\n }\n }\n runNext(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const foundMutation = this.#scopes.get(scope)?.find((m) => m !== mutation && m.state.isPaused);\n return foundMutation?.continue() ?? Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.#mutations.forEach((mutation) => {\n this.notify({ type: \"removed\", mutation });\n });\n this.#mutations.clear();\n this.#scopes.clear();\n });\n }\n getAll() {\n return Array.from(this.#mutations);\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (mutation) => matchMutation(defaultedFilters, mutation)\n );\n }\n findAll(filters = {}) {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation));\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n resumePausedMutations() {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused);\n return notifyManager.batch(\n () => Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop))\n )\n );\n }\n};\nfunction scopeFor(mutation) {\n return mutation.options.scope?.id;\n}\nexport {\n MutationCache\n};\n//# sourceMappingURL=mutationCache.js.map","// src/mutationObserver.ts\nimport { getDefaultState } from \"./mutation.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { hashKey, shallowEqualObjects } from \"./utils.js\";\nvar MutationObserver = class extends Subscribable {\n #client;\n #currentResult = void 0;\n #currentMutation;\n #mutateOptions;\n constructor(client, options) {\n super();\n this.#client = client;\n this.setOptions(options);\n this.bindMethods();\n this.#updateResult();\n }\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n this.options = this.#client.defaultMutationOptions(options);\n if (!shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getMutationCache().notify({\n type: \"observerOptionsUpdated\",\n mutation: this.#currentMutation,\n observer: this\n });\n }\n if (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) {\n this.reset();\n } else if (this.#currentMutation?.state.status === \"pending\") {\n this.#currentMutation.setOptions(this.options);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this);\n }\n }\n onMutationUpdate(action) {\n this.#updateResult();\n this.#notify(action);\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n reset() {\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = void 0;\n this.#updateResult();\n this.#notify();\n }\n mutate(variables, options) {\n this.#mutateOptions = options;\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n this.#currentMutation.addObserver(this);\n return this.#currentMutation.execute(variables);\n }\n #updateResult() {\n const state = this.#currentMutation?.state ?? getDefaultState();\n this.#currentResult = {\n ...state,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n isIdle: state.status === \"idle\",\n mutate: this.mutate,\n reset: this.reset\n };\n }\n #notify(action) {\n notifyManager.batch(() => {\n if (this.#mutateOptions && this.hasListeners()) {\n const variables = this.#currentResult.variables;\n const onMutateResult = this.#currentResult.context;\n const context = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey\n };\n if (action?.type === \"success\") {\n try {\n this.#mutateOptions.onSuccess?.(\n action.data,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n this.#mutateOptions.onSettled?.(\n action.data,\n null,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n } else if (action?.type === \"error\") {\n try {\n this.#mutateOptions.onError?.(\n action.error,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n }\n }\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n });\n }\n};\nexport {\n MutationObserver\n};\n//# sourceMappingURL=mutationObserver.js.map","// src/queriesObserver.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { QueryObserver } from \"./queryObserver.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { replaceEqualDeep, shallowEqualObjects } from \"./utils.js\";\nfunction difference(array1, array2) {\n const excludeSet = new Set(array2);\n return array1.filter((x) => !excludeSet.has(x));\n}\nfunction replaceAt(array, index, value) {\n const copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nvar QueriesObserver = class extends Subscribable {\n #client;\n #result;\n #queries;\n #options;\n #observers;\n #combinedResult;\n #lastCombine;\n #lastResult;\n #lastQueryHashes;\n #observerMatches = [];\n constructor(client, queries, options) {\n super();\n this.#client = client;\n this.#options = options;\n this.#queries = [];\n this.#observers = [];\n this.#result = [];\n this.setQueries(queries);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result);\n });\n });\n }\n }\n onUnsubscribe() {\n if (!this.listeners.size) {\n this.destroy();\n }\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#observers.forEach((observer) => {\n observer.destroy();\n });\n }\n setQueries(queries, options) {\n this.#queries = queries;\n this.#options = options;\n if (process.env.NODE_ENV !== \"production\") {\n const queryHashes = queries.map(\n (query) => this.#client.defaultQueryOptions(query).queryHash\n );\n if (new Set(queryHashes).size !== queryHashes.length) {\n console.warn(\n \"[QueriesObserver]: Duplicate Queries found. This might result in unexpected behavior.\"\n );\n }\n }\n notifyManager.batch(() => {\n const prevObservers = this.#observers;\n const newObserverMatches = this.#findMatchingObservers(this.#queries);\n newObserverMatches.forEach(\n (match) => match.observer.setOptions(match.defaultedQueryOptions)\n );\n const newObservers = newObserverMatches.map((match) => match.observer);\n const newResult = newObservers.map(\n (observer) => observer.getCurrentResult()\n );\n const hasLengthChange = prevObservers.length !== newObservers.length;\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index]\n );\n const hasStructuralChange = hasLengthChange || hasIndexChange;\n const hasResultChange = hasStructuralChange ? true : newResult.some((result, index) => {\n const prev = this.#result[index];\n return !prev || !shallowEqualObjects(result, prev);\n });\n if (!hasStructuralChange && !hasResultChange) return;\n if (hasStructuralChange) {\n this.#observerMatches = newObserverMatches;\n this.#observers = newObservers;\n }\n this.#result = newResult;\n if (!this.hasListeners()) return;\n if (hasStructuralChange) {\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy();\n });\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result);\n });\n });\n }\n this.#notify();\n });\n }\n getCurrentResult() {\n return this.#result;\n }\n getQueries() {\n return this.#observers.map((observer) => observer.getCurrentQuery());\n }\n getObservers() {\n return this.#observers;\n }\n getOptimisticResult(queries, combine) {\n const matches = this.#findMatchingObservers(queries);\n const result = matches.map(\n (match) => match.observer.getOptimisticResult(match.defaultedQueryOptions)\n );\n const queryHashes = matches.map(\n (match) => match.defaultedQueryOptions.queryHash\n );\n return [\n result,\n (r) => {\n return this.#combineResult(r ?? result, combine, queryHashes);\n },\n () => {\n return this.#trackResult(result, matches);\n }\n ];\n }\n #trackResult(result, matches) {\n return matches.map((match, index) => {\n const observerResult = result[index];\n return !match.defaultedQueryOptions.notifyOnChangeProps ? match.observer.trackResult(observerResult, (accessedProp) => {\n matches.forEach((m) => {\n m.observer.trackProp(accessedProp);\n });\n }) : observerResult;\n });\n }\n #combineResult(input, combine, queryHashes) {\n if (combine) {\n const lastHashes = this.#lastQueryHashes;\n const queryHashesChanged = queryHashes !== void 0 && lastHashes !== void 0 && (lastHashes.length !== queryHashes.length || queryHashes.some((hash, i) => hash !== lastHashes[i]));\n if (!this.#combinedResult || this.#result !== this.#lastResult || queryHashesChanged || combine !== this.#lastCombine) {\n this.#lastCombine = combine;\n this.#lastResult = this.#result;\n if (queryHashes !== void 0) {\n this.#lastQueryHashes = queryHashes;\n }\n this.#combinedResult = replaceEqualDeep(\n this.#combinedResult,\n combine(input)\n );\n }\n return this.#combinedResult;\n }\n return input;\n }\n #findMatchingObservers(queries) {\n const prevObserversMap = /* @__PURE__ */ new Map();\n this.#observers.forEach((observer) => {\n const key = observer.options.queryHash;\n if (!key) return;\n const previousObservers = prevObserversMap.get(key);\n if (previousObservers) {\n previousObservers.push(observer);\n } else {\n prevObserversMap.set(key, [observer]);\n }\n });\n const observers = [];\n queries.forEach((options) => {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const match = prevObserversMap.get(defaultedOptions.queryHash)?.shift();\n const observer = match ?? new QueryObserver(this.#client, defaultedOptions);\n observers.push({\n defaultedQueryOptions: defaultedOptions,\n observer\n });\n });\n return observers;\n }\n #onUpdate(observer, result) {\n const index = this.#observers.indexOf(observer);\n if (index !== -1) {\n this.#result = replaceAt(this.#result, index, result);\n this.#notify();\n }\n }\n #notify() {\n if (this.hasListeners()) {\n const previousResult = this.#combinedResult;\n const newTracked = this.#trackResult(this.#result, this.#observerMatches);\n const newResult = this.#combineResult(newTracked, this.#options?.combine);\n if (previousResult !== newResult) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(this.#result);\n });\n });\n }\n }\n }\n};\nexport {\n QueriesObserver\n};\n//# sourceMappingURL=queriesObserver.js.map","// src/queryCache.ts\nimport { hashQueryKeyByOptions, matchQuery } from \"./utils.js\";\nimport { Query } from \"./query.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar QueryCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#queries = /* @__PURE__ */ new Map();\n }\n #queries;\n build(client, options, state) {\n const queryKey = options.queryKey;\n const queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n if (!query) {\n query = new Query({\n client,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n return query;\n }\n add(query) {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query);\n this.notify({\n type: \"added\",\n query\n });\n }\n }\n remove(query) {\n const queryInMap = this.#queries.get(query.queryHash);\n if (queryInMap) {\n query.destroy();\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash);\n }\n this.notify({ type: \"removed\", query });\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query);\n });\n });\n }\n get(queryHash) {\n return this.#queries.get(queryHash);\n }\n getAll() {\n return [...this.#queries.values()];\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (query) => matchQuery(defaultedFilters, query)\n );\n }\n findAll(filters = {}) {\n const queries = this.getAll();\n return Object.keys(filters).length > 0 ? queries.filter((query) => matchQuery(filters, query)) : queries;\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n onFocus() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus();\n });\n });\n }\n onOnline() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline();\n });\n });\n }\n};\nexport {\n QueryCache\n};\n//# sourceMappingURL=queryCache.js.map","// src/queryClient.ts\nimport {\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n noop,\n partialMatchKey,\n resolveStaleTime,\n skipToken\n} from \"./utils.js\";\nimport { QueryCache } from \"./queryCache.js\";\nimport { MutationCache } from \"./mutationCache.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.js\";\nvar QueryClient = class {\n #queryCache;\n #mutationCache;\n #defaultOptions;\n #queryDefaults;\n #mutationDefaults;\n #mountCount;\n #unsubscribeFocus;\n #unsubscribeOnline;\n constructor(config = {}) {\n this.#queryCache = config.queryCache || new QueryCache();\n this.#mutationCache = config.mutationCache || new MutationCache();\n this.#defaultOptions = config.defaultOptions || {};\n this.#queryDefaults = /* @__PURE__ */ new Map();\n this.#mutationDefaults = /* @__PURE__ */ new Map();\n this.#mountCount = 0;\n }\n mount() {\n this.#mountCount++;\n if (this.#mountCount !== 1) return;\n this.#unsubscribeFocus = focusManager.subscribe(async (focused) => {\n if (focused) {\n await this.resumePausedMutations();\n this.#queryCache.onFocus();\n }\n });\n this.#unsubscribeOnline = onlineManager.subscribe(async (online) => {\n if (online) {\n await this.resumePausedMutations();\n this.#queryCache.onOnline();\n }\n });\n }\n unmount() {\n this.#mountCount--;\n if (this.#mountCount !== 0) return;\n this.#unsubscribeFocus?.();\n this.#unsubscribeFocus = void 0;\n this.#unsubscribeOnline?.();\n this.#unsubscribeOnline = void 0;\n }\n isFetching(filters) {\n return this.#queryCache.findAll({ ...filters, fetchStatus: \"fetching\" }).length;\n }\n isMutating(filters) {\n return this.#mutationCache.findAll({ ...filters, status: \"pending\" }).length;\n }\n /**\n * Imperative (non-reactive) way to retrieve data for a QueryKey.\n * Should only be used in callbacks or functions where reading the latest data is necessary, e.g. for optimistic updates.\n *\n * Hint: Do not use this function inside a component, because it won't receive updates.\n * Use `useQuery` to create a `QueryObserver` that subscribes to changes.\n */\n getQueryData(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state.data;\n }\n ensureQueryData(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n const query = this.#queryCache.build(this, defaultedOptions);\n const cachedData = query.state.data;\n if (cachedData === void 0) {\n return this.fetchQuery(options);\n }\n if (options.revalidateIfStale && query.isStaleByTime(resolveStaleTime(defaultedOptions.staleTime, query))) {\n void this.prefetchQuery(defaultedOptions);\n }\n return Promise.resolve(cachedData);\n }\n getQueriesData(filters) {\n return this.#queryCache.findAll(filters).map(({ queryKey, state }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n setQueryData(queryKey, updater, options) {\n const defaultedOptions = this.defaultQueryOptions({ queryKey });\n const query = this.#queryCache.get(\n defaultedOptions.queryHash\n );\n const prevData = query?.state.data;\n const data = functionalUpdate(updater, prevData);\n if (data === void 0) {\n return void 0;\n }\n return this.#queryCache.build(this, defaultedOptions).setData(data, { ...options, manual: true });\n }\n setQueriesData(filters, updater, options) {\n return notifyManager.batch(\n () => this.#queryCache.findAll(filters).map(({ queryKey }) => [\n queryKey,\n this.setQueryData(queryKey, updater, options)\n ])\n );\n }\n getQueryState(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(\n options.queryHash\n )?.state;\n }\n removeQueries(filters) {\n const queryCache = this.#queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query);\n });\n });\n }\n resetQueries(filters, options) {\n const queryCache = this.#queryCache;\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset();\n });\n return this.refetchQueries(\n {\n type: \"active\",\n ...filters\n },\n options\n );\n });\n }\n cancelQueries(filters, cancelOptions = {}) {\n const defaultedCancelOptions = { revert: true, ...cancelOptions };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).map((query) => query.cancel(defaultedCancelOptions))\n );\n return Promise.all(promises).then(noop).catch(noop);\n }\n invalidateQueries(filters, options = {}) {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate();\n });\n if (filters?.refetchType === \"none\") {\n return Promise.resolve();\n }\n return this.refetchQueries(\n {\n ...filters,\n type: filters?.refetchType ?? filters?.type ?? \"active\"\n },\n options\n );\n });\n }\n refetchQueries(filters, options = {}) {\n const fetchOptions = {\n ...options,\n cancelRefetch: options.cancelRefetch ?? true\n };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).filter((query) => !query.isDisabled() && !query.isStatic()).map((query) => {\n let promise = query.fetch(void 0, fetchOptions);\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop);\n }\n return query.state.fetchStatus === \"paused\" ? Promise.resolve() : promise;\n })\n );\n return Promise.all(promises).then(noop);\n }\n fetchQuery(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n if (defaultedOptions.retry === void 0) {\n defaultedOptions.retry = false;\n }\n const query = this.#queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(\n resolveStaleTime(defaultedOptions.staleTime, query)\n ) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n prefetchQuery(options) {\n return this.fetchQuery(options).then(noop).catch(noop);\n }\n fetchInfiniteQuery(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.fetchQuery(options);\n }\n prefetchInfiniteQuery(options) {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop);\n }\n ensureInfiniteQueryData(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.ensureQueryData(options);\n }\n resumePausedMutations() {\n if (onlineManager.isOnline()) {\n return this.#mutationCache.resumePausedMutations();\n }\n return Promise.resolve();\n }\n getQueryCache() {\n return this.#queryCache;\n }\n getMutationCache() {\n return this.#mutationCache;\n }\n getDefaultOptions() {\n return this.#defaultOptions;\n }\n setDefaultOptions(options) {\n this.#defaultOptions = options;\n }\n setQueryDefaults(queryKey, options) {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options\n });\n }\n getQueryDefaults(queryKey) {\n const defaults = [...this.#queryDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n setMutationDefaults(mutationKey, options) {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options\n });\n }\n getMutationDefaults(mutationKey) {\n const defaults = [...this.#mutationDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n defaultQueryOptions(options) {\n if (options._defaulted) {\n return options;\n }\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...this.getQueryDefaults(options.queryKey),\n ...options,\n _defaulted: true\n };\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions\n );\n }\n if (defaultedOptions.refetchOnReconnect === void 0) {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n }\n if (defaultedOptions.throwOnError === void 0) {\n defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n }\n if (!defaultedOptions.networkMode && defaultedOptions.persister) {\n defaultedOptions.networkMode = \"offlineFirst\";\n }\n if (defaultedOptions.queryFn === skipToken) {\n defaultedOptions.enabled = false;\n }\n return defaultedOptions;\n }\n defaultMutationOptions(options) {\n if (options?._defaulted) {\n return options;\n }\n return {\n ...this.#defaultOptions.mutations,\n ...options?.mutationKey && this.getMutationDefaults(options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n clear() {\n this.#queryCache.clear();\n this.#mutationCache.clear();\n }\n};\nexport {\n QueryClient\n};\n//# sourceMappingURL=queryClient.js.map","\"use client\";\n\n// src/QueryClientProvider.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar QueryClientContext = React.createContext(\n void 0\n);\nvar useQueryClient = (queryClient) => {\n const client = React.useContext(QueryClientContext);\n if (queryClient) {\n return queryClient;\n }\n if (!client) {\n throw new Error(\"No QueryClient set, use QueryClientProvider to set one\");\n }\n return client;\n};\nvar QueryClientProvider = ({\n client,\n children\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n return /* @__PURE__ */ jsx(QueryClientContext.Provider, { value: client, children });\n};\nexport {\n QueryClientContext,\n QueryClientProvider,\n useQueryClient\n};\n//# sourceMappingURL=QueryClientProvider.js.map","\"use client\";\n\n// src/IsRestoringProvider.ts\nimport * as React from \"react\";\nvar IsRestoringContext = React.createContext(false);\nvar useIsRestoring = () => React.useContext(IsRestoringContext);\nvar IsRestoringProvider = IsRestoringContext.Provider;\nexport {\n IsRestoringProvider,\n useIsRestoring\n};\n//# sourceMappingURL=IsRestoringProvider.js.map","\"use client\";\n\n// src/QueryErrorResetBoundary.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\nvar QueryErrorResetBoundaryContext = React.createContext(createValue());\nvar useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext);\nvar QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /* @__PURE__ */ jsx(QueryErrorResetBoundaryContext.Provider, { value, children: typeof children === \"function\" ? children(value) : children });\n};\nexport {\n QueryErrorResetBoundary,\n useQueryErrorResetBoundary\n};\n//# sourceMappingURL=QueryErrorResetBoundary.js.map","\"use client\";\n\n// src/errorBoundaryUtils.ts\nimport * as React from \"react\";\nimport { shouldThrowError } from \"@tanstack/query-core\";\nvar ensurePreventErrorBoundaryRetry = (options, errorResetBoundary, query) => {\n const throwOnError = query?.state.error && typeof options.throwOnError === \"function\" ? shouldThrowError(options.throwOnError, [query.state.error, query]) : options.throwOnError;\n if (options.suspense || options.experimental_prefetchInRender || throwOnError) {\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false;\n }\n }\n};\nvar useClearResetErrorBoundary = (errorResetBoundary) => {\n React.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n};\nvar getHasError = ({\n result,\n errorResetBoundary,\n throwOnError,\n query,\n suspense\n}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && query && (suspense && result.data === void 0 || shouldThrowError(throwOnError, [result.error, query]));\n};\nexport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n};\n//# sourceMappingURL=errorBoundaryUtils.js.map","// src/suspense.ts\nvar defaultThrowOnError = (_error, query) => query.state.data === void 0;\nvar ensureSuspenseTimers = (defaultedOptions) => {\n if (defaultedOptions.suspense) {\n const MIN_SUSPENSE_TIME_MS = 1e3;\n const clamp = (value) => value === \"static\" ? value : Math.max(value ?? MIN_SUSPENSE_TIME_MS, MIN_SUSPENSE_TIME_MS);\n const originalStaleTime = defaultedOptions.staleTime;\n defaultedOptions.staleTime = typeof originalStaleTime === \"function\" ? (...args) => clamp(originalStaleTime(...args)) : clamp(originalStaleTime);\n if (typeof defaultedOptions.gcTime === \"number\") {\n defaultedOptions.gcTime = Math.max(\n defaultedOptions.gcTime,\n MIN_SUSPENSE_TIME_MS\n );\n }\n }\n};\nvar willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nvar shouldSuspend = (defaultedOptions, result) => defaultedOptions?.suspense && result.isPending;\nvar fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {\n errorResetBoundary.clearReset();\n});\nexport {\n defaultThrowOnError,\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n};\n//# sourceMappingURL=suspense.js.map","\"use client\";\n\n// src/useQueries.ts\nimport * as React from \"react\";\nimport {\n QueriesObserver,\n QueryObserver,\n noop,\n notifyManager\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend\n} from \"./suspense.js\";\nfunction useQueries({\n queries,\n ...options\n}, queryClient) {\n const client = useQueryClient(queryClient);\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedQueries = React.useMemo(\n () => queries.map((opts) => {\n const defaultedOptions = client.defaultQueryOptions(\n opts\n );\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n return defaultedOptions;\n }),\n [queries, client, isRestoring]\n );\n defaultedQueries.forEach((queryOptions) => {\n ensureSuspenseTimers(queryOptions);\n const query = client.getQueryCache().get(queryOptions.queryHash);\n ensurePreventErrorBoundaryRetry(queryOptions, errorResetBoundary, query);\n });\n useClearResetErrorBoundary(errorResetBoundary);\n const [observer] = React.useState(\n () => new QueriesObserver(\n client,\n defaultedQueries,\n options\n )\n );\n const [optimisticResult, getCombinedResult, trackResult] = observer.getOptimisticResult(\n defaultedQueries,\n options.combine\n );\n const shouldSubscribe = !isRestoring && options.subscribed !== false;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop,\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setQueries(\n defaultedQueries,\n options\n );\n }, [defaultedQueries, options, observer]);\n const shouldAtLeastOneSuspend = optimisticResult.some(\n (result, index) => shouldSuspend(defaultedQueries[index], result)\n );\n const suspensePromises = shouldAtLeastOneSuspend ? optimisticResult.flatMap((result, index) => {\n const opts = defaultedQueries[index];\n if (opts && shouldSuspend(opts, result)) {\n const queryObserver = new QueryObserver(client, opts);\n return fetchOptimistic(opts, queryObserver, errorResetBoundary);\n }\n return [];\n }) : [];\n if (suspensePromises.length > 0) {\n throw Promise.all(suspensePromises);\n }\n const firstSingleResultWhichShouldThrow = optimisticResult.find(\n (result, index) => {\n const query = defaultedQueries[index];\n return query && getHasError({\n result,\n errorResetBoundary,\n throwOnError: query.throwOnError,\n query: client.getQueryCache().get(query.queryHash),\n suspense: query.suspense\n });\n }\n );\n if (firstSingleResultWhichShouldThrow?.error) {\n throw firstSingleResultWhichShouldThrow.error;\n }\n return getCombinedResult(trackResult());\n}\nexport {\n useQueries\n};\n//# sourceMappingURL=useQueries.js.map","\"use client\";\n\n// src/useBaseQuery.ts\nimport * as React from \"react\";\nimport { isServer, noop, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n} from \"./suspense.js\";\nfunction useBaseQuery(options, Observer, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n throw new Error(\n 'Bad argument type. Starting with v5, only the \"Object\" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object'\n );\n }\n }\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const client = useQueryClient(queryClient);\n const defaultedOptions = client.defaultQueryOptions(options);\n client.getDefaultOptions().queries?._experimental_beforeQuery?.(\n defaultedOptions\n );\n const query = client.getQueryCache().get(defaultedOptions.queryHash);\n if (process.env.NODE_ENV !== \"production\") {\n if (!defaultedOptions.queryFn) {\n console.error(\n `[${defaultedOptions.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`\n );\n }\n }\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n ensureSuspenseTimers(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary, query);\n useClearResetErrorBoundary(errorResetBoundary);\n const isNewCacheEntry = !client.getQueryCache().get(defaultedOptions.queryHash);\n const [observer] = React.useState(\n () => new Observer(\n client,\n defaultedOptions\n )\n );\n const result = observer.getOptimisticResult(defaultedOptions);\n const shouldSubscribe = !isRestoring && options.subscribed !== false;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n const unsubscribe = shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop;\n observer.updateResult();\n return unsubscribe;\n },\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setOptions(defaultedOptions);\n }, [defaultedOptions, observer]);\n if (shouldSuspend(defaultedOptions, result)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n }\n if (getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query,\n suspense: defaultedOptions.suspense\n })) {\n throw result.error;\n }\n ;\n client.getDefaultOptions().queries?._experimental_afterQuery?.(\n defaultedOptions,\n result\n );\n if (defaultedOptions.experimental_prefetchInRender && !isServer && willFetch(result, isRestoring)) {\n const promise = isNewCacheEntry ? (\n // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted\n fetchOptimistic(defaultedOptions, observer, errorResetBoundary)\n ) : (\n // subscribe to the \"cache promise\" so that we can finalize the currentThenable once data comes in\n query?.promise\n );\n promise?.catch(noop).finally(() => {\n observer.updateResult();\n });\n }\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\nexport {\n useBaseQuery\n};\n//# sourceMappingURL=useBaseQuery.js.map","\"use client\";\n\n// src/useQuery.ts\nimport { QueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useQuery(options, queryClient) {\n return useBaseQuery(options, QueryObserver, queryClient);\n}\nexport {\n useQuery\n};\n//# sourceMappingURL=useQuery.js.map","\"use client\";\n\n// src/useSuspenseQuery.ts\nimport { QueryObserver, skipToken } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nimport { defaultThrowOnError } from \"./suspense.js\";\nfunction useSuspenseQuery(options, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\"skipToken is not allowed for useSuspenseQuery\");\n }\n }\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n throwOnError: defaultThrowOnError,\n placeholderData: void 0\n },\n QueryObserver,\n queryClient\n );\n}\nexport {\n useSuspenseQuery\n};\n//# sourceMappingURL=useSuspenseQuery.js.map","\"use client\";\n\n// src/useSuspenseInfiniteQuery.ts\nimport { InfiniteQueryObserver, skipToken } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nimport { defaultThrowOnError } from \"./suspense.js\";\nfunction useSuspenseInfiniteQuery(options, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\"skipToken is not allowed for useSuspenseInfiniteQuery\");\n }\n }\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n throwOnError: defaultThrowOnError\n },\n InfiniteQueryObserver,\n queryClient\n );\n}\nexport {\n useSuspenseInfiniteQuery\n};\n//# sourceMappingURL=useSuspenseInfiniteQuery.js.map","\"use client\";\n\n// src/useSuspenseQueries.ts\nimport { skipToken } from \"@tanstack/query-core\";\nimport { useQueries } from \"./useQueries.js\";\nimport { defaultThrowOnError } from \"./suspense.js\";\nfunction useSuspenseQueries(options, queryClient) {\n return useQueries(\n {\n ...options,\n queries: options.queries.map((query) => {\n if (process.env.NODE_ENV !== \"production\") {\n if (query.queryFn === skipToken) {\n console.error(\"skipToken is not allowed for useSuspenseQueries\");\n }\n }\n return {\n ...query,\n suspense: true,\n throwOnError: defaultThrowOnError,\n enabled: true,\n placeholderData: void 0\n };\n })\n },\n queryClient\n );\n}\nexport {\n useSuspenseQueries\n};\n//# sourceMappingURL=useSuspenseQueries.js.map","// src/usePrefetchQuery.tsx\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nfunction usePrefetchQuery(options, queryClient) {\n const client = useQueryClient(queryClient);\n if (!client.getQueryState(options.queryKey)) {\n client.prefetchQuery(options);\n }\n}\nexport {\n usePrefetchQuery\n};\n//# sourceMappingURL=usePrefetchQuery.js.map","// src/usePrefetchInfiniteQuery.tsx\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nfunction usePrefetchInfiniteQuery(options, queryClient) {\n const client = useQueryClient(queryClient);\n if (!client.getQueryState(options.queryKey)) {\n client.prefetchInfiniteQuery(options);\n }\n}\nexport {\n usePrefetchInfiniteQuery\n};\n//# sourceMappingURL=usePrefetchInfiniteQuery.js.map","\"use client\";\n\n// src/useMutation.ts\nimport * as React from \"react\";\nimport {\n MutationObserver,\n noop,\n notifyManager,\n shouldThrowError\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nfunction useMutation(options, queryClient) {\n const client = useQueryClient(queryClient);\n const [observer] = React.useState(\n () => new MutationObserver(\n client,\n options\n )\n );\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n const mutate = React.useCallback(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n },\n [observer]\n );\n if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {\n throw result.error;\n }\n return { ...result, mutate, mutateAsync: result.mutate };\n}\nexport {\n useMutation\n};\n//# sourceMappingURL=useMutation.js.map","\"use client\";\n\n// src/useInfiniteQuery.ts\nimport { InfiniteQueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useInfiniteQuery(options, queryClient) {\n return useBaseQuery(\n options,\n InfiniteQueryObserver,\n queryClient\n );\n}\nexport {\n useInfiniteQuery\n};\n//# sourceMappingURL=useInfiniteQuery.js.map","//#region rolldown:runtime\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function() {\n\treturn mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n\tif (from && typeof from === \"object\" || typeof from === \"function\") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {\n\t\tkey = keys[i];\n\t\tif (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n\t\t\tget: ((k) => from[k]).bind(null, key),\n\t\t\tenumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n\t\t});\n\t}\n\treturn to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", {\n\tvalue: mod,\n\tenumerable: true\n}) : target, mod));\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/typeof.js\nvar require_typeof = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/typeof.js\"(exports, module) {\n\tfunction _typeof$2(o) {\n\t\t\"@babel/helpers - typeof\";\n\t\treturn module.exports = _typeof$2 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(o$1) {\n\t\t\treturn typeof o$1;\n\t\t} : function(o$1) {\n\t\t\treturn o$1 && \"function\" == typeof Symbol && o$1.constructor === Symbol && o$1 !== Symbol.prototype ? \"symbol\" : typeof o$1;\n\t\t}, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof$2(o);\n\t}\n\tmodule.exports = _typeof$2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPrimitive.js\nvar require_toPrimitive = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPrimitive.js\"(exports, module) {\n\tvar _typeof$1 = require_typeof()[\"default\"];\n\tfunction toPrimitive$1(t, r) {\n\t\tif (\"object\" != _typeof$1(t) || !t) return t;\n\t\tvar e = t[Symbol.toPrimitive];\n\t\tif (void 0 !== e) {\n\t\t\tvar i = e.call(t, r || \"default\");\n\t\t\tif (\"object\" != _typeof$1(i)) return i;\n\t\t\tthrow new TypeError(\"@@toPrimitive must return a primitive value.\");\n\t\t}\n\t\treturn (\"string\" === r ? String : Number)(t);\n\t}\n\tmodule.exports = toPrimitive$1, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPropertyKey.js\nvar require_toPropertyKey = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPropertyKey.js\"(exports, module) {\n\tvar _typeof = require_typeof()[\"default\"];\n\tvar toPrimitive = require_toPrimitive();\n\tfunction toPropertyKey$1(t) {\n\t\tvar i = toPrimitive(t, \"string\");\n\t\treturn \"symbol\" == _typeof(i) ? i : i + \"\";\n\t}\n\tmodule.exports = toPropertyKey$1, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/defineProperty.js\nvar require_defineProperty = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/defineProperty.js\"(exports, module) {\n\tvar toPropertyKey = require_toPropertyKey();\n\tfunction _defineProperty(e, r, t) {\n\t\treturn (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n\t\t\tvalue: t,\n\t\t\tenumerable: !0,\n\t\t\tconfigurable: !0,\n\t\t\twritable: !0\n\t\t}) : e[r] = t, e;\n\t}\n\tmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectSpread2.js\nvar require_objectSpread2 = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectSpread2.js\"(exports, module) {\n\tvar defineProperty = require_defineProperty();\n\tfunction ownKeys(e, r) {\n\t\tvar t = Object.keys(e);\n\t\tif (Object.getOwnPropertySymbols) {\n\t\t\tvar o = Object.getOwnPropertySymbols(e);\n\t\t\tr && (o = o.filter(function(r$1) {\n\t\t\t\treturn Object.getOwnPropertyDescriptor(e, r$1).enumerable;\n\t\t\t})), t.push.apply(t, o);\n\t\t}\n\t\treturn t;\n\t}\n\tfunction _objectSpread2(e) {\n\t\tfor (var r = 1; r < arguments.length; r++) {\n\t\t\tvar t = null != arguments[r] ? arguments[r] : {};\n\t\t\tr % 2 ? ownKeys(Object(t), !0).forEach(function(r$1) {\n\t\t\t\tdefineProperty(e, r$1, t[r$1]);\n\t\t\t}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r$1) {\n\t\t\t\tObject.defineProperty(e, r$1, Object.getOwnPropertyDescriptor(t, r$1));\n\t\t\t});\n\t\t}\n\t\treturn e;\n\t}\n\tmodule.exports = _objectSpread2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\nexport { __commonJS, __toESM, require_defineProperty, require_objectSpread2 };\n//# sourceMappingURL=objectSpread2-BvkFp-_Y.mjs.map","//#region src/observable/observable.ts\n/** @public */\nfunction isObservable(x) {\n\treturn typeof x === \"object\" && x !== null && \"subscribe\" in x;\n}\n/** @public */\nfunction observable(subscribe) {\n\tconst self = {\n\t\tsubscribe(observer) {\n\t\t\tlet teardownRef = null;\n\t\t\tlet isDone = false;\n\t\t\tlet unsubscribed = false;\n\t\t\tlet teardownImmediately = false;\n\t\t\tfunction unsubscribe() {\n\t\t\t\tif (teardownRef === null) {\n\t\t\t\t\tteardownImmediately = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (unsubscribed) return;\n\t\t\t\tunsubscribed = true;\n\t\t\t\tif (typeof teardownRef === \"function\") teardownRef();\n\t\t\t\telse if (teardownRef) teardownRef.unsubscribe();\n\t\t\t}\n\t\t\tteardownRef = subscribe({\n\t\t\t\tnext(value) {\n\t\t\t\t\tvar _observer$next;\n\t\t\t\t\tif (isDone) return;\n\t\t\t\t\t(_observer$next = observer.next) === null || _observer$next === void 0 || _observer$next.call(observer, value);\n\t\t\t\t},\n\t\t\t\terror(err) {\n\t\t\t\t\tvar _observer$error;\n\t\t\t\t\tif (isDone) return;\n\t\t\t\t\tisDone = true;\n\t\t\t\t\t(_observer$error = observer.error) === null || _observer$error === void 0 || _observer$error.call(observer, err);\n\t\t\t\t\tunsubscribe();\n\t\t\t\t},\n\t\t\t\tcomplete() {\n\t\t\t\t\tvar _observer$complete;\n\t\t\t\t\tif (isDone) return;\n\t\t\t\t\tisDone = true;\n\t\t\t\t\t(_observer$complete = observer.complete) === null || _observer$complete === void 0 || _observer$complete.call(observer);\n\t\t\t\t\tunsubscribe();\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (teardownImmediately) unsubscribe();\n\t\t\treturn { unsubscribe };\n\t\t},\n\t\tpipe(...operations) {\n\t\t\treturn operations.reduce(pipeReducer, self);\n\t\t}\n\t};\n\treturn self;\n}\nfunction pipeReducer(prev, fn) {\n\treturn fn(prev);\n}\n/** @internal */\nfunction observableToPromise(observable$1) {\n\tconst ac = new AbortController();\n\tconst promise = new Promise((resolve, reject) => {\n\t\tlet isDone = false;\n\t\tfunction onDone() {\n\t\t\tif (isDone) return;\n\t\t\tisDone = true;\n\t\t\tobs$.unsubscribe();\n\t\t}\n\t\tac.signal.addEventListener(\"abort\", () => {\n\t\t\treject(ac.signal.reason);\n\t\t});\n\t\tconst obs$ = observable$1.subscribe({\n\t\t\tnext(data) {\n\t\t\t\tisDone = true;\n\t\t\t\tresolve(data);\n\t\t\t\tonDone();\n\t\t\t},\n\t\t\terror(data) {\n\t\t\t\treject(data);\n\t\t\t},\n\t\t\tcomplete() {\n\t\t\t\tac.abort();\n\t\t\t\tonDone();\n\t\t\t}\n\t\t});\n\t});\n\treturn promise;\n}\n/**\n* @internal\n*/\nfunction observableToReadableStream(observable$1, signal) {\n\tlet unsub = null;\n\tconst onAbort = () => {\n\t\tunsub === null || unsub === void 0 || unsub.unsubscribe();\n\t\tunsub = null;\n\t\tsignal.removeEventListener(\"abort\", onAbort);\n\t};\n\treturn new ReadableStream({\n\t\tstart(controller) {\n\t\t\tunsub = observable$1.subscribe({\n\t\t\t\tnext(data) {\n\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\tok: true,\n\t\t\t\t\t\tvalue: data\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\terror(error) {\n\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\tok: false,\n\t\t\t\t\t\terror\n\t\t\t\t\t});\n\t\t\t\t\tcontroller.close();\n\t\t\t\t},\n\t\t\t\tcomplete() {\n\t\t\t\t\tcontroller.close();\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (signal.aborted) onAbort();\n\t\t\telse signal.addEventListener(\"abort\", onAbort, { once: true });\n\t\t},\n\t\tcancel() {\n\t\t\tonAbort();\n\t\t}\n\t});\n}\n/** @internal */\nfunction observableToAsyncIterable(observable$1, signal) {\n\tconst stream = observableToReadableStream(observable$1, signal);\n\tconst reader = stream.getReader();\n\tconst iterator = {\n\t\tasync next() {\n\t\t\tconst value = await reader.read();\n\t\t\tif (value.done) return {\n\t\t\t\tvalue: void 0,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t\tconst { value: result } = value;\n\t\t\tif (!result.ok) throw result.error;\n\t\t\treturn {\n\t\t\t\tvalue: result.value,\n\t\t\t\tdone: false\n\t\t\t};\n\t\t},\n\t\tasync return() {\n\t\t\tawait reader.cancel();\n\t\t\treturn {\n\t\t\t\tvalue: void 0,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\t};\n\treturn { [Symbol.asyncIterator]() {\n\t\treturn iterator;\n\t} };\n}\n\n//#endregion\nexport { isObservable, observable, observableToAsyncIterable, observableToPromise };\n//# sourceMappingURL=observable-UMO3vUa_.mjs.map","import { observable } from \"./observable-UMO3vUa_.mjs\";\n\n//#region src/observable/operators.ts\nfunction map(project) {\n\treturn (source) => {\n\t\treturn observable((destination) => {\n\t\t\tlet index = 0;\n\t\t\tconst subscription = source.subscribe({\n\t\t\t\tnext(value) {\n\t\t\t\t\tdestination.next(project(value, index++));\n\t\t\t\t},\n\t\t\t\terror(error) {\n\t\t\t\t\tdestination.error(error);\n\t\t\t\t},\n\t\t\t\tcomplete() {\n\t\t\t\t\tdestination.complete();\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn subscription;\n\t\t});\n\t};\n}\nfunction share(_opts) {\n\treturn (source) => {\n\t\tlet refCount = 0;\n\t\tlet subscription = null;\n\t\tconst observers = [];\n\t\tfunction startIfNeeded() {\n\t\t\tif (subscription) return;\n\t\t\tsubscription = source.subscribe({\n\t\t\t\tnext(value) {\n\t\t\t\t\tfor (const observer of observers) {\n\t\t\t\t\t\tvar _observer$next;\n\t\t\t\t\t\t(_observer$next = observer.next) === null || _observer$next === void 0 || _observer$next.call(observer, value);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\terror(error) {\n\t\t\t\t\tfor (const observer of observers) {\n\t\t\t\t\t\tvar _observer$error;\n\t\t\t\t\t\t(_observer$error = observer.error) === null || _observer$error === void 0 || _observer$error.call(observer, error);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tcomplete() {\n\t\t\t\t\tfor (const observer of observers) {\n\t\t\t\t\t\tvar _observer$complete;\n\t\t\t\t\t\t(_observer$complete = observer.complete) === null || _observer$complete === void 0 || _observer$complete.call(observer);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tfunction resetIfNeeded() {\n\t\t\tif (refCount === 0 && subscription) {\n\t\t\t\tconst _sub = subscription;\n\t\t\t\tsubscription = null;\n\t\t\t\t_sub.unsubscribe();\n\t\t\t}\n\t\t}\n\t\treturn observable((subscriber) => {\n\t\t\trefCount++;\n\t\t\tobservers.push(subscriber);\n\t\t\tstartIfNeeded();\n\t\t\treturn { unsubscribe() {\n\t\t\t\trefCount--;\n\t\t\t\tresetIfNeeded();\n\t\t\t\tconst index = observers.findIndex((v) => v === subscriber);\n\t\t\t\tif (index > -1) observers.splice(index, 1);\n\t\t\t} };\n\t\t});\n\t};\n}\nfunction tap(observer) {\n\treturn (source) => {\n\t\treturn observable((destination) => {\n\t\t\treturn source.subscribe({\n\t\t\t\tnext(value) {\n\t\t\t\t\tvar _observer$next2;\n\t\t\t\t\t(_observer$next2 = observer.next) === null || _observer$next2 === void 0 || _observer$next2.call(observer, value);\n\t\t\t\t\tdestination.next(value);\n\t\t\t\t},\n\t\t\t\terror(error) {\n\t\t\t\t\tvar _observer$error2;\n\t\t\t\t\t(_observer$error2 = observer.error) === null || _observer$error2 === void 0 || _observer$error2.call(observer, error);\n\t\t\t\t\tdestination.error(error);\n\t\t\t\t},\n\t\t\t\tcomplete() {\n\t\t\t\t\tvar _observer$complete2;\n\t\t\t\t\t(_observer$complete2 = observer.complete) === null || _observer$complete2 === void 0 || _observer$complete2.call(observer);\n\t\t\t\t\tdestination.complete();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t};\n}\nconst distinctUnsetMarker = Symbol();\nfunction distinctUntilChanged(compare = (a, b) => a === b) {\n\treturn (source) => {\n\t\treturn observable((destination) => {\n\t\t\tlet lastValue = distinctUnsetMarker;\n\t\t\treturn source.subscribe({\n\t\t\t\tnext(value) {\n\t\t\t\t\tif (lastValue !== distinctUnsetMarker && compare(lastValue, value)) return;\n\t\t\t\t\tlastValue = value;\n\t\t\t\t\tdestination.next(value);\n\t\t\t\t},\n\t\t\t\terror(error) {\n\t\t\t\t\tdestination.error(error);\n\t\t\t\t},\n\t\t\t\tcomplete() {\n\t\t\t\t\tdestination.complete();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t};\n}\nconst isDeepEqual = (a, b) => {\n\tif (a === b) return true;\n\tconst bothAreObjects = a && b && typeof a === \"object\" && typeof b === \"object\";\n\treturn !!bothAreObjects && Object.keys(a).length === Object.keys(b).length && Object.entries(a).every(([k, v]) => isDeepEqual(v, b[k]));\n};\nfunction distinctUntilDeepChanged() {\n\treturn distinctUntilChanged(isDeepEqual);\n}\n\n//#endregion\n//#region src/observable/behaviorSubject.ts\n/**\n* @internal\n* An observable that maintains and provides a \"current value\" to subscribers\n* @see https://www.learnrxjs.io/learn-rxjs/subjects/behaviorsubject\n*/\nfunction behaviorSubject(initialValue) {\n\tlet value = initialValue;\n\tconst observerList = [];\n\tconst addObserver = (observer) => {\n\t\tif (value !== void 0) observer.next(value);\n\t\tobserverList.push(observer);\n\t};\n\tconst removeObserver = (observer) => {\n\t\tobserverList.splice(observerList.indexOf(observer), 1);\n\t};\n\tconst obs = observable((observer) => {\n\t\taddObserver(observer);\n\t\treturn () => {\n\t\t\tremoveObserver(observer);\n\t\t};\n\t});\n\tobs.next = (nextValue) => {\n\t\tif (value === nextValue) return;\n\t\tvalue = nextValue;\n\t\tfor (const observer of observerList) observer.next(nextValue);\n\t};\n\tobs.get = () => value;\n\treturn obs;\n}\n\n//#endregion\nexport { behaviorSubject, distinctUntilChanged, distinctUntilDeepChanged, map, share, tap };\n//# sourceMappingURL=observable-CUiPknO-.mjs.map","import { observable } from \"@trpc/server/observable\";\n\n//#region src/links/internals/createChain.ts\n/** @internal */\nfunction createChain(opts) {\n\treturn observable((observer) => {\n\t\tfunction execute(index = 0, op = opts.op) {\n\t\t\tconst next = opts.links[index];\n\t\t\tif (!next) throw new Error(\"No more links to execute - did you forget to add an ending link?\");\n\t\t\tconst subscription = next({\n\t\t\t\top,\n\t\t\t\tnext(nextOp) {\n\t\t\t\t\tconst nextObserver = execute(index + 1, nextOp);\n\t\t\t\t\treturn nextObserver;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn subscription;\n\t\t}\n\t\tconst obs$ = execute();\n\t\treturn obs$.subscribe(observer);\n\t});\n}\n\n//#endregion\n//#region src/links/splitLink.ts\nfunction asArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\nfunction splitLink(opts) {\n\treturn (runtime) => {\n\t\tconst yes = asArray(opts.true).map((link) => link(runtime));\n\t\tconst no = asArray(opts.false).map((link) => link(runtime));\n\t\treturn (props) => {\n\t\t\treturn observable((observer) => {\n\t\t\t\tconst links = opts.condition(props.op) ? yes : no;\n\t\t\t\treturn createChain({\n\t\t\t\t\top: props.op,\n\t\t\t\t\tlinks\n\t\t\t\t}).subscribe(observer);\n\t\t\t});\n\t\t};\n\t};\n}\n\n//#endregion\nexport { createChain, splitLink };\n//# sourceMappingURL=splitLink-B7Cuf2c_.mjs.map","//#region src/unstable-core-do-not-import/utils.ts\n/**\n* Ensures there are no duplicate keys when building a procedure.\n* @internal\n*/\nfunction mergeWithoutOverrides(obj1, ...objs) {\n\tconst newObj = Object.assign(emptyObject(), obj1);\n\tfor (const overrides of objs) for (const key in overrides) {\n\t\tif (key in newObj && newObj[key] !== overrides[key]) throw new Error(`Duplicate key ${key}`);\n\t\tnewObj[key] = overrides[key];\n\t}\n\treturn newObj;\n}\n/**\n* Check that value is object\n* @internal\n*/\nfunction isObject(value) {\n\treturn !!value && !Array.isArray(value) && typeof value === \"object\";\n}\nfunction isFunction(fn) {\n\treturn typeof fn === \"function\";\n}\n/**\n* Create an object without inheriting anything from `Object.prototype`\n* @internal\n*/\nfunction emptyObject() {\n\treturn Object.create(null);\n}\nconst asyncIteratorsSupported = typeof Symbol === \"function\" && !!Symbol.asyncIterator;\nfunction isAsyncIterable(value) {\n\treturn asyncIteratorsSupported && isObject(value) && Symbol.asyncIterator in value;\n}\n/**\n* Run an IIFE\n*/\nconst run = (fn) => fn();\nfunction noop() {}\nfunction identity(it) {\n\treturn it;\n}\n/**\n* Generic runtime assertion function. Throws, if the condition is not `true`.\n*\n* Can be used as a slightly less dangerous variant of type assertions. Code\n* mistakes would be revealed at runtime then (hopefully during testing).\n*/\nfunction assert(condition, msg = \"no additional info\") {\n\tif (!condition) throw new Error(`AssertionError: ${msg}`);\n}\nfunction sleep(ms = 0) {\n\treturn new Promise((res) => setTimeout(res, ms));\n}\n/**\n* Ponyfill for\n* [`AbortSignal.any`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/any_static).\n*/\nfunction abortSignalsAnyPonyfill(signals) {\n\tif (typeof AbortSignal.any === \"function\") return AbortSignal.any(signals);\n\tconst ac = new AbortController();\n\tfor (const signal of signals) {\n\t\tif (signal.aborted) {\n\t\t\ttrigger();\n\t\t\tbreak;\n\t\t}\n\t\tsignal.addEventListener(\"abort\", trigger, { once: true });\n\t}\n\treturn ac.signal;\n\tfunction trigger() {\n\t\tac.abort();\n\t\tfor (const signal of signals) signal.removeEventListener(\"abort\", trigger);\n\t}\n}\n\n//#endregion\n//#region src/unstable-core-do-not-import/rpc/codes.ts\n/**\n* JSON-RPC 2.0 Error codes\n*\n* `-32000` to `-32099` are reserved for implementation-defined server-errors.\n* For tRPC we're copying the last digits of HTTP 4XX errors.\n*/\nconst TRPC_ERROR_CODES_BY_KEY = {\n\tPARSE_ERROR: -32700,\n\tBAD_REQUEST: -32600,\n\tINTERNAL_SERVER_ERROR: -32603,\n\tNOT_IMPLEMENTED: -32603,\n\tBAD_GATEWAY: -32603,\n\tSERVICE_UNAVAILABLE: -32603,\n\tGATEWAY_TIMEOUT: -32603,\n\tUNAUTHORIZED: -32001,\n\tPAYMENT_REQUIRED: -32002,\n\tFORBIDDEN: -32003,\n\tNOT_FOUND: -32004,\n\tMETHOD_NOT_SUPPORTED: -32005,\n\tTIMEOUT: -32008,\n\tCONFLICT: -32009,\n\tPRECONDITION_FAILED: -32012,\n\tPAYLOAD_TOO_LARGE: -32013,\n\tUNSUPPORTED_MEDIA_TYPE: -32015,\n\tUNPROCESSABLE_CONTENT: -32022,\n\tPRECONDITION_REQUIRED: -32028,\n\tTOO_MANY_REQUESTS: -32029,\n\tCLIENT_CLOSED_REQUEST: -32099\n};\nconst TRPC_ERROR_CODES_BY_NUMBER = {\n\t[-32700]: \"PARSE_ERROR\",\n\t[-32600]: \"BAD_REQUEST\",\n\t[-32603]: \"INTERNAL_SERVER_ERROR\",\n\t[-32001]: \"UNAUTHORIZED\",\n\t[-32002]: \"PAYMENT_REQUIRED\",\n\t[-32003]: \"FORBIDDEN\",\n\t[-32004]: \"NOT_FOUND\",\n\t[-32005]: \"METHOD_NOT_SUPPORTED\",\n\t[-32008]: \"TIMEOUT\",\n\t[-32009]: \"CONFLICT\",\n\t[-32012]: \"PRECONDITION_FAILED\",\n\t[-32013]: \"PAYLOAD_TOO_LARGE\",\n\t[-32015]: \"UNSUPPORTED_MEDIA_TYPE\",\n\t[-32022]: \"UNPROCESSABLE_CONTENT\",\n\t[-32028]: \"PRECONDITION_REQUIRED\",\n\t[-32029]: \"TOO_MANY_REQUESTS\",\n\t[-32099]: \"CLIENT_CLOSED_REQUEST\"\n};\n/**\n* tRPC error codes that are considered retryable\n* With out of the box SSE, the client will reconnect when these errors are encountered\n*/\nconst retryableRpcCodes = [\n\tTRPC_ERROR_CODES_BY_KEY.BAD_GATEWAY,\n\tTRPC_ERROR_CODES_BY_KEY.SERVICE_UNAVAILABLE,\n\tTRPC_ERROR_CODES_BY_KEY.GATEWAY_TIMEOUT,\n\tTRPC_ERROR_CODES_BY_KEY.INTERNAL_SERVER_ERROR\n];\n\n//#endregion\nexport { TRPC_ERROR_CODES_BY_KEY, TRPC_ERROR_CODES_BY_NUMBER, abortSignalsAnyPonyfill, assert, emptyObject, identity, isAsyncIterable, isFunction, isObject, mergeWithoutOverrides, noop, retryableRpcCodes, run, sleep };\n//# sourceMappingURL=codes-DagpWZLc.mjs.map","import { TRPC_ERROR_CODES_BY_KEY, TRPC_ERROR_CODES_BY_NUMBER, emptyObject, isObject } from \"./codes-DagpWZLc.mjs\";\n\n//#region rolldown:runtime\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function() {\n\treturn mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n\tif (from && typeof from === \"object\" || typeof from === \"function\") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {\n\t\tkey = keys[i];\n\t\tif (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n\t\t\tget: ((k) => from[k]).bind(null, key),\n\t\t\tenumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n\t\t});\n\t}\n\treturn to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", {\n\tvalue: mod,\n\tenumerable: true\n}) : target, mod));\n\n//#endregion\n//#region src/unstable-core-do-not-import/createProxy.ts\nconst noop = () => {};\nconst freezeIfAvailable = (obj) => {\n\tif (Object.freeze) Object.freeze(obj);\n};\nfunction createInnerProxy(callback, path, memo) {\n\tvar _memo$cacheKey;\n\tconst cacheKey = path.join(\".\");\n\t(_memo$cacheKey = memo[cacheKey]) !== null && _memo$cacheKey !== void 0 || (memo[cacheKey] = new Proxy(noop, {\n\t\tget(_obj, key) {\n\t\t\tif (typeof key !== \"string\" || key === \"then\") return void 0;\n\t\t\treturn createInnerProxy(callback, [...path, key], memo);\n\t\t},\n\t\tapply(_1, _2, args) {\n\t\t\tconst lastOfPath = path[path.length - 1];\n\t\t\tlet opts = {\n\t\t\t\targs,\n\t\t\t\tpath\n\t\t\t};\n\t\t\tif (lastOfPath === \"call\") opts = {\n\t\t\t\targs: args.length >= 2 ? [args[1]] : [],\n\t\t\t\tpath: path.slice(0, -1)\n\t\t\t};\n\t\t\telse if (lastOfPath === \"apply\") opts = {\n\t\t\t\targs: args.length >= 2 ? args[1] : [],\n\t\t\t\tpath: path.slice(0, -1)\n\t\t\t};\n\t\t\tfreezeIfAvailable(opts.args);\n\t\t\tfreezeIfAvailable(opts.path);\n\t\t\treturn callback(opts);\n\t\t}\n\t}));\n\treturn memo[cacheKey];\n}\n/**\n* Creates a proxy that calls the callback with the path and arguments\n*\n* @internal\n*/\nconst createRecursiveProxy = (callback) => createInnerProxy(callback, [], emptyObject());\n/**\n* Used in place of `new Proxy` where each handler will map 1 level deep to another value.\n*\n* @internal\n*/\nconst createFlatProxy = (callback) => {\n\treturn new Proxy(noop, { get(_obj, name) {\n\t\tif (name === \"then\") return void 0;\n\t\treturn callback(name);\n\t} });\n};\n\n//#endregion\n//#region src/unstable-core-do-not-import/http/getHTTPStatusCode.ts\nconst JSONRPC2_TO_HTTP_CODE = {\n\tPARSE_ERROR: 400,\n\tBAD_REQUEST: 400,\n\tUNAUTHORIZED: 401,\n\tPAYMENT_REQUIRED: 402,\n\tFORBIDDEN: 403,\n\tNOT_FOUND: 404,\n\tMETHOD_NOT_SUPPORTED: 405,\n\tTIMEOUT: 408,\n\tCONFLICT: 409,\n\tPRECONDITION_FAILED: 412,\n\tPAYLOAD_TOO_LARGE: 413,\n\tUNSUPPORTED_MEDIA_TYPE: 415,\n\tUNPROCESSABLE_CONTENT: 422,\n\tPRECONDITION_REQUIRED: 428,\n\tTOO_MANY_REQUESTS: 429,\n\tCLIENT_CLOSED_REQUEST: 499,\n\tINTERNAL_SERVER_ERROR: 500,\n\tNOT_IMPLEMENTED: 501,\n\tBAD_GATEWAY: 502,\n\tSERVICE_UNAVAILABLE: 503,\n\tGATEWAY_TIMEOUT: 504\n};\nconst HTTP_CODE_TO_JSONRPC2 = {\n\t400: \"BAD_REQUEST\",\n\t401: \"UNAUTHORIZED\",\n\t402: \"PAYMENT_REQUIRED\",\n\t403: \"FORBIDDEN\",\n\t404: \"NOT_FOUND\",\n\t405: \"METHOD_NOT_SUPPORTED\",\n\t408: \"TIMEOUT\",\n\t409: \"CONFLICT\",\n\t412: \"PRECONDITION_FAILED\",\n\t413: \"PAYLOAD_TOO_LARGE\",\n\t415: \"UNSUPPORTED_MEDIA_TYPE\",\n\t422: \"UNPROCESSABLE_CONTENT\",\n\t428: \"PRECONDITION_REQUIRED\",\n\t429: \"TOO_MANY_REQUESTS\",\n\t499: \"CLIENT_CLOSED_REQUEST\",\n\t500: \"INTERNAL_SERVER_ERROR\",\n\t501: \"NOT_IMPLEMENTED\",\n\t502: \"BAD_GATEWAY\",\n\t503: \"SERVICE_UNAVAILABLE\",\n\t504: \"GATEWAY_TIMEOUT\"\n};\nfunction getStatusCodeFromKey(code) {\n\tvar _JSONRPC2_TO_HTTP_COD;\n\treturn (_JSONRPC2_TO_HTTP_COD = JSONRPC2_TO_HTTP_CODE[code]) !== null && _JSONRPC2_TO_HTTP_COD !== void 0 ? _JSONRPC2_TO_HTTP_COD : 500;\n}\nfunction getStatusKeyFromCode(code) {\n\tvar _HTTP_CODE_TO_JSONRPC;\n\treturn (_HTTP_CODE_TO_JSONRPC = HTTP_CODE_TO_JSONRPC2[code]) !== null && _HTTP_CODE_TO_JSONRPC !== void 0 ? _HTTP_CODE_TO_JSONRPC : \"INTERNAL_SERVER_ERROR\";\n}\nfunction getHTTPStatusCode(json) {\n\tconst arr = Array.isArray(json) ? json : [json];\n\tconst httpStatuses = new Set(arr.map((res) => {\n\t\tif (\"error\" in res && isObject(res.error.data)) {\n\t\t\tvar _res$error$data;\n\t\t\tif (typeof ((_res$error$data = res.error.data) === null || _res$error$data === void 0 ? void 0 : _res$error$data[\"httpStatus\"]) === \"number\") return res.error.data[\"httpStatus\"];\n\t\t\tconst code = TRPC_ERROR_CODES_BY_NUMBER[res.error.code];\n\t\t\treturn getStatusCodeFromKey(code);\n\t\t}\n\t\treturn 200;\n\t}));\n\tif (httpStatuses.size !== 1) return 207;\n\tconst httpStatus = httpStatuses.values().next().value;\n\treturn httpStatus;\n}\nfunction getHTTPStatusCodeFromError(error) {\n\treturn getStatusCodeFromKey(error.code);\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/typeof.js\nvar require_typeof = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/typeof.js\"(exports, module) {\n\tfunction _typeof$2(o) {\n\t\t\"@babel/helpers - typeof\";\n\t\treturn module.exports = _typeof$2 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(o$1) {\n\t\t\treturn typeof o$1;\n\t\t} : function(o$1) {\n\t\t\treturn o$1 && \"function\" == typeof Symbol && o$1.constructor === Symbol && o$1 !== Symbol.prototype ? \"symbol\" : typeof o$1;\n\t\t}, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof$2(o);\n\t}\n\tmodule.exports = _typeof$2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPrimitive.js\nvar require_toPrimitive = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPrimitive.js\"(exports, module) {\n\tvar _typeof$1 = require_typeof()[\"default\"];\n\tfunction toPrimitive$1(t, r) {\n\t\tif (\"object\" != _typeof$1(t) || !t) return t;\n\t\tvar e = t[Symbol.toPrimitive];\n\t\tif (void 0 !== e) {\n\t\t\tvar i = e.call(t, r || \"default\");\n\t\t\tif (\"object\" != _typeof$1(i)) return i;\n\t\t\tthrow new TypeError(\"@@toPrimitive must return a primitive value.\");\n\t\t}\n\t\treturn (\"string\" === r ? String : Number)(t);\n\t}\n\tmodule.exports = toPrimitive$1, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPropertyKey.js\nvar require_toPropertyKey = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPropertyKey.js\"(exports, module) {\n\tvar _typeof = require_typeof()[\"default\"];\n\tvar toPrimitive = require_toPrimitive();\n\tfunction toPropertyKey$1(t) {\n\t\tvar i = toPrimitive(t, \"string\");\n\t\treturn \"symbol\" == _typeof(i) ? i : i + \"\";\n\t}\n\tmodule.exports = toPropertyKey$1, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/defineProperty.js\nvar require_defineProperty = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/defineProperty.js\"(exports, module) {\n\tvar toPropertyKey = require_toPropertyKey();\n\tfunction _defineProperty(e, r, t) {\n\t\treturn (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n\t\t\tvalue: t,\n\t\t\tenumerable: !0,\n\t\t\tconfigurable: !0,\n\t\t\twritable: !0\n\t\t}) : e[r] = t, e;\n\t}\n\tmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectSpread2.js\nvar require_objectSpread2 = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectSpread2.js\"(exports, module) {\n\tvar defineProperty = require_defineProperty();\n\tfunction ownKeys(e, r) {\n\t\tvar t = Object.keys(e);\n\t\tif (Object.getOwnPropertySymbols) {\n\t\t\tvar o = Object.getOwnPropertySymbols(e);\n\t\t\tr && (o = o.filter(function(r$1) {\n\t\t\t\treturn Object.getOwnPropertyDescriptor(e, r$1).enumerable;\n\t\t\t})), t.push.apply(t, o);\n\t\t}\n\t\treturn t;\n\t}\n\tfunction _objectSpread2(e) {\n\t\tfor (var r = 1; r < arguments.length; r++) {\n\t\t\tvar t = null != arguments[r] ? arguments[r] : {};\n\t\t\tr % 2 ? ownKeys(Object(t), !0).forEach(function(r$1) {\n\t\t\t\tdefineProperty(e, r$1, t[r$1]);\n\t\t\t}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r$1) {\n\t\t\t\tObject.defineProperty(e, r$1, Object.getOwnPropertyDescriptor(t, r$1));\n\t\t\t});\n\t\t}\n\t\treturn e;\n\t}\n\tmodule.exports = _objectSpread2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region src/unstable-core-do-not-import/error/getErrorShape.ts\nvar import_objectSpread2 = __toESM(require_objectSpread2(), 1);\n/**\n* @internal\n*/\nfunction getErrorShape(opts) {\n\tconst { path, error, config } = opts;\n\tconst { code } = opts.error;\n\tconst shape = {\n\t\tmessage: error.message,\n\t\tcode: TRPC_ERROR_CODES_BY_KEY[code],\n\t\tdata: {\n\t\t\tcode,\n\t\t\thttpStatus: getHTTPStatusCodeFromError(error)\n\t\t}\n\t};\n\tif (config.isDev && typeof opts.error.stack === \"string\") shape.data.stack = opts.error.stack;\n\tif (typeof path === \"string\") shape.data.path = path;\n\treturn config.errorFormatter((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, { shape }));\n}\n\n//#endregion\nexport { HTTP_CODE_TO_JSONRPC2, JSONRPC2_TO_HTTP_CODE, __commonJS, __toESM, createFlatProxy, createRecursiveProxy, getErrorShape, getHTTPStatusCode, getHTTPStatusCodeFromError, getStatusCodeFromKey, getStatusKeyFromCode, require_defineProperty, require_objectSpread2 };\n//# sourceMappingURL=getErrorShape-vC8mUXJD.mjs.map","import { __toESM, createRecursiveProxy, require_defineProperty, require_objectSpread2 } from \"./getErrorShape-vC8mUXJD.mjs\";\nimport { emptyObject, isFunction, isObject, mergeWithoutOverrides } from \"./codes-DagpWZLc.mjs\";\n\n//#region src/unstable-core-do-not-import/error/formatter.ts\nconst defaultFormatter = ({ shape }) => {\n\treturn shape;\n};\n\n//#endregion\n//#region src/unstable-core-do-not-import/error/TRPCError.ts\nvar import_defineProperty = __toESM(require_defineProperty(), 1);\nvar UnknownCauseError = class extends Error {};\nfunction getCauseFromUnknown(cause) {\n\tif (cause instanceof Error) return cause;\n\tconst type = typeof cause;\n\tif (type === \"undefined\" || type === \"function\" || cause === null) return void 0;\n\tif (type !== \"object\") return new Error(String(cause));\n\tif (isObject(cause)) return Object.assign(new UnknownCauseError(), cause);\n\treturn void 0;\n}\nfunction getTRPCErrorFromUnknown(cause) {\n\tif (cause instanceof TRPCError) return cause;\n\tif (cause instanceof Error && cause.name === \"TRPCError\") return cause;\n\tconst trpcError = new TRPCError({\n\t\tcode: \"INTERNAL_SERVER_ERROR\",\n\t\tcause\n\t});\n\tif (cause instanceof Error && cause.stack) trpcError.stack = cause.stack;\n\treturn trpcError;\n}\nvar TRPCError = class extends Error {\n\tconstructor(opts) {\n\t\tvar _ref, _opts$message, _this$cause;\n\t\tconst cause = getCauseFromUnknown(opts.cause);\n\t\tconst message = (_ref = (_opts$message = opts.message) !== null && _opts$message !== void 0 ? _opts$message : cause === null || cause === void 0 ? void 0 : cause.message) !== null && _ref !== void 0 ? _ref : opts.code;\n\t\tsuper(message, { cause });\n\t\t(0, import_defineProperty.default)(this, \"cause\", void 0);\n\t\t(0, import_defineProperty.default)(this, \"code\", void 0);\n\t\tthis.code = opts.code;\n\t\tthis.name = \"TRPCError\";\n\t\t(_this$cause = this.cause) !== null && _this$cause !== void 0 || (this.cause = cause);\n\t}\n};\n\n//#endregion\n//#region src/unstable-core-do-not-import/transformer.ts\nvar import_objectSpread2$1 = __toESM(require_objectSpread2(), 1);\n/**\n* @internal\n*/\nfunction getDataTransformer(transformer) {\n\tif (\"input\" in transformer) return transformer;\n\treturn {\n\t\tinput: transformer,\n\t\toutput: transformer\n\t};\n}\n/**\n* @internal\n*/\nconst defaultTransformer = {\n\tinput: {\n\t\tserialize: (obj) => obj,\n\t\tdeserialize: (obj) => obj\n\t},\n\toutput: {\n\t\tserialize: (obj) => obj,\n\t\tdeserialize: (obj) => obj\n\t}\n};\nfunction transformTRPCResponseItem(config, item) {\n\tif (\"error\" in item) return (0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, item), {}, { error: config.transformer.output.serialize(item.error) });\n\tif (\"data\" in item.result) return (0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, item), {}, { result: (0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, item.result), {}, { data: config.transformer.output.serialize(item.result.data) }) });\n\treturn item;\n}\n/**\n* Takes a unserialized `TRPCResponse` and serializes it with the router's transformers\n**/\nfunction transformTRPCResponse(config, itemOrItems) {\n\treturn Array.isArray(itemOrItems) ? itemOrItems.map((item) => transformTRPCResponseItem(config, item)) : transformTRPCResponseItem(config, itemOrItems);\n}\n/** @internal */\nfunction transformResultInner(response, transformer) {\n\tif (\"error\" in response) {\n\t\tconst error = transformer.deserialize(response.error);\n\t\treturn {\n\t\t\tok: false,\n\t\t\terror: (0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, response), {}, { error })\n\t\t};\n\t}\n\tconst result = (0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, response.result), (!response.result.type || response.result.type === \"data\") && {\n\t\ttype: \"data\",\n\t\tdata: transformer.deserialize(response.result.data)\n\t});\n\treturn {\n\t\tok: true,\n\t\tresult\n\t};\n}\nvar TransformResultError = class extends Error {\n\tconstructor() {\n\t\tsuper(\"Unable to transform response from server\");\n\t}\n};\n/**\n* Transforms and validates that the result is a valid TRPCResponse\n* @internal\n*/\nfunction transformResult(response, transformer) {\n\tlet result;\n\ttry {\n\t\tresult = transformResultInner(response, transformer);\n\t} catch (_unused) {\n\t\tthrow new TransformResultError();\n\t}\n\tif (!result.ok && (!isObject(result.error.error) || typeof result.error.error[\"code\"] !== \"number\")) throw new TransformResultError();\n\tif (result.ok && !isObject(result.result)) throw new TransformResultError();\n\treturn result;\n}\n\n//#endregion\n//#region src/unstable-core-do-not-import/router.ts\nvar import_objectSpread2 = __toESM(require_objectSpread2(), 1);\n/**\n* @internal\n*/\nconst lazyMarker = \"lazyMarker\";\nfunction once(fn) {\n\tconst uncalled = Symbol();\n\tlet result = uncalled;\n\treturn () => {\n\t\tif (result === uncalled) result = fn();\n\t\treturn result;\n\t};\n}\n/**\n* Lazy load a router\n* @see https://trpc.io/docs/server/merging-routers#lazy-load\n*/\nfunction lazy(importRouter) {\n\tasync function resolve() {\n\t\tconst mod = await importRouter();\n\t\tif (isRouter(mod)) return mod;\n\t\tconst routers = Object.values(mod);\n\t\tif (routers.length !== 1 || !isRouter(routers[0])) throw new Error(\"Invalid router module - either define exactly 1 export or return the router directly.\\nExample: `lazy(() => import('./slow.js').then((m) => m.slowRouter))`\");\n\t\treturn routers[0];\n\t}\n\tresolve[lazyMarker] = true;\n\treturn resolve;\n}\nfunction isLazy(input) {\n\treturn typeof input === \"function\" && lazyMarker in input;\n}\nfunction isRouter(value) {\n\treturn isObject(value) && isObject(value[\"_def\"]) && \"router\" in value[\"_def\"];\n}\nconst emptyRouter = {\n\t_ctx: null,\n\t_errorShape: null,\n\t_meta: null,\n\tqueries: {},\n\tmutations: {},\n\tsubscriptions: {},\n\terrorFormatter: defaultFormatter,\n\ttransformer: defaultTransformer\n};\n/**\n* Reserved words that can't be used as router or procedure names\n*/\nconst reservedWords = [\n\t\"then\",\n\t\"call\",\n\t\"apply\"\n];\n/**\n* @internal\n*/\nfunction createRouterFactory(config) {\n\tfunction createRouterInner(input) {\n\t\tconst reservedWordsUsed = new Set(Object.keys(input).filter((v) => reservedWords.includes(v)));\n\t\tif (reservedWordsUsed.size > 0) throw new Error(\"Reserved words used in `router({})` call: \" + Array.from(reservedWordsUsed).join(\", \"));\n\t\tconst procedures = emptyObject();\n\t\tconst lazy$1 = emptyObject();\n\t\tfunction createLazyLoader(opts) {\n\t\t\treturn {\n\t\t\t\tref: opts.ref,\n\t\t\t\tload: once(async () => {\n\t\t\t\t\tconst router$1 = await opts.ref();\n\t\t\t\t\tconst lazyPath = [...opts.path, opts.key];\n\t\t\t\t\tconst lazyKey = lazyPath.join(\".\");\n\t\t\t\t\topts.aggregate[opts.key] = step(router$1._def.record, lazyPath);\n\t\t\t\t\tdelete lazy$1[lazyKey];\n\t\t\t\t\tfor (const [nestedKey, nestedItem] of Object.entries(router$1._def.lazy)) {\n\t\t\t\t\t\tconst nestedRouterKey = [...lazyPath, nestedKey].join(\".\");\n\t\t\t\t\t\tlazy$1[nestedRouterKey] = createLazyLoader({\n\t\t\t\t\t\t\tref: nestedItem.ref,\n\t\t\t\t\t\t\tpath: lazyPath,\n\t\t\t\t\t\t\tkey: nestedKey,\n\t\t\t\t\t\t\taggregate: opts.aggregate[opts.key]\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t};\n\t\t}\n\t\tfunction step(from, path = []) {\n\t\t\tconst aggregate = emptyObject();\n\t\t\tfor (const [key, item] of Object.entries(from !== null && from !== void 0 ? from : {})) {\n\t\t\t\tif (isLazy(item)) {\n\t\t\t\t\tlazy$1[[...path, key].join(\".\")] = createLazyLoader({\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\tref: item,\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\taggregate\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (isRouter(item)) {\n\t\t\t\t\taggregate[key] = step(item._def.record, [...path, key]);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (!isProcedure(item)) {\n\t\t\t\t\taggregate[key] = step(item, [...path, key]);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst newPath = [...path, key].join(\".\");\n\t\t\t\tif (procedures[newPath]) throw new Error(`Duplicate key: ${newPath}`);\n\t\t\t\tprocedures[newPath] = item;\n\t\t\t\taggregate[key] = item;\n\t\t\t}\n\t\t\treturn aggregate;\n\t\t}\n\t\tconst record = step(input);\n\t\tconst _def = (0, import_objectSpread2.default)((0, import_objectSpread2.default)({\n\t\t\t_config: config,\n\t\t\trouter: true,\n\t\t\tprocedures,\n\t\t\tlazy: lazy$1\n\t\t}, emptyRouter), {}, { record });\n\t\tconst router = (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, record), {}, {\n\t\t\t_def,\n\t\t\tcreateCaller: createCallerFactory()({ _def })\n\t\t});\n\t\treturn router;\n\t}\n\treturn createRouterInner;\n}\nfunction isProcedure(procedureOrRouter) {\n\treturn typeof procedureOrRouter === \"function\";\n}\n/**\n* @internal\n*/\nasync function getProcedureAtPath(router, path) {\n\tconst { _def } = router;\n\tlet procedure = _def.procedures[path];\n\twhile (!procedure) {\n\t\tconst key = Object.keys(_def.lazy).find((key$1) => path.startsWith(key$1));\n\t\tif (!key) return null;\n\t\tconst lazyRouter = _def.lazy[key];\n\t\tawait lazyRouter.load();\n\t\tprocedure = _def.procedures[path];\n\t}\n\treturn procedure;\n}\n/**\n* @internal\n*/\nasync function callProcedure(opts) {\n\tconst { type, path } = opts;\n\tconst proc = await getProcedureAtPath(opts.router, path);\n\tif (!proc || !isProcedure(proc) || proc._def.type !== type && !opts.allowMethodOverride) throw new TRPCError({\n\t\tcode: \"NOT_FOUND\",\n\t\tmessage: `No \"${type}\"-procedure on path \"${path}\"`\n\t});\n\t/* istanbul ignore if -- @preserve */\n\tif (proc._def.type !== type && opts.allowMethodOverride && proc._def.type === \"subscription\") throw new TRPCError({\n\t\tcode: \"METHOD_NOT_SUPPORTED\",\n\t\tmessage: `Method override is not supported for subscriptions`\n\t});\n\treturn proc(opts);\n}\nfunction createCallerFactory() {\n\treturn function createCallerInner(router) {\n\t\tconst { _def } = router;\n\t\treturn function createCaller(ctxOrCallback, opts) {\n\t\t\treturn createRecursiveProxy(async (innerOpts) => {\n\t\t\t\tconst { path, args } = innerOpts;\n\t\t\t\tconst fullPath = path.join(\".\");\n\t\t\t\tif (path.length === 1 && path[0] === \"_def\") return _def;\n\t\t\t\tconst procedure = await getProcedureAtPath(router, fullPath);\n\t\t\t\tlet ctx = void 0;\n\t\t\t\ttry {\n\t\t\t\t\tif (!procedure) throw new TRPCError({\n\t\t\t\t\t\tcode: \"NOT_FOUND\",\n\t\t\t\t\t\tmessage: `No procedure found on path \"${path}\"`\n\t\t\t\t\t});\n\t\t\t\t\tctx = isFunction(ctxOrCallback) ? await Promise.resolve(ctxOrCallback()) : ctxOrCallback;\n\t\t\t\t\treturn await procedure({\n\t\t\t\t\t\tpath: fullPath,\n\t\t\t\t\t\tgetRawInput: async () => args[0],\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\ttype: procedure._def.type,\n\t\t\t\t\t\tsignal: opts === null || opts === void 0 ? void 0 : opts.signal,\n\t\t\t\t\t\tbatchIndex: 0\n\t\t\t\t\t});\n\t\t\t\t} catch (cause) {\n\t\t\t\t\tvar _opts$onError, _procedure$_def$type;\n\t\t\t\t\topts === null || opts === void 0 || (_opts$onError = opts.onError) === null || _opts$onError === void 0 || _opts$onError.call(opts, {\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\terror: getTRPCErrorFromUnknown(cause),\n\t\t\t\t\t\tinput: args[0],\n\t\t\t\t\t\tpath: fullPath,\n\t\t\t\t\t\ttype: (_procedure$_def$type = procedure === null || procedure === void 0 ? void 0 : procedure._def.type) !== null && _procedure$_def$type !== void 0 ? _procedure$_def$type : \"unknown\"\n\t\t\t\t\t});\n\t\t\t\t\tthrow cause;\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t};\n}\nfunction mergeRouters(...routerList) {\n\tvar _routerList$, _routerList$2;\n\tconst record = mergeWithoutOverrides({}, ...routerList.map((r) => r._def.record));\n\tconst errorFormatter = routerList.reduce((currentErrorFormatter, nextRouter) => {\n\t\tif (nextRouter._def._config.errorFormatter && nextRouter._def._config.errorFormatter !== defaultFormatter) {\n\t\t\tif (currentErrorFormatter !== defaultFormatter && currentErrorFormatter !== nextRouter._def._config.errorFormatter) throw new Error(\"You seem to have several error formatters\");\n\t\t\treturn nextRouter._def._config.errorFormatter;\n\t\t}\n\t\treturn currentErrorFormatter;\n\t}, defaultFormatter);\n\tconst transformer = routerList.reduce((prev, current) => {\n\t\tif (current._def._config.transformer && current._def._config.transformer !== defaultTransformer) {\n\t\t\tif (prev !== defaultTransformer && prev !== current._def._config.transformer) throw new Error(\"You seem to have several transformers\");\n\t\t\treturn current._def._config.transformer;\n\t\t}\n\t\treturn prev;\n\t}, defaultTransformer);\n\tconst router = createRouterFactory({\n\t\terrorFormatter,\n\t\ttransformer,\n\t\tisDev: routerList.every((r) => r._def._config.isDev),\n\t\tallowOutsideOfServer: routerList.every((r) => r._def._config.allowOutsideOfServer),\n\t\tisServer: routerList.every((r) => r._def._config.isServer),\n\t\t$types: (_routerList$ = routerList[0]) === null || _routerList$ === void 0 ? void 0 : _routerList$._def._config.$types,\n\t\tsse: (_routerList$2 = routerList[0]) === null || _routerList$2 === void 0 ? void 0 : _routerList$2._def._config.sse\n\t})(record);\n\treturn router;\n}\n\n//#endregion\n//#region src/unstable-core-do-not-import/stream/tracked.ts\nconst trackedSymbol = Symbol();\n/**\n* Produce a typed server-sent event message\n* @deprecated use `tracked(id, data)` instead\n*/\nfunction sse(event) {\n\treturn tracked(event.id, event.data);\n}\nfunction isTrackedEnvelope(value) {\n\treturn Array.isArray(value) && value[2] === trackedSymbol;\n}\n/**\n* Automatically track an event so that it can be resumed from a given id if the connection is lost\n*/\nfunction tracked(id, data) {\n\tif (id === \"\") throw new Error(\"`id` must not be an empty string as empty string is the same as not setting the id at all\");\n\treturn [\n\t\tid,\n\t\tdata,\n\t\ttrackedSymbol\n\t];\n}\n\n//#endregion\nexport { TRPCError, callProcedure, createCallerFactory, createRouterFactory, defaultFormatter, defaultTransformer, getCauseFromUnknown, getDataTransformer, getProcedureAtPath, getTRPCErrorFromUnknown, isTrackedEnvelope, lazy, mergeRouters, sse, tracked, transformResult, transformTRPCResponse };\n//# sourceMappingURL=tracked-Bjtgv3wJ.mjs.map","import { __commonJS, __toESM, getErrorShape, getHTTPStatusCode, require_defineProperty, require_objectSpread2 } from \"./getErrorShape-vC8mUXJD.mjs\";\nimport { abortSignalsAnyPonyfill, emptyObject, identity, isAsyncIterable, isFunction, isObject, run } from \"./codes-DagpWZLc.mjs\";\nimport { TRPCError, getProcedureAtPath, getTRPCErrorFromUnknown, isTrackedEnvelope, transformTRPCResponse } from \"./tracked-Bjtgv3wJ.mjs\";\nimport { isObservable, observableToAsyncIterable } from \"./observable-UMO3vUa_.mjs\";\n\n//#region src/unstable-core-do-not-import/http/parseConnectionParams.ts\nfunction parseConnectionParamsFromUnknown(parsed) {\n\ttry {\n\t\tif (parsed === null) return null;\n\t\tif (!isObject(parsed)) throw new Error(\"Expected object\");\n\t\tconst nonStringValues = Object.entries(parsed).filter(([_key, value]) => typeof value !== \"string\");\n\t\tif (nonStringValues.length > 0) throw new Error(`Expected connectionParams to be string values. Got ${nonStringValues.map(([key, value]) => `${key}: ${typeof value}`).join(\", \")}`);\n\t\treturn parsed;\n\t} catch (cause) {\n\t\tthrow new TRPCError({\n\t\t\tcode: \"PARSE_ERROR\",\n\t\t\tmessage: \"Invalid connection params shape\",\n\t\t\tcause\n\t\t});\n\t}\n}\nfunction parseConnectionParamsFromString(str) {\n\tlet parsed;\n\ttry {\n\t\tparsed = JSON.parse(str);\n\t} catch (cause) {\n\t\tthrow new TRPCError({\n\t\t\tcode: \"PARSE_ERROR\",\n\t\t\tmessage: \"Not JSON-parsable query params\",\n\t\t\tcause\n\t\t});\n\t}\n\treturn parseConnectionParamsFromUnknown(parsed);\n}\n\n//#endregion\n//#region src/unstable-core-do-not-import/http/contentType.ts\nvar import_objectSpread2$1 = __toESM(require_objectSpread2(), 1);\n/**\n* Memoize a function that takes no arguments\n* @internal\n*/\nfunction memo(fn) {\n\tlet promise = null;\n\tconst sym = Symbol.for(\"@trpc/server/http/memo\");\n\tlet value = sym;\n\treturn {\n\t\tread: async () => {\n\t\t\tvar _promise;\n\t\t\tif (value !== sym) return value;\n\t\t\t(_promise = promise) !== null && _promise !== void 0 || (promise = fn().catch((cause) => {\n\t\t\t\tif (cause instanceof TRPCError) throw cause;\n\t\t\t\tthrow new TRPCError({\n\t\t\t\t\tcode: \"BAD_REQUEST\",\n\t\t\t\t\tmessage: cause instanceof Error ? cause.message : \"Invalid input\",\n\t\t\t\t\tcause\n\t\t\t\t});\n\t\t\t}));\n\t\t\tvalue = await promise;\n\t\t\tpromise = null;\n\t\t\treturn value;\n\t\t},\n\t\tresult: () => {\n\t\t\treturn value !== sym ? value : void 0;\n\t\t}\n\t};\n}\nconst jsonContentTypeHandler = {\n\tisMatch(req) {\n\t\tvar _req$headers$get;\n\t\treturn !!((_req$headers$get = req.headers.get(\"content-type\")) === null || _req$headers$get === void 0 ? void 0 : _req$headers$get.startsWith(\"application/json\"));\n\t},\n\tasync parse(opts) {\n\t\tvar _types$values$next$va;\n\t\tconst { req } = opts;\n\t\tconst isBatchCall = opts.searchParams.get(\"batch\") === \"1\";\n\t\tconst paths = isBatchCall ? opts.path.split(\",\") : [opts.path];\n\t\tconst getInputs = memo(async () => {\n\t\t\tlet inputs = void 0;\n\t\t\tif (req.method === \"GET\") {\n\t\t\t\tconst queryInput = opts.searchParams.get(\"input\");\n\t\t\t\tif (queryInput) inputs = JSON.parse(queryInput);\n\t\t\t} else inputs = await req.json();\n\t\t\tif (inputs === void 0) return emptyObject();\n\t\t\tif (!isBatchCall) {\n\t\t\t\tconst result = emptyObject();\n\t\t\t\tresult[0] = opts.router._def._config.transformer.input.deserialize(inputs);\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tif (!isObject(inputs)) throw new TRPCError({\n\t\t\t\tcode: \"BAD_REQUEST\",\n\t\t\t\tmessage: \"\\\"input\\\" needs to be an object when doing a batch call\"\n\t\t\t});\n\t\t\tconst acc = emptyObject();\n\t\t\tfor (const index of paths.keys()) {\n\t\t\t\tconst input = inputs[index];\n\t\t\t\tif (input !== void 0) acc[index] = opts.router._def._config.transformer.input.deserialize(input);\n\t\t\t}\n\t\t\treturn acc;\n\t\t});\n\t\tconst calls = await Promise.all(paths.map(async (path, index) => {\n\t\t\tconst procedure = await getProcedureAtPath(opts.router, path);\n\t\t\treturn {\n\t\t\t\tbatchIndex: index,\n\t\t\t\tpath,\n\t\t\t\tprocedure,\n\t\t\t\tgetRawInput: async () => {\n\t\t\t\t\tconst inputs = await getInputs.read();\n\t\t\t\t\tlet input = inputs[index];\n\t\t\t\t\tif ((procedure === null || procedure === void 0 ? void 0 : procedure._def.type) === \"subscription\") {\n\t\t\t\t\t\tvar _ref, _opts$headers$get;\n\t\t\t\t\t\tconst lastEventId = (_ref = (_opts$headers$get = opts.headers.get(\"last-event-id\")) !== null && _opts$headers$get !== void 0 ? _opts$headers$get : opts.searchParams.get(\"lastEventId\")) !== null && _ref !== void 0 ? _ref : opts.searchParams.get(\"Last-Event-Id\");\n\t\t\t\t\t\tif (lastEventId) if (isObject(input)) input = (0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, input), {}, { lastEventId });\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar _input;\n\t\t\t\t\t\t\t(_input = input) !== null && _input !== void 0 || (input = { lastEventId });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn input;\n\t\t\t\t},\n\t\t\t\tresult: () => {\n\t\t\t\t\tvar _getInputs$result;\n\t\t\t\t\treturn (_getInputs$result = getInputs.result()) === null || _getInputs$result === void 0 ? void 0 : _getInputs$result[index];\n\t\t\t\t}\n\t\t\t};\n\t\t}));\n\t\tconst types = new Set(calls.map((call) => {\n\t\t\tvar _call$procedure;\n\t\t\treturn (_call$procedure = call.procedure) === null || _call$procedure === void 0 ? void 0 : _call$procedure._def.type;\n\t\t}).filter(Boolean));\n\t\t/* istanbul ignore if -- @preserve */\n\t\tif (types.size > 1) throw new TRPCError({\n\t\t\tcode: \"BAD_REQUEST\",\n\t\t\tmessage: `Cannot mix procedure types in call: ${Array.from(types).join(\", \")}`\n\t\t});\n\t\tconst type = (_types$values$next$va = types.values().next().value) !== null && _types$values$next$va !== void 0 ? _types$values$next$va : \"unknown\";\n\t\tconst connectionParamsStr = opts.searchParams.get(\"connectionParams\");\n\t\tconst info = {\n\t\t\tisBatchCall,\n\t\t\taccept: req.headers.get(\"trpc-accept\"),\n\t\t\tcalls,\n\t\t\ttype,\n\t\t\tconnectionParams: connectionParamsStr === null ? null : parseConnectionParamsFromString(connectionParamsStr),\n\t\t\tsignal: req.signal,\n\t\t\turl: opts.url\n\t\t};\n\t\treturn info;\n\t}\n};\nconst formDataContentTypeHandler = {\n\tisMatch(req) {\n\t\tvar _req$headers$get2;\n\t\treturn !!((_req$headers$get2 = req.headers.get(\"content-type\")) === null || _req$headers$get2 === void 0 ? void 0 : _req$headers$get2.startsWith(\"multipart/form-data\"));\n\t},\n\tasync parse(opts) {\n\t\tconst { req } = opts;\n\t\tif (req.method !== \"POST\") throw new TRPCError({\n\t\t\tcode: \"METHOD_NOT_SUPPORTED\",\n\t\t\tmessage: \"Only POST requests are supported for multipart/form-data requests\"\n\t\t});\n\t\tconst getInputs = memo(async () => {\n\t\t\tconst fd = await req.formData();\n\t\t\treturn fd;\n\t\t});\n\t\tconst procedure = await getProcedureAtPath(opts.router, opts.path);\n\t\treturn {\n\t\t\taccept: null,\n\t\t\tcalls: [{\n\t\t\t\tbatchIndex: 0,\n\t\t\t\tpath: opts.path,\n\t\t\t\tgetRawInput: getInputs.read,\n\t\t\t\tresult: getInputs.result,\n\t\t\t\tprocedure\n\t\t\t}],\n\t\t\tisBatchCall: false,\n\t\t\ttype: \"mutation\",\n\t\t\tconnectionParams: null,\n\t\t\tsignal: req.signal,\n\t\t\turl: opts.url\n\t\t};\n\t}\n};\nconst octetStreamContentTypeHandler = {\n\tisMatch(req) {\n\t\tvar _req$headers$get3;\n\t\treturn !!((_req$headers$get3 = req.headers.get(\"content-type\")) === null || _req$headers$get3 === void 0 ? void 0 : _req$headers$get3.startsWith(\"application/octet-stream\"));\n\t},\n\tasync parse(opts) {\n\t\tconst { req } = opts;\n\t\tif (req.method !== \"POST\") throw new TRPCError({\n\t\t\tcode: \"METHOD_NOT_SUPPORTED\",\n\t\t\tmessage: \"Only POST requests are supported for application/octet-stream requests\"\n\t\t});\n\t\tconst getInputs = memo(async () => {\n\t\t\treturn req.body;\n\t\t});\n\t\treturn {\n\t\t\tcalls: [{\n\t\t\t\tbatchIndex: 0,\n\t\t\t\tpath: opts.path,\n\t\t\t\tgetRawInput: getInputs.read,\n\t\t\t\tresult: getInputs.result,\n\t\t\t\tprocedure: await getProcedureAtPath(opts.router, opts.path)\n\t\t\t}],\n\t\t\tisBatchCall: false,\n\t\t\taccept: null,\n\t\t\ttype: \"mutation\",\n\t\t\tconnectionParams: null,\n\t\t\tsignal: req.signal,\n\t\t\turl: opts.url\n\t\t};\n\t}\n};\nconst handlers = [\n\tjsonContentTypeHandler,\n\tformDataContentTypeHandler,\n\toctetStreamContentTypeHandler\n];\nfunction getContentTypeHandler(req) {\n\tconst handler = handlers.find((handler$1) => handler$1.isMatch(req));\n\tif (handler) return handler;\n\tif (!handler && req.method === \"GET\") return jsonContentTypeHandler;\n\tthrow new TRPCError({\n\t\tcode: \"UNSUPPORTED_MEDIA_TYPE\",\n\t\tmessage: req.headers.has(\"content-type\") ? `Unsupported content-type \"${req.headers.get(\"content-type\")}` : \"Missing content-type header\"\n\t});\n}\nasync function getRequestInfo(opts) {\n\tconst handler = getContentTypeHandler(opts.req);\n\treturn await handler.parse(opts);\n}\n\n//#endregion\n//#region src/unstable-core-do-not-import/http/abortError.ts\nfunction isAbortError(error) {\n\treturn isObject(error) && error[\"name\"] === \"AbortError\";\n}\nfunction throwAbortError(message = \"AbortError\") {\n\tthrow new DOMException(message, \"AbortError\");\n}\n\n//#endregion\n//#region src/vendor/is-plain-object.ts\n/*!\n* is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n*\n* Copyright (c) 2014-2017, Jon Schlinkert.\n* Released under the MIT License.\n*/\nfunction isObject$1(o) {\n\treturn Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction isPlainObject(o) {\n\tvar ctor, prot;\n\tif (isObject$1(o) === false) return false;\n\tctor = o.constructor;\n\tif (ctor === void 0) return true;\n\tprot = ctor.prototype;\n\tif (isObject$1(prot) === false) return false;\n\tif (prot.hasOwnProperty(\"isPrototypeOf\") === false) return false;\n\treturn true;\n}\n\n//#endregion\n//#region src/vendor/unpromise/unpromise.ts\nvar import_defineProperty = __toESM(require_defineProperty(), 1);\nlet _Symbol$toStringTag;\n/** Memory safe (weakmapped) cache of the ProxyPromise for each Promise,\n* which is retained for the lifetime of the original Promise.\n*/\nconst subscribableCache = /* @__PURE__ */ new WeakMap();\n/** A NOOP function allowing a consistent interface for settled\n* SubscribedPromises (settled promises are not subscribed - they resolve\n* immediately). */\nconst NOOP = () => {};\n_Symbol$toStringTag = Symbol.toStringTag;\n/**\n* Every `Promise<T>` can be shadowed by a single `ProxyPromise<T>`. It is\n* created once, cached and reused throughout the lifetime of the Promise. Get a\n* Promise's ProxyPromise using `Unpromise.proxy(promise)`.\n*\n* The `ProxyPromise<T>` attaches handlers to the original `Promise<T>`\n* `.then()` and `.catch()` just once. Promises derived from it use a\n* subscription- (and unsubscription-) based mechanism that monitors these\n* handlers.\n*\n* Every time you call `.subscribe()`, `.then()` `.catch()` or `.finally()` on a\n* `ProxyPromise<T>` it returns a `SubscribedPromise<T>` having an additional\n* `unsubscribe()` method. Calling `unsubscribe()` detaches reference chains\n* from the original, potentially long-lived Promise, eliminating memory leaks.\n*\n* This approach can eliminate the memory leaks that otherwise come about from\n* repeated `race()` or `any()` calls invoking `.then()` and `.catch()` multiple\n* times on the same long-lived native Promise (subscriptions which can never be\n* cleaned up).\n*\n* `Unpromise.race(promises)` is a reference implementation of `Promise.race`\n* avoiding memory leaks when using long-lived unsettled Promises.\n*\n* `Unpromise.any(promises)` is a reference implementation of `Promise.any`\n* avoiding memory leaks when using long-lived unsettled Promises.\n*\n* `Unpromise.resolve(promise)` returns an ephemeral `SubscribedPromise<T>` for\n* any given `Promise<T>` facilitating arbitrary async/await patterns. Behind\n* the scenes, `resolve` is implemented simply as\n* `Unpromise.proxy(promise).subscribe()`. Don't forget to call `.unsubscribe()`\n* to tidy up!\n*\n*/\nvar Unpromise = class Unpromise {\n\tconstructor(arg) {\n\t\t(0, import_defineProperty.default)(this, \"promise\", void 0);\n\t\t(0, import_defineProperty.default)(this, \"subscribers\", []);\n\t\t(0, import_defineProperty.default)(this, \"settlement\", null);\n\t\t(0, import_defineProperty.default)(this, _Symbol$toStringTag, \"Unpromise\");\n\t\tif (typeof arg === \"function\") this.promise = new Promise(arg);\n\t\telse this.promise = arg;\n\t\tconst thenReturn = this.promise.then((value) => {\n\t\t\tconst { subscribers } = this;\n\t\t\tthis.subscribers = null;\n\t\t\tthis.settlement = {\n\t\t\t\tstatus: \"fulfilled\",\n\t\t\t\tvalue\n\t\t\t};\n\t\t\tsubscribers === null || subscribers === void 0 || subscribers.forEach(({ resolve }) => {\n\t\t\t\tresolve(value);\n\t\t\t});\n\t\t});\n\t\tif (\"catch\" in thenReturn) thenReturn.catch((reason) => {\n\t\t\tconst { subscribers } = this;\n\t\t\tthis.subscribers = null;\n\t\t\tthis.settlement = {\n\t\t\t\tstatus: \"rejected\",\n\t\t\t\treason\n\t\t\t};\n\t\t\tsubscribers === null || subscribers === void 0 || subscribers.forEach(({ reject }) => {\n\t\t\t\treject(reason);\n\t\t\t});\n\t\t});\n\t}\n\t/** Create a promise that mitigates uncontrolled subscription to a long-lived\n\t* Promise via .then() and .catch() - otherwise a source of memory leaks.\n\t*\n\t* The returned promise has an `unsubscribe()` method which can be called when\n\t* the Promise is no longer being tracked by application logic, and which\n\t* ensures that there is no reference chain from the original promise to the\n\t* new one, and therefore no memory leak.\n\t*\n\t* If original promise has not yet settled, this adds a new unique promise\n\t* that listens to then/catch events, along with an `unsubscribe()` method to\n\t* detach it.\n\t*\n\t* If original promise has settled, then creates a new Promise.resolve() or\n\t* Promise.reject() and provided unsubscribe is a noop.\n\t*\n\t* If you call `unsubscribe()` before the returned Promise has settled, it\n\t* will never settle.\n\t*/\n\tsubscribe() {\n\t\tlet promise;\n\t\tlet unsubscribe;\n\t\tconst { settlement } = this;\n\t\tif (settlement === null) {\n\t\t\tif (this.subscribers === null) throw new Error(\"Unpromise settled but still has subscribers\");\n\t\t\tconst subscriber = withResolvers();\n\t\t\tthis.subscribers = listWithMember(this.subscribers, subscriber);\n\t\t\tpromise = subscriber.promise;\n\t\t\tunsubscribe = () => {\n\t\t\t\tif (this.subscribers !== null) this.subscribers = listWithoutMember(this.subscribers, subscriber);\n\t\t\t};\n\t\t} else {\n\t\t\tconst { status } = settlement;\n\t\t\tif (status === \"fulfilled\") promise = Promise.resolve(settlement.value);\n\t\t\telse promise = Promise.reject(settlement.reason);\n\t\t\tunsubscribe = NOOP;\n\t\t}\n\t\treturn Object.assign(promise, { unsubscribe });\n\t}\n\t/** STANDARD PROMISE METHODS (but returning a SubscribedPromise) */\n\tthen(onfulfilled, onrejected) {\n\t\tconst subscribed = this.subscribe();\n\t\tconst { unsubscribe } = subscribed;\n\t\treturn Object.assign(subscribed.then(onfulfilled, onrejected), { unsubscribe });\n\t}\n\tcatch(onrejected) {\n\t\tconst subscribed = this.subscribe();\n\t\tconst { unsubscribe } = subscribed;\n\t\treturn Object.assign(subscribed.catch(onrejected), { unsubscribe });\n\t}\n\tfinally(onfinally) {\n\t\tconst subscribed = this.subscribe();\n\t\tconst { unsubscribe } = subscribed;\n\t\treturn Object.assign(subscribed.finally(onfinally), { unsubscribe });\n\t}\n\t/** Unpromise STATIC METHODS */\n\t/** Create or Retrieve the proxy Unpromise (a re-used Unpromise for the VM lifetime\n\t* of the provided Promise reference) */\n\tstatic proxy(promise) {\n\t\tconst cached = Unpromise.getSubscribablePromise(promise);\n\t\treturn typeof cached !== \"undefined\" ? cached : Unpromise.createSubscribablePromise(promise);\n\t}\n\t/** Create and store an Unpromise keyed by an original Promise. */\n\tstatic createSubscribablePromise(promise) {\n\t\tconst created = new Unpromise(promise);\n\t\tsubscribableCache.set(promise, created);\n\t\tsubscribableCache.set(created, created);\n\t\treturn created;\n\t}\n\t/** Retrieve a previously-created Unpromise keyed by an original Promise. */\n\tstatic getSubscribablePromise(promise) {\n\t\treturn subscribableCache.get(promise);\n\t}\n\t/** Promise STATIC METHODS */\n\t/** Lookup the Unpromise for this promise, and derive a SubscribedPromise from\n\t* it (that can be later unsubscribed to eliminate Memory leaks) */\n\tstatic resolve(value) {\n\t\tconst promise = typeof value === \"object\" && value !== null && \"then\" in value && typeof value.then === \"function\" ? value : Promise.resolve(value);\n\t\treturn Unpromise.proxy(promise).subscribe();\n\t}\n\tstatic async any(values) {\n\t\tconst valuesArray = Array.isArray(values) ? values : [...values];\n\t\tconst subscribedPromises = valuesArray.map(Unpromise.resolve);\n\t\ttry {\n\t\t\treturn await Promise.any(subscribedPromises);\n\t\t} finally {\n\t\t\tsubscribedPromises.forEach(({ unsubscribe }) => {\n\t\t\t\tunsubscribe();\n\t\t\t});\n\t\t}\n\t}\n\tstatic async race(values) {\n\t\tconst valuesArray = Array.isArray(values) ? values : [...values];\n\t\tconst subscribedPromises = valuesArray.map(Unpromise.resolve);\n\t\ttry {\n\t\t\treturn await Promise.race(subscribedPromises);\n\t\t} finally {\n\t\t\tsubscribedPromises.forEach(({ unsubscribe }) => {\n\t\t\t\tunsubscribe();\n\t\t\t});\n\t\t}\n\t}\n\t/** Create a race of SubscribedPromises that will fulfil to a single winning\n\t* Promise (in a 1-Tuple). Eliminates memory leaks from long-lived promises\n\t* accumulating .then() and .catch() subscribers. Allows simple logic to\n\t* consume the result, like...\n\t* ```ts\n\t* const [ winner ] = await Unpromise.race([ promiseA, promiseB ]);\n\t* if(winner === promiseB){\n\t* const result = await promiseB;\n\t* // do the thing\n\t* }\n\t* ```\n\t* */\n\tstatic async raceReferences(promises) {\n\t\tconst selfPromises = promises.map(resolveSelfTuple);\n\t\ttry {\n\t\t\treturn await Promise.race(selfPromises);\n\t\t} finally {\n\t\t\tfor (const promise of selfPromises) promise.unsubscribe();\n\t\t}\n\t}\n};\n/** Promises a 1-tuple containing the original promise when it resolves. Allows\n* awaiting the eventual Promise ***reference*** (easy to destructure and\n* exactly compare with ===). Avoids resolving to the Promise ***value*** (which\n* may be ambiguous and therefore hard to identify as the winner of a race).\n* You can call unsubscribe on the Promise to mitigate memory leaks.\n* */\nfunction resolveSelfTuple(promise) {\n\treturn Unpromise.proxy(promise).then(() => [promise]);\n}\n/** VENDORED (Future) PROMISE UTILITIES */\n/** Reference implementation of https://github.com/tc39/proposal-promise-with-resolvers */\nfunction withResolvers() {\n\tlet resolve;\n\tlet reject;\n\tconst promise = new Promise((_resolve, _reject) => {\n\t\tresolve = _resolve;\n\t\treject = _reject;\n\t});\n\treturn {\n\t\tpromise,\n\t\tresolve,\n\t\treject\n\t};\n}\n/** IMMUTABLE LIST OPERATIONS */\nfunction listWithMember(arr, member) {\n\treturn [...arr, member];\n}\nfunction listWithoutIndex(arr, index) {\n\treturn [...arr.slice(0, index), ...arr.slice(index + 1)];\n}\nfunction listWithoutMember(arr, member) {\n\tconst index = arr.indexOf(member);\n\tif (index !== -1) return listWithoutIndex(arr, index);\n\treturn arr;\n}\n\n//#endregion\n//#region src/unstable-core-do-not-import/stream/utils/disposable.ts\nvar _Symbol, _Symbol$dispose, _Symbol2, _Symbol2$asyncDispose;\n(_Symbol$dispose = (_Symbol = Symbol).dispose) !== null && _Symbol$dispose !== void 0 || (_Symbol.dispose = Symbol());\n(_Symbol2$asyncDispose = (_Symbol2 = Symbol).asyncDispose) !== null && _Symbol2$asyncDispose !== void 0 || (_Symbol2.asyncDispose = Symbol());\n/**\n* Takes a value and a dispose function and returns a new object that implements the Disposable interface.\n* The returned object is the original value augmented with a Symbol.dispose method.\n* @param thing The value to make disposable\n* @param dispose Function to call when disposing the resource\n* @returns The original value with Symbol.dispose method added\n*/\nfunction makeResource(thing, dispose) {\n\tconst it = thing;\n\tconst existing = it[Symbol.dispose];\n\tit[Symbol.dispose] = () => {\n\t\tdispose();\n\t\texisting === null || existing === void 0 || existing();\n\t};\n\treturn it;\n}\n/**\n* Takes a value and an async dispose function and returns a new object that implements the AsyncDisposable interface.\n* The returned object is the original value augmented with a Symbol.asyncDispose method.\n* @param thing The value to make async disposable\n* @param dispose Async function to call when disposing the resource\n* @returns The original value with Symbol.asyncDispose method added\n*/\nfunction makeAsyncResource(thing, dispose) {\n\tconst it = thing;\n\tconst existing = it[Symbol.asyncDispose];\n\tit[Symbol.asyncDispose] = async () => {\n\t\tawait dispose();\n\t\tawait (existing === null || existing === void 0 ? void 0 : existing());\n\t};\n\treturn it;\n}\n\n//#endregion\n//#region src/unstable-core-do-not-import/stream/utils/timerResource.ts\nconst disposablePromiseTimerResult = Symbol();\nfunction timerResource(ms) {\n\tlet timer = null;\n\treturn makeResource({ start() {\n\t\tif (timer) throw new Error(\"Timer already started\");\n\t\tconst promise = new Promise((resolve) => {\n\t\t\ttimer = setTimeout(() => resolve(disposablePromiseTimerResult), ms);\n\t\t});\n\t\treturn promise;\n\t} }, () => {\n\t\tif (timer) clearTimeout(timer);\n\t});\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/usingCtx.js\nvar require_usingCtx = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/usingCtx.js\"(exports, module) {\n\tfunction _usingCtx() {\n\t\tvar r = \"function\" == typeof SuppressedError ? SuppressedError : function(r$1, e$1) {\n\t\t\tvar n$1 = Error();\n\t\t\treturn n$1.name = \"SuppressedError\", n$1.error = r$1, n$1.suppressed = e$1, n$1;\n\t\t}, e = {}, n = [];\n\t\tfunction using(r$1, e$1) {\n\t\t\tif (null != e$1) {\n\t\t\t\tif (Object(e$1) !== e$1) throw new TypeError(\"using declarations can only be used with objects, functions, null, or undefined.\");\n\t\t\t\tif (r$1) var o = e$1[Symbol.asyncDispose || Symbol[\"for\"](\"Symbol.asyncDispose\")];\n\t\t\t\tif (void 0 === o && (o = e$1[Symbol.dispose || Symbol[\"for\"](\"Symbol.dispose\")], r$1)) var t = o;\n\t\t\t\tif (\"function\" != typeof o) throw new TypeError(\"Object is not disposable.\");\n\t\t\t\tt && (o = function o$1() {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tt.call(e$1);\n\t\t\t\t\t} catch (r$2) {\n\t\t\t\t\t\treturn Promise.reject(r$2);\n\t\t\t\t\t}\n\t\t\t\t}), n.push({\n\t\t\t\t\tv: e$1,\n\t\t\t\t\td: o,\n\t\t\t\t\ta: r$1\n\t\t\t\t});\n\t\t\t} else r$1 && n.push({\n\t\t\t\td: e$1,\n\t\t\t\ta: r$1\n\t\t\t});\n\t\t\treturn e$1;\n\t\t}\n\t\treturn {\n\t\t\te,\n\t\t\tu: using.bind(null, !1),\n\t\t\ta: using.bind(null, !0),\n\t\t\td: function d() {\n\t\t\t\tvar o, t = this.e, s = 0;\n\t\t\t\tfunction next() {\n\t\t\t\t\tfor (; o = n.pop();) try {\n\t\t\t\t\t\tif (!o.a && 1 === s) return s = 0, n.push(o), Promise.resolve().then(next);\n\t\t\t\t\t\tif (o.d) {\n\t\t\t\t\t\t\tvar r$1 = o.d.call(o.v);\n\t\t\t\t\t\t\tif (o.a) return s |= 2, Promise.resolve(r$1).then(next, err);\n\t\t\t\t\t\t} else s |= 1;\n\t\t\t\t\t} catch (r$2) {\n\t\t\t\t\t\treturn err(r$2);\n\t\t\t\t\t}\n\t\t\t\t\tif (1 === s) return t !== e ? Promise.reject(t) : Promise.resolve();\n\t\t\t\t\tif (t !== e) throw t;\n\t\t\t\t}\n\t\t\t\tfunction err(n$1) {\n\t\t\t\t\treturn t = t !== e ? new r(n$1, t) : n$1, next();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t}\n\t\t};\n\t}\n\tmodule.exports = _usingCtx, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/OverloadYield.js\nvar require_OverloadYield = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/OverloadYield.js\"(exports, module) {\n\tfunction _OverloadYield(e, d) {\n\t\tthis.v = e, this.k = d;\n\t}\n\tmodule.exports = _OverloadYield, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/awaitAsyncGenerator.js\nvar require_awaitAsyncGenerator = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/awaitAsyncGenerator.js\"(exports, module) {\n\tvar OverloadYield$2 = require_OverloadYield();\n\tfunction _awaitAsyncGenerator$5(e) {\n\t\treturn new OverloadYield$2(e, 0);\n\t}\n\tmodule.exports = _awaitAsyncGenerator$5, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/wrapAsyncGenerator.js\nvar require_wrapAsyncGenerator = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/wrapAsyncGenerator.js\"(exports, module) {\n\tvar OverloadYield$1 = require_OverloadYield();\n\tfunction _wrapAsyncGenerator$6(e) {\n\t\treturn function() {\n\t\t\treturn new AsyncGenerator(e.apply(this, arguments));\n\t\t};\n\t}\n\tfunction AsyncGenerator(e) {\n\t\tvar r, t;\n\t\tfunction resume(r$1, t$1) {\n\t\t\ttry {\n\t\t\t\tvar n = e[r$1](t$1), o = n.value, u = o instanceof OverloadYield$1;\n\t\t\t\tPromise.resolve(u ? o.v : o).then(function(t$2) {\n\t\t\t\t\tif (u) {\n\t\t\t\t\t\tvar i = \"return\" === r$1 ? \"return\" : \"next\";\n\t\t\t\t\t\tif (!o.k || t$2.done) return resume(i, t$2);\n\t\t\t\t\t\tt$2 = e[i](t$2).value;\n\t\t\t\t\t}\n\t\t\t\t\tsettle(n.done ? \"return\" : \"normal\", t$2);\n\t\t\t\t}, function(e$1) {\n\t\t\t\t\tresume(\"throw\", e$1);\n\t\t\t\t});\n\t\t\t} catch (e$1) {\n\t\t\t\tsettle(\"throw\", e$1);\n\t\t\t}\n\t\t}\n\t\tfunction settle(e$1, n) {\n\t\t\tswitch (e$1) {\n\t\t\t\tcase \"return\":\n\t\t\t\t\tr.resolve({\n\t\t\t\t\t\tvalue: n,\n\t\t\t\t\t\tdone: !0\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"throw\":\n\t\t\t\t\tr.reject(n);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: r.resolve({\n\t\t\t\t\tvalue: n,\n\t\t\t\t\tdone: !1\n\t\t\t\t});\n\t\t\t}\n\t\t\t(r = r.next) ? resume(r.key, r.arg) : t = null;\n\t\t}\n\t\tthis._invoke = function(e$1, n) {\n\t\t\treturn new Promise(function(o, u) {\n\t\t\t\tvar i = {\n\t\t\t\t\tkey: e$1,\n\t\t\t\t\targ: n,\n\t\t\t\t\tresolve: o,\n\t\t\t\t\treject: u,\n\t\t\t\t\tnext: null\n\t\t\t\t};\n\t\t\t\tt ? t = t.next = i : (r = t = i, resume(e$1, n));\n\t\t\t});\n\t\t}, \"function\" != typeof e[\"return\"] && (this[\"return\"] = void 0);\n\t}\n\tAsyncGenerator.prototype[\"function\" == typeof Symbol && Symbol.asyncIterator || \"@@asyncIterator\"] = function() {\n\t\treturn this;\n\t}, AsyncGenerator.prototype.next = function(e) {\n\t\treturn this._invoke(\"next\", e);\n\t}, AsyncGenerator.prototype[\"throw\"] = function(e) {\n\t\treturn this._invoke(\"throw\", e);\n\t}, AsyncGenerator.prototype[\"return\"] = function(e) {\n\t\treturn this._invoke(\"return\", e);\n\t};\n\tmodule.exports = _wrapAsyncGenerator$6, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region src/unstable-core-do-not-import/stream/utils/asyncIterable.ts\nvar import_usingCtx$4 = __toESM(require_usingCtx(), 1);\nvar import_awaitAsyncGenerator$4 = __toESM(require_awaitAsyncGenerator(), 1);\nvar import_wrapAsyncGenerator$5 = __toESM(require_wrapAsyncGenerator(), 1);\nfunction iteratorResource(iterable) {\n\tconst iterator = iterable[Symbol.asyncIterator]();\n\tif (iterator[Symbol.asyncDispose]) return iterator;\n\treturn makeAsyncResource(iterator, async () => {\n\t\tvar _iterator$return;\n\t\tawait ((_iterator$return = iterator.return) === null || _iterator$return === void 0 ? void 0 : _iterator$return.call(iterator));\n\t});\n}\n/**\n* Derives a new {@link AsyncGenerator} based of {@link iterable}, that yields its first\n* {@link count} values. Then, a grace period of {@link gracePeriodMs} is started in which further\n* values may still come through. After this period, the generator aborts.\n*/\nfunction takeWithGrace(_x, _x2) {\n\treturn _takeWithGrace.apply(this, arguments);\n}\nfunction _takeWithGrace() {\n\t_takeWithGrace = (0, import_wrapAsyncGenerator$5.default)(function* (iterable, opts) {\n\t\ttry {\n\t\t\tvar _usingCtx$1 = (0, import_usingCtx$4.default)();\n\t\t\tconst iterator = _usingCtx$1.a(iteratorResource(iterable));\n\t\t\tlet result;\n\t\t\tconst timer = _usingCtx$1.u(timerResource(opts.gracePeriodMs));\n\t\t\tlet count = opts.count;\n\t\t\tlet timerPromise = new Promise(() => {});\n\t\t\twhile (true) {\n\t\t\t\tresult = yield (0, import_awaitAsyncGenerator$4.default)(Unpromise.race([iterator.next(), timerPromise]));\n\t\t\t\tif (result === disposablePromiseTimerResult) throwAbortError();\n\t\t\t\tif (result.done) return result.value;\n\t\t\t\tyield result.value;\n\t\t\t\tif (--count === 0) timerPromise = timer.start();\n\t\t\t\tresult = null;\n\t\t\t}\n\t\t} catch (_) {\n\t\t\t_usingCtx$1.e = _;\n\t\t} finally {\n\t\t\tyield (0, import_awaitAsyncGenerator$4.default)(_usingCtx$1.d());\n\t\t}\n\t});\n\treturn _takeWithGrace.apply(this, arguments);\n}\n\n//#endregion\n//#region src/unstable-core-do-not-import/stream/utils/createDeferred.ts\nfunction createDeferred() {\n\tlet resolve;\n\tlet reject;\n\tconst promise = new Promise((res, rej) => {\n\t\tresolve = res;\n\t\treject = rej;\n\t});\n\treturn {\n\t\tpromise,\n\t\tresolve,\n\t\treject\n\t};\n}\n\n//#endregion\n//#region src/unstable-core-do-not-import/stream/utils/mergeAsyncIterables.ts\nvar import_usingCtx$3 = __toESM(require_usingCtx(), 1);\nvar import_awaitAsyncGenerator$3 = __toESM(require_awaitAsyncGenerator(), 1);\nvar import_wrapAsyncGenerator$4 = __toESM(require_wrapAsyncGenerator(), 1);\nfunction createManagedIterator(iterable, onResult) {\n\tconst iterator = iterable[Symbol.asyncIterator]();\n\tlet state = \"idle\";\n\tfunction cleanup() {\n\t\tstate = \"done\";\n\t\tonResult = () => {};\n\t}\n\tfunction pull() {\n\t\tif (state !== \"idle\") return;\n\t\tstate = \"pending\";\n\t\tconst next = iterator.next();\n\t\tnext.then((result) => {\n\t\t\tif (result.done) {\n\t\t\t\tstate = \"done\";\n\t\t\t\tonResult({\n\t\t\t\t\tstatus: \"return\",\n\t\t\t\t\tvalue: result.value\n\t\t\t\t});\n\t\t\t\tcleanup();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tstate = \"idle\";\n\t\t\tonResult({\n\t\t\t\tstatus: \"yield\",\n\t\t\t\tvalue: result.value\n\t\t\t});\n\t\t}).catch((cause) => {\n\t\t\tonResult({\n\t\t\t\tstatus: \"error\",\n\t\t\t\terror: cause\n\t\t\t});\n\t\t\tcleanup();\n\t\t});\n\t}\n\treturn {\n\t\tpull,\n\t\tdestroy: async () => {\n\t\t\tvar _iterator$return;\n\t\t\tcleanup();\n\t\t\tawait ((_iterator$return = iterator.return) === null || _iterator$return === void 0 ? void 0 : _iterator$return.call(iterator));\n\t\t}\n\t};\n}\n/**\n* Creates a new async iterable that merges multiple async iterables into a single stream.\n* Values from the input iterables are yielded in the order they resolve, similar to Promise.race().\n*\n* New iterables can be added dynamically using the returned {@link MergedAsyncIterables.add} method, even after iteration has started.\n*\n* If any of the input iterables throws an error, that error will be propagated through the merged stream.\n* Other iterables will not continue to be processed.\n*\n* @template TYield The type of values yielded by the input iterables\n*/\nfunction mergeAsyncIterables() {\n\tlet state = \"idle\";\n\tlet flushSignal = createDeferred();\n\t/**\n\t* used while {@link state} is `idle`\n\t*/\n\tconst iterables = [];\n\t/**\n\t* used while {@link state} is `pending`\n\t*/\n\tconst iterators = /* @__PURE__ */ new Set();\n\tconst buffer = [];\n\tfunction initIterable(iterable) {\n\t\tif (state !== \"pending\") return;\n\t\tconst iterator = createManagedIterator(iterable, (result) => {\n\t\t\tif (state !== \"pending\") return;\n\t\t\tswitch (result.status) {\n\t\t\t\tcase \"yield\":\n\t\t\t\t\tbuffer.push([iterator, result]);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"return\":\n\t\t\t\t\titerators.delete(iterator);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"error\":\n\t\t\t\t\tbuffer.push([iterator, result]);\n\t\t\t\t\titerators.delete(iterator);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tflushSignal.resolve();\n\t\t});\n\t\titerators.add(iterator);\n\t\titerator.pull();\n\t}\n\treturn {\n\t\tadd(iterable) {\n\t\t\tswitch (state) {\n\t\t\t\tcase \"idle\":\n\t\t\t\t\titerables.push(iterable);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"pending\":\n\t\t\t\t\tinitIterable(iterable);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"done\": break;\n\t\t\t}\n\t\t},\n\t\t[Symbol.asyncIterator]() {\n\t\t\treturn (0, import_wrapAsyncGenerator$4.default)(function* () {\n\t\t\t\ttry {\n\t\t\t\t\tvar _usingCtx$1 = (0, import_usingCtx$3.default)();\n\t\t\t\t\tif (state !== \"idle\") throw new Error(\"Cannot iterate twice\");\n\t\t\t\t\tstate = \"pending\";\n\t\t\t\t\tconst _finally = _usingCtx$1.a(makeAsyncResource({}, async () => {\n\t\t\t\t\t\tstate = \"done\";\n\t\t\t\t\t\tconst errors = [];\n\t\t\t\t\t\tawait Promise.all(Array.from(iterators.values()).map(async (it) => {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tawait it.destroy();\n\t\t\t\t\t\t\t} catch (cause) {\n\t\t\t\t\t\t\t\terrors.push(cause);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}));\n\t\t\t\t\t\tbuffer.length = 0;\n\t\t\t\t\t\titerators.clear();\n\t\t\t\t\t\tflushSignal.resolve();\n\t\t\t\t\t\tif (errors.length > 0) throw new AggregateError(errors);\n\t\t\t\t\t}));\n\t\t\t\t\twhile (iterables.length > 0) initIterable(iterables.shift());\n\t\t\t\t\twhile (iterators.size > 0) {\n\t\t\t\t\t\tyield (0, import_awaitAsyncGenerator$3.default)(flushSignal.promise);\n\t\t\t\t\t\twhile (buffer.length > 0) {\n\t\t\t\t\t\t\tconst [iterator, result] = buffer.shift();\n\t\t\t\t\t\t\tswitch (result.status) {\n\t\t\t\t\t\t\t\tcase \"yield\":\n\t\t\t\t\t\t\t\t\tyield result.value;\n\t\t\t\t\t\t\t\t\titerator.pull();\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase \"error\": throw result.error;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tflushSignal = createDeferred();\n\t\t\t\t\t}\n\t\t\t\t} catch (_) {\n\t\t\t\t\t_usingCtx$1.e = _;\n\t\t\t\t} finally {\n\t\t\t\t\tyield (0, import_awaitAsyncGenerator$3.default)(_usingCtx$1.d());\n\t\t\t\t}\n\t\t\t})();\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/unstable-core-do-not-import/stream/utils/readableStreamFrom.ts\n/**\n* Creates a ReadableStream from an AsyncIterable.\n*\n* @param iterable - The source AsyncIterable to stream from\n* @returns A ReadableStream that yields values from the AsyncIterable\n*/\nfunction readableStreamFrom(iterable) {\n\tconst iterator = iterable[Symbol.asyncIterator]();\n\treturn new ReadableStream({\n\t\tasync cancel() {\n\t\t\tvar _iterator$return;\n\t\t\tawait ((_iterator$return = iterator.return) === null || _iterator$return === void 0 ? void 0 : _iterator$return.call(iterator));\n\t\t},\n\t\tasync pull(controller) {\n\t\t\tconst result = await iterator.next();\n\t\t\tif (result.done) {\n\t\t\t\tcontroller.close();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcontroller.enqueue(result.value);\n\t\t}\n\t});\n}\n\n//#endregion\n//#region src/unstable-core-do-not-import/stream/utils/withPing.ts\nvar import_usingCtx$2 = __toESM(require_usingCtx(), 1);\nvar import_awaitAsyncGenerator$2 = __toESM(require_awaitAsyncGenerator(), 1);\nvar import_wrapAsyncGenerator$3 = __toESM(require_wrapAsyncGenerator(), 1);\nconst PING_SYM = Symbol(\"ping\");\n/**\n* Derives a new {@link AsyncGenerator} based of {@link iterable}, that yields {@link PING_SYM}\n* whenever no value has been yielded for {@link pingIntervalMs}.\n*/\nfunction withPing(_x, _x2) {\n\treturn _withPing.apply(this, arguments);\n}\nfunction _withPing() {\n\t_withPing = (0, import_wrapAsyncGenerator$3.default)(function* (iterable, pingIntervalMs) {\n\t\ttry {\n\t\t\tvar _usingCtx$1 = (0, import_usingCtx$2.default)();\n\t\t\tconst iterator = _usingCtx$1.a(iteratorResource(iterable));\n\t\t\tlet result;\n\t\t\tlet nextPromise = iterator.next();\n\t\t\twhile (true) try {\n\t\t\t\tvar _usingCtx3 = (0, import_usingCtx$2.default)();\n\t\t\t\tconst pingPromise = _usingCtx3.u(timerResource(pingIntervalMs));\n\t\t\t\tresult = yield (0, import_awaitAsyncGenerator$2.default)(Unpromise.race([nextPromise, pingPromise.start()]));\n\t\t\t\tif (result === disposablePromiseTimerResult) {\n\t\t\t\t\tyield PING_SYM;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (result.done) return result.value;\n\t\t\t\tnextPromise = iterator.next();\n\t\t\t\tyield result.value;\n\t\t\t\tresult = null;\n\t\t\t} catch (_) {\n\t\t\t\t_usingCtx3.e = _;\n\t\t\t} finally {\n\t\t\t\t_usingCtx3.d();\n\t\t\t}\n\t\t} catch (_) {\n\t\t\t_usingCtx$1.e = _;\n\t\t} finally {\n\t\t\tyield (0, import_awaitAsyncGenerator$2.default)(_usingCtx$1.d());\n\t\t}\n\t});\n\treturn _withPing.apply(this, arguments);\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/asyncIterator.js\nvar require_asyncIterator = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/asyncIterator.js\"(exports, module) {\n\tfunction _asyncIterator$2(r) {\n\t\tvar n, t, o, e = 2;\n\t\tfor (\"undefined\" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) {\n\t\t\tif (t && null != (n = r[t])) return n.call(r);\n\t\t\tif (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r));\n\t\t\tt = \"@@asyncIterator\", o = \"@@iterator\";\n\t\t}\n\t\tthrow new TypeError(\"Object is not async iterable\");\n\t}\n\tfunction AsyncFromSyncIterator(r) {\n\t\tfunction AsyncFromSyncIteratorContinuation(r$1) {\n\t\t\tif (Object(r$1) !== r$1) return Promise.reject(new TypeError(r$1 + \" is not an object.\"));\n\t\t\tvar n = r$1.done;\n\t\t\treturn Promise.resolve(r$1.value).then(function(r$2) {\n\t\t\t\treturn {\n\t\t\t\t\tvalue: r$2,\n\t\t\t\t\tdone: n\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\t\treturn AsyncFromSyncIterator = function AsyncFromSyncIterator$1(r$1) {\n\t\t\tthis.s = r$1, this.n = r$1.next;\n\t\t}, AsyncFromSyncIterator.prototype = {\n\t\t\ts: null,\n\t\t\tn: null,\n\t\t\tnext: function next() {\n\t\t\t\treturn AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));\n\t\t\t},\n\t\t\t\"return\": function _return(r$1) {\n\t\t\t\tvar n = this.s[\"return\"];\n\t\t\t\treturn void 0 === n ? Promise.resolve({\n\t\t\t\t\tvalue: r$1,\n\t\t\t\t\tdone: !0\n\t\t\t\t}) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));\n\t\t\t},\n\t\t\t\"throw\": function _throw(r$1) {\n\t\t\t\tvar n = this.s[\"return\"];\n\t\t\t\treturn void 0 === n ? Promise.reject(r$1) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));\n\t\t\t}\n\t\t}, new AsyncFromSyncIterator(r);\n\t}\n\tmodule.exports = _asyncIterator$2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region src/unstable-core-do-not-import/stream/jsonl.ts\nvar import_awaitAsyncGenerator$1 = __toESM(require_awaitAsyncGenerator(), 1);\nvar import_wrapAsyncGenerator$2 = __toESM(require_wrapAsyncGenerator(), 1);\nvar import_usingCtx$1 = __toESM(require_usingCtx(), 1);\nvar import_asyncIterator$1 = __toESM(require_asyncIterator(), 1);\nconst CHUNK_VALUE_TYPE_PROMISE = 0;\nconst CHUNK_VALUE_TYPE_ASYNC_ITERABLE = 1;\nconst PROMISE_STATUS_FULFILLED = 0;\nconst PROMISE_STATUS_REJECTED = 1;\nconst ASYNC_ITERABLE_STATUS_RETURN = 0;\nconst ASYNC_ITERABLE_STATUS_YIELD = 1;\nconst ASYNC_ITERABLE_STATUS_ERROR = 2;\nfunction isPromise(value) {\n\treturn (isObject(value) || isFunction(value)) && typeof (value === null || value === void 0 ? void 0 : value[\"then\"]) === \"function\" && typeof (value === null || value === void 0 ? void 0 : value[\"catch\"]) === \"function\";\n}\nvar MaxDepthError = class extends Error {\n\tconstructor(path) {\n\t\tsuper(\"Max depth reached at path: \" + path.join(\".\"));\n\t\tthis.path = path;\n\t}\n};\nfunction createBatchStreamProducer(_x3) {\n\treturn _createBatchStreamProducer.apply(this, arguments);\n}\nfunction _createBatchStreamProducer() {\n\t_createBatchStreamProducer = (0, import_wrapAsyncGenerator$2.default)(function* (opts) {\n\t\tconst { data } = opts;\n\t\tlet counter = 0;\n\t\tconst placeholder = 0;\n\t\tconst mergedIterables = mergeAsyncIterables();\n\t\tfunction registerAsync(callback) {\n\t\t\tconst idx = counter++;\n\t\t\tconst iterable$1 = callback(idx);\n\t\t\tmergedIterables.add(iterable$1);\n\t\t\treturn idx;\n\t\t}\n\t\tfunction encodePromise(promise, path) {\n\t\t\treturn registerAsync(/* @__PURE__ */ function() {\n\t\t\t\tvar _ref = (0, import_wrapAsyncGenerator$2.default)(function* (idx) {\n\t\t\t\t\tconst error = checkMaxDepth(path);\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\tpromise.catch((cause) => {\n\t\t\t\t\t\t\tvar _opts$onError;\n\t\t\t\t\t\t\t(_opts$onError = opts.onError) === null || _opts$onError === void 0 || _opts$onError.call(opts, {\n\t\t\t\t\t\t\t\terror: cause,\n\t\t\t\t\t\t\t\tpath\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t\tpromise = Promise.reject(error);\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst next = yield (0, import_awaitAsyncGenerator$1.default)(promise);\n\t\t\t\t\t\tyield [\n\t\t\t\t\t\t\tidx,\n\t\t\t\t\t\t\tPROMISE_STATUS_FULFILLED,\n\t\t\t\t\t\t\tencode(next, path)\n\t\t\t\t\t\t];\n\t\t\t\t\t} catch (cause) {\n\t\t\t\t\t\tvar _opts$onError2, _opts$formatError;\n\t\t\t\t\t\t(_opts$onError2 = opts.onError) === null || _opts$onError2 === void 0 || _opts$onError2.call(opts, {\n\t\t\t\t\t\t\terror: cause,\n\t\t\t\t\t\t\tpath\n\t\t\t\t\t\t});\n\t\t\t\t\t\tyield [\n\t\t\t\t\t\t\tidx,\n\t\t\t\t\t\t\tPROMISE_STATUS_REJECTED,\n\t\t\t\t\t\t\t(_opts$formatError = opts.formatError) === null || _opts$formatError === void 0 ? void 0 : _opts$formatError.call(opts, {\n\t\t\t\t\t\t\t\terror: cause,\n\t\t\t\t\t\t\t\tpath\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn function(_x) {\n\t\t\t\t\treturn _ref.apply(this, arguments);\n\t\t\t\t};\n\t\t\t}());\n\t\t}\n\t\tfunction encodeAsyncIterable(iterable$1, path) {\n\t\t\treturn registerAsync(/* @__PURE__ */ function() {\n\t\t\t\tvar _ref2 = (0, import_wrapAsyncGenerator$2.default)(function* (idx) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar _usingCtx$1 = (0, import_usingCtx$1.default)();\n\t\t\t\t\t\tconst error = checkMaxDepth(path);\n\t\t\t\t\t\tif (error) throw error;\n\t\t\t\t\t\tconst iterator = _usingCtx$1.a(iteratorResource(iterable$1));\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\twhile (true) {\n\t\t\t\t\t\t\t\tconst next = yield (0, import_awaitAsyncGenerator$1.default)(iterator.next());\n\t\t\t\t\t\t\t\tif (next.done) {\n\t\t\t\t\t\t\t\t\tyield [\n\t\t\t\t\t\t\t\t\t\tidx,\n\t\t\t\t\t\t\t\t\t\tASYNC_ITERABLE_STATUS_RETURN,\n\t\t\t\t\t\t\t\t\t\tencode(next.value, path)\n\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tyield [\n\t\t\t\t\t\t\t\t\tidx,\n\t\t\t\t\t\t\t\t\tASYNC_ITERABLE_STATUS_YIELD,\n\t\t\t\t\t\t\t\t\tencode(next.value, path)\n\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (cause) {\n\t\t\t\t\t\t\tvar _opts$onError3, _opts$formatError2;\n\t\t\t\t\t\t\t(_opts$onError3 = opts.onError) === null || _opts$onError3 === void 0 || _opts$onError3.call(opts, {\n\t\t\t\t\t\t\t\terror: cause,\n\t\t\t\t\t\t\t\tpath\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tyield [\n\t\t\t\t\t\t\t\tidx,\n\t\t\t\t\t\t\t\tASYNC_ITERABLE_STATUS_ERROR,\n\t\t\t\t\t\t\t\t(_opts$formatError2 = opts.formatError) === null || _opts$formatError2 === void 0 ? void 0 : _opts$formatError2.call(opts, {\n\t\t\t\t\t\t\t\t\terror: cause,\n\t\t\t\t\t\t\t\t\tpath\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t_usingCtx$1.e = _;\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tyield (0, import_awaitAsyncGenerator$1.default)(_usingCtx$1.d());\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn function(_x2) {\n\t\t\t\t\treturn _ref2.apply(this, arguments);\n\t\t\t\t};\n\t\t\t}());\n\t\t}\n\t\tfunction checkMaxDepth(path) {\n\t\t\tif (opts.maxDepth && path.length > opts.maxDepth) return new MaxDepthError(path);\n\t\t\treturn null;\n\t\t}\n\t\tfunction encodeAsync(value, path) {\n\t\t\tif (isPromise(value)) return [CHUNK_VALUE_TYPE_PROMISE, encodePromise(value, path)];\n\t\t\tif (isAsyncIterable(value)) {\n\t\t\t\tif (opts.maxDepth && path.length >= opts.maxDepth) throw new Error(\"Max depth reached\");\n\t\t\t\treturn [CHUNK_VALUE_TYPE_ASYNC_ITERABLE, encodeAsyncIterable(value, path)];\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\tfunction encode(value, path) {\n\t\t\tif (value === void 0) return [[]];\n\t\t\tconst reg = encodeAsync(value, path);\n\t\t\tif (reg) return [[placeholder], [null, ...reg]];\n\t\t\tif (!isPlainObject(value)) return [[value]];\n\t\t\tconst newObj = emptyObject();\n\t\t\tconst asyncValues = [];\n\t\t\tfor (const [key, item] of Object.entries(value)) {\n\t\t\t\tconst transformed = encodeAsync(item, [...path, key]);\n\t\t\t\tif (!transformed) {\n\t\t\t\t\tnewObj[key] = item;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tnewObj[key] = placeholder;\n\t\t\t\tasyncValues.push([key, ...transformed]);\n\t\t\t}\n\t\t\treturn [[newObj], ...asyncValues];\n\t\t}\n\t\tconst newHead = emptyObject();\n\t\tfor (const [key, item] of Object.entries(data)) newHead[key] = encode(item, [key]);\n\t\tyield newHead;\n\t\tlet iterable = mergedIterables;\n\t\tif (opts.pingMs) iterable = withPing(mergedIterables, opts.pingMs);\n\t\tvar _iteratorAbruptCompletion = false;\n\t\tvar _didIteratorError = false;\n\t\tvar _iteratorError;\n\t\ttry {\n\t\t\tfor (var _iterator = (0, import_asyncIterator$1.default)(iterable), _step; _iteratorAbruptCompletion = !(_step = yield (0, import_awaitAsyncGenerator$1.default)(_iterator.next())).done; _iteratorAbruptCompletion = false) {\n\t\t\t\tconst value = _step.value;\n\t\t\t\tyield value;\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_didIteratorError = true;\n\t\t\t_iteratorError = err;\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tif (_iteratorAbruptCompletion && _iterator.return != null) yield (0, import_awaitAsyncGenerator$1.default)(_iterator.return());\n\t\t\t} finally {\n\t\t\t\tif (_didIteratorError) throw _iteratorError;\n\t\t\t}\n\t\t}\n\t});\n\treturn _createBatchStreamProducer.apply(this, arguments);\n}\n/**\n* JSON Lines stream producer\n* @see https://jsonlines.org/\n*/\nfunction jsonlStreamProducer(opts) {\n\tlet stream = readableStreamFrom(createBatchStreamProducer(opts));\n\tconst { serialize } = opts;\n\tif (serialize) stream = stream.pipeThrough(new TransformStream({ transform(chunk, controller) {\n\t\tif (chunk === PING_SYM) controller.enqueue(PING_SYM);\n\t\telse controller.enqueue(serialize(chunk));\n\t} }));\n\treturn stream.pipeThrough(new TransformStream({ transform(chunk, controller) {\n\t\tif (chunk === PING_SYM) controller.enqueue(\" \");\n\t\telse controller.enqueue(JSON.stringify(chunk) + \"\\n\");\n\t} })).pipeThrough(new TextEncoderStream());\n}\nvar AsyncError = class extends Error {\n\tconstructor(data) {\n\t\tsuper(\"Received error from server\");\n\t\tthis.data = data;\n\t}\n};\nconst nodeJsStreamToReaderEsque = (source) => {\n\treturn { getReader() {\n\t\tconst stream = new ReadableStream({ start(controller) {\n\t\t\tsource.on(\"data\", (chunk) => {\n\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t});\n\t\t\tsource.on(\"end\", () => {\n\t\t\t\tcontroller.close();\n\t\t\t});\n\t\t\tsource.on(\"error\", (error) => {\n\t\t\t\tcontroller.error(error);\n\t\t\t});\n\t\t} });\n\t\treturn stream.getReader();\n\t} };\n};\nfunction createLineAccumulator(from) {\n\tconst reader = \"getReader\" in from ? from.getReader() : nodeJsStreamToReaderEsque(from).getReader();\n\tlet lineAggregate = \"\";\n\treturn new ReadableStream({\n\t\tasync pull(controller) {\n\t\t\tconst { done, value } = await reader.read();\n\t\t\tif (done) controller.close();\n\t\t\telse controller.enqueue(value);\n\t\t},\n\t\tcancel() {\n\t\t\treturn reader.cancel();\n\t\t}\n\t}).pipeThrough(new TextDecoderStream()).pipeThrough(new TransformStream({ transform(chunk, controller) {\n\t\tvar _parts$pop;\n\t\tlineAggregate += chunk;\n\t\tconst parts = lineAggregate.split(\"\\n\");\n\t\tlineAggregate = (_parts$pop = parts.pop()) !== null && _parts$pop !== void 0 ? _parts$pop : \"\";\n\t\tfor (const part of parts) controller.enqueue(part);\n\t} }));\n}\nfunction createConsumerStream(from) {\n\tconst stream = createLineAccumulator(from);\n\tlet sentHead = false;\n\treturn stream.pipeThrough(new TransformStream({ transform(line, controller) {\n\t\tif (!sentHead) {\n\t\t\tconst head = JSON.parse(line);\n\t\t\tcontroller.enqueue(head);\n\t\t\tsentHead = true;\n\t\t} else {\n\t\t\tconst chunk = JSON.parse(line);\n\t\t\tcontroller.enqueue(chunk);\n\t\t}\n\t} }));\n}\n/**\n* Creates a handler for managing stream controllers and their lifecycle\n*/\nfunction createStreamsManager(abortController) {\n\tconst controllerMap = /* @__PURE__ */ new Map();\n\t/**\n\t* Checks if there are no pending controllers or deferred promises\n\t*/\n\tfunction isEmpty() {\n\t\treturn Array.from(controllerMap.values()).every((c) => c.closed);\n\t}\n\t/**\n\t* Creates a stream controller\n\t*/\n\tfunction createStreamController() {\n\t\tlet originalController;\n\t\tconst stream = new ReadableStream({ start(controller) {\n\t\t\toriginalController = controller;\n\t\t} });\n\t\tconst streamController = {\n\t\t\tenqueue: (v) => originalController.enqueue(v),\n\t\t\tclose: () => {\n\t\t\t\toriginalController.close();\n\t\t\t\tclear();\n\t\t\t\tif (isEmpty()) abortController.abort();\n\t\t\t},\n\t\t\tclosed: false,\n\t\t\tgetReaderResource: () => {\n\t\t\t\tconst reader = stream.getReader();\n\t\t\t\treturn makeResource(reader, () => {\n\t\t\t\t\tstreamController.close();\n\t\t\t\t\treader.releaseLock();\n\t\t\t\t});\n\t\t\t},\n\t\t\terror: (reason) => {\n\t\t\t\toriginalController.error(reason);\n\t\t\t\tclear();\n\t\t\t}\n\t\t};\n\t\tfunction clear() {\n\t\t\tObject.assign(streamController, {\n\t\t\t\tclosed: true,\n\t\t\t\tclose: () => {},\n\t\t\t\tenqueue: () => {},\n\t\t\t\tgetReaderResource: null,\n\t\t\t\terror: () => {}\n\t\t\t});\n\t\t}\n\t\treturn streamController;\n\t}\n\t/**\n\t* Gets or creates a stream controller\n\t*/\n\tfunction getOrCreate(chunkId) {\n\t\tlet c = controllerMap.get(chunkId);\n\t\tif (!c) {\n\t\t\tc = createStreamController();\n\t\t\tcontrollerMap.set(chunkId, c);\n\t\t}\n\t\treturn c;\n\t}\n\t/**\n\t* Cancels all pending controllers and rejects deferred promises\n\t*/\n\tfunction cancelAll(reason) {\n\t\tfor (const controller of controllerMap.values()) controller.error(reason);\n\t}\n\treturn {\n\t\tgetOrCreate,\n\t\tcancelAll\n\t};\n}\n/**\n* JSON Lines stream consumer\n* @see https://jsonlines.org/\n*/\nasync function jsonlStreamConsumer(opts) {\n\tconst { deserialize = (v) => v } = opts;\n\tlet source = createConsumerStream(opts.from);\n\tif (deserialize) source = source.pipeThrough(new TransformStream({ transform(chunk, controller) {\n\t\tcontroller.enqueue(deserialize(chunk));\n\t} }));\n\tlet headDeferred = createDeferred();\n\tconst streamManager = createStreamsManager(opts.abortController);\n\tfunction decodeChunkDefinition(value) {\n\t\tconst [_path, type, chunkId] = value;\n\t\tconst controller = streamManager.getOrCreate(chunkId);\n\t\tswitch (type) {\n\t\t\tcase CHUNK_VALUE_TYPE_PROMISE: return run(async () => {\n\t\t\t\ttry {\n\t\t\t\t\tvar _usingCtx3 = (0, import_usingCtx$1.default)();\n\t\t\t\t\tconst reader = _usingCtx3.u(controller.getReaderResource());\n\t\t\t\t\tconst { value: value$1 } = await reader.read();\n\t\t\t\t\tconst [_chunkId, status, data] = value$1;\n\t\t\t\t\tswitch (status) {\n\t\t\t\t\t\tcase PROMISE_STATUS_FULFILLED: return decode(data);\n\t\t\t\t\t\tcase PROMISE_STATUS_REJECTED:\n\t\t\t\t\t\t\tvar _opts$formatError3, _opts$formatError4;\n\t\t\t\t\t\t\tthrow (_opts$formatError3 = (_opts$formatError4 = opts.formatError) === null || _opts$formatError4 === void 0 ? void 0 : _opts$formatError4.call(opts, { error: data })) !== null && _opts$formatError3 !== void 0 ? _opts$formatError3 : new AsyncError(data);\n\t\t\t\t\t}\n\t\t\t\t} catch (_) {\n\t\t\t\t\t_usingCtx3.e = _;\n\t\t\t\t} finally {\n\t\t\t\t\t_usingCtx3.d();\n\t\t\t\t}\n\t\t\t});\n\t\t\tcase CHUNK_VALUE_TYPE_ASYNC_ITERABLE: return run((0, import_wrapAsyncGenerator$2.default)(function* () {\n\t\t\t\ttry {\n\t\t\t\t\tvar _usingCtx4 = (0, import_usingCtx$1.default)();\n\t\t\t\t\tconst reader = _usingCtx4.u(controller.getReaderResource());\n\t\t\t\t\twhile (true) {\n\t\t\t\t\t\tconst { value: value$1 } = yield (0, import_awaitAsyncGenerator$1.default)(reader.read());\n\t\t\t\t\t\tconst [_chunkId, status, data] = value$1;\n\t\t\t\t\t\tswitch (status) {\n\t\t\t\t\t\t\tcase ASYNC_ITERABLE_STATUS_YIELD:\n\t\t\t\t\t\t\t\tyield decode(data);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase ASYNC_ITERABLE_STATUS_RETURN: return decode(data);\n\t\t\t\t\t\t\tcase ASYNC_ITERABLE_STATUS_ERROR:\n\t\t\t\t\t\t\t\tvar _opts$formatError5, _opts$formatError6;\n\t\t\t\t\t\t\t\tthrow (_opts$formatError5 = (_opts$formatError6 = opts.formatError) === null || _opts$formatError6 === void 0 ? void 0 : _opts$formatError6.call(opts, { error: data })) !== null && _opts$formatError5 !== void 0 ? _opts$formatError5 : new AsyncError(data);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch (_) {\n\t\t\t\t\t_usingCtx4.e = _;\n\t\t\t\t} finally {\n\t\t\t\t\t_usingCtx4.d();\n\t\t\t\t}\n\t\t\t}));\n\t\t}\n\t}\n\tfunction decode(value) {\n\t\tconst [[data], ...asyncProps] = value;\n\t\tfor (const value$1 of asyncProps) {\n\t\t\tconst [key] = value$1;\n\t\t\tconst decoded = decodeChunkDefinition(value$1);\n\t\t\tif (key === null) return decoded;\n\t\t\tdata[key] = decoded;\n\t\t}\n\t\treturn data;\n\t}\n\tconst closeOrAbort = (reason) => {\n\t\theadDeferred === null || headDeferred === void 0 || headDeferred.reject(reason);\n\t\tstreamManager.cancelAll(reason);\n\t};\n\tsource.pipeTo(new WritableStream({\n\t\twrite(chunkOrHead) {\n\t\t\tif (headDeferred) {\n\t\t\t\tconst head = chunkOrHead;\n\t\t\t\tfor (const [key, value] of Object.entries(chunkOrHead)) {\n\t\t\t\t\tconst parsed = decode(value);\n\t\t\t\t\thead[key] = parsed;\n\t\t\t\t}\n\t\t\t\theadDeferred.resolve(head);\n\t\t\t\theadDeferred = null;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst chunk = chunkOrHead;\n\t\t\tconst [idx] = chunk;\n\t\t\tconst controller = streamManager.getOrCreate(idx);\n\t\t\tcontroller.enqueue(chunk);\n\t\t},\n\t\tclose: closeOrAbort,\n\t\tabort: closeOrAbort\n\t})).catch((error) => {\n\t\tvar _opts$onError4;\n\t\t(_opts$onError4 = opts.onError) === null || _opts$onError4 === void 0 || _opts$onError4.call(opts, { error });\n\t\tcloseOrAbort(error);\n\t});\n\treturn [await headDeferred.promise];\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/asyncGeneratorDelegate.js\nvar require_asyncGeneratorDelegate = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/asyncGeneratorDelegate.js\"(exports, module) {\n\tvar OverloadYield = require_OverloadYield();\n\tfunction _asyncGeneratorDelegate$1(t) {\n\t\tvar e = {}, n = !1;\n\t\tfunction pump(e$1, r) {\n\t\t\treturn n = !0, r = new Promise(function(n$1) {\n\t\t\t\tn$1(t[e$1](r));\n\t\t\t}), {\n\t\t\t\tdone: !1,\n\t\t\t\tvalue: new OverloadYield(r, 1)\n\t\t\t};\n\t\t}\n\t\treturn e[\"undefined\" != typeof Symbol && Symbol.iterator || \"@@iterator\"] = function() {\n\t\t\treturn this;\n\t\t}, e.next = function(t$1) {\n\t\t\treturn n ? (n = !1, t$1) : pump(\"next\", t$1);\n\t\t}, \"function\" == typeof t[\"throw\"] && (e[\"throw\"] = function(t$1) {\n\t\t\tif (n) throw n = !1, t$1;\n\t\t\treturn pump(\"throw\", t$1);\n\t\t}), \"function\" == typeof t[\"return\"] && (e[\"return\"] = function(t$1) {\n\t\t\treturn n ? (n = !1, t$1) : pump(\"return\", t$1);\n\t\t}), e;\n\t}\n\tmodule.exports = _asyncGeneratorDelegate$1, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region src/unstable-core-do-not-import/stream/sse.ts\nvar import_asyncIterator = __toESM(require_asyncIterator(), 1);\nvar import_awaitAsyncGenerator = __toESM(require_awaitAsyncGenerator(), 1);\nvar import_wrapAsyncGenerator$1 = __toESM(require_wrapAsyncGenerator(), 1);\nvar import_asyncGeneratorDelegate = __toESM(require_asyncGeneratorDelegate(), 1);\nvar import_usingCtx = __toESM(require_usingCtx(), 1);\nconst PING_EVENT = \"ping\";\nconst SERIALIZED_ERROR_EVENT = \"serialized-error\";\nconst CONNECTED_EVENT = \"connected\";\nconst RETURN_EVENT = \"return\";\n/**\n*\n* @see https://html.spec.whatwg.org/multipage/server-sent-events.html\n*/\nfunction sseStreamProducer(opts) {\n\tvar _opts$ping$enabled, _opts$ping, _opts$ping$intervalMs, _opts$ping2, _opts$client;\n\tconst { serialize = identity } = opts;\n\tconst ping = {\n\t\tenabled: (_opts$ping$enabled = (_opts$ping = opts.ping) === null || _opts$ping === void 0 ? void 0 : _opts$ping.enabled) !== null && _opts$ping$enabled !== void 0 ? _opts$ping$enabled : false,\n\t\tintervalMs: (_opts$ping$intervalMs = (_opts$ping2 = opts.ping) === null || _opts$ping2 === void 0 ? void 0 : _opts$ping2.intervalMs) !== null && _opts$ping$intervalMs !== void 0 ? _opts$ping$intervalMs : 1e3\n\t};\n\tconst client = (_opts$client = opts.client) !== null && _opts$client !== void 0 ? _opts$client : {};\n\tif (ping.enabled && client.reconnectAfterInactivityMs && ping.intervalMs > client.reconnectAfterInactivityMs) throw new Error(`Ping interval must be less than client reconnect interval to prevent unnecessary reconnection - ping.intervalMs: ${ping.intervalMs} client.reconnectAfterInactivityMs: ${client.reconnectAfterInactivityMs}`);\n\tfunction generator() {\n\t\treturn _generator.apply(this, arguments);\n\t}\n\tfunction _generator() {\n\t\t_generator = (0, import_wrapAsyncGenerator$1.default)(function* () {\n\t\t\tyield {\n\t\t\t\tevent: CONNECTED_EVENT,\n\t\t\t\tdata: JSON.stringify(client)\n\t\t\t};\n\t\t\tlet iterable = opts.data;\n\t\t\tif (opts.emitAndEndImmediately) iterable = takeWithGrace(iterable, {\n\t\t\t\tcount: 1,\n\t\t\t\tgracePeriodMs: 1\n\t\t\t});\n\t\t\tif (ping.enabled && ping.intervalMs !== Infinity && ping.intervalMs > 0) iterable = withPing(iterable, ping.intervalMs);\n\t\t\tlet value;\n\t\t\tlet chunk;\n\t\t\tvar _iteratorAbruptCompletion = false;\n\t\t\tvar _didIteratorError = false;\n\t\t\tvar _iteratorError;\n\t\t\ttry {\n\t\t\t\tfor (var _iterator = (0, import_asyncIterator.default)(iterable), _step; _iteratorAbruptCompletion = !(_step = yield (0, import_awaitAsyncGenerator.default)(_iterator.next())).done; _iteratorAbruptCompletion = false) {\n\t\t\t\t\tvalue = _step.value;\n\t\t\t\t\t{\n\t\t\t\t\t\tif (value === PING_SYM) {\n\t\t\t\t\t\t\tyield {\n\t\t\t\t\t\t\t\tevent: PING_EVENT,\n\t\t\t\t\t\t\t\tdata: \"\"\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchunk = isTrackedEnvelope(value) ? {\n\t\t\t\t\t\t\tid: value[0],\n\t\t\t\t\t\t\tdata: value[1]\n\t\t\t\t\t\t} : { data: value };\n\t\t\t\t\t\tchunk.data = JSON.stringify(serialize(chunk.data));\n\t\t\t\t\t\tyield chunk;\n\t\t\t\t\t\tvalue = null;\n\t\t\t\t\t\tchunk = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\t_didIteratorError = true;\n\t\t\t\t_iteratorError = err;\n\t\t\t} finally {\n\t\t\t\ttry {\n\t\t\t\t\tif (_iteratorAbruptCompletion && _iterator.return != null) yield (0, import_awaitAsyncGenerator.default)(_iterator.return());\n\t\t\t\t} finally {\n\t\t\t\t\tif (_didIteratorError) throw _iteratorError;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn _generator.apply(this, arguments);\n\t}\n\tfunction generatorWithErrorHandling() {\n\t\treturn _generatorWithErrorHandling.apply(this, arguments);\n\t}\n\tfunction _generatorWithErrorHandling() {\n\t\t_generatorWithErrorHandling = (0, import_wrapAsyncGenerator$1.default)(function* () {\n\t\t\ttry {\n\t\t\t\tyield* (0, import_asyncGeneratorDelegate.default)((0, import_asyncIterator.default)(generator()));\n\t\t\t\tyield {\n\t\t\t\t\tevent: RETURN_EVENT,\n\t\t\t\t\tdata: \"\"\n\t\t\t\t};\n\t\t\t} catch (cause) {\n\t\t\t\tvar _opts$formatError, _opts$formatError2;\n\t\t\t\tif (isAbortError(cause)) return;\n\t\t\t\tconst error = getTRPCErrorFromUnknown(cause);\n\t\t\t\tconst data = (_opts$formatError = (_opts$formatError2 = opts.formatError) === null || _opts$formatError2 === void 0 ? void 0 : _opts$formatError2.call(opts, { error })) !== null && _opts$formatError !== void 0 ? _opts$formatError : null;\n\t\t\t\tyield {\n\t\t\t\t\tevent: SERIALIZED_ERROR_EVENT,\n\t\t\t\t\tdata: JSON.stringify(serialize(data))\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\t\treturn _generatorWithErrorHandling.apply(this, arguments);\n\t}\n\tconst stream = readableStreamFrom(generatorWithErrorHandling());\n\treturn stream.pipeThrough(new TransformStream({ transform(chunk, controller) {\n\t\tif (\"event\" in chunk) controller.enqueue(`event: ${chunk.event}\\n`);\n\t\tif (\"data\" in chunk) controller.enqueue(`data: ${chunk.data}\\n`);\n\t\tif (\"id\" in chunk) controller.enqueue(`id: ${chunk.id}\\n`);\n\t\tif (\"comment\" in chunk) controller.enqueue(`: ${chunk.comment}\\n`);\n\t\tcontroller.enqueue(\"\\n\\n\");\n\t} })).pipeThrough(new TextEncoderStream());\n}\nasync function withTimeout(opts) {\n\ttry {\n\t\tvar _usingCtx$1 = (0, import_usingCtx.default)();\n\t\tconst timeoutPromise = _usingCtx$1.u(timerResource(opts.timeoutMs));\n\t\tconst res = await Unpromise.race([opts.promise, timeoutPromise.start()]);\n\t\tif (res === disposablePromiseTimerResult) return await opts.onTimeout();\n\t\treturn res;\n\t} catch (_) {\n\t\t_usingCtx$1.e = _;\n\t} finally {\n\t\t_usingCtx$1.d();\n\t}\n}\n/**\n* @see https://html.spec.whatwg.org/multipage/server-sent-events.html\n*/\nfunction sseStreamConsumer(opts) {\n\tconst { deserialize = (v) => v } = opts;\n\tlet clientOptions = emptyObject();\n\tconst signal = opts.signal;\n\tlet _es = null;\n\tconst createStream = () => new ReadableStream({\n\t\tasync start(controller) {\n\t\t\tconst [url, init] = await Promise.all([opts.url(), opts.init()]);\n\t\t\tconst eventSource = _es = new opts.EventSource(url, init);\n\t\t\tcontroller.enqueue({\n\t\t\t\ttype: \"connecting\",\n\t\t\t\teventSource: _es,\n\t\t\t\tevent: null\n\t\t\t});\n\t\t\teventSource.addEventListener(CONNECTED_EVENT, (_msg) => {\n\t\t\t\tconst msg = _msg;\n\t\t\t\tconst options = JSON.parse(msg.data);\n\t\t\t\tclientOptions = options;\n\t\t\t\tcontroller.enqueue({\n\t\t\t\t\ttype: \"connected\",\n\t\t\t\t\toptions,\n\t\t\t\t\teventSource\n\t\t\t\t});\n\t\t\t});\n\t\t\teventSource.addEventListener(SERIALIZED_ERROR_EVENT, (_msg) => {\n\t\t\t\tconst msg = _msg;\n\t\t\t\tcontroller.enqueue({\n\t\t\t\t\ttype: \"serialized-error\",\n\t\t\t\t\terror: deserialize(JSON.parse(msg.data)),\n\t\t\t\t\teventSource\n\t\t\t\t});\n\t\t\t});\n\t\t\teventSource.addEventListener(PING_EVENT, () => {\n\t\t\t\tcontroller.enqueue({\n\t\t\t\t\ttype: \"ping\",\n\t\t\t\t\teventSource\n\t\t\t\t});\n\t\t\t});\n\t\t\teventSource.addEventListener(RETURN_EVENT, () => {\n\t\t\t\teventSource.close();\n\t\t\t\tcontroller.close();\n\t\t\t\t_es = null;\n\t\t\t});\n\t\t\teventSource.addEventListener(\"error\", (event) => {\n\t\t\t\tif (eventSource.readyState === eventSource.CLOSED) controller.error(event);\n\t\t\t\telse controller.enqueue({\n\t\t\t\t\ttype: \"connecting\",\n\t\t\t\t\teventSource,\n\t\t\t\t\tevent\n\t\t\t\t});\n\t\t\t});\n\t\t\teventSource.addEventListener(\"message\", (_msg) => {\n\t\t\t\tconst msg = _msg;\n\t\t\t\tconst chunk = deserialize(JSON.parse(msg.data));\n\t\t\t\tconst def = { data: chunk };\n\t\t\t\tif (msg.lastEventId) def.id = msg.lastEventId;\n\t\t\t\tcontroller.enqueue({\n\t\t\t\t\ttype: \"data\",\n\t\t\t\t\tdata: def,\n\t\t\t\t\teventSource\n\t\t\t\t});\n\t\t\t});\n\t\t\tconst onAbort = () => {\n\t\t\t\ttry {\n\t\t\t\t\teventSource.close();\n\t\t\t\t\tcontroller.close();\n\t\t\t\t} catch (_unused) {}\n\t\t\t};\n\t\t\tif (signal.aborted) onAbort();\n\t\t\telse signal.addEventListener(\"abort\", onAbort);\n\t\t},\n\t\tcancel() {\n\t\t\t_es === null || _es === void 0 || _es.close();\n\t\t}\n\t});\n\tconst getStreamResource = () => {\n\t\tlet stream = createStream();\n\t\tlet reader = stream.getReader();\n\t\tasync function dispose() {\n\t\t\tawait reader.cancel();\n\t\t\t_es = null;\n\t\t}\n\t\treturn makeAsyncResource({\n\t\t\tread() {\n\t\t\t\treturn reader.read();\n\t\t\t},\n\t\t\tasync recreate() {\n\t\t\t\tawait dispose();\n\t\t\t\tstream = createStream();\n\t\t\t\treader = stream.getReader();\n\t\t\t}\n\t\t}, dispose);\n\t};\n\treturn run((0, import_wrapAsyncGenerator$1.default)(function* () {\n\t\ttry {\n\t\t\tvar _usingCtx3 = (0, import_usingCtx.default)();\n\t\t\tconst stream = _usingCtx3.a(getStreamResource());\n\t\t\twhile (true) {\n\t\t\t\tlet promise = stream.read();\n\t\t\t\tconst timeoutMs = clientOptions.reconnectAfterInactivityMs;\n\t\t\t\tif (timeoutMs) promise = withTimeout({\n\t\t\t\t\tpromise,\n\t\t\t\t\ttimeoutMs,\n\t\t\t\t\tonTimeout: async () => {\n\t\t\t\t\t\tconst res = {\n\t\t\t\t\t\t\tvalue: {\n\t\t\t\t\t\t\t\ttype: \"timeout\",\n\t\t\t\t\t\t\t\tms: timeoutMs,\n\t\t\t\t\t\t\t\teventSource: _es\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdone: false\n\t\t\t\t\t\t};\n\t\t\t\t\t\tawait stream.recreate();\n\t\t\t\t\t\treturn res;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tconst result = yield (0, import_awaitAsyncGenerator.default)(promise);\n\t\t\t\tif (result.done) return result.value;\n\t\t\t\tyield result.value;\n\t\t\t}\n\t\t} catch (_) {\n\t\t\t_usingCtx3.e = _;\n\t\t} finally {\n\t\t\tyield (0, import_awaitAsyncGenerator.default)(_usingCtx3.d());\n\t\t}\n\t}));\n}\nconst sseHeaders = {\n\t\"Content-Type\": \"text/event-stream\",\n\t\"Cache-Control\": \"no-cache, no-transform\",\n\t\"X-Accel-Buffering\": \"no\",\n\tConnection: \"keep-alive\"\n};\n\n//#endregion\n//#region src/unstable-core-do-not-import/http/resolveResponse.ts\nvar import_wrapAsyncGenerator = __toESM(require_wrapAsyncGenerator(), 1);\nvar import_objectSpread2 = __toESM(require_objectSpread2(), 1);\nfunction errorToAsyncIterable(err) {\n\treturn run((0, import_wrapAsyncGenerator.default)(function* () {\n\t\tthrow err;\n\t}));\n}\nfunction combinedAbortController(signal) {\n\tconst controller = new AbortController();\n\tconst combinedSignal = abortSignalsAnyPonyfill([signal, controller.signal]);\n\treturn {\n\t\tsignal: combinedSignal,\n\t\tcontroller\n\t};\n}\nconst TYPE_ACCEPTED_METHOD_MAP = {\n\tmutation: [\"POST\"],\n\tquery: [\"GET\"],\n\tsubscription: [\"GET\"]\n};\nconst TYPE_ACCEPTED_METHOD_MAP_WITH_METHOD_OVERRIDE = {\n\tmutation: [\"POST\"],\n\tquery: [\"GET\", \"POST\"],\n\tsubscription: [\"GET\", \"POST\"]\n};\nfunction initResponse(initOpts) {\n\tvar _responseMeta, _info$calls$find$proc, _info$calls$find;\n\tconst { ctx, info, responseMeta, untransformedJSON, errors = [], headers } = initOpts;\n\tlet status = untransformedJSON ? getHTTPStatusCode(untransformedJSON) : 200;\n\tconst eagerGeneration = !untransformedJSON;\n\tconst data = eagerGeneration ? [] : Array.isArray(untransformedJSON) ? untransformedJSON : [untransformedJSON];\n\tconst meta = (_responseMeta = responseMeta === null || responseMeta === void 0 ? void 0 : responseMeta({\n\t\tctx,\n\t\tinfo,\n\t\tpaths: info === null || info === void 0 ? void 0 : info.calls.map((call) => call.path),\n\t\tdata,\n\t\terrors,\n\t\teagerGeneration,\n\t\ttype: (_info$calls$find$proc = info === null || info === void 0 || (_info$calls$find = info.calls.find((call) => {\n\t\t\tvar _call$procedure;\n\t\t\treturn (_call$procedure = call.procedure) === null || _call$procedure === void 0 ? void 0 : _call$procedure._def.type;\n\t\t})) === null || _info$calls$find === void 0 || (_info$calls$find = _info$calls$find.procedure) === null || _info$calls$find === void 0 ? void 0 : _info$calls$find._def.type) !== null && _info$calls$find$proc !== void 0 ? _info$calls$find$proc : \"unknown\"\n\t})) !== null && _responseMeta !== void 0 ? _responseMeta : {};\n\tif (meta.headers) {\n\t\tif (meta.headers instanceof Headers) for (const [key, value] of meta.headers.entries()) headers.append(key, value);\n\t\telse\n /**\n\t\t* @deprecated, delete in v12\n\t\t*/\n\t\tfor (const [key, value] of Object.entries(meta.headers)) if (Array.isArray(value)) for (const v of value) headers.append(key, v);\n\t\telse if (typeof value === \"string\") headers.set(key, value);\n\t}\n\tif (meta.status) status = meta.status;\n\treturn { status };\n}\nfunction caughtErrorToData(cause, errorOpts) {\n\tconst { router, req, onError } = errorOpts.opts;\n\tconst error = getTRPCErrorFromUnknown(cause);\n\tonError === null || onError === void 0 || onError({\n\t\terror,\n\t\tpath: errorOpts.path,\n\t\tinput: errorOpts.input,\n\t\tctx: errorOpts.ctx,\n\t\ttype: errorOpts.type,\n\t\treq\n\t});\n\tconst untransformedJSON = { error: getErrorShape({\n\t\tconfig: router._def._config,\n\t\terror,\n\t\ttype: errorOpts.type,\n\t\tpath: errorOpts.path,\n\t\tinput: errorOpts.input,\n\t\tctx: errorOpts.ctx\n\t}) };\n\tconst transformedJSON = transformTRPCResponse(router._def._config, untransformedJSON);\n\tconst body = JSON.stringify(transformedJSON);\n\treturn {\n\t\terror,\n\t\tuntransformedJSON,\n\t\tbody\n\t};\n}\n/**\n* Check if a value is a stream-like object\n* - if it's an async iterable\n* - if it's an object with async iterables or promises\n*/\nfunction isDataStream(v) {\n\tif (!isObject(v)) return false;\n\tif (isAsyncIterable(v)) return true;\n\treturn Object.values(v).some(isPromise) || Object.values(v).some(isAsyncIterable);\n}\nasync function resolveResponse(opts) {\n\tvar _ref, _opts$allowBatching, _opts$batching, _opts$allowMethodOver, _config$sse$enabled, _config$sse;\n\tconst { router, req } = opts;\n\tconst headers = new Headers([[\"vary\", \"trpc-accept\"]]);\n\tconst config = router._def._config;\n\tconst url = new URL(req.url);\n\tif (req.method === \"HEAD\") return new Response(null, { status: 204 });\n\tconst allowBatching = (_ref = (_opts$allowBatching = opts.allowBatching) !== null && _opts$allowBatching !== void 0 ? _opts$allowBatching : (_opts$batching = opts.batching) === null || _opts$batching === void 0 ? void 0 : _opts$batching.enabled) !== null && _ref !== void 0 ? _ref : true;\n\tconst allowMethodOverride = ((_opts$allowMethodOver = opts.allowMethodOverride) !== null && _opts$allowMethodOver !== void 0 ? _opts$allowMethodOver : false) && req.method === \"POST\";\n\tconst infoTuple = await run(async () => {\n\t\ttry {\n\t\t\treturn [void 0, await getRequestInfo({\n\t\t\t\treq,\n\t\t\t\tpath: decodeURIComponent(opts.path),\n\t\t\t\trouter,\n\t\t\t\tsearchParams: url.searchParams,\n\t\t\t\theaders: opts.req.headers,\n\t\t\t\turl\n\t\t\t})];\n\t\t} catch (cause) {\n\t\t\treturn [getTRPCErrorFromUnknown(cause), void 0];\n\t\t}\n\t});\n\tconst ctxManager = run(() => {\n\t\tlet result = void 0;\n\t\treturn {\n\t\t\tvalueOrUndefined: () => {\n\t\t\t\tif (!result) return void 0;\n\t\t\t\treturn result[1];\n\t\t\t},\n\t\t\tvalue: () => {\n\t\t\t\tconst [err, ctx] = result;\n\t\t\t\tif (err) throw err;\n\t\t\t\treturn ctx;\n\t\t\t},\n\t\t\tcreate: async (info) => {\n\t\t\t\tif (result) throw new Error(\"This should only be called once - report a bug in tRPC\");\n\t\t\t\ttry {\n\t\t\t\t\tconst ctx = await opts.createContext({ info });\n\t\t\t\t\tresult = [void 0, ctx];\n\t\t\t\t} catch (cause) {\n\t\t\t\t\tresult = [getTRPCErrorFromUnknown(cause), void 0];\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n\tconst methodMapper = allowMethodOverride ? TYPE_ACCEPTED_METHOD_MAP_WITH_METHOD_OVERRIDE : TYPE_ACCEPTED_METHOD_MAP;\n\t/**\n\t* @deprecated\n\t*/\n\tconst isStreamCall = req.headers.get(\"trpc-accept\") === \"application/jsonl\";\n\tconst experimentalSSE = (_config$sse$enabled = (_config$sse = config.sse) === null || _config$sse === void 0 ? void 0 : _config$sse.enabled) !== null && _config$sse$enabled !== void 0 ? _config$sse$enabled : true;\n\ttry {\n\t\tconst [infoError, info] = infoTuple;\n\t\tif (infoError) throw infoError;\n\t\tif (info.isBatchCall && !allowBatching) throw new TRPCError({\n\t\t\tcode: \"BAD_REQUEST\",\n\t\t\tmessage: `Batching is not enabled on the server`\n\t\t});\n\t\t/* istanbul ignore if -- @preserve */\n\t\tif (isStreamCall && !info.isBatchCall) throw new TRPCError({\n\t\t\tmessage: `Streaming requests must be batched (you can do a batch of 1)`,\n\t\t\tcode: \"BAD_REQUEST\"\n\t\t});\n\t\tawait ctxManager.create(info);\n\t\tconst rpcCalls = info.calls.map(async (call) => {\n\t\t\tconst proc = call.procedure;\n\t\t\tconst combinedAbort = combinedAbortController(opts.req.signal);\n\t\t\ttry {\n\t\t\t\tif (opts.error) throw opts.error;\n\t\t\t\tif (!proc) throw new TRPCError({\n\t\t\t\t\tcode: \"NOT_FOUND\",\n\t\t\t\t\tmessage: `No procedure found on path \"${call.path}\"`\n\t\t\t\t});\n\t\t\t\tif (!methodMapper[proc._def.type].includes(req.method)) throw new TRPCError({\n\t\t\t\t\tcode: \"METHOD_NOT_SUPPORTED\",\n\t\t\t\t\tmessage: `Unsupported ${req.method}-request to ${proc._def.type} procedure at path \"${call.path}\"`\n\t\t\t\t});\n\t\t\t\tif (proc._def.type === \"subscription\") {\n\t\t\t\t\tvar _config$sse2;\n\t\t\t\t\t/* istanbul ignore if -- @preserve */\n\t\t\t\t\tif (info.isBatchCall) throw new TRPCError({\n\t\t\t\t\t\tcode: \"BAD_REQUEST\",\n\t\t\t\t\t\tmessage: `Cannot batch subscription calls`\n\t\t\t\t\t});\n\t\t\t\t\tif ((_config$sse2 = config.sse) === null || _config$sse2 === void 0 ? void 0 : _config$sse2.maxDurationMs) {\n\t\t\t\t\t\tfunction cleanup() {\n\t\t\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\t\t\tcombinedAbort.signal.removeEventListener(\"abort\", cleanup);\n\t\t\t\t\t\t\tcombinedAbort.controller.abort();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst timer = setTimeout(cleanup, config.sse.maxDurationMs);\n\t\t\t\t\t\tcombinedAbort.signal.addEventListener(\"abort\", cleanup);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst data = await proc({\n\t\t\t\t\tpath: call.path,\n\t\t\t\t\tgetRawInput: call.getRawInput,\n\t\t\t\t\tctx: ctxManager.value(),\n\t\t\t\t\ttype: proc._def.type,\n\t\t\t\t\tsignal: combinedAbort.signal,\n\t\t\t\t\tbatchIndex: call.batchIndex\n\t\t\t\t});\n\t\t\t\treturn [void 0, {\n\t\t\t\t\tdata,\n\t\t\t\t\tsignal: proc._def.type === \"subscription\" ? combinedAbort.signal : void 0\n\t\t\t\t}];\n\t\t\t} catch (cause) {\n\t\t\t\tvar _opts$onError, _call$procedure$_def$, _call$procedure2;\n\t\t\t\tconst error = getTRPCErrorFromUnknown(cause);\n\t\t\t\tconst input = call.result();\n\t\t\t\t(_opts$onError = opts.onError) === null || _opts$onError === void 0 || _opts$onError.call(opts, {\n\t\t\t\t\terror,\n\t\t\t\t\tpath: call.path,\n\t\t\t\t\tinput,\n\t\t\t\t\tctx: ctxManager.valueOrUndefined(),\n\t\t\t\t\ttype: (_call$procedure$_def$ = (_call$procedure2 = call.procedure) === null || _call$procedure2 === void 0 ? void 0 : _call$procedure2._def.type) !== null && _call$procedure$_def$ !== void 0 ? _call$procedure$_def$ : \"unknown\",\n\t\t\t\t\treq: opts.req\n\t\t\t\t});\n\t\t\t\treturn [error, void 0];\n\t\t\t}\n\t\t});\n\t\tif (!info.isBatchCall) {\n\t\t\tconst [call] = info.calls;\n\t\t\tconst [error, result] = await rpcCalls[0];\n\t\t\tswitch (info.type) {\n\t\t\t\tcase \"unknown\":\n\t\t\t\tcase \"mutation\":\n\t\t\t\tcase \"query\": {\n\t\t\t\t\theaders.set(\"content-type\", \"application/json\");\n\t\t\t\t\tif (isDataStream(result === null || result === void 0 ? void 0 : result.data)) throw new TRPCError({\n\t\t\t\t\t\tcode: \"UNSUPPORTED_MEDIA_TYPE\",\n\t\t\t\t\t\tmessage: \"Cannot use stream-like response in non-streaming request - use httpBatchStreamLink\"\n\t\t\t\t\t});\n\t\t\t\t\tconst res = error ? { error: getErrorShape({\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t\tctx: ctxManager.valueOrUndefined(),\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tinput: call.result(),\n\t\t\t\t\t\tpath: call.path,\n\t\t\t\t\t\ttype: info.type\n\t\t\t\t\t}) } : { result: { data: result.data } };\n\t\t\t\t\tconst headResponse$1 = initResponse({\n\t\t\t\t\t\tctx: ctxManager.valueOrUndefined(),\n\t\t\t\t\t\tinfo,\n\t\t\t\t\t\tresponseMeta: opts.responseMeta,\n\t\t\t\t\t\terrors: error ? [error] : [],\n\t\t\t\t\t\theaders,\n\t\t\t\t\t\tuntransformedJSON: [res]\n\t\t\t\t\t});\n\t\t\t\t\treturn new Response(JSON.stringify(transformTRPCResponse(config, res)), {\n\t\t\t\t\t\tstatus: headResponse$1.status,\n\t\t\t\t\t\theaders\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tcase \"subscription\": {\n\t\t\t\t\tconst iterable = run(() => {\n\t\t\t\t\t\tif (error) return errorToAsyncIterable(error);\n\t\t\t\t\t\tif (!experimentalSSE) return errorToAsyncIterable(new TRPCError({\n\t\t\t\t\t\t\tcode: \"METHOD_NOT_SUPPORTED\",\n\t\t\t\t\t\t\tmessage: \"Missing experimental flag \\\"sseSubscriptions\\\"\"\n\t\t\t\t\t\t}));\n\t\t\t\t\t\tif (!isObservable(result.data) && !isAsyncIterable(result.data)) return errorToAsyncIterable(new TRPCError({\n\t\t\t\t\t\t\tmessage: `Subscription ${call.path} did not return an observable or a AsyncGenerator`,\n\t\t\t\t\t\t\tcode: \"INTERNAL_SERVER_ERROR\"\n\t\t\t\t\t\t}));\n\t\t\t\t\t\tconst dataAsIterable = isObservable(result.data) ? observableToAsyncIterable(result.data, opts.req.signal) : result.data;\n\t\t\t\t\t\treturn dataAsIterable;\n\t\t\t\t\t});\n\t\t\t\t\tconst stream = sseStreamProducer((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, config.sse), {}, {\n\t\t\t\t\t\tdata: iterable,\n\t\t\t\t\t\tserialize: (v) => config.transformer.output.serialize(v),\n\t\t\t\t\t\tformatError(errorOpts) {\n\t\t\t\t\t\t\tvar _call$procedure$_def$2, _call$procedure3, _opts$onError2;\n\t\t\t\t\t\t\tconst error$1 = getTRPCErrorFromUnknown(errorOpts.error);\n\t\t\t\t\t\t\tconst input = call === null || call === void 0 ? void 0 : call.result();\n\t\t\t\t\t\t\tconst path = call === null || call === void 0 ? void 0 : call.path;\n\t\t\t\t\t\t\tconst type = (_call$procedure$_def$2 = call === null || call === void 0 || (_call$procedure3 = call.procedure) === null || _call$procedure3 === void 0 ? void 0 : _call$procedure3._def.type) !== null && _call$procedure$_def$2 !== void 0 ? _call$procedure$_def$2 : \"unknown\";\n\t\t\t\t\t\t\t(_opts$onError2 = opts.onError) === null || _opts$onError2 === void 0 || _opts$onError2.call(opts, {\n\t\t\t\t\t\t\t\terror: error$1,\n\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tctx: ctxManager.valueOrUndefined(),\n\t\t\t\t\t\t\t\treq: opts.req,\n\t\t\t\t\t\t\t\ttype\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tconst shape = getErrorShape({\n\t\t\t\t\t\t\t\tconfig,\n\t\t\t\t\t\t\t\tctx: ctxManager.valueOrUndefined(),\n\t\t\t\t\t\t\t\terror: error$1,\n\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t\ttype\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn shape;\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t\tfor (const [key, value] of Object.entries(sseHeaders)) headers.set(key, value);\n\t\t\t\t\tconst headResponse$1 = initResponse({\n\t\t\t\t\t\tctx: ctxManager.valueOrUndefined(),\n\t\t\t\t\t\tinfo,\n\t\t\t\t\t\tresponseMeta: opts.responseMeta,\n\t\t\t\t\t\terrors: [],\n\t\t\t\t\t\theaders,\n\t\t\t\t\t\tuntransformedJSON: null\n\t\t\t\t\t});\n\t\t\t\t\tconst abortSignal = result === null || result === void 0 ? void 0 : result.signal;\n\t\t\t\t\tlet responseBody = stream;\n\t\t\t\t\tif (abortSignal) {\n\t\t\t\t\t\tconst reader = stream.getReader();\n\t\t\t\t\t\tconst onAbort = () => void reader.cancel();\n\t\t\t\t\t\tif (abortSignal.aborted) onAbort();\n\t\t\t\t\t\telse abortSignal.addEventListener(\"abort\", onAbort, { once: true });\n\t\t\t\t\t\tresponseBody = new ReadableStream({\n\t\t\t\t\t\t\tasync pull(controller) {\n\t\t\t\t\t\t\t\tconst chunk = await reader.read();\n\t\t\t\t\t\t\t\tif (chunk.done) {\n\t\t\t\t\t\t\t\t\tabortSignal.removeEventListener(\"abort\", onAbort);\n\t\t\t\t\t\t\t\t\tcontroller.close();\n\t\t\t\t\t\t\t\t} else controller.enqueue(chunk.value);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tcancel() {\n\t\t\t\t\t\t\t\tabortSignal.removeEventListener(\"abort\", onAbort);\n\t\t\t\t\t\t\t\treturn reader.cancel();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn new Response(responseBody, {\n\t\t\t\t\t\theaders,\n\t\t\t\t\t\tstatus: headResponse$1.status\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (info.accept === \"application/jsonl\") {\n\t\t\theaders.set(\"content-type\", \"application/json\");\n\t\t\theaders.set(\"transfer-encoding\", \"chunked\");\n\t\t\tconst headResponse$1 = initResponse({\n\t\t\t\tctx: ctxManager.valueOrUndefined(),\n\t\t\t\tinfo,\n\t\t\t\tresponseMeta: opts.responseMeta,\n\t\t\t\terrors: [],\n\t\t\t\theaders,\n\t\t\t\tuntransformedJSON: null\n\t\t\t});\n\t\t\tconst stream = jsonlStreamProducer((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, config.jsonl), {}, {\n\t\t\t\tmaxDepth: Infinity,\n\t\t\t\tdata: rpcCalls.map(async (res) => {\n\t\t\t\t\tconst [error, result] = await res;\n\t\t\t\t\tconst call = info.calls[0];\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\tvar _procedure$_def$type, _procedure;\n\t\t\t\t\t\treturn { error: getErrorShape({\n\t\t\t\t\t\t\tconfig,\n\t\t\t\t\t\t\tctx: ctxManager.valueOrUndefined(),\n\t\t\t\t\t\t\terror,\n\t\t\t\t\t\t\tinput: call.result(),\n\t\t\t\t\t\t\tpath: call.path,\n\t\t\t\t\t\t\ttype: (_procedure$_def$type = (_procedure = call.procedure) === null || _procedure === void 0 ? void 0 : _procedure._def.type) !== null && _procedure$_def$type !== void 0 ? _procedure$_def$type : \"unknown\"\n\t\t\t\t\t\t}) };\n\t\t\t\t\t}\n\t\t\t\t\t/**\n\t\t\t\t\t* Not very pretty, but we need to wrap nested data in promises\n\t\t\t\t\t* Our stream producer will only resolve top-level async values or async values that are directly nested in another async value\n\t\t\t\t\t*/\n\t\t\t\t\tconst iterable = isObservable(result.data) ? observableToAsyncIterable(result.data, opts.req.signal) : Promise.resolve(result.data);\n\t\t\t\t\treturn { result: Promise.resolve({ data: iterable }) };\n\t\t\t\t}),\n\t\t\t\tserialize: (data) => config.transformer.output.serialize(data),\n\t\t\t\tonError: (cause) => {\n\t\t\t\t\tvar _opts$onError3, _info$type;\n\t\t\t\t\t(_opts$onError3 = opts.onError) === null || _opts$onError3 === void 0 || _opts$onError3.call(opts, {\n\t\t\t\t\t\terror: getTRPCErrorFromUnknown(cause),\n\t\t\t\t\t\tpath: void 0,\n\t\t\t\t\t\tinput: void 0,\n\t\t\t\t\t\tctx: ctxManager.valueOrUndefined(),\n\t\t\t\t\t\treq: opts.req,\n\t\t\t\t\t\ttype: (_info$type = info === null || info === void 0 ? void 0 : info.type) !== null && _info$type !== void 0 ? _info$type : \"unknown\"\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tformatError(errorOpts) {\n\t\t\t\t\tvar _call$procedure$_def$3, _call$procedure4;\n\t\t\t\t\tconst call = info === null || info === void 0 ? void 0 : info.calls[errorOpts.path[0]];\n\t\t\t\t\tconst error = getTRPCErrorFromUnknown(errorOpts.error);\n\t\t\t\t\tconst input = call === null || call === void 0 ? void 0 : call.result();\n\t\t\t\t\tconst path = call === null || call === void 0 ? void 0 : call.path;\n\t\t\t\t\tconst type = (_call$procedure$_def$3 = call === null || call === void 0 || (_call$procedure4 = call.procedure) === null || _call$procedure4 === void 0 ? void 0 : _call$procedure4._def.type) !== null && _call$procedure$_def$3 !== void 0 ? _call$procedure$_def$3 : \"unknown\";\n\t\t\t\t\tconst shape = getErrorShape({\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t\tctx: ctxManager.valueOrUndefined(),\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tinput,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\ttype\n\t\t\t\t\t});\n\t\t\t\t\treturn shape;\n\t\t\t\t}\n\t\t\t}));\n\t\t\treturn new Response(stream, {\n\t\t\t\theaders,\n\t\t\t\tstatus: headResponse$1.status\n\t\t\t});\n\t\t}\n\t\t/**\n\t\t* Non-streaming response:\n\t\t* - await all responses in parallel, blocking on the slowest one\n\t\t* - create headers with known response body\n\t\t* - return a complete HTTPResponse\n\t\t*/\n\t\theaders.set(\"content-type\", \"application/json\");\n\t\tconst results = (await Promise.all(rpcCalls)).map((res) => {\n\t\t\tconst [error, result] = res;\n\t\t\tif (error) return res;\n\t\t\tif (isDataStream(result.data)) return [new TRPCError({\n\t\t\t\tcode: \"UNSUPPORTED_MEDIA_TYPE\",\n\t\t\t\tmessage: \"Cannot use stream-like response in non-streaming request - use httpBatchStreamLink\"\n\t\t\t}), void 0];\n\t\t\treturn res;\n\t\t});\n\t\tconst resultAsRPCResponse = results.map(([error, result], index) => {\n\t\t\tconst call = info.calls[index];\n\t\t\tif (error) {\n\t\t\t\tvar _call$procedure$_def$4, _call$procedure5;\n\t\t\t\treturn { error: getErrorShape({\n\t\t\t\t\tconfig,\n\t\t\t\t\tctx: ctxManager.valueOrUndefined(),\n\t\t\t\t\terror,\n\t\t\t\t\tinput: call.result(),\n\t\t\t\t\tpath: call.path,\n\t\t\t\t\ttype: (_call$procedure$_def$4 = (_call$procedure5 = call.procedure) === null || _call$procedure5 === void 0 ? void 0 : _call$procedure5._def.type) !== null && _call$procedure$_def$4 !== void 0 ? _call$procedure$_def$4 : \"unknown\"\n\t\t\t\t}) };\n\t\t\t}\n\t\t\treturn { result: { data: result.data } };\n\t\t});\n\t\tconst errors = results.map(([error]) => error).filter(Boolean);\n\t\tconst headResponse = initResponse({\n\t\t\tctx: ctxManager.valueOrUndefined(),\n\t\t\tinfo,\n\t\t\tresponseMeta: opts.responseMeta,\n\t\t\tuntransformedJSON: resultAsRPCResponse,\n\t\t\terrors,\n\t\t\theaders\n\t\t});\n\t\treturn new Response(JSON.stringify(transformTRPCResponse(config, resultAsRPCResponse)), {\n\t\t\tstatus: headResponse.status,\n\t\t\theaders\n\t\t});\n\t} catch (cause) {\n\t\tvar _info$type2;\n\t\tconst [_infoError, info] = infoTuple;\n\t\tconst ctx = ctxManager.valueOrUndefined();\n\t\tconst { error, untransformedJSON, body } = caughtErrorToData(cause, {\n\t\t\topts,\n\t\t\tctx: ctxManager.valueOrUndefined(),\n\t\t\ttype: (_info$type2 = info === null || info === void 0 ? void 0 : info.type) !== null && _info$type2 !== void 0 ? _info$type2 : \"unknown\"\n\t\t});\n\t\tconst headResponse = initResponse({\n\t\t\tctx,\n\t\t\tinfo,\n\t\t\tresponseMeta: opts.responseMeta,\n\t\t\tuntransformedJSON,\n\t\t\terrors: [error],\n\t\t\theaders\n\t\t});\n\t\treturn new Response(body, {\n\t\t\tstatus: headResponse.status,\n\t\t\theaders\n\t\t});\n\t}\n}\n\n//#endregion\nexport { Unpromise, createDeferred, getRequestInfo, isAbortError, isPromise, iteratorResource, jsonlStreamConsumer, jsonlStreamProducer, makeAsyncResource, makeResource, parseConnectionParamsFromString, parseConnectionParamsFromUnknown, require_usingCtx, resolveResponse, sseHeaders, sseStreamConsumer, sseStreamProducer, takeWithGrace, throwAbortError };\n//# sourceMappingURL=resolveResponse-BLZa62-J.mjs.map","import { __toESM, require_defineProperty, require_objectSpread2 } from \"./objectSpread2-BvkFp-_Y.mjs\";\nimport { isObject } from \"@trpc/server/unstable-core-do-not-import\";\n\n//#region src/TRPCClientError.ts\nvar import_defineProperty = __toESM(require_defineProperty(), 1);\nvar import_objectSpread2 = __toESM(require_objectSpread2(), 1);\nfunction isTRPCClientError(cause) {\n\treturn cause instanceof TRPCClientError;\n}\nfunction isTRPCErrorResponse(obj) {\n\treturn isObject(obj) && isObject(obj[\"error\"]) && typeof obj[\"error\"][\"code\"] === \"number\" && typeof obj[\"error\"][\"message\"] === \"string\";\n}\nfunction getMessageFromUnknownError(err, fallback) {\n\tif (typeof err === \"string\") return err;\n\tif (isObject(err) && typeof err[\"message\"] === \"string\") return err[\"message\"];\n\treturn fallback;\n}\nvar TRPCClientError = class TRPCClientError extends Error {\n\tconstructor(message, opts) {\n\t\tvar _opts$result, _opts$result2;\n\t\tconst cause = opts === null || opts === void 0 ? void 0 : opts.cause;\n\t\tsuper(message, { cause });\n\t\t(0, import_defineProperty.default)(this, \"cause\", void 0);\n\t\t(0, import_defineProperty.default)(this, \"shape\", void 0);\n\t\t(0, import_defineProperty.default)(this, \"data\", void 0);\n\t\t(0, import_defineProperty.default)(this, \"meta\", void 0);\n\t\tthis.meta = opts === null || opts === void 0 ? void 0 : opts.meta;\n\t\tthis.cause = cause;\n\t\tthis.shape = opts === null || opts === void 0 || (_opts$result = opts.result) === null || _opts$result === void 0 ? void 0 : _opts$result.error;\n\t\tthis.data = opts === null || opts === void 0 || (_opts$result2 = opts.result) === null || _opts$result2 === void 0 ? void 0 : _opts$result2.error.data;\n\t\tthis.name = \"TRPCClientError\";\n\t\tObject.setPrototypeOf(this, TRPCClientError.prototype);\n\t}\n\tstatic from(_cause, opts = {}) {\n\t\tconst cause = _cause;\n\t\tif (isTRPCClientError(cause)) {\n\t\t\tif (opts.meta) cause.meta = (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, cause.meta), opts.meta);\n\t\t\treturn cause;\n\t\t}\n\t\tif (isTRPCErrorResponse(cause)) return new TRPCClientError(cause.error.message, (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {\n\t\t\tresult: cause,\n\t\t\tcause: opts.cause\n\t\t}));\n\t\treturn new TRPCClientError(getMessageFromUnknownError(cause, \"Unknown error\"), (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, { cause }));\n\t}\n};\n\n//#endregion\nexport { TRPCClientError, isTRPCClientError };\n//# sourceMappingURL=TRPCClientError-apv8gw59.mjs.map","//#region src/internals/transformer.ts\n/**\n* @internal\n*/\n/**\n* @internal\n*/\nfunction getTransformer(transformer) {\n\tconst _transformer = transformer;\n\tif (!_transformer) return {\n\t\tinput: {\n\t\t\tserialize: (data) => data,\n\t\t\tdeserialize: (data) => data\n\t\t},\n\t\toutput: {\n\t\t\tserialize: (data) => data,\n\t\t\tdeserialize: (data) => data\n\t\t}\n\t};\n\tif (\"input\" in _transformer) return _transformer;\n\treturn {\n\t\tinput: _transformer,\n\t\toutput: _transformer\n\t};\n}\n\n//#endregion\nexport { getTransformer };\n//# sourceMappingURL=unstable-internals-Bg7n9BBj.mjs.map","import { __toESM, require_objectSpread2 } from \"./objectSpread2-BvkFp-_Y.mjs\";\nimport { getTransformer } from \"./unstable-internals-Bg7n9BBj.mjs\";\n\n//#region src/getFetch.ts\nconst isFunction = (fn) => typeof fn === \"function\";\nfunction getFetch(customFetchImpl) {\n\tif (customFetchImpl) return customFetchImpl;\n\tif (typeof window !== \"undefined\" && isFunction(window.fetch)) return window.fetch;\n\tif (typeof globalThis !== \"undefined\" && isFunction(globalThis.fetch)) return globalThis.fetch;\n\tthrow new Error(\"No fetch implementation found\");\n}\n\n//#endregion\n//#region src/links/internals/httpUtils.ts\nvar import_objectSpread2 = __toESM(require_objectSpread2(), 1);\nfunction resolveHTTPLinkOptions(opts) {\n\treturn {\n\t\turl: opts.url.toString(),\n\t\tfetch: opts.fetch,\n\t\ttransformer: getTransformer(opts.transformer),\n\t\tmethodOverride: opts.methodOverride\n\t};\n}\nfunction arrayToDict(array) {\n\tconst dict = {};\n\tfor (let index = 0; index < array.length; index++) {\n\t\tconst element = array[index];\n\t\tdict[index] = element;\n\t}\n\treturn dict;\n}\nconst METHOD = {\n\tquery: \"GET\",\n\tmutation: \"POST\",\n\tsubscription: \"PATCH\"\n};\nfunction getInput(opts) {\n\treturn \"input\" in opts ? opts.transformer.input.serialize(opts.input) : arrayToDict(opts.inputs.map((_input) => opts.transformer.input.serialize(_input)));\n}\nconst getUrl = (opts) => {\n\tconst parts = opts.url.split(\"?\");\n\tconst base = parts[0].replace(/\\/$/, \"\");\n\tlet url = base + \"/\" + opts.path;\n\tconst queryParts = [];\n\tif (parts[1]) queryParts.push(parts[1]);\n\tif (\"inputs\" in opts) queryParts.push(\"batch=1\");\n\tif (opts.type === \"query\" || opts.type === \"subscription\") {\n\t\tconst input = getInput(opts);\n\t\tif (input !== void 0 && opts.methodOverride !== \"POST\") queryParts.push(`input=${encodeURIComponent(JSON.stringify(input))}`);\n\t}\n\tif (queryParts.length) url += \"?\" + queryParts.join(\"&\");\n\treturn url;\n};\nconst getBody = (opts) => {\n\tif (opts.type === \"query\" && opts.methodOverride !== \"POST\") return void 0;\n\tconst input = getInput(opts);\n\treturn input !== void 0 ? JSON.stringify(input) : void 0;\n};\nconst jsonHttpRequester = (opts) => {\n\treturn httpRequest((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {\n\t\tcontentTypeHeader: \"application/json\",\n\t\tgetUrl,\n\t\tgetBody\n\t}));\n};\n/**\n* Polyfill for DOMException with AbortError name\n*/\nvar AbortError = class extends Error {\n\tconstructor() {\n\t\tconst name = \"AbortError\";\n\t\tsuper(name);\n\t\tthis.name = name;\n\t\tthis.message = name;\n\t}\n};\n/**\n* Polyfill for `signal.throwIfAborted()`\n*\n* @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/throwIfAborted\n*/\nconst throwIfAborted = (signal) => {\n\tvar _signal$throwIfAborte;\n\tif (!(signal === null || signal === void 0 ? void 0 : signal.aborted)) return;\n\t(_signal$throwIfAborte = signal.throwIfAborted) === null || _signal$throwIfAborte === void 0 || _signal$throwIfAborte.call(signal);\n\tif (typeof DOMException !== \"undefined\") throw new DOMException(\"AbortError\", \"AbortError\");\n\tthrow new AbortError();\n};\nasync function fetchHTTPResponse(opts) {\n\tvar _opts$methodOverride;\n\tthrowIfAborted(opts.signal);\n\tconst url = opts.getUrl(opts);\n\tconst body = opts.getBody(opts);\n\tconst method = (_opts$methodOverride = opts.methodOverride) !== null && _opts$methodOverride !== void 0 ? _opts$methodOverride : METHOD[opts.type];\n\tconst resolvedHeaders = await (async () => {\n\t\tconst heads = await opts.headers();\n\t\tif (Symbol.iterator in heads) return Object.fromEntries(heads);\n\t\treturn heads;\n\t})();\n\tconst headers = (0, import_objectSpread2.default)((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts.contentTypeHeader && method !== \"GET\" ? { \"content-type\": opts.contentTypeHeader } : {}), opts.trpcAcceptHeader ? { \"trpc-accept\": opts.trpcAcceptHeader } : void 0), resolvedHeaders);\n\treturn getFetch(opts.fetch)(url, {\n\t\tmethod,\n\t\tsignal: opts.signal,\n\t\tbody,\n\t\theaders\n\t});\n}\nasync function httpRequest(opts) {\n\tconst meta = {};\n\tconst res = await fetchHTTPResponse(opts);\n\tmeta.response = res;\n\tconst json = await res.json();\n\tmeta.responseJSON = json;\n\treturn {\n\t\tjson,\n\t\tmeta\n\t};\n}\n\n//#endregion\nexport { fetchHTTPResponse, getBody, getFetch, getUrl, httpRequest, jsonHttpRequester, resolveHTTPLinkOptions };\n//# sourceMappingURL=httpUtils-Dv57hbOd.mjs.map","import { __toESM, require_objectSpread2 } from \"./objectSpread2-BvkFp-_Y.mjs\";\nimport { TRPCClientError } from \"./TRPCClientError-apv8gw59.mjs\";\nimport { getUrl, httpRequest, jsonHttpRequester, resolveHTTPLinkOptions } from \"./httpUtils-Dv57hbOd.mjs\";\nimport { observable } from \"@trpc/server/observable\";\nimport { transformResult } from \"@trpc/server/unstable-core-do-not-import\";\n\n//#region src/links/internals/contentTypes.ts\nfunction isOctetType(input) {\n\treturn input instanceof Uint8Array || input instanceof Blob;\n}\nfunction isFormData(input) {\n\treturn input instanceof FormData;\n}\nfunction isNonJsonSerializable(input) {\n\treturn isOctetType(input) || isFormData(input);\n}\n\n//#endregion\n//#region src/links/httpLink.ts\nvar import_objectSpread2 = __toESM(require_objectSpread2(), 1);\nconst universalRequester = (opts) => {\n\tif (\"input\" in opts) {\n\t\tconst { input } = opts;\n\t\tif (isFormData(input)) {\n\t\t\tif (opts.type !== \"mutation\" && opts.methodOverride !== \"POST\") throw new Error(\"FormData is only supported for mutations\");\n\t\t\treturn httpRequest((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {\n\t\t\t\tcontentTypeHeader: void 0,\n\t\t\t\tgetUrl,\n\t\t\t\tgetBody: () => input\n\t\t\t}));\n\t\t}\n\t\tif (isOctetType(input)) {\n\t\t\tif (opts.type !== \"mutation\" && opts.methodOverride !== \"POST\") throw new Error(\"Octet type input is only supported for mutations\");\n\t\t\treturn httpRequest((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {\n\t\t\t\tcontentTypeHeader: \"application/octet-stream\",\n\t\t\t\tgetUrl,\n\t\t\t\tgetBody: () => input\n\t\t\t}));\n\t\t}\n\t}\n\treturn jsonHttpRequester(opts);\n};\n/**\n* @see https://trpc.io/docs/client/links/httpLink\n*/\nfunction httpLink(opts) {\n\tconst resolvedOpts = resolveHTTPLinkOptions(opts);\n\treturn () => {\n\t\treturn (operationOpts) => {\n\t\t\tconst { op } = operationOpts;\n\t\t\treturn observable((observer) => {\n\t\t\t\tconst { path, input, type } = op;\n\t\t\t\t/* istanbul ignore if -- @preserve */\n\t\t\t\tif (type === \"subscription\") throw new Error(\"Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`\");\n\t\t\t\tconst request = universalRequester((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, resolvedOpts), {}, {\n\t\t\t\t\ttype,\n\t\t\t\t\tpath,\n\t\t\t\t\tinput,\n\t\t\t\t\tsignal: op.signal,\n\t\t\t\t\theaders() {\n\t\t\t\t\t\tif (!opts.headers) return {};\n\t\t\t\t\t\tif (typeof opts.headers === \"function\") return opts.headers({ op });\n\t\t\t\t\t\treturn opts.headers;\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\t\tlet meta = void 0;\n\t\t\t\trequest.then((res) => {\n\t\t\t\t\tmeta = res.meta;\n\t\t\t\t\tconst transformed = transformResult(res.json, resolvedOpts.transformer.output);\n\t\t\t\t\tif (!transformed.ok) {\n\t\t\t\t\t\tobserver.error(TRPCClientError.from(transformed.error, { meta }));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tobserver.next({\n\t\t\t\t\t\tcontext: res.meta,\n\t\t\t\t\t\tresult: transformed.result\n\t\t\t\t\t});\n\t\t\t\t\tobserver.complete();\n\t\t\t\t}).catch((cause) => {\n\t\t\t\t\tobserver.error(TRPCClientError.from(cause, { meta }));\n\t\t\t\t});\n\t\t\t\treturn () => {};\n\t\t\t});\n\t\t};\n\t};\n}\n\n//#endregion\nexport { httpLink, isFormData, isNonJsonSerializable, isOctetType };\n//# sourceMappingURL=httpLink-Cz9h1Qgh.mjs.map","import { __toESM, require_objectSpread2 } from \"./objectSpread2-BvkFp-_Y.mjs\";\nimport { TRPCClientError } from \"./TRPCClientError-apv8gw59.mjs\";\nimport { getUrl, jsonHttpRequester, resolveHTTPLinkOptions } from \"./httpUtils-Dv57hbOd.mjs\";\nimport { observable } from \"@trpc/server/observable\";\nimport { transformResult } from \"@trpc/server/unstable-core-do-not-import\";\n\n//#region src/internals/dataLoader.ts\n/**\n* A function that should never be called unless we messed something up.\n*/\nconst throwFatalError = () => {\n\tthrow new Error(\"Something went wrong. Please submit an issue at https://github.com/trpc/trpc/issues/new\");\n};\n/**\n* Dataloader that's very inspired by https://github.com/graphql/dataloader\n* Less configuration, no caching, and allows you to cancel requests\n* When cancelling a single fetch the whole batch will be cancelled only when _all_ items are cancelled\n*/\nfunction dataLoader(batchLoader) {\n\tlet pendingItems = null;\n\tlet dispatchTimer = null;\n\tconst destroyTimerAndPendingItems = () => {\n\t\tclearTimeout(dispatchTimer);\n\t\tdispatchTimer = null;\n\t\tpendingItems = null;\n\t};\n\t/**\n\t* Iterate through the items and split them into groups based on the `batchLoader`'s validate function\n\t*/\n\tfunction groupItems(items) {\n\t\tconst groupedItems = [[]];\n\t\tlet index = 0;\n\t\twhile (true) {\n\t\t\tconst item = items[index];\n\t\t\tif (!item) break;\n\t\t\tconst lastGroup = groupedItems[groupedItems.length - 1];\n\t\t\tif (item.aborted) {\n\t\t\t\tvar _item$reject;\n\t\t\t\t(_item$reject = item.reject) === null || _item$reject === void 0 || _item$reject.call(item, new Error(\"Aborted\"));\n\t\t\t\tindex++;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst isValid = batchLoader.validate(lastGroup.concat(item).map((it) => it.key));\n\t\t\tif (isValid) {\n\t\t\t\tlastGroup.push(item);\n\t\t\t\tindex++;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (lastGroup.length === 0) {\n\t\t\t\tvar _item$reject2;\n\t\t\t\t(_item$reject2 = item.reject) === null || _item$reject2 === void 0 || _item$reject2.call(item, new Error(\"Input is too big for a single dispatch\"));\n\t\t\t\tindex++;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tgroupedItems.push([]);\n\t\t}\n\t\treturn groupedItems;\n\t}\n\tfunction dispatch() {\n\t\tconst groupedItems = groupItems(pendingItems);\n\t\tdestroyTimerAndPendingItems();\n\t\tfor (const items of groupedItems) {\n\t\t\tif (!items.length) continue;\n\t\t\tconst batch = { items };\n\t\t\tfor (const item of items) item.batch = batch;\n\t\t\tconst promise = batchLoader.fetch(batch.items.map((_item) => _item.key));\n\t\t\tpromise.then(async (result) => {\n\t\t\t\tawait Promise.all(result.map(async (valueOrPromise, index) => {\n\t\t\t\t\tconst item = batch.items[index];\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar _item$resolve;\n\t\t\t\t\t\tconst value = await Promise.resolve(valueOrPromise);\n\t\t\t\t\t\t(_item$resolve = item.resolve) === null || _item$resolve === void 0 || _item$resolve.call(item, value);\n\t\t\t\t\t} catch (cause) {\n\t\t\t\t\t\tvar _item$reject3;\n\t\t\t\t\t\t(_item$reject3 = item.reject) === null || _item$reject3 === void 0 || _item$reject3.call(item, cause);\n\t\t\t\t\t}\n\t\t\t\t\titem.batch = null;\n\t\t\t\t\titem.reject = null;\n\t\t\t\t\titem.resolve = null;\n\t\t\t\t}));\n\t\t\t\tfor (const item of batch.items) {\n\t\t\t\t\tvar _item$reject4;\n\t\t\t\t\t(_item$reject4 = item.reject) === null || _item$reject4 === void 0 || _item$reject4.call(item, new Error(\"Missing result\"));\n\t\t\t\t\titem.batch = null;\n\t\t\t\t}\n\t\t\t}).catch((cause) => {\n\t\t\t\tfor (const item of batch.items) {\n\t\t\t\t\tvar _item$reject5;\n\t\t\t\t\t(_item$reject5 = item.reject) === null || _item$reject5 === void 0 || _item$reject5.call(item, cause);\n\t\t\t\t\titem.batch = null;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tfunction load(key) {\n\t\tvar _dispatchTimer;\n\t\tconst item = {\n\t\t\taborted: false,\n\t\t\tkey,\n\t\t\tbatch: null,\n\t\t\tresolve: throwFatalError,\n\t\t\treject: throwFatalError\n\t\t};\n\t\tconst promise = new Promise((resolve, reject) => {\n\t\t\tvar _pendingItems;\n\t\t\titem.reject = reject;\n\t\t\titem.resolve = resolve;\n\t\t\t(_pendingItems = pendingItems) !== null && _pendingItems !== void 0 || (pendingItems = []);\n\t\t\tpendingItems.push(item);\n\t\t});\n\t\t(_dispatchTimer = dispatchTimer) !== null && _dispatchTimer !== void 0 || (dispatchTimer = setTimeout(dispatch));\n\t\treturn promise;\n\t}\n\treturn { load };\n}\n\n//#endregion\n//#region src/internals/signals.ts\n/**\n* Like `Promise.all()` but for abort signals\n* - When all signals have been aborted, the merged signal will be aborted\n* - If one signal is `null`, no signal will be aborted\n*/\nfunction allAbortSignals(...signals) {\n\tconst ac = new AbortController();\n\tconst count = signals.length;\n\tlet abortedCount = 0;\n\tconst onAbort = () => {\n\t\tif (++abortedCount === count) ac.abort();\n\t};\n\tfor (const signal of signals) if (signal === null || signal === void 0 ? void 0 : signal.aborted) onAbort();\n\telse signal === null || signal === void 0 || signal.addEventListener(\"abort\", onAbort, { once: true });\n\treturn ac.signal;\n}\n/**\n* Like `Promise.race` but for abort signals\n*\n* Basically, a ponyfill for\n* [`AbortSignal.any`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/any_static).\n*/\nfunction raceAbortSignals(...signals) {\n\tconst ac = new AbortController();\n\tfor (const signal of signals) if (signal === null || signal === void 0 ? void 0 : signal.aborted) ac.abort();\n\telse signal === null || signal === void 0 || signal.addEventListener(\"abort\", () => ac.abort(), { once: true });\n\treturn ac.signal;\n}\nfunction abortSignalToPromise(signal) {\n\treturn new Promise((_, reject) => {\n\t\tif (signal.aborted) {\n\t\t\treject(signal.reason);\n\t\t\treturn;\n\t\t}\n\t\tsignal.addEventListener(\"abort\", () => {\n\t\t\treject(signal.reason);\n\t\t}, { once: true });\n\t});\n}\n\n//#endregion\n//#region src/links/httpBatchLink.ts\nvar import_objectSpread2 = __toESM(require_objectSpread2(), 1);\n/**\n* @see https://trpc.io/docs/client/links/httpBatchLink\n*/\nfunction httpBatchLink(opts) {\n\tvar _opts$maxURLLength, _opts$maxItems;\n\tconst resolvedOpts = resolveHTTPLinkOptions(opts);\n\tconst maxURLLength = (_opts$maxURLLength = opts.maxURLLength) !== null && _opts$maxURLLength !== void 0 ? _opts$maxURLLength : Infinity;\n\tconst maxItems = (_opts$maxItems = opts.maxItems) !== null && _opts$maxItems !== void 0 ? _opts$maxItems : Infinity;\n\treturn () => {\n\t\tconst batchLoader = (type) => {\n\t\t\treturn {\n\t\t\t\tvalidate(batchOps) {\n\t\t\t\t\tif (maxURLLength === Infinity && maxItems === Infinity) return true;\n\t\t\t\t\tif (batchOps.length > maxItems) return false;\n\t\t\t\t\tconst path = batchOps.map((op) => op.path).join(\",\");\n\t\t\t\t\tconst inputs = batchOps.map((op) => op.input);\n\t\t\t\t\tconst url = getUrl((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, resolvedOpts), {}, {\n\t\t\t\t\t\ttype,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\tinputs,\n\t\t\t\t\t\tsignal: null\n\t\t\t\t\t}));\n\t\t\t\t\treturn url.length <= maxURLLength;\n\t\t\t\t},\n\t\t\t\tasync fetch(batchOps) {\n\t\t\t\t\tconst path = batchOps.map((op) => op.path).join(\",\");\n\t\t\t\t\tconst inputs = batchOps.map((op) => op.input);\n\t\t\t\t\tconst signal = allAbortSignals(...batchOps.map((op) => op.signal));\n\t\t\t\t\tconst res = await jsonHttpRequester((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, resolvedOpts), {}, {\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\tinputs,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t\theaders() {\n\t\t\t\t\t\t\tif (!opts.headers) return {};\n\t\t\t\t\t\t\tif (typeof opts.headers === \"function\") return opts.headers({ opList: batchOps });\n\t\t\t\t\t\t\treturn opts.headers;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsignal\n\t\t\t\t\t}));\n\t\t\t\t\tconst resJSON = Array.isArray(res.json) ? res.json : batchOps.map(() => res.json);\n\t\t\t\t\tconst result = resJSON.map((item) => ({\n\t\t\t\t\t\tmeta: res.meta,\n\t\t\t\t\t\tjson: item\n\t\t\t\t\t}));\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\t\t\t};\n\t\t};\n\t\tconst query = dataLoader(batchLoader(\"query\"));\n\t\tconst mutation = dataLoader(batchLoader(\"mutation\"));\n\t\tconst loaders = {\n\t\t\tquery,\n\t\t\tmutation\n\t\t};\n\t\treturn ({ op }) => {\n\t\t\treturn observable((observer) => {\n\t\t\t\t/* istanbul ignore if -- @preserve */\n\t\t\t\tif (op.type === \"subscription\") throw new Error(\"Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`\");\n\t\t\t\tconst loader = loaders[op.type];\n\t\t\t\tconst promise = loader.load(op);\n\t\t\t\tlet _res = void 0;\n\t\t\t\tpromise.then((res) => {\n\t\t\t\t\t_res = res;\n\t\t\t\t\tconst transformed = transformResult(res.json, resolvedOpts.transformer.output);\n\t\t\t\t\tif (!transformed.ok) {\n\t\t\t\t\t\tobserver.error(TRPCClientError.from(transformed.error, { meta: res.meta }));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tobserver.next({\n\t\t\t\t\t\tcontext: res.meta,\n\t\t\t\t\t\tresult: transformed.result\n\t\t\t\t\t});\n\t\t\t\t\tobserver.complete();\n\t\t\t\t}).catch((err) => {\n\t\t\t\t\tobserver.error(TRPCClientError.from(err, { meta: _res === null || _res === void 0 ? void 0 : _res.meta }));\n\t\t\t\t});\n\t\t\t\treturn () => {};\n\t\t\t});\n\t\t};\n\t};\n}\n\n//#endregion\nexport { abortSignalToPromise, allAbortSignals, dataLoader, httpBatchLink, raceAbortSignals };\n//# sourceMappingURL=httpBatchLink-fQ1NAi-e.mjs.map","import { __toESM, require_objectSpread2 } from \"./objectSpread2-BvkFp-_Y.mjs\";\nimport { observable, tap } from \"@trpc/server/observable\";\n\n//#region src/links/loggerLink.ts\nvar import_objectSpread2 = __toESM(require_objectSpread2(), 1);\nfunction isFormData(value) {\n\tif (typeof FormData === \"undefined\") return false;\n\treturn value instanceof FormData;\n}\nconst palettes = {\n\tcss: {\n\t\tquery: [\"72e3ff\", \"3fb0d8\"],\n\t\tmutation: [\"c5a3fc\", \"904dfc\"],\n\t\tsubscription: [\"ff49e1\", \"d83fbe\"]\n\t},\n\tansi: {\n\t\tregular: {\n\t\t\tquery: [\"\\x1B[30;46m\", \"\\x1B[97;46m\"],\n\t\t\tmutation: [\"\\x1B[30;45m\", \"\\x1B[97;45m\"],\n\t\t\tsubscription: [\"\\x1B[30;42m\", \"\\x1B[97;42m\"]\n\t\t},\n\t\tbold: {\n\t\t\tquery: [\"\\x1B[1;30;46m\", \"\\x1B[1;97;46m\"],\n\t\t\tmutation: [\"\\x1B[1;30;45m\", \"\\x1B[1;97;45m\"],\n\t\t\tsubscription: [\"\\x1B[1;30;42m\", \"\\x1B[1;97;42m\"]\n\t\t}\n\t}\n};\nfunction constructPartsAndArgs(opts) {\n\tconst { direction, type, withContext, path, id, input } = opts;\n\tconst parts = [];\n\tconst args = [];\n\tif (opts.colorMode === \"none\") parts.push(direction === \"up\" ? \">>\" : \"<<\", type, `#${id}`, path);\n\telse if (opts.colorMode === \"ansi\") {\n\t\tconst [lightRegular, darkRegular] = palettes.ansi.regular[type];\n\t\tconst [lightBold, darkBold] = palettes.ansi.bold[type];\n\t\tconst reset = \"\\x1B[0m\";\n\t\tparts.push(direction === \"up\" ? lightRegular : darkRegular, direction === \"up\" ? \">>\" : \"<<\", type, direction === \"up\" ? lightBold : darkBold, `#${id}`, path, reset);\n\t} else {\n\t\tconst [light, dark] = palettes.css[type];\n\t\tconst css = `\n background-color: #${direction === \"up\" ? light : dark};\n color: ${direction === \"up\" ? \"black\" : \"white\"};\n padding: 2px;\n `;\n\t\tparts.push(\"%c\", direction === \"up\" ? \">>\" : \"<<\", type, `#${id}`, `%c${path}%c`, \"%O\");\n\t\targs.push(css, `${css}; font-weight: bold;`, `${css}; font-weight: normal;`);\n\t}\n\tif (direction === \"up\") args.push(withContext ? {\n\t\tinput,\n\t\tcontext: opts.context\n\t} : { input });\n\telse args.push((0, import_objectSpread2.default)({\n\t\tinput,\n\t\tresult: opts.result,\n\t\telapsedMs: opts.elapsedMs\n\t}, withContext && { context: opts.context }));\n\treturn {\n\t\tparts,\n\t\targs\n\t};\n}\nconst defaultLogger = ({ c = console, colorMode = \"css\", withContext }) => (props) => {\n\tconst rawInput = props.input;\n\tconst input = isFormData(rawInput) ? Object.fromEntries(rawInput) : rawInput;\n\tconst { parts, args } = constructPartsAndArgs((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, props), {}, {\n\t\tcolorMode,\n\t\tinput,\n\t\twithContext\n\t}));\n\tconst fn = props.direction === \"down\" && props.result && (props.result instanceof Error || \"error\" in props.result.result && props.result.result.error) ? \"error\" : \"log\";\n\tc[fn].apply(null, [parts.join(\" \")].concat(args));\n};\n/**\n* @see https://trpc.io/docs/v11/client/links/loggerLink\n*/\nfunction loggerLink(opts = {}) {\n\tvar _opts$colorMode, _opts$withContext;\n\tconst { enabled = () => true } = opts;\n\tconst colorMode = (_opts$colorMode = opts.colorMode) !== null && _opts$colorMode !== void 0 ? _opts$colorMode : typeof window === \"undefined\" ? \"ansi\" : \"css\";\n\tconst withContext = (_opts$withContext = opts.withContext) !== null && _opts$withContext !== void 0 ? _opts$withContext : colorMode === \"css\";\n\tconst { logger = defaultLogger({\n\t\tc: opts.console,\n\t\tcolorMode,\n\t\twithContext\n\t}) } = opts;\n\treturn () => {\n\t\treturn ({ op, next }) => {\n\t\t\treturn observable((observer) => {\n\t\t\t\tif (enabled((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, op), {}, { direction: \"up\" }))) logger((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, op), {}, { direction: \"up\" }));\n\t\t\t\tconst requestStartTime = Date.now();\n\t\t\t\tfunction logResult(result) {\n\t\t\t\t\tconst elapsedMs = Date.now() - requestStartTime;\n\t\t\t\t\tif (enabled((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, op), {}, {\n\t\t\t\t\t\tdirection: \"down\",\n\t\t\t\t\t\tresult\n\t\t\t\t\t}))) logger((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, op), {}, {\n\t\t\t\t\t\tdirection: \"down\",\n\t\t\t\t\t\telapsedMs,\n\t\t\t\t\t\tresult\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\treturn next(op).pipe(tap({\n\t\t\t\t\tnext(result) {\n\t\t\t\t\t\tlogResult(result);\n\t\t\t\t\t},\n\t\t\t\t\terror(result) {\n\t\t\t\t\t\tlogResult(result);\n\t\t\t\t\t}\n\t\t\t\t})).subscribe(observer);\n\t\t\t});\n\t\t};\n\t};\n}\n\n//#endregion\nexport { loggerLink };\n//# sourceMappingURL=loggerLink-ineCN1PO.mjs.map","import { __toESM, require_defineProperty, require_objectSpread2 } from \"./objectSpread2-BvkFp-_Y.mjs\";\nimport { TRPCClientError } from \"./TRPCClientError-apv8gw59.mjs\";\nimport { getTransformer } from \"./unstable-internals-Bg7n9BBj.mjs\";\nimport { behaviorSubject, observable } from \"@trpc/server/observable\";\nimport { run, sleep, transformResult } from \"@trpc/server/unstable-core-do-not-import\";\n\n//#region src/links/wsLink/wsClient/encoder.ts\nconst jsonEncoder = {\n\tencode: (data) => JSON.stringify(data),\n\tdecode: (data) => {\n\t\tif (typeof data !== \"string\") throw new Error(\"jsonEncoder received binary data. JSON uses text frames. Use a binary encoder for binary data.\");\n\t\treturn JSON.parse(data);\n\t}\n};\n\n//#endregion\n//#region src/links/wsLink/wsClient/options.ts\nconst lazyDefaults = {\n\tenabled: false,\n\tcloseMs: 0\n};\nconst keepAliveDefaults = {\n\tenabled: false,\n\tpongTimeoutMs: 1e3,\n\tintervalMs: 5e3\n};\n/**\n* Calculates a delay for exponential backoff based on the retry attempt index.\n* The delay starts at 0 for the first attempt and doubles for each subsequent attempt,\n* capped at 30 seconds.\n*/\nconst exponentialBackoff = (attemptIndex) => {\n\treturn attemptIndex === 0 ? 0 : Math.min(1e3 * 2 ** attemptIndex, 3e4);\n};\n\n//#endregion\n//#region src/links/internals/urlWithConnectionParams.ts\n/**\n* Get the result of a value or function that returns a value\n* It also optionally accepts typesafe arguments for the function\n*/\nconst resultOf = (value, ...args) => {\n\treturn typeof value === \"function\" ? value(...args) : value;\n};\n\n//#endregion\n//#region src/links/wsLink/wsClient/utils.ts\nvar import_defineProperty$3 = __toESM(require_defineProperty(), 1);\nvar TRPCWebSocketClosedError = class TRPCWebSocketClosedError extends Error {\n\tconstructor(opts) {\n\t\tsuper(opts.message, { cause: opts.cause });\n\t\tthis.name = \"TRPCWebSocketClosedError\";\n\t\tObject.setPrototypeOf(this, TRPCWebSocketClosedError.prototype);\n\t}\n};\n/**\n* Utility class for managing a timeout that can be started, stopped, and reset.\n* Useful for scenarios where the timeout duration is reset dynamically based on events.\n*/\nvar ResettableTimeout = class {\n\tconstructor(onTimeout, timeoutMs) {\n\t\tthis.onTimeout = onTimeout;\n\t\tthis.timeoutMs = timeoutMs;\n\t\t(0, import_defineProperty$3.default)(this, \"timeout\", void 0);\n\t}\n\t/**\n\t* Resets the current timeout, restarting it with the same duration.\n\t* Does nothing if no timeout is active.\n\t*/\n\treset() {\n\t\tif (!this.timeout) return;\n\t\tclearTimeout(this.timeout);\n\t\tthis.timeout = setTimeout(this.onTimeout, this.timeoutMs);\n\t}\n\tstart() {\n\t\tclearTimeout(this.timeout);\n\t\tthis.timeout = setTimeout(this.onTimeout, this.timeoutMs);\n\t}\n\tstop() {\n\t\tclearTimeout(this.timeout);\n\t\tthis.timeout = void 0;\n\t}\n};\nfunction withResolvers() {\n\tlet resolve;\n\tlet reject;\n\tconst promise = new Promise((res, rej) => {\n\t\tresolve = res;\n\t\treject = rej;\n\t});\n\treturn {\n\t\tpromise,\n\t\tresolve,\n\t\treject\n\t};\n}\n/**\n* Resolves a WebSocket URL and optionally appends connection parameters.\n*\n* If connectionParams are provided, appends 'connectionParams=1' query parameter.\n*/\nasync function prepareUrl(urlOptions) {\n\tconst url = await resultOf(urlOptions.url);\n\tif (!urlOptions.connectionParams) return url;\n\tconst prefix = url.includes(\"?\") ? \"&\" : \"?\";\n\tconst connectionParams = `${prefix}connectionParams=1`;\n\treturn url + connectionParams;\n}\nasync function buildConnectionMessage(connectionParams, encoder) {\n\tconst message = {\n\t\tmethod: \"connectionParams\",\n\t\tdata: await resultOf(connectionParams)\n\t};\n\treturn encoder.encode(message);\n}\n\n//#endregion\n//#region src/links/wsLink/wsClient/requestManager.ts\nvar import_defineProperty$2 = __toESM(require_defineProperty(), 1);\n/**\n* Manages WebSocket requests, tracking their lifecycle and providing utility methods\n* for handling outgoing and pending requests.\n*\n* - **Outgoing requests**: Requests that are queued and waiting to be sent.\n* - **Pending requests**: Requests that have been sent and are in flight awaiting a response.\n* For subscriptions, multiple responses may be received until the subscription is closed.\n*/\nvar RequestManager = class {\n\tconstructor() {\n\t\t(0, import_defineProperty$2.default)(this, \"outgoingRequests\", new Array());\n\t\t(0, import_defineProperty$2.default)(this, \"pendingRequests\", {});\n\t}\n\t/**\n\t* Registers a new request by adding it to the outgoing queue and setting up\n\t* callbacks for lifecycle events such as completion or error.\n\t*\n\t* @param message - The outgoing message to be sent.\n\t* @param callbacks - Callback functions to observe the request's state.\n\t* @returns A cleanup function to manually remove the request.\n\t*/\n\tregister(message, callbacks) {\n\t\tconst { promise: end, resolve } = withResolvers();\n\t\tthis.outgoingRequests.push({\n\t\t\tid: String(message.id),\n\t\t\tmessage,\n\t\t\tend,\n\t\t\tcallbacks: {\n\t\t\t\tnext: callbacks.next,\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tcallbacks.complete();\n\t\t\t\t\tresolve();\n\t\t\t\t},\n\t\t\t\terror: (e) => {\n\t\t\t\t\tcallbacks.error(e);\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn () => {\n\t\t\tthis.delete(message.id);\n\t\t\tcallbacks.complete();\n\t\t\tresolve();\n\t\t};\n\t}\n\t/**\n\t* Deletes a request from both the outgoing and pending collections, if it exists.\n\t*/\n\tdelete(messageId) {\n\t\tif (messageId === null) return;\n\t\tthis.outgoingRequests = this.outgoingRequests.filter(({ id }) => id !== String(messageId));\n\t\tdelete this.pendingRequests[String(messageId)];\n\t}\n\t/**\n\t* Moves all outgoing requests to the pending state and clears the outgoing queue.\n\t*\n\t* The caller is expected to handle the actual sending of the requests\n\t* (e.g., sending them over the network) after this method is called.\n\t*\n\t* @returns The list of requests that were transitioned to the pending state.\n\t*/\n\tflush() {\n\t\tconst requests = this.outgoingRequests;\n\t\tthis.outgoingRequests = [];\n\t\tfor (const request of requests) this.pendingRequests[request.id] = request;\n\t\treturn requests;\n\t}\n\t/**\n\t* Retrieves all currently pending requests, which are in flight awaiting responses\n\t* or handling ongoing subscriptions.\n\t*/\n\tgetPendingRequests() {\n\t\treturn Object.values(this.pendingRequests);\n\t}\n\t/**\n\t* Retrieves a specific pending request by its message ID.\n\t*/\n\tgetPendingRequest(messageId) {\n\t\tif (messageId === null) return null;\n\t\treturn this.pendingRequests[String(messageId)];\n\t}\n\t/**\n\t* Retrieves all outgoing requests, which are waiting to be sent.\n\t*/\n\tgetOutgoingRequests() {\n\t\treturn this.outgoingRequests;\n\t}\n\t/**\n\t* Retrieves all requests, both outgoing and pending, with their respective states.\n\t*\n\t* @returns An array of all requests with their state (\"outgoing\" or \"pending\").\n\t*/\n\tgetRequests() {\n\t\treturn [...this.getOutgoingRequests().map((request) => ({\n\t\t\tstate: \"outgoing\",\n\t\t\tmessage: request.message,\n\t\t\tend: request.end,\n\t\t\tcallbacks: request.callbacks\n\t\t})), ...this.getPendingRequests().map((request) => ({\n\t\t\tstate: \"pending\",\n\t\t\tmessage: request.message,\n\t\t\tend: request.end,\n\t\t\tcallbacks: request.callbacks\n\t\t}))];\n\t}\n\t/**\n\t* Checks if there are any pending requests, including ongoing subscriptions.\n\t*/\n\thasPendingRequests() {\n\t\treturn this.getPendingRequests().length > 0;\n\t}\n\t/**\n\t* Checks if there are any pending subscriptions\n\t*/\n\thasPendingSubscriptions() {\n\t\treturn this.getPendingRequests().some((request) => request.message.method === \"subscription\");\n\t}\n\t/**\n\t* Checks if there are any outgoing requests waiting to be sent.\n\t*/\n\thasOutgoingRequests() {\n\t\treturn this.outgoingRequests.length > 0;\n\t}\n};\n\n//#endregion\n//#region src/links/wsLink/wsClient/wsConnection.ts\nvar import_defineProperty$1 = __toESM(require_defineProperty(), 1);\n/**\n* Opens a WebSocket connection asynchronously and returns a promise\n* that resolves when the connection is successfully established.\n* The promise rejects if an error occurs during the connection attempt.\n*/\nfunction asyncWsOpen(ws) {\n\tconst { promise, resolve, reject } = withResolvers();\n\tws.addEventListener(\"open\", () => {\n\t\tws.removeEventListener(\"error\", reject);\n\t\tresolve();\n\t});\n\tws.addEventListener(\"error\", reject);\n\treturn promise;\n}\n/**\n* Sets up a periodic ping-pong mechanism to keep the WebSocket connection alive.\n*\n* - Sends \"PING\" messages at regular intervals defined by `intervalMs`.\n* - If a \"PONG\" response is not received within the `pongTimeoutMs`, the WebSocket is closed.\n* - The ping timer resets upon receiving any message to maintain activity.\n* - Automatically starts the ping process when the WebSocket connection is opened.\n* - Cleans up timers when the WebSocket is closed.\n*\n* @param ws - The WebSocket instance to manage.\n* @param options - Configuration options for ping-pong intervals and timeouts.\n*/\nfunction setupPingInterval(ws, { intervalMs, pongTimeoutMs }) {\n\tlet pingTimeout;\n\tlet pongTimeout;\n\tfunction start() {\n\t\tpingTimeout = setTimeout(() => {\n\t\t\tws.send(\"PING\");\n\t\t\tpongTimeout = setTimeout(() => {\n\t\t\t\tws.close();\n\t\t\t}, pongTimeoutMs);\n\t\t}, intervalMs);\n\t}\n\tfunction reset() {\n\t\tclearTimeout(pingTimeout);\n\t\tstart();\n\t}\n\tfunction pong() {\n\t\tclearTimeout(pongTimeout);\n\t\treset();\n\t}\n\tws.addEventListener(\"open\", start);\n\tws.addEventListener(\"message\", ({ data }) => {\n\t\tclearTimeout(pingTimeout);\n\t\tstart();\n\t\tif (data === \"PONG\") pong();\n\t});\n\tws.addEventListener(\"close\", () => {\n\t\tclearTimeout(pingTimeout);\n\t\tclearTimeout(pongTimeout);\n\t});\n}\n/**\n* Manages a WebSocket connection with support for reconnection, keep-alive mechanisms,\n* and observable state tracking.\n*/\nvar WsConnection = class WsConnection {\n\tconstructor(opts) {\n\t\tvar _opts$WebSocketPonyfi;\n\t\t(0, import_defineProperty$1.default)(this, \"id\", ++WsConnection.connectCount);\n\t\t(0, import_defineProperty$1.default)(this, \"WebSocketPonyfill\", void 0);\n\t\t(0, import_defineProperty$1.default)(this, \"urlOptions\", void 0);\n\t\t(0, import_defineProperty$1.default)(this, \"keepAliveOpts\", void 0);\n\t\t(0, import_defineProperty$1.default)(this, \"encoder\", void 0);\n\t\t(0, import_defineProperty$1.default)(this, \"wsObservable\", behaviorSubject(null));\n\t\t(0, import_defineProperty$1.default)(this, \"openPromise\", null);\n\t\tthis.WebSocketPonyfill = (_opts$WebSocketPonyfi = opts.WebSocketPonyfill) !== null && _opts$WebSocketPonyfi !== void 0 ? _opts$WebSocketPonyfi : WebSocket;\n\t\tif (!this.WebSocketPonyfill) throw new Error(\"No WebSocket implementation found - you probably don't want to use this on the server, but if you do you need to pass a `WebSocket`-ponyfill\");\n\t\tthis.urlOptions = opts.urlOptions;\n\t\tthis.keepAliveOpts = opts.keepAlive;\n\t\tthis.encoder = opts.encoder;\n\t}\n\tget ws() {\n\t\treturn this.wsObservable.get();\n\t}\n\tset ws(ws) {\n\t\tthis.wsObservable.next(ws);\n\t}\n\t/**\n\t* Checks if the WebSocket connection is open and ready to communicate.\n\t*/\n\tisOpen() {\n\t\treturn !!this.ws && this.ws.readyState === this.WebSocketPonyfill.OPEN && !this.openPromise;\n\t}\n\t/**\n\t* Checks if the WebSocket connection is closed or in the process of closing.\n\t*/\n\tisClosed() {\n\t\treturn !!this.ws && (this.ws.readyState === this.WebSocketPonyfill.CLOSING || this.ws.readyState === this.WebSocketPonyfill.CLOSED);\n\t}\n\tasync open() {\n\t\tvar _this = this;\n\t\tif (_this.openPromise) return _this.openPromise;\n\t\t_this.id = ++WsConnection.connectCount;\n\t\tconst wsPromise = prepareUrl(_this.urlOptions).then((url) => new _this.WebSocketPonyfill(url));\n\t\t_this.openPromise = wsPromise.then(async (ws) => {\n\t\t\t_this.ws = ws;\n\t\t\tws.binaryType = \"arraybuffer\";\n\t\t\tws.addEventListener(\"message\", function({ data }) {\n\t\t\t\tif (data === \"PING\") this.send(\"PONG\");\n\t\t\t});\n\t\t\tif (_this.keepAliveOpts.enabled) setupPingInterval(ws, _this.keepAliveOpts);\n\t\t\tws.addEventListener(\"close\", () => {\n\t\t\t\tif (_this.ws === ws) _this.ws = null;\n\t\t\t});\n\t\t\tawait asyncWsOpen(ws);\n\t\t\tif (_this.urlOptions.connectionParams) ws.send(await buildConnectionMessage(_this.urlOptions.connectionParams, _this.encoder));\n\t\t});\n\t\ttry {\n\t\t\tawait _this.openPromise;\n\t\t} finally {\n\t\t\t_this.openPromise = null;\n\t\t}\n\t}\n\t/**\n\t* Closes the WebSocket connection gracefully.\n\t* Waits for any ongoing open operation to complete before closing.\n\t*/\n\tasync close() {\n\t\tvar _this2 = this;\n\t\ttry {\n\t\t\tawait _this2.openPromise;\n\t\t} finally {\n\t\t\tvar _this$ws;\n\t\t\t(_this$ws = _this2.ws) === null || _this$ws === void 0 || _this$ws.close();\n\t\t}\n\t}\n};\n(0, import_defineProperty$1.default)(WsConnection, \"connectCount\", 0);\n/**\n* Provides a backward-compatible representation of the connection state.\n*/\nfunction backwardCompatibility(connection) {\n\tif (connection.isOpen()) return {\n\t\tid: connection.id,\n\t\tstate: \"open\",\n\t\tws: connection.ws\n\t};\n\tif (connection.isClosed()) return {\n\t\tid: connection.id,\n\t\tstate: \"closed\",\n\t\tws: connection.ws\n\t};\n\tif (!connection.ws) return null;\n\treturn {\n\t\tid: connection.id,\n\t\tstate: \"connecting\",\n\t\tws: connection.ws\n\t};\n}\n\n//#endregion\n//#region src/links/wsLink/wsClient/wsClient.ts\nvar import_defineProperty = __toESM(require_defineProperty(), 1);\nvar import_objectSpread2 = __toESM(require_objectSpread2(), 1);\n/**\n* A WebSocket client for managing TRPC operations, supporting lazy initialization,\n* reconnection, keep-alive, and request management.\n*/\nvar WsClient = class {\n\tconstructor(opts) {\n\t\tvar _opts$experimental_en, _opts$retryDelayMs;\n\t\t(0, import_defineProperty.default)(this, \"connectionState\", void 0);\n\t\t(0, import_defineProperty.default)(this, \"allowReconnect\", false);\n\t\t(0, import_defineProperty.default)(this, \"requestManager\", new RequestManager());\n\t\t(0, import_defineProperty.default)(this, \"activeConnection\", void 0);\n\t\t(0, import_defineProperty.default)(this, \"reconnectRetryDelay\", void 0);\n\t\t(0, import_defineProperty.default)(this, \"inactivityTimeout\", void 0);\n\t\t(0, import_defineProperty.default)(this, \"callbacks\", void 0);\n\t\t(0, import_defineProperty.default)(this, \"lazyMode\", void 0);\n\t\t(0, import_defineProperty.default)(this, \"encoder\", void 0);\n\t\t(0, import_defineProperty.default)(this, \"reconnecting\", null);\n\t\tthis.encoder = (_opts$experimental_en = opts.experimental_encoder) !== null && _opts$experimental_en !== void 0 ? _opts$experimental_en : jsonEncoder;\n\t\tthis.callbacks = {\n\t\t\tonOpen: opts.onOpen,\n\t\t\tonClose: opts.onClose,\n\t\t\tonError: opts.onError\n\t\t};\n\t\tconst lazyOptions = (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, lazyDefaults), opts.lazy);\n\t\tthis.inactivityTimeout = new ResettableTimeout(() => {\n\t\t\tif (this.requestManager.hasOutgoingRequests() || this.requestManager.hasPendingRequests()) {\n\t\t\t\tthis.inactivityTimeout.reset();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.close().catch(() => null);\n\t\t}, lazyOptions.closeMs);\n\t\tthis.activeConnection = new WsConnection({\n\t\t\tWebSocketPonyfill: opts.WebSocket,\n\t\t\turlOptions: opts,\n\t\t\tkeepAlive: (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, keepAliveDefaults), opts.keepAlive),\n\t\t\tencoder: this.encoder\n\t\t});\n\t\tthis.activeConnection.wsObservable.subscribe({ next: (ws) => {\n\t\t\tif (!ws) return;\n\t\t\tthis.setupWebSocketListeners(ws);\n\t\t} });\n\t\tthis.reconnectRetryDelay = (_opts$retryDelayMs = opts.retryDelayMs) !== null && _opts$retryDelayMs !== void 0 ? _opts$retryDelayMs : exponentialBackoff;\n\t\tthis.lazyMode = lazyOptions.enabled;\n\t\tthis.connectionState = behaviorSubject({\n\t\t\ttype: \"state\",\n\t\t\tstate: lazyOptions.enabled ? \"idle\" : \"connecting\",\n\t\t\terror: null\n\t\t});\n\t\tif (!this.lazyMode) this.open().catch(() => null);\n\t}\n\t/**\n\t* Opens the WebSocket connection. Handles reconnection attempts and updates\n\t* the connection state accordingly.\n\t*/\n\tasync open() {\n\t\tvar _this = this;\n\t\t_this.allowReconnect = true;\n\t\tif (_this.connectionState.get().state === \"idle\") _this.connectionState.next({\n\t\t\ttype: \"state\",\n\t\t\tstate: \"connecting\",\n\t\t\terror: null\n\t\t});\n\t\ttry {\n\t\t\tawait _this.activeConnection.open();\n\t\t} catch (error) {\n\t\t\t_this.reconnect(new TRPCWebSocketClosedError({\n\t\t\t\tmessage: \"Initialization error\",\n\t\t\t\tcause: error\n\t\t\t}));\n\t\t\treturn _this.reconnecting;\n\t\t}\n\t}\n\t/**\n\t* Closes the WebSocket connection and stops managing requests.\n\t* Ensures all outgoing and pending requests are properly finalized.\n\t*/\n\tasync close() {\n\t\tvar _this2 = this;\n\t\t_this2.allowReconnect = false;\n\t\t_this2.inactivityTimeout.stop();\n\t\tconst requestsToAwait = [];\n\t\tfor (const request of _this2.requestManager.getRequests()) if (request.message.method === \"subscription\") request.callbacks.complete();\n\t\telse if (request.state === \"outgoing\") request.callbacks.error(TRPCClientError.from(new TRPCWebSocketClosedError({ message: \"Closed before connection was established\" })));\n\t\telse requestsToAwait.push(request.end);\n\t\tawait Promise.all(requestsToAwait).catch(() => null);\n\t\tawait _this2.activeConnection.close().catch(() => null);\n\t\t_this2.connectionState.next({\n\t\t\ttype: \"state\",\n\t\t\tstate: \"idle\",\n\t\t\terror: null\n\t\t});\n\t}\n\t/**\n\t* Method to request the server.\n\t* Handles data transformation, batching of requests, and subscription lifecycle.\n\t*\n\t* @param op - The operation details including id, type, path, input and signal\n\t* @param transformer - Data transformer for serializing requests and deserializing responses\n\t* @param lastEventId - Optional ID of the last received event for subscriptions\n\t*\n\t* @returns An observable that emits operation results and handles cleanup\n\t*/\n\trequest({ op: { id, type, path, input, signal }, transformer, lastEventId }) {\n\t\treturn observable((observer) => {\n\t\t\tconst abort = this.batchSend({\n\t\t\t\tid,\n\t\t\t\tmethod: type,\n\t\t\t\tparams: {\n\t\t\t\t\tinput: transformer.input.serialize(input),\n\t\t\t\t\tpath,\n\t\t\t\t\tlastEventId\n\t\t\t\t}\n\t\t\t}, (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, observer), {}, { next(event) {\n\t\t\t\tconst transformed = transformResult(event, transformer.output);\n\t\t\t\tif (!transformed.ok) {\n\t\t\t\t\tobserver.error(TRPCClientError.from(transformed.error));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tobserver.next({ result: transformed.result });\n\t\t\t} }));\n\t\t\treturn () => {\n\t\t\t\tabort();\n\t\t\t\tif (type === \"subscription\" && this.activeConnection.isOpen()) this.send({\n\t\t\t\t\tid,\n\t\t\t\t\tmethod: \"subscription.stop\"\n\t\t\t\t});\n\t\t\t\tsignal === null || signal === void 0 || signal.removeEventListener(\"abort\", abort);\n\t\t\t};\n\t\t});\n\t}\n\tget connection() {\n\t\treturn backwardCompatibility(this.activeConnection);\n\t}\n\treconnect(closedError) {\n\t\tvar _this3 = this;\n\t\tthis.connectionState.next({\n\t\t\ttype: \"state\",\n\t\t\tstate: \"connecting\",\n\t\t\terror: TRPCClientError.from(closedError)\n\t\t});\n\t\tif (this.reconnecting) return;\n\t\tconst tryReconnect = async (attemptIndex) => {\n\t\t\ttry {\n\t\t\t\tawait sleep(_this3.reconnectRetryDelay(attemptIndex));\n\t\t\t\tif (_this3.allowReconnect) {\n\t\t\t\t\tawait _this3.activeConnection.close();\n\t\t\t\t\tawait _this3.activeConnection.open();\n\t\t\t\t\tif (_this3.requestManager.hasPendingRequests()) _this3.send(_this3.requestManager.getPendingRequests().map(({ message }) => message));\n\t\t\t\t}\n\t\t\t\t_this3.reconnecting = null;\n\t\t\t} catch (_unused) {\n\t\t\t\tawait tryReconnect(attemptIndex + 1);\n\t\t\t}\n\t\t};\n\t\tthis.reconnecting = tryReconnect(0);\n\t}\n\tsetupWebSocketListeners(ws) {\n\t\tvar _this4 = this;\n\t\tconst handleCloseOrError = (cause) => {\n\t\t\tconst reqs = this.requestManager.getPendingRequests();\n\t\t\tfor (const { message, callbacks } of reqs) {\n\t\t\t\tif (message.method === \"subscription\") continue;\n\t\t\t\tcallbacks.error(TRPCClientError.from(cause !== null && cause !== void 0 ? cause : new TRPCWebSocketClosedError({\n\t\t\t\t\tmessage: \"WebSocket closed\",\n\t\t\t\t\tcause\n\t\t\t\t})));\n\t\t\t\tthis.requestManager.delete(message.id);\n\t\t\t}\n\t\t};\n\t\tws.addEventListener(\"open\", () => {\n\t\t\trun(async () => {\n\t\t\t\tvar _this$callbacks$onOpe, _this$callbacks;\n\t\t\t\tif (_this4.lazyMode) _this4.inactivityTimeout.start();\n\t\t\t\t(_this$callbacks$onOpe = (_this$callbacks = _this4.callbacks).onOpen) === null || _this$callbacks$onOpe === void 0 || _this$callbacks$onOpe.call(_this$callbacks);\n\t\t\t\t_this4.connectionState.next({\n\t\t\t\t\ttype: \"state\",\n\t\t\t\t\tstate: \"pending\",\n\t\t\t\t\terror: null\n\t\t\t\t});\n\t\t\t}).catch((error) => {\n\t\t\t\tws.close(3e3);\n\t\t\t\thandleCloseOrError(error);\n\t\t\t});\n\t\t});\n\t\tws.addEventListener(\"message\", ({ data }) => {\n\t\t\tthis.inactivityTimeout.reset();\n\t\t\tif ([\"PING\", \"PONG\"].includes(data)) return;\n\t\t\tconst incomingMessage = this.encoder.decode(data);\n\t\t\tif (\"method\" in incomingMessage) {\n\t\t\t\tthis.handleIncomingRequest(incomingMessage);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.handleResponseMessage(incomingMessage);\n\t\t});\n\t\tws.addEventListener(\"close\", (event) => {\n\t\t\tvar _this$callbacks$onClo, _this$callbacks2;\n\t\t\thandleCloseOrError(event);\n\t\t\t(_this$callbacks$onClo = (_this$callbacks2 = this.callbacks).onClose) === null || _this$callbacks$onClo === void 0 || _this$callbacks$onClo.call(_this$callbacks2, event);\n\t\t\tif (!this.lazyMode || this.requestManager.hasPendingSubscriptions()) this.reconnect(new TRPCWebSocketClosedError({\n\t\t\t\tmessage: \"WebSocket closed\",\n\t\t\t\tcause: event\n\t\t\t}));\n\t\t});\n\t\tws.addEventListener(\"error\", (event) => {\n\t\t\tvar _this$callbacks$onErr, _this$callbacks3;\n\t\t\thandleCloseOrError(event);\n\t\t\t(_this$callbacks$onErr = (_this$callbacks3 = this.callbacks).onError) === null || _this$callbacks$onErr === void 0 || _this$callbacks$onErr.call(_this$callbacks3, event);\n\t\t\tthis.reconnect(new TRPCWebSocketClosedError({\n\t\t\t\tmessage: \"WebSocket closed\",\n\t\t\t\tcause: event\n\t\t\t}));\n\t\t});\n\t}\n\thandleResponseMessage(message) {\n\t\tconst request = this.requestManager.getPendingRequest(message.id);\n\t\tif (!request) return;\n\t\trequest.callbacks.next(message);\n\t\tlet completed = true;\n\t\tif (\"result\" in message && request.message.method === \"subscription\") {\n\t\t\tif (message.result.type === \"data\") request.message.params.lastEventId = message.result.id;\n\t\t\tif (message.result.type !== \"stopped\") completed = false;\n\t\t}\n\t\tif (completed) {\n\t\t\trequest.callbacks.complete();\n\t\t\tthis.requestManager.delete(message.id);\n\t\t}\n\t}\n\thandleIncomingRequest(message) {\n\t\tif (message.method === \"reconnect\") this.reconnect(new TRPCWebSocketClosedError({ message: \"Server requested reconnect\" }));\n\t}\n\t/**\n\t* Sends a message or batch of messages directly to the server.\n\t*/\n\tsend(messageOrMessages) {\n\t\tif (!this.activeConnection.isOpen()) throw new Error(\"Active connection is not open\");\n\t\tconst messages = messageOrMessages instanceof Array ? messageOrMessages : [messageOrMessages];\n\t\tthis.activeConnection.ws.send(this.encoder.encode(messages.length === 1 ? messages[0] : messages));\n\t}\n\t/**\n\t* Groups requests for batch sending.\n\t*\n\t* @returns A function to abort the batched request.\n\t*/\n\tbatchSend(message, callbacks) {\n\t\tvar _this5 = this;\n\t\tthis.inactivityTimeout.reset();\n\t\trun(async () => {\n\t\t\tif (!_this5.activeConnection.isOpen()) await _this5.open();\n\t\t\tawait sleep(0);\n\t\t\tif (!_this5.requestManager.hasOutgoingRequests()) return;\n\t\t\t_this5.send(_this5.requestManager.flush().map(({ message: message$1 }) => message$1));\n\t\t}).catch((err) => {\n\t\t\tthis.requestManager.delete(message.id);\n\t\t\tcallbacks.error(TRPCClientError.from(err));\n\t\t});\n\t\treturn this.requestManager.register(message, callbacks);\n\t}\n};\n\n//#endregion\n//#region src/links/wsLink/createWsClient.ts\nfunction createWSClient(opts) {\n\treturn new WsClient(opts);\n}\n\n//#endregion\n//#region src/links/wsLink/wsLink.ts\nfunction wsLink(opts) {\n\tconst { client } = opts;\n\tconst transformer = getTransformer(opts.transformer);\n\treturn () => {\n\t\treturn ({ op }) => {\n\t\t\treturn observable((observer) => {\n\t\t\t\tconst connStateSubscription = op.type === \"subscription\" ? client.connectionState.subscribe({ next(result) {\n\t\t\t\t\tobserver.next({\n\t\t\t\t\t\tresult,\n\t\t\t\t\t\tcontext: op.context\n\t\t\t\t\t});\n\t\t\t\t} }) : null;\n\t\t\t\tconst requestSubscription = client.request({\n\t\t\t\t\top,\n\t\t\t\t\ttransformer\n\t\t\t\t}).subscribe(observer);\n\t\t\t\treturn () => {\n\t\t\t\t\trequestSubscription.unsubscribe();\n\t\t\t\t\tconnStateSubscription === null || connStateSubscription === void 0 || connStateSubscription.unsubscribe();\n\t\t\t\t};\n\t\t\t});\n\t\t};\n\t};\n}\n\n//#endregion\nexport { createWSClient, jsonEncoder, resultOf, wsLink };\n//# sourceMappingURL=wsLink-DSf4KOdW.mjs.map","import { __commonJS, __toESM, require_defineProperty, require_objectSpread2 } from \"./objectSpread2-BvkFp-_Y.mjs\";\nimport { createChain, splitLink } from \"./splitLink-B7Cuf2c_.mjs\";\nimport { TRPCClientError, isTRPCClientError } from \"./TRPCClientError-apv8gw59.mjs\";\nimport { fetchHTTPResponse, getBody, getFetch, getUrl, resolveHTTPLinkOptions } from \"./httpUtils-Dv57hbOd.mjs\";\nimport { httpLink, isFormData, isNonJsonSerializable, isOctetType } from \"./httpLink-Cz9h1Qgh.mjs\";\nimport { abortSignalToPromise, allAbortSignals, dataLoader, httpBatchLink, raceAbortSignals } from \"./httpBatchLink-fQ1NAi-e.mjs\";\nimport { getTransformer } from \"./unstable-internals-Bg7n9BBj.mjs\";\nimport { loggerLink } from \"./loggerLink-ineCN1PO.mjs\";\nimport { createWSClient, jsonEncoder, resultOf, wsLink } from \"./wsLink-DSf4KOdW.mjs\";\nimport { behaviorSubject, observable, observableToPromise, share } from \"@trpc/server/observable\";\nimport { callProcedure, createFlatProxy, createRecursiveProxy, isAbortError, isAsyncIterable, iteratorResource, jsonlStreamConsumer, makeResource, retryableRpcCodes, run, sseStreamConsumer } from \"@trpc/server/unstable-core-do-not-import\";\nimport { getTRPCErrorFromUnknown, getTRPCErrorShape, isTrackedEnvelope } from \"@trpc/server\";\nimport { TRPC_ERROR_CODES_BY_KEY } from \"@trpc/server/rpc\";\n\n//#region src/internals/TRPCUntypedClient.ts\nvar import_defineProperty = __toESM(require_defineProperty(), 1);\nvar import_objectSpread2$4 = __toESM(require_objectSpread2(), 1);\nvar TRPCUntypedClient = class {\n\tconstructor(opts) {\n\t\t(0, import_defineProperty.default)(this, \"links\", void 0);\n\t\t(0, import_defineProperty.default)(this, \"runtime\", void 0);\n\t\t(0, import_defineProperty.default)(this, \"requestId\", void 0);\n\t\tthis.requestId = 0;\n\t\tthis.runtime = {};\n\t\tthis.links = opts.links.map((link) => link(this.runtime));\n\t}\n\t$request(opts) {\n\t\tvar _opts$context;\n\t\tconst chain$ = createChain({\n\t\t\tlinks: this.links,\n\t\t\top: (0, import_objectSpread2$4.default)((0, import_objectSpread2$4.default)({}, opts), {}, {\n\t\t\t\tcontext: (_opts$context = opts.context) !== null && _opts$context !== void 0 ? _opts$context : {},\n\t\t\t\tid: ++this.requestId\n\t\t\t})\n\t\t});\n\t\treturn chain$.pipe(share());\n\t}\n\tasync requestAsPromise(opts) {\n\t\tvar _this = this;\n\t\ttry {\n\t\t\tconst req$ = _this.$request(opts);\n\t\t\tconst envelope = await observableToPromise(req$);\n\t\t\tconst data = envelope.result.data;\n\t\t\treturn data;\n\t\t} catch (err) {\n\t\t\tthrow TRPCClientError.from(err);\n\t\t}\n\t}\n\tquery(path, input, opts) {\n\t\treturn this.requestAsPromise({\n\t\t\ttype: \"query\",\n\t\t\tpath,\n\t\t\tinput,\n\t\t\tcontext: opts === null || opts === void 0 ? void 0 : opts.context,\n\t\t\tsignal: opts === null || opts === void 0 ? void 0 : opts.signal\n\t\t});\n\t}\n\tmutation(path, input, opts) {\n\t\treturn this.requestAsPromise({\n\t\t\ttype: \"mutation\",\n\t\t\tpath,\n\t\t\tinput,\n\t\t\tcontext: opts === null || opts === void 0 ? void 0 : opts.context,\n\t\t\tsignal: opts === null || opts === void 0 ? void 0 : opts.signal\n\t\t});\n\t}\n\tsubscription(path, input, opts) {\n\t\tconst observable$ = this.$request({\n\t\t\ttype: \"subscription\",\n\t\t\tpath,\n\t\t\tinput,\n\t\t\tcontext: opts.context,\n\t\t\tsignal: opts.signal\n\t\t});\n\t\treturn observable$.subscribe({\n\t\t\tnext(envelope) {\n\t\t\t\tswitch (envelope.result.type) {\n\t\t\t\t\tcase \"state\": {\n\t\t\t\t\t\tvar _opts$onConnectionSta;\n\t\t\t\t\t\t(_opts$onConnectionSta = opts.onConnectionStateChange) === null || _opts$onConnectionSta === void 0 || _opts$onConnectionSta.call(opts, envelope.result);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase \"started\": {\n\t\t\t\t\t\tvar _opts$onStarted;\n\t\t\t\t\t\t(_opts$onStarted = opts.onStarted) === null || _opts$onStarted === void 0 || _opts$onStarted.call(opts, { context: envelope.context });\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase \"stopped\": {\n\t\t\t\t\t\tvar _opts$onStopped;\n\t\t\t\t\t\t(_opts$onStopped = opts.onStopped) === null || _opts$onStopped === void 0 || _opts$onStopped.call(opts);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase \"data\":\n\t\t\t\t\tcase void 0: {\n\t\t\t\t\t\tvar _opts$onData;\n\t\t\t\t\t\t(_opts$onData = opts.onData) === null || _opts$onData === void 0 || _opts$onData.call(opts, envelope.result.data);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\terror(err) {\n\t\t\t\tvar _opts$onError;\n\t\t\t\t(_opts$onError = opts.onError) === null || _opts$onError === void 0 || _opts$onError.call(opts, err);\n\t\t\t},\n\t\t\tcomplete() {\n\t\t\t\tvar _opts$onComplete;\n\t\t\t\t(_opts$onComplete = opts.onComplete) === null || _opts$onComplete === void 0 || _opts$onComplete.call(opts);\n\t\t\t}\n\t\t});\n\t}\n};\n\n//#endregion\n//#region src/createTRPCUntypedClient.ts\nfunction createTRPCUntypedClient(opts) {\n\treturn new TRPCUntypedClient(opts);\n}\n\n//#endregion\n//#region src/createTRPCClient.ts\nconst untypedClientSymbol = Symbol.for(\"trpc_untypedClient\");\nconst clientCallTypeMap = {\n\tquery: \"query\",\n\tmutate: \"mutation\",\n\tsubscribe: \"subscription\"\n};\n/** @internal */\nconst clientCallTypeToProcedureType = (clientCallType) => {\n\treturn clientCallTypeMap[clientCallType];\n};\n/**\n* @internal\n*/\nfunction createTRPCClientProxy(client) {\n\tconst proxy = createRecursiveProxy(({ path, args }) => {\n\t\tconst pathCopy = [...path];\n\t\tconst procedureType = clientCallTypeToProcedureType(pathCopy.pop());\n\t\tconst fullPath = pathCopy.join(\".\");\n\t\treturn client[procedureType](fullPath, ...args);\n\t});\n\treturn createFlatProxy((key) => {\n\t\tif (key === untypedClientSymbol) return client;\n\t\treturn proxy[key];\n\t});\n}\nfunction createTRPCClient(opts) {\n\tconst client = new TRPCUntypedClient(opts);\n\tconst proxy = createTRPCClientProxy(client);\n\treturn proxy;\n}\n/**\n* Get an untyped client from a proxy client\n* @internal\n*/\nfunction getUntypedClient(client) {\n\treturn client[untypedClientSymbol];\n}\n\n//#endregion\n//#region src/links/httpBatchStreamLink.ts\nvar import_objectSpread2$3 = __toESM(require_objectSpread2(), 1);\n/**\n* @see https://trpc.io/docs/client/links/httpBatchStreamLink\n*/\nfunction httpBatchStreamLink(opts) {\n\tvar _opts$maxURLLength, _opts$maxItems;\n\tconst resolvedOpts = resolveHTTPLinkOptions(opts);\n\tconst maxURLLength = (_opts$maxURLLength = opts.maxURLLength) !== null && _opts$maxURLLength !== void 0 ? _opts$maxURLLength : Infinity;\n\tconst maxItems = (_opts$maxItems = opts.maxItems) !== null && _opts$maxItems !== void 0 ? _opts$maxItems : Infinity;\n\treturn () => {\n\t\tconst batchLoader = (type) => {\n\t\t\treturn {\n\t\t\t\tvalidate(batchOps) {\n\t\t\t\t\tif (maxURLLength === Infinity && maxItems === Infinity) return true;\n\t\t\t\t\tif (batchOps.length > maxItems) return false;\n\t\t\t\t\tconst path = batchOps.map((op) => op.path).join(\",\");\n\t\t\t\t\tconst inputs = batchOps.map((op) => op.input);\n\t\t\t\t\tconst url = getUrl((0, import_objectSpread2$3.default)((0, import_objectSpread2$3.default)({}, resolvedOpts), {}, {\n\t\t\t\t\t\ttype,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\tinputs,\n\t\t\t\t\t\tsignal: null\n\t\t\t\t\t}));\n\t\t\t\t\treturn url.length <= maxURLLength;\n\t\t\t\t},\n\t\t\t\tasync fetch(batchOps) {\n\t\t\t\t\tconst path = batchOps.map((op) => op.path).join(\",\");\n\t\t\t\t\tconst inputs = batchOps.map((op) => op.input);\n\t\t\t\t\tconst batchSignals = allAbortSignals(...batchOps.map((op) => op.signal));\n\t\t\t\t\tconst abortController = new AbortController();\n\t\t\t\t\tconst responsePromise = fetchHTTPResponse((0, import_objectSpread2$3.default)((0, import_objectSpread2$3.default)({}, resolvedOpts), {}, {\n\t\t\t\t\t\tsignal: raceAbortSignals(batchSignals, abortController.signal),\n\t\t\t\t\t\ttype,\n\t\t\t\t\t\tcontentTypeHeader: \"application/json\",\n\t\t\t\t\t\ttrpcAcceptHeader: \"application/jsonl\",\n\t\t\t\t\t\tgetUrl,\n\t\t\t\t\t\tgetBody,\n\t\t\t\t\t\tinputs,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\theaders() {\n\t\t\t\t\t\t\tif (!opts.headers) return {};\n\t\t\t\t\t\t\tif (typeof opts.headers === \"function\") return opts.headers({ opList: batchOps });\n\t\t\t\t\t\t\treturn opts.headers;\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t\tconst res = await responsePromise;\n\t\t\t\t\tconst [head] = await jsonlStreamConsumer({\n\t\t\t\t\t\tfrom: res.body,\n\t\t\t\t\t\tdeserialize: (data) => resolvedOpts.transformer.output.deserialize(data),\n\t\t\t\t\t\tformatError(opts$1) {\n\t\t\t\t\t\t\tconst error = opts$1.error;\n\t\t\t\t\t\t\treturn TRPCClientError.from({ error });\n\t\t\t\t\t\t},\n\t\t\t\t\t\tabortController\n\t\t\t\t\t});\n\t\t\t\t\tconst promises = Object.keys(batchOps).map(async (key) => {\n\t\t\t\t\t\tlet json = await Promise.resolve(head[key]);\n\t\t\t\t\t\tif (\"result\" in json) {\n\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t* Not very pretty, but we need to unwrap nested data as promises\n\t\t\t\t\t\t\t* Our stream producer will only resolve top-level async values or async values that are directly nested in another async value\n\t\t\t\t\t\t\t*/\n\t\t\t\t\t\t\tconst result = await Promise.resolve(json.result);\n\t\t\t\t\t\t\tjson = { result: { data: await Promise.resolve(result.data) } };\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tjson,\n\t\t\t\t\t\t\tmeta: { response: res }\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t\treturn promises;\n\t\t\t\t}\n\t\t\t};\n\t\t};\n\t\tconst query = dataLoader(batchLoader(\"query\"));\n\t\tconst mutation = dataLoader(batchLoader(\"mutation\"));\n\t\tconst loaders = {\n\t\t\tquery,\n\t\t\tmutation\n\t\t};\n\t\treturn ({ op }) => {\n\t\t\treturn observable((observer) => {\n\t\t\t\t/* istanbul ignore if -- @preserve */\n\t\t\t\tif (op.type === \"subscription\") throw new Error(\"Subscriptions are unsupported by `httpBatchStreamLink` - use `httpSubscriptionLink` or `wsLink`\");\n\t\t\t\tconst loader = loaders[op.type];\n\t\t\t\tconst promise = loader.load(op);\n\t\t\t\tlet _res = void 0;\n\t\t\t\tpromise.then((res) => {\n\t\t\t\t\t_res = res;\n\t\t\t\t\tif (\"error\" in res.json) {\n\t\t\t\t\t\tobserver.error(TRPCClientError.from(res.json, { meta: res.meta }));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t} else if (\"result\" in res.json) {\n\t\t\t\t\t\tobserver.next({\n\t\t\t\t\t\t\tcontext: res.meta,\n\t\t\t\t\t\t\tresult: res.json.result\n\t\t\t\t\t\t});\n\t\t\t\t\t\tobserver.complete();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tobserver.complete();\n\t\t\t\t}).catch((err) => {\n\t\t\t\t\tobserver.error(TRPCClientError.from(err, { meta: _res === null || _res === void 0 ? void 0 : _res.meta }));\n\t\t\t\t});\n\t\t\t\treturn () => {};\n\t\t\t});\n\t\t};\n\t};\n}\n/**\n* @deprecated use {@link httpBatchStreamLink} instead\n*/\nconst unstable_httpBatchStreamLink = httpBatchStreamLink;\n\n//#endregion\n//#region src/internals/inputWithTrackedEventId.ts\nvar import_objectSpread2$2 = __toESM(require_objectSpread2(), 1);\nfunction inputWithTrackedEventId(input, lastEventId) {\n\tif (!lastEventId) return input;\n\tif (input != null && typeof input !== \"object\") return input;\n\treturn (0, import_objectSpread2$2.default)((0, import_objectSpread2$2.default)({}, input !== null && input !== void 0 ? input : {}), {}, { lastEventId });\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/asyncIterator.js\nvar require_asyncIterator = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/asyncIterator.js\"(exports, module) {\n\tfunction _asyncIterator$1(r) {\n\t\tvar n, t, o, e = 2;\n\t\tfor (\"undefined\" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) {\n\t\t\tif (t && null != (n = r[t])) return n.call(r);\n\t\t\tif (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r));\n\t\t\tt = \"@@asyncIterator\", o = \"@@iterator\";\n\t\t}\n\t\tthrow new TypeError(\"Object is not async iterable\");\n\t}\n\tfunction AsyncFromSyncIterator(r) {\n\t\tfunction AsyncFromSyncIteratorContinuation(r$1) {\n\t\t\tif (Object(r$1) !== r$1) return Promise.reject(new TypeError(r$1 + \" is not an object.\"));\n\t\t\tvar n = r$1.done;\n\t\t\treturn Promise.resolve(r$1.value).then(function(r$2) {\n\t\t\t\treturn {\n\t\t\t\t\tvalue: r$2,\n\t\t\t\t\tdone: n\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\t\treturn AsyncFromSyncIterator = function AsyncFromSyncIterator$1(r$1) {\n\t\t\tthis.s = r$1, this.n = r$1.next;\n\t\t}, AsyncFromSyncIterator.prototype = {\n\t\t\ts: null,\n\t\t\tn: null,\n\t\t\tnext: function next() {\n\t\t\t\treturn AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));\n\t\t\t},\n\t\t\t\"return\": function _return(r$1) {\n\t\t\t\tvar n = this.s[\"return\"];\n\t\t\t\treturn void 0 === n ? Promise.resolve({\n\t\t\t\t\tvalue: r$1,\n\t\t\t\t\tdone: !0\n\t\t\t\t}) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));\n\t\t\t},\n\t\t\t\"throw\": function _throw(r$1) {\n\t\t\t\tvar n = this.s[\"return\"];\n\t\t\t\treturn void 0 === n ? Promise.reject(r$1) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));\n\t\t\t}\n\t\t}, new AsyncFromSyncIterator(r);\n\t}\n\tmodule.exports = _asyncIterator$1, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region src/links/httpSubscriptionLink.ts\nvar import_asyncIterator = __toESM(require_asyncIterator(), 1);\nasync function urlWithConnectionParams(opts) {\n\tlet url = await resultOf(opts.url);\n\tif (opts.connectionParams) {\n\t\tconst params = await resultOf(opts.connectionParams);\n\t\tconst prefix = url.includes(\"?\") ? \"&\" : \"?\";\n\t\turl += prefix + \"connectionParams=\" + encodeURIComponent(JSON.stringify(params));\n\t}\n\treturn url;\n}\n/**\n* @see https://trpc.io/docs/client/links/httpSubscriptionLink\n*/\nfunction httpSubscriptionLink(opts) {\n\tconst transformer = getTransformer(opts.transformer);\n\treturn () => {\n\t\treturn ({ op }) => {\n\t\t\treturn observable((observer) => {\n\t\t\t\tvar _opts$EventSource;\n\t\t\t\tconst { type, path, input } = op;\n\t\t\t\t/* istanbul ignore if -- @preserve */\n\t\t\t\tif (type !== \"subscription\") throw new Error(\"httpSubscriptionLink only supports subscriptions\");\n\t\t\t\tlet lastEventId = void 0;\n\t\t\t\tconst ac = new AbortController();\n\t\t\t\tconst signal = raceAbortSignals(op.signal, ac.signal);\n\t\t\t\tconst eventSourceStream = sseStreamConsumer({\n\t\t\t\t\turl: async () => getUrl({\n\t\t\t\t\t\ttransformer,\n\t\t\t\t\t\turl: await urlWithConnectionParams(opts),\n\t\t\t\t\t\tinput: inputWithTrackedEventId(input, lastEventId),\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t\tsignal: null\n\t\t\t\t\t}),\n\t\t\t\t\tinit: () => resultOf(opts.eventSourceOptions, { op }),\n\t\t\t\t\tsignal,\n\t\t\t\t\tdeserialize: (data) => transformer.output.deserialize(data),\n\t\t\t\t\tEventSource: (_opts$EventSource = opts.EventSource) !== null && _opts$EventSource !== void 0 ? _opts$EventSource : globalThis.EventSource\n\t\t\t\t});\n\t\t\t\tconst connectionState = behaviorSubject({\n\t\t\t\t\ttype: \"state\",\n\t\t\t\t\tstate: \"connecting\",\n\t\t\t\t\terror: null\n\t\t\t\t});\n\t\t\t\tconst connectionSub = connectionState.subscribe({ next(state) {\n\t\t\t\t\tobserver.next({ result: state });\n\t\t\t\t} });\n\t\t\t\trun(async () => {\n\t\t\t\t\tvar _iteratorAbruptCompletion = false;\n\t\t\t\t\tvar _didIteratorError = false;\n\t\t\t\t\tvar _iteratorError;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tfor (var _iterator = (0, import_asyncIterator.default)(eventSourceStream), _step; _iteratorAbruptCompletion = !(_step = await _iterator.next()).done; _iteratorAbruptCompletion = false) {\n\t\t\t\t\t\t\tconst chunk = _step.value;\n\t\t\t\t\t\t\tswitch (chunk.type) {\n\t\t\t\t\t\t\t\tcase \"ping\": break;\n\t\t\t\t\t\t\t\tcase \"data\":\n\t\t\t\t\t\t\t\t\tconst chunkData = chunk.data;\n\t\t\t\t\t\t\t\t\tlet result;\n\t\t\t\t\t\t\t\t\tif (chunkData.id) {\n\t\t\t\t\t\t\t\t\t\tlastEventId = chunkData.id;\n\t\t\t\t\t\t\t\t\t\tresult = {\n\t\t\t\t\t\t\t\t\t\t\tid: chunkData.id,\n\t\t\t\t\t\t\t\t\t\t\tdata: chunkData\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t} else result = { data: chunkData.data };\n\t\t\t\t\t\t\t\t\tobserver.next({\n\t\t\t\t\t\t\t\t\t\tresult,\n\t\t\t\t\t\t\t\t\t\tcontext: { eventSource: chunk.eventSource }\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase \"connected\": {\n\t\t\t\t\t\t\t\t\tobserver.next({\n\t\t\t\t\t\t\t\t\t\tresult: { type: \"started\" },\n\t\t\t\t\t\t\t\t\t\tcontext: { eventSource: chunk.eventSource }\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tconnectionState.next({\n\t\t\t\t\t\t\t\t\t\ttype: \"state\",\n\t\t\t\t\t\t\t\t\t\tstate: \"pending\",\n\t\t\t\t\t\t\t\t\t\terror: null\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase \"serialized-error\": {\n\t\t\t\t\t\t\t\t\tconst error = TRPCClientError.from({ error: chunk.error });\n\t\t\t\t\t\t\t\t\tif (retryableRpcCodes.includes(chunk.error.code)) {\n\t\t\t\t\t\t\t\t\t\tconnectionState.next({\n\t\t\t\t\t\t\t\t\t\t\ttype: \"state\",\n\t\t\t\t\t\t\t\t\t\t\tstate: \"connecting\",\n\t\t\t\t\t\t\t\t\t\t\terror\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase \"connecting\": {\n\t\t\t\t\t\t\t\t\tconst lastState = connectionState.get();\n\t\t\t\t\t\t\t\t\tconst error = chunk.event && TRPCClientError.from(chunk.event);\n\t\t\t\t\t\t\t\t\tif (!error && lastState.state === \"connecting\") break;\n\t\t\t\t\t\t\t\t\tconnectionState.next({\n\t\t\t\t\t\t\t\t\t\ttype: \"state\",\n\t\t\t\t\t\t\t\t\t\tstate: \"connecting\",\n\t\t\t\t\t\t\t\t\t\terror\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase \"timeout\": connectionState.next({\n\t\t\t\t\t\t\t\t\ttype: \"state\",\n\t\t\t\t\t\t\t\t\tstate: \"connecting\",\n\t\t\t\t\t\t\t\t\terror: new TRPCClientError(`Timeout of ${chunk.ms}ms reached while waiting for a response`)\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t_didIteratorError = true;\n\t\t\t\t\t\t_iteratorError = err;\n\t\t\t\t\t} finally {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tif (_iteratorAbruptCompletion && _iterator.return != null) await _iterator.return();\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\tif (_didIteratorError) throw _iteratorError;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tobserver.next({ result: { type: \"stopped\" } });\n\t\t\t\t\tconnectionState.next({\n\t\t\t\t\t\ttype: \"state\",\n\t\t\t\t\t\tstate: \"idle\",\n\t\t\t\t\t\terror: null\n\t\t\t\t\t});\n\t\t\t\t\tobserver.complete();\n\t\t\t\t}).catch((error) => {\n\t\t\t\t\tobserver.error(TRPCClientError.from(error));\n\t\t\t\t});\n\t\t\t\treturn () => {\n\t\t\t\t\tobserver.complete();\n\t\t\t\t\tac.abort();\n\t\t\t\t\tconnectionSub.unsubscribe();\n\t\t\t\t};\n\t\t\t});\n\t\t};\n\t};\n}\n/**\n* @deprecated use {@link httpSubscriptionLink} instead\n*/\nconst unstable_httpSubscriptionLink = httpSubscriptionLink;\n\n//#endregion\n//#region src/links/retryLink.ts\nvar import_objectSpread2$1 = __toESM(require_objectSpread2(), 1);\n/**\n* @see https://trpc.io/docs/v11/client/links/retryLink\n*/\nfunction retryLink(opts) {\n\treturn () => {\n\t\treturn (callOpts) => {\n\t\t\treturn observable((observer) => {\n\t\t\t\tlet next$;\n\t\t\t\tlet callNextTimeout = void 0;\n\t\t\t\tlet lastEventId = void 0;\n\t\t\t\tattempt(1);\n\t\t\t\tfunction opWithLastEventId() {\n\t\t\t\t\tconst op = callOpts.op;\n\t\t\t\t\tif (!lastEventId) return op;\n\t\t\t\t\treturn (0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, op), {}, { input: inputWithTrackedEventId(op.input, lastEventId) });\n\t\t\t\t}\n\t\t\t\tfunction attempt(attempts) {\n\t\t\t\t\tconst op = opWithLastEventId();\n\t\t\t\t\tnext$ = callOpts.next(op).subscribe({\n\t\t\t\t\t\terror(error) {\n\t\t\t\t\t\t\tvar _opts$retryDelayMs, _opts$retryDelayMs2;\n\t\t\t\t\t\t\tconst shouldRetry = opts.retry({\n\t\t\t\t\t\t\t\top,\n\t\t\t\t\t\t\t\tattempts,\n\t\t\t\t\t\t\t\terror\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif (!shouldRetry) {\n\t\t\t\t\t\t\t\tobserver.error(error);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst delayMs = (_opts$retryDelayMs = (_opts$retryDelayMs2 = opts.retryDelayMs) === null || _opts$retryDelayMs2 === void 0 ? void 0 : _opts$retryDelayMs2.call(opts, attempts)) !== null && _opts$retryDelayMs !== void 0 ? _opts$retryDelayMs : 0;\n\t\t\t\t\t\t\tif (delayMs <= 0) {\n\t\t\t\t\t\t\t\tattempt(attempts + 1);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcallNextTimeout = setTimeout(() => attempt(attempts + 1), delayMs);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnext(envelope) {\n\t\t\t\t\t\t\tif ((!envelope.result.type || envelope.result.type === \"data\") && envelope.result.id) lastEventId = envelope.result.id;\n\t\t\t\t\t\t\tobserver.next(envelope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcomplete() {\n\t\t\t\t\t\t\tobserver.complete();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn () => {\n\t\t\t\t\tnext$.unsubscribe();\n\t\t\t\t\tclearTimeout(callNextTimeout);\n\t\t\t\t};\n\t\t\t});\n\t\t};\n\t};\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/usingCtx.js\nvar require_usingCtx = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/usingCtx.js\"(exports, module) {\n\tfunction _usingCtx() {\n\t\tvar r = \"function\" == typeof SuppressedError ? SuppressedError : function(r$1, e$1) {\n\t\t\tvar n$1 = Error();\n\t\t\treturn n$1.name = \"SuppressedError\", n$1.error = r$1, n$1.suppressed = e$1, n$1;\n\t\t}, e = {}, n = [];\n\t\tfunction using(r$1, e$1) {\n\t\t\tif (null != e$1) {\n\t\t\t\tif (Object(e$1) !== e$1) throw new TypeError(\"using declarations can only be used with objects, functions, null, or undefined.\");\n\t\t\t\tif (r$1) var o = e$1[Symbol.asyncDispose || Symbol[\"for\"](\"Symbol.asyncDispose\")];\n\t\t\t\tif (void 0 === o && (o = e$1[Symbol.dispose || Symbol[\"for\"](\"Symbol.dispose\")], r$1)) var t = o;\n\t\t\t\tif (\"function\" != typeof o) throw new TypeError(\"Object is not disposable.\");\n\t\t\t\tt && (o = function o$1() {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tt.call(e$1);\n\t\t\t\t\t} catch (r$2) {\n\t\t\t\t\t\treturn Promise.reject(r$2);\n\t\t\t\t\t}\n\t\t\t\t}), n.push({\n\t\t\t\t\tv: e$1,\n\t\t\t\t\td: o,\n\t\t\t\t\ta: r$1\n\t\t\t\t});\n\t\t\t} else r$1 && n.push({\n\t\t\t\td: e$1,\n\t\t\t\ta: r$1\n\t\t\t});\n\t\t\treturn e$1;\n\t\t}\n\t\treturn {\n\t\t\te,\n\t\t\tu: using.bind(null, !1),\n\t\t\ta: using.bind(null, !0),\n\t\t\td: function d() {\n\t\t\t\tvar o, t = this.e, s = 0;\n\t\t\t\tfunction next() {\n\t\t\t\t\tfor (; o = n.pop();) try {\n\t\t\t\t\t\tif (!o.a && 1 === s) return s = 0, n.push(o), Promise.resolve().then(next);\n\t\t\t\t\t\tif (o.d) {\n\t\t\t\t\t\t\tvar r$1 = o.d.call(o.v);\n\t\t\t\t\t\t\tif (o.a) return s |= 2, Promise.resolve(r$1).then(next, err);\n\t\t\t\t\t\t} else s |= 1;\n\t\t\t\t\t} catch (r$2) {\n\t\t\t\t\t\treturn err(r$2);\n\t\t\t\t\t}\n\t\t\t\t\tif (1 === s) return t !== e ? Promise.reject(t) : Promise.resolve();\n\t\t\t\t\tif (t !== e) throw t;\n\t\t\t\t}\n\t\t\t\tfunction err(n$1) {\n\t\t\t\t\treturn t = t !== e ? new r(n$1, t) : n$1, next();\n\t\t\t\t}\n\t\t\t\treturn next();\n\t\t\t}\n\t\t};\n\t}\n\tmodule.exports = _usingCtx, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/OverloadYield.js\nvar require_OverloadYield = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/OverloadYield.js\"(exports, module) {\n\tfunction _OverloadYield(e, d) {\n\t\tthis.v = e, this.k = d;\n\t}\n\tmodule.exports = _OverloadYield, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/awaitAsyncGenerator.js\nvar require_awaitAsyncGenerator = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/awaitAsyncGenerator.js\"(exports, module) {\n\tvar OverloadYield$1 = require_OverloadYield();\n\tfunction _awaitAsyncGenerator$1(e) {\n\t\treturn new OverloadYield$1(e, 0);\n\t}\n\tmodule.exports = _awaitAsyncGenerator$1, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/wrapAsyncGenerator.js\nvar require_wrapAsyncGenerator = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/wrapAsyncGenerator.js\"(exports, module) {\n\tvar OverloadYield = require_OverloadYield();\n\tfunction _wrapAsyncGenerator$1(e) {\n\t\treturn function() {\n\t\t\treturn new AsyncGenerator(e.apply(this, arguments));\n\t\t};\n\t}\n\tfunction AsyncGenerator(e) {\n\t\tvar r, t;\n\t\tfunction resume(r$1, t$1) {\n\t\t\ttry {\n\t\t\t\tvar n = e[r$1](t$1), o = n.value, u = o instanceof OverloadYield;\n\t\t\t\tPromise.resolve(u ? o.v : o).then(function(t$2) {\n\t\t\t\t\tif (u) {\n\t\t\t\t\t\tvar i = \"return\" === r$1 ? \"return\" : \"next\";\n\t\t\t\t\t\tif (!o.k || t$2.done) return resume(i, t$2);\n\t\t\t\t\t\tt$2 = e[i](t$2).value;\n\t\t\t\t\t}\n\t\t\t\t\tsettle(n.done ? \"return\" : \"normal\", t$2);\n\t\t\t\t}, function(e$1) {\n\t\t\t\t\tresume(\"throw\", e$1);\n\t\t\t\t});\n\t\t\t} catch (e$1) {\n\t\t\t\tsettle(\"throw\", e$1);\n\t\t\t}\n\t\t}\n\t\tfunction settle(e$1, n) {\n\t\t\tswitch (e$1) {\n\t\t\t\tcase \"return\":\n\t\t\t\t\tr.resolve({\n\t\t\t\t\t\tvalue: n,\n\t\t\t\t\t\tdone: !0\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"throw\":\n\t\t\t\t\tr.reject(n);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: r.resolve({\n\t\t\t\t\tvalue: n,\n\t\t\t\t\tdone: !1\n\t\t\t\t});\n\t\t\t}\n\t\t\t(r = r.next) ? resume(r.key, r.arg) : t = null;\n\t\t}\n\t\tthis._invoke = function(e$1, n) {\n\t\t\treturn new Promise(function(o, u) {\n\t\t\t\tvar i = {\n\t\t\t\t\tkey: e$1,\n\t\t\t\t\targ: n,\n\t\t\t\t\tresolve: o,\n\t\t\t\t\treject: u,\n\t\t\t\t\tnext: null\n\t\t\t\t};\n\t\t\t\tt ? t = t.next = i : (r = t = i, resume(e$1, n));\n\t\t\t});\n\t\t}, \"function\" != typeof e[\"return\"] && (this[\"return\"] = void 0);\n\t}\n\tAsyncGenerator.prototype[\"function\" == typeof Symbol && Symbol.asyncIterator || \"@@asyncIterator\"] = function() {\n\t\treturn this;\n\t}, AsyncGenerator.prototype.next = function(e) {\n\t\treturn this._invoke(\"next\", e);\n\t}, AsyncGenerator.prototype[\"throw\"] = function(e) {\n\t\treturn this._invoke(\"throw\", e);\n\t}, AsyncGenerator.prototype[\"return\"] = function(e) {\n\t\treturn this._invoke(\"return\", e);\n\t};\n\tmodule.exports = _wrapAsyncGenerator$1, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region src/links/localLink.ts\nvar import_usingCtx = __toESM(require_usingCtx(), 1);\nvar import_awaitAsyncGenerator = __toESM(require_awaitAsyncGenerator(), 1);\nvar import_wrapAsyncGenerator = __toESM(require_wrapAsyncGenerator(), 1);\nvar import_objectSpread2 = __toESM(require_objectSpread2(), 1);\n/**\n* localLink is a terminating link that allows you to make tRPC procedure calls directly in your application without going through HTTP.\n*\n* @see https://trpc.io/docs/links/localLink\n*/\nfunction unstable_localLink(opts) {\n\tconst transformer = getTransformer(opts.transformer);\n\tconst transformChunk = (chunk) => {\n\t\tif (opts.transformer) return chunk;\n\t\tif (chunk === void 0) return chunk;\n\t\tconst serialized = JSON.stringify(transformer.input.serialize(chunk));\n\t\tconst deserialized = JSON.parse(transformer.output.deserialize(serialized));\n\t\treturn deserialized;\n\t};\n\treturn () => ({ op }) => observable((observer) => {\n\t\tlet ctx = void 0;\n\t\tconst ac = new AbortController();\n\t\tconst signal = raceAbortSignals(op.signal, ac.signal);\n\t\tconst signalPromise = abortSignalToPromise(signal);\n\t\tsignalPromise.catch(() => {});\n\t\tlet input = op.input;\n\t\tasync function runProcedure(newInput) {\n\t\t\tinput = newInput;\n\t\t\tctx = await opts.createContext();\n\t\t\treturn callProcedure({\n\t\t\t\trouter: opts.router,\n\t\t\t\tpath: op.path,\n\t\t\t\tgetRawInput: async () => newInput,\n\t\t\t\tctx,\n\t\t\t\ttype: op.type,\n\t\t\t\tsignal,\n\t\t\t\tbatchIndex: 0\n\t\t\t});\n\t\t}\n\t\tfunction onErrorCallback(cause) {\n\t\t\tvar _opts$onError;\n\t\t\tif (isAbortError(cause)) return;\n\t\t\t(_opts$onError = opts.onError) === null || _opts$onError === void 0 || _opts$onError.call(opts, {\n\t\t\t\terror: getTRPCErrorFromUnknown(cause),\n\t\t\t\ttype: op.type,\n\t\t\t\tpath: op.path,\n\t\t\t\tinput,\n\t\t\t\tctx\n\t\t\t});\n\t\t}\n\t\tfunction coerceToTRPCClientError(cause) {\n\t\t\tif (isTRPCClientError(cause)) return cause;\n\t\t\tconst error = getTRPCErrorFromUnknown(cause);\n\t\t\tconst shape = getTRPCErrorShape({\n\t\t\t\tconfig: opts.router._def._config,\n\t\t\t\tctx,\n\t\t\t\terror,\n\t\t\t\tinput,\n\t\t\t\tpath: op.path,\n\t\t\t\ttype: op.type\n\t\t\t});\n\t\t\treturn TRPCClientError.from({ error: transformChunk(shape) }, { cause: cause instanceof Error ? cause : void 0 });\n\t\t}\n\t\trun(async () => {\n\t\t\tswitch (op.type) {\n\t\t\t\tcase \"query\":\n\t\t\t\tcase \"mutation\": {\n\t\t\t\t\tconst result = await runProcedure(op.input);\n\t\t\t\t\tif (!isAsyncIterable(result)) {\n\t\t\t\t\t\tobserver.next({ result: { data: transformChunk(result) } });\n\t\t\t\t\t\tobserver.complete();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tobserver.next({ result: { data: (0, import_wrapAsyncGenerator.default)(function* () {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tvar _usingCtx$1 = (0, import_usingCtx.default)();\n\t\t\t\t\t\t\tconst iterator = _usingCtx$1.a(iteratorResource(result));\n\t\t\t\t\t\t\tconst _finally = _usingCtx$1.u(makeResource({}, () => {\n\t\t\t\t\t\t\t\tobserver.complete();\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\twhile (true) {\n\t\t\t\t\t\t\t\t\tconst res = yield (0, import_awaitAsyncGenerator.default)(Promise.race([iterator.next(), signalPromise]));\n\t\t\t\t\t\t\t\t\tif (res.done) return transformChunk(res.value);\n\t\t\t\t\t\t\t\t\tyield transformChunk(res.value);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch (cause) {\n\t\t\t\t\t\t\t\tonErrorCallback(cause);\n\t\t\t\t\t\t\t\tthrow coerceToTRPCClientError(cause);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\t_usingCtx$1.e = _;\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\tyield (0, import_awaitAsyncGenerator.default)(_usingCtx$1.d());\n\t\t\t\t\t\t}\n\t\t\t\t\t})() } });\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"subscription\": try {\n\t\t\t\t\tvar _usingCtx3 = (0, import_usingCtx.default)();\n\t\t\t\t\tconst connectionState = behaviorSubject({\n\t\t\t\t\t\ttype: \"state\",\n\t\t\t\t\t\tstate: \"connecting\",\n\t\t\t\t\t\terror: null\n\t\t\t\t\t});\n\t\t\t\t\tconst connectionSub = connectionState.subscribe({ next(state) {\n\t\t\t\t\t\tobserver.next({ result: state });\n\t\t\t\t\t} });\n\t\t\t\t\tlet lastEventId = void 0;\n\t\t\t\t\tconst _finally = _usingCtx3.u(makeResource({}, async () => {\n\t\t\t\t\t\tobserver.complete();\n\t\t\t\t\t\tconnectionState.next({\n\t\t\t\t\t\t\ttype: \"state\",\n\t\t\t\t\t\t\tstate: \"idle\",\n\t\t\t\t\t\t\terror: null\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconnectionSub.unsubscribe();\n\t\t\t\t\t}));\n\t\t\t\t\twhile (true) try {\n\t\t\t\t\t\tvar _usingCtx4 = (0, import_usingCtx.default)();\n\t\t\t\t\t\tconst result = await runProcedure(inputWithTrackedEventId(op.input, lastEventId));\n\t\t\t\t\t\tif (!isAsyncIterable(result)) throw new Error(\"Expected an async iterable\");\n\t\t\t\t\t\tconst iterator = _usingCtx4.a(iteratorResource(result));\n\t\t\t\t\t\tobserver.next({ result: { type: \"started\" } });\n\t\t\t\t\t\tconnectionState.next({\n\t\t\t\t\t\t\ttype: \"state\",\n\t\t\t\t\t\t\tstate: \"pending\",\n\t\t\t\t\t\t\terror: null\n\t\t\t\t\t\t});\n\t\t\t\t\t\twhile (true) {\n\t\t\t\t\t\t\tlet res;\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tres = await Promise.race([iterator.next(), signalPromise]);\n\t\t\t\t\t\t\t} catch (cause) {\n\t\t\t\t\t\t\t\tif (isAbortError(cause)) return;\n\t\t\t\t\t\t\t\tconst error = getTRPCErrorFromUnknown(cause);\n\t\t\t\t\t\t\t\tif (!retryableRpcCodes.includes(TRPC_ERROR_CODES_BY_KEY[error.code])) throw coerceToTRPCClientError(error);\n\t\t\t\t\t\t\t\tonErrorCallback(error);\n\t\t\t\t\t\t\t\tconnectionState.next({\n\t\t\t\t\t\t\t\t\ttype: \"state\",\n\t\t\t\t\t\t\t\t\tstate: \"connecting\",\n\t\t\t\t\t\t\t\t\terror: coerceToTRPCClientError(error)\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (res.done) return;\n\t\t\t\t\t\t\tlet chunk;\n\t\t\t\t\t\t\tif (isTrackedEnvelope(res.value)) {\n\t\t\t\t\t\t\t\tlastEventId = res.value[0];\n\t\t\t\t\t\t\t\tchunk = {\n\t\t\t\t\t\t\t\t\tid: res.value[0],\n\t\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\t\tid: res.value[0],\n\t\t\t\t\t\t\t\t\t\tdata: res.value[1]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t} else chunk = { data: res.value };\n\t\t\t\t\t\t\tobserver.next({ result: (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, chunk), {}, { data: transformChunk(chunk.data) }) });\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t_usingCtx4.e = _;\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tawait _usingCtx4.d();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t} catch (_) {\n\t\t\t\t\t_usingCtx3.e = _;\n\t\t\t\t} finally {\n\t\t\t\t\t_usingCtx3.d();\n\t\t\t\t}\n\t\t\t}\n\t\t}).catch((cause) => {\n\t\t\tonErrorCallback(cause);\n\t\t\tobserver.error(coerceToTRPCClientError(cause));\n\t\t});\n\t\treturn () => {\n\t\t\tac.abort();\n\t\t};\n\t});\n}\n/**\n* @deprecated Renamed to `unstable_localLink`. This alias will be removed in a future major release.\n*/\nconst experimental_localLink = unstable_localLink;\n\n//#endregion\nexport { TRPCClientError, TRPCUntypedClient, clientCallTypeToProcedureType, createTRPCClient, createTRPCClientProxy, createTRPCClient as createTRPCProxyClient, createTRPCUntypedClient, createWSClient, experimental_localLink, getFetch, getUntypedClient, httpBatchLink, httpBatchStreamLink, httpLink, httpSubscriptionLink, isFormData, isNonJsonSerializable, isOctetType, isTRPCClientError, jsonEncoder, loggerLink, retryLink, splitLink, unstable_httpBatchStreamLink, unstable_httpSubscriptionLink, unstable_localLink, wsLink };\n//# sourceMappingURL=index.mjs.map","import { skipToken } from \"@tanstack/react-query\";\nimport { isObject } from \"@trpc/server/unstable-core-do-not-import\";\n\n//#region rolldown:runtime\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function() {\n\treturn mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n\tif (from && typeof from === \"object\" || typeof from === \"function\") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {\n\t\tkey = keys[i];\n\t\tif (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n\t\t\tget: ((k) => from[k]).bind(null, key),\n\t\t\tenumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n\t\t});\n\t}\n\treturn to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", {\n\tvalue: mod,\n\tenumerable: true\n}) : target, mod));\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectWithoutPropertiesLoose.js\nvar require_objectWithoutPropertiesLoose = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectWithoutPropertiesLoose.js\"(exports, module) {\n\tfunction _objectWithoutPropertiesLoose(r, e) {\n\t\tif (null == r) return {};\n\t\tvar t = {};\n\t\tfor (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n\t\t\tif (e.includes(n)) continue;\n\t\t\tt[n] = r[n];\n\t\t}\n\t\treturn t;\n\t}\n\tmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectWithoutProperties.js\nvar require_objectWithoutProperties = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectWithoutProperties.js\"(exports, module) {\n\tvar objectWithoutPropertiesLoose = require_objectWithoutPropertiesLoose();\n\tfunction _objectWithoutProperties$1(e, t) {\n\t\tif (null == e) return {};\n\t\tvar o, r, i = objectWithoutPropertiesLoose(e, t);\n\t\tif (Object.getOwnPropertySymbols) {\n\t\t\tvar s = Object.getOwnPropertySymbols(e);\n\t\t\tfor (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n\t\t}\n\t\treturn i;\n\t}\n\tmodule.exports = _objectWithoutProperties$1, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/typeof.js\nvar require_typeof = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/typeof.js\"(exports, module) {\n\tfunction _typeof$2(o) {\n\t\t\"@babel/helpers - typeof\";\n\t\treturn module.exports = _typeof$2 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(o$1) {\n\t\t\treturn typeof o$1;\n\t\t} : function(o$1) {\n\t\t\treturn o$1 && \"function\" == typeof Symbol && o$1.constructor === Symbol && o$1 !== Symbol.prototype ? \"symbol\" : typeof o$1;\n\t\t}, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof$2(o);\n\t}\n\tmodule.exports = _typeof$2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPrimitive.js\nvar require_toPrimitive = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPrimitive.js\"(exports, module) {\n\tvar _typeof$1 = require_typeof()[\"default\"];\n\tfunction toPrimitive$1(t, r) {\n\t\tif (\"object\" != _typeof$1(t) || !t) return t;\n\t\tvar e = t[Symbol.toPrimitive];\n\t\tif (void 0 !== e) {\n\t\t\tvar i = e.call(t, r || \"default\");\n\t\t\tif (\"object\" != _typeof$1(i)) return i;\n\t\t\tthrow new TypeError(\"@@toPrimitive must return a primitive value.\");\n\t\t}\n\t\treturn (\"string\" === r ? String : Number)(t);\n\t}\n\tmodule.exports = toPrimitive$1, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPropertyKey.js\nvar require_toPropertyKey = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPropertyKey.js\"(exports, module) {\n\tvar _typeof = require_typeof()[\"default\"];\n\tvar toPrimitive = require_toPrimitive();\n\tfunction toPropertyKey$1(t) {\n\t\tvar i = toPrimitive(t, \"string\");\n\t\treturn \"symbol\" == _typeof(i) ? i : i + \"\";\n\t}\n\tmodule.exports = toPropertyKey$1, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/defineProperty.js\nvar require_defineProperty = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/defineProperty.js\"(exports, module) {\n\tvar toPropertyKey = require_toPropertyKey();\n\tfunction _defineProperty(e, r, t) {\n\t\treturn (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n\t\t\tvalue: t,\n\t\t\tenumerable: !0,\n\t\t\tconfigurable: !0,\n\t\t\twritable: !0\n\t\t}) : e[r] = t, e;\n\t}\n\tmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectSpread2.js\nvar require_objectSpread2 = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectSpread2.js\"(exports, module) {\n\tvar defineProperty = require_defineProperty();\n\tfunction ownKeys(e, r) {\n\t\tvar t = Object.keys(e);\n\t\tif (Object.getOwnPropertySymbols) {\n\t\t\tvar o = Object.getOwnPropertySymbols(e);\n\t\t\tr && (o = o.filter(function(r$1) {\n\t\t\t\treturn Object.getOwnPropertyDescriptor(e, r$1).enumerable;\n\t\t\t})), t.push.apply(t, o);\n\t\t}\n\t\treturn t;\n\t}\n\tfunction _objectSpread2(e) {\n\t\tfor (var r = 1; r < arguments.length; r++) {\n\t\t\tvar t = null != arguments[r] ? arguments[r] : {};\n\t\t\tr % 2 ? ownKeys(Object(t), !0).forEach(function(r$1) {\n\t\t\t\tdefineProperty(e, r$1, t[r$1]);\n\t\t\t}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r$1) {\n\t\t\t\tObject.defineProperty(e, r$1, Object.getOwnPropertyDescriptor(t, r$1));\n\t\t\t});\n\t\t}\n\t\treturn e;\n\t}\n\tmodule.exports = _objectSpread2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region src/internals/getQueryKey.ts\nvar import_objectWithoutProperties = __toESM(require_objectWithoutProperties(), 1);\nvar import_objectSpread2 = __toESM(require_objectSpread2(), 1);\nconst _excluded = [\"cursor\", \"direction\"];\n/**\n* To allow easy interactions with groups of related queries, such as\n* invalidating all queries of a router, we use an array as the path when\n* storing in tanstack query.\n**/\nfunction getQueryKeyInternal(path, input, type) {\n\tconst splitPath = path.flatMap((part) => part.split(\".\"));\n\tif (!input && (!type || type === \"any\")) return splitPath.length ? [splitPath] : [];\n\tif (type === \"infinite\" && isObject(input) && (\"direction\" in input || \"cursor\" in input)) {\n\t\tconst { cursor: _, direction: __ } = input, inputWithoutCursorAndDirection = (0, import_objectWithoutProperties.default)(input, _excluded);\n\t\treturn [splitPath, {\n\t\t\tinput: inputWithoutCursorAndDirection,\n\t\t\ttype: \"infinite\"\n\t\t}];\n\t}\n\treturn [splitPath, (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, typeof input !== \"undefined\" && input !== skipToken && { input }), type && type !== \"any\" && { type })];\n}\nfunction getMutationKeyInternal(path) {\n\treturn getQueryKeyInternal(path, void 0, \"any\");\n}\n/**\n* Method to extract the query key for a procedure\n* @param procedureOrRouter - procedure or AnyRouter\n* @param input - input to procedureOrRouter\n* @param type - defaults to `any`\n* @see https://trpc.io/docs/v11/getQueryKey\n*/\nfunction getQueryKey(procedureOrRouter, ..._params) {\n\tconst [input, type] = _params;\n\tconst path = procedureOrRouter._def().path;\n\tconst queryKey = getQueryKeyInternal(path, input, type !== null && type !== void 0 ? type : \"any\");\n\treturn queryKey;\n}\n/**\n* Method to extract the mutation key for a procedure\n* @param procedure - procedure\n* @see https://trpc.io/docs/v11/getQueryKey#mutations\n*/\nfunction getMutationKey(procedure) {\n\tconst path = procedure._def().path;\n\treturn getMutationKeyInternal(path);\n}\n\n//#endregion\nexport { __commonJS, __toESM, getMutationKey, getMutationKeyInternal, getQueryKey, getQueryKeyInternal, require_objectSpread2, require_objectWithoutProperties };\n//# sourceMappingURL=getQueryKey-BY58RNzP.mjs.map","import { __commonJS, __toESM, getMutationKeyInternal, getQueryKeyInternal, require_objectSpread2 } from \"./getQueryKey-BY58RNzP.mjs\";\nimport { TRPCUntypedClient, createTRPCClient, createTRPCClientProxy, getUntypedClient } from \"@trpc/client\";\nimport { QueryClient, hashKey, infiniteQueryOptions, queryOptions, skipToken, useInfiniteQuery, useMutation, usePrefetchInfiniteQuery, usePrefetchQuery, useQueries, useQuery, useSuspenseInfiniteQuery, useSuspenseQueries, useSuspenseQuery } from \"@tanstack/react-query\";\nimport { createFlatProxy, createRecursiveProxy, isAsyncIterable } from \"@trpc/server/unstable-core-do-not-import\";\nimport * as React$2 from \"react\";\nimport * as React$1 from \"react\";\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\n\n//#region src/shared/proxy/decorationProxy.ts\n/**\n* Create proxy for decorating procedures\n* @internal\n*/\nfunction createReactDecoration(hooks) {\n\treturn createRecursiveProxy(({ path, args }) => {\n\t\tvar _rest$;\n\t\tconst pathCopy = [...path];\n\t\tconst lastArg = pathCopy.pop();\n\t\tif (lastArg === \"useMutation\") return hooks[lastArg](pathCopy, ...args);\n\t\tif (lastArg === \"_def\") return { path: pathCopy };\n\t\tconst [input, ...rest] = args;\n\t\tconst opts = (_rest$ = rest[0]) !== null && _rest$ !== void 0 ? _rest$ : {};\n\t\treturn hooks[lastArg](pathCopy, input, opts);\n\t});\n}\n\n//#endregion\n//#region src/internals/context.tsx\nvar _React$createContext;\nconst contextProps = [\n\t\"client\",\n\t\"ssrContext\",\n\t\"ssrState\",\n\t\"abortOnUnmount\"\n];\nconst TRPCContext = (_React$createContext = React$2.createContext) === null || _React$createContext === void 0 ? void 0 : _React$createContext.call(React$2, null);\n\n//#endregion\n//#region src/shared/proxy/utilsProxy.ts\nconst getQueryType = (utilName) => {\n\tswitch (utilName) {\n\t\tcase \"queryOptions\":\n\t\tcase \"fetch\":\n\t\tcase \"ensureData\":\n\t\tcase \"prefetch\":\n\t\tcase \"getData\":\n\t\tcase \"setData\":\n\t\tcase \"setQueriesData\": return \"query\";\n\t\tcase \"infiniteQueryOptions\":\n\t\tcase \"fetchInfinite\":\n\t\tcase \"prefetchInfinite\":\n\t\tcase \"getInfiniteData\":\n\t\tcase \"setInfiniteData\": return \"infinite\";\n\t\tcase \"setMutationDefaults\":\n\t\tcase \"getMutationDefaults\":\n\t\tcase \"isMutating\":\n\t\tcase \"cancel\":\n\t\tcase \"invalidate\":\n\t\tcase \"refetch\":\n\t\tcase \"reset\": return \"any\";\n\t}\n};\n/**\n* @internal\n*/\nfunction createRecursiveUtilsProxy(context) {\n\treturn createRecursiveProxy((opts) => {\n\t\tconst path = [...opts.path];\n\t\tconst utilName = path.pop();\n\t\tconst args = [...opts.args];\n\t\tconst input = args.shift();\n\t\tconst queryType = getQueryType(utilName);\n\t\tconst queryKey = getQueryKeyInternal(path, input, queryType);\n\t\tconst contextMap = {\n\t\t\tinfiniteQueryOptions: () => context.infiniteQueryOptions(path, queryKey, args[0]),\n\t\t\tqueryOptions: () => context.queryOptions(path, queryKey, ...args),\n\t\t\tfetch: () => context.fetchQuery(queryKey, ...args),\n\t\t\tfetchInfinite: () => context.fetchInfiniteQuery(queryKey, args[0]),\n\t\t\tprefetch: () => context.prefetchQuery(queryKey, ...args),\n\t\t\tprefetchInfinite: () => context.prefetchInfiniteQuery(queryKey, args[0]),\n\t\t\tensureData: () => context.ensureQueryData(queryKey, ...args),\n\t\t\tinvalidate: () => context.invalidateQueries(queryKey, ...args),\n\t\t\treset: () => context.resetQueries(queryKey, ...args),\n\t\t\trefetch: () => context.refetchQueries(queryKey, ...args),\n\t\t\tcancel: () => context.cancelQuery(queryKey, ...args),\n\t\t\tsetData: () => {\n\t\t\t\tcontext.setQueryData(queryKey, args[0], args[1]);\n\t\t\t},\n\t\t\tsetQueriesData: () => context.setQueriesData(queryKey, args[0], args[1], args[2]),\n\t\t\tsetInfiniteData: () => {\n\t\t\t\tcontext.setInfiniteQueryData(queryKey, args[0], args[1]);\n\t\t\t},\n\t\t\tgetData: () => context.getQueryData(queryKey),\n\t\t\tgetInfiniteData: () => context.getInfiniteQueryData(queryKey),\n\t\t\tsetMutationDefaults: () => context.setMutationDefaults(getMutationKeyInternal(path), input),\n\t\t\tgetMutationDefaults: () => context.getMutationDefaults(getMutationKeyInternal(path)),\n\t\t\tisMutating: () => context.isMutating({ mutationKey: getMutationKeyInternal(path) })\n\t\t};\n\t\treturn contextMap[utilName]();\n\t});\n}\n/**\n* @internal\n*/\nfunction createReactQueryUtils(context) {\n\tconst clientProxy = createTRPCClientProxy(context.client);\n\tconst proxy = createRecursiveUtilsProxy(context);\n\treturn createFlatProxy((key) => {\n\t\tconst contextName = key;\n\t\tif (contextName === \"client\") return clientProxy;\n\t\tif (contextProps.includes(contextName)) return context[contextName];\n\t\treturn proxy[key];\n\t});\n}\n/**\n* @internal\n*/\nfunction createQueryUtilsProxy(context) {\n\treturn createRecursiveUtilsProxy(context);\n}\n\n//#endregion\n//#region src/shared/proxy/useQueriesProxy.ts\nvar import_objectSpread2$3 = __toESM(require_objectSpread2(), 1);\n/**\n* Create proxy for `useQueries` options\n* @internal\n*/\nfunction createUseQueries(client) {\n\tconst untypedClient = client instanceof TRPCUntypedClient ? client : getUntypedClient(client);\n\treturn createRecursiveProxy((opts) => {\n\t\tconst arrayPath = opts.path;\n\t\tconst dotPath = arrayPath.join(\".\");\n\t\tconst [input, _opts] = opts.args;\n\t\tconst options = (0, import_objectSpread2$3.default)({\n\t\t\tqueryKey: getQueryKeyInternal(arrayPath, input, \"query\"),\n\t\t\tqueryFn: () => {\n\t\t\t\treturn untypedClient.query(dotPath, input, _opts === null || _opts === void 0 ? void 0 : _opts.trpc);\n\t\t\t}\n\t\t}, _opts);\n\t\treturn options;\n\t});\n}\n\n//#endregion\n//#region src/internals/getClientArgs.ts\nvar import_objectSpread2$2 = __toESM(require_objectSpread2(), 1);\n/**\n* @internal\n*/\nfunction getClientArgs(queryKey, opts, infiniteParams) {\n\tvar _queryKey$;\n\tconst path = queryKey[0];\n\tlet input = (_queryKey$ = queryKey[1]) === null || _queryKey$ === void 0 ? void 0 : _queryKey$.input;\n\tif (infiniteParams) {\n\t\tvar _input;\n\t\tinput = (0, import_objectSpread2$2.default)((0, import_objectSpread2$2.default)((0, import_objectSpread2$2.default)({}, (_input = input) !== null && _input !== void 0 ? _input : {}), infiniteParams.pageParam ? { cursor: infiniteParams.pageParam } : {}), {}, { direction: infiniteParams.direction });\n\t}\n\treturn [\n\t\tpath.join(\".\"),\n\t\tinput,\n\t\topts === null || opts === void 0 ? void 0 : opts.trpc\n\t];\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/asyncIterator.js\nvar require_asyncIterator = __commonJS({ \"../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/asyncIterator.js\"(exports, module) {\n\tfunction _asyncIterator$1(r) {\n\t\tvar n, t, o, e = 2;\n\t\tfor (\"undefined\" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) {\n\t\t\tif (t && null != (n = r[t])) return n.call(r);\n\t\t\tif (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r));\n\t\t\tt = \"@@asyncIterator\", o = \"@@iterator\";\n\t\t}\n\t\tthrow new TypeError(\"Object is not async iterable\");\n\t}\n\tfunction AsyncFromSyncIterator(r) {\n\t\tfunction AsyncFromSyncIteratorContinuation(r$1) {\n\t\t\tif (Object(r$1) !== r$1) return Promise.reject(new TypeError(r$1 + \" is not an object.\"));\n\t\t\tvar n = r$1.done;\n\t\t\treturn Promise.resolve(r$1.value).then(function(r$2) {\n\t\t\t\treturn {\n\t\t\t\t\tvalue: r$2,\n\t\t\t\t\tdone: n\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\t\treturn AsyncFromSyncIterator = function AsyncFromSyncIterator$1(r$1) {\n\t\t\tthis.s = r$1, this.n = r$1.next;\n\t\t}, AsyncFromSyncIterator.prototype = {\n\t\t\ts: null,\n\t\t\tn: null,\n\t\t\tnext: function next() {\n\t\t\t\treturn AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));\n\t\t\t},\n\t\t\t\"return\": function _return(r$1) {\n\t\t\t\tvar n = this.s[\"return\"];\n\t\t\t\treturn void 0 === n ? Promise.resolve({\n\t\t\t\t\tvalue: r$1,\n\t\t\t\t\tdone: !0\n\t\t\t\t}) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));\n\t\t\t},\n\t\t\t\"throw\": function _throw(r$1) {\n\t\t\t\tvar n = this.s[\"return\"];\n\t\t\t\treturn void 0 === n ? Promise.reject(r$1) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));\n\t\t\t}\n\t\t}, new AsyncFromSyncIterator(r);\n\t}\n\tmodule.exports = _asyncIterator$1, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n} });\n\n//#endregion\n//#region src/internals/trpcResult.ts\nvar import_asyncIterator = __toESM(require_asyncIterator(), 1);\nfunction createTRPCOptionsResult(value) {\n\tconst path = value.path.join(\".\");\n\treturn { path };\n}\n/**\n* Makes a stable reference of the `trpc` prop\n*/\nfunction useHookResult(value) {\n\tconst result = createTRPCOptionsResult(value);\n\treturn React$1.useMemo(() => result, [result]);\n}\n/**\n* @internal\n*/\nasync function buildQueryFromAsyncIterable(asyncIterable, queryClient, queryKey) {\n\tconst queryCache = queryClient.getQueryCache();\n\tconst query = queryCache.build(queryClient, { queryKey });\n\tquery.setState({\n\t\tdata: [],\n\t\tstatus: \"success\"\n\t});\n\tconst aggregate = [];\n\tvar _iteratorAbruptCompletion = false;\n\tvar _didIteratorError = false;\n\tvar _iteratorError;\n\ttry {\n\t\tfor (var _iterator = (0, import_asyncIterator.default)(asyncIterable), _step; _iteratorAbruptCompletion = !(_step = await _iterator.next()).done; _iteratorAbruptCompletion = false) {\n\t\t\tconst value = _step.value;\n\t\t\t{\n\t\t\t\taggregate.push(value);\n\t\t\t\tquery.setState({ data: [...aggregate] });\n\t\t\t}\n\t\t}\n\t} catch (err) {\n\t\t_didIteratorError = true;\n\t\t_iteratorError = err;\n\t} finally {\n\t\ttry {\n\t\t\tif (_iteratorAbruptCompletion && _iterator.return != null) await _iterator.return();\n\t\t} finally {\n\t\t\tif (_didIteratorError) throw _iteratorError;\n\t\t}\n\t}\n\treturn aggregate;\n}\n\n//#endregion\n//#region src/utils/createUtilityFunctions.ts\nvar import_objectSpread2$1 = __toESM(require_objectSpread2(), 1);\n/**\n* Creates a set of utility functions that can be used to interact with `react-query`\n* @param opts the `TRPCClient` and `QueryClient` to use\n* @returns a set of utility functions that can be used to interact with `react-query`\n* @internal\n*/\nfunction createUtilityFunctions(opts) {\n\tconst { client, queryClient } = opts;\n\tconst untypedClient = client instanceof TRPCUntypedClient ? client : getUntypedClient(client);\n\treturn {\n\t\tinfiniteQueryOptions: (path, queryKey, opts$1) => {\n\t\t\tvar _queryKey$, _ref;\n\t\t\tconst inputIsSkipToken = ((_queryKey$ = queryKey[1]) === null || _queryKey$ === void 0 ? void 0 : _queryKey$.input) === skipToken;\n\t\t\tconst queryFn = async (queryFnContext) => {\n\t\t\t\tvar _opts$trpc;\n\t\t\t\tconst actualOpts = (0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, opts$1), {}, { trpc: (0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, opts$1 === null || opts$1 === void 0 ? void 0 : opts$1.trpc), (opts$1 === null || opts$1 === void 0 || (_opts$trpc = opts$1.trpc) === null || _opts$trpc === void 0 ? void 0 : _opts$trpc.abortOnUnmount) ? { signal: queryFnContext.signal } : { signal: null }) });\n\t\t\t\tconst result = await untypedClient.query(...getClientArgs(queryKey, actualOpts, {\n\t\t\t\t\tdirection: queryFnContext.direction,\n\t\t\t\t\tpageParam: queryFnContext.pageParam\n\t\t\t\t}));\n\t\t\t\treturn result;\n\t\t\t};\n\t\t\treturn Object.assign(infiniteQueryOptions((0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, opts$1), {}, {\n\t\t\t\tinitialData: opts$1 === null || opts$1 === void 0 ? void 0 : opts$1.initialData,\n\t\t\t\tqueryKey,\n\t\t\t\tqueryFn: inputIsSkipToken ? skipToken : queryFn,\n\t\t\t\tinitialPageParam: (_ref = opts$1 === null || opts$1 === void 0 ? void 0 : opts$1.initialCursor) !== null && _ref !== void 0 ? _ref : null\n\t\t\t})), { trpc: createTRPCOptionsResult({ path }) });\n\t\t},\n\t\tqueryOptions: (path, queryKey, opts$1) => {\n\t\t\tvar _queryKey$2;\n\t\t\tconst inputIsSkipToken = ((_queryKey$2 = queryKey[1]) === null || _queryKey$2 === void 0 ? void 0 : _queryKey$2.input) === skipToken;\n\t\t\tconst queryFn = async (queryFnContext) => {\n\t\t\t\tvar _opts$trpc2;\n\t\t\t\tconst actualOpts = (0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, opts$1), {}, { trpc: (0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, opts$1 === null || opts$1 === void 0 ? void 0 : opts$1.trpc), (opts$1 === null || opts$1 === void 0 || (_opts$trpc2 = opts$1.trpc) === null || _opts$trpc2 === void 0 ? void 0 : _opts$trpc2.abortOnUnmount) ? { signal: queryFnContext.signal } : { signal: null }) });\n\t\t\t\tconst result = await untypedClient.query(...getClientArgs(queryKey, actualOpts));\n\t\t\t\tif (isAsyncIterable(result)) return buildQueryFromAsyncIterable(result, queryClient, queryKey);\n\t\t\t\treturn result;\n\t\t\t};\n\t\t\treturn Object.assign(queryOptions((0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, opts$1), {}, {\n\t\t\t\tinitialData: opts$1 === null || opts$1 === void 0 ? void 0 : opts$1.initialData,\n\t\t\t\tqueryKey,\n\t\t\t\tqueryFn: inputIsSkipToken ? skipToken : queryFn\n\t\t\t})), { trpc: createTRPCOptionsResult({ path }) });\n\t\t},\n\t\tfetchQuery: (queryKey, opts$1) => {\n\t\t\treturn queryClient.fetchQuery((0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, opts$1), {}, {\n\t\t\t\tqueryKey,\n\t\t\t\tqueryFn: () => untypedClient.query(...getClientArgs(queryKey, opts$1))\n\t\t\t}));\n\t\t},\n\t\tfetchInfiniteQuery: (queryKey, opts$1) => {\n\t\t\tvar _opts$initialCursor;\n\t\t\treturn queryClient.fetchInfiniteQuery((0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, opts$1), {}, {\n\t\t\t\tqueryKey,\n\t\t\t\tqueryFn: ({ pageParam, direction }) => {\n\t\t\t\t\treturn untypedClient.query(...getClientArgs(queryKey, opts$1, {\n\t\t\t\t\t\tpageParam,\n\t\t\t\t\t\tdirection\n\t\t\t\t\t}));\n\t\t\t\t},\n\t\t\t\tinitialPageParam: (_opts$initialCursor = opts$1 === null || opts$1 === void 0 ? void 0 : opts$1.initialCursor) !== null && _opts$initialCursor !== void 0 ? _opts$initialCursor : null\n\t\t\t}));\n\t\t},\n\t\tprefetchQuery: (queryKey, opts$1) => {\n\t\t\treturn queryClient.prefetchQuery((0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, opts$1), {}, {\n\t\t\t\tqueryKey,\n\t\t\t\tqueryFn: () => untypedClient.query(...getClientArgs(queryKey, opts$1))\n\t\t\t}));\n\t\t},\n\t\tprefetchInfiniteQuery: (queryKey, opts$1) => {\n\t\t\tvar _opts$initialCursor2;\n\t\t\treturn queryClient.prefetchInfiniteQuery((0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, opts$1), {}, {\n\t\t\t\tqueryKey,\n\t\t\t\tqueryFn: ({ pageParam, direction }) => {\n\t\t\t\t\treturn untypedClient.query(...getClientArgs(queryKey, opts$1, {\n\t\t\t\t\t\tpageParam,\n\t\t\t\t\t\tdirection\n\t\t\t\t\t}));\n\t\t\t\t},\n\t\t\t\tinitialPageParam: (_opts$initialCursor2 = opts$1 === null || opts$1 === void 0 ? void 0 : opts$1.initialCursor) !== null && _opts$initialCursor2 !== void 0 ? _opts$initialCursor2 : null\n\t\t\t}));\n\t\t},\n\t\tensureQueryData: (queryKey, opts$1) => {\n\t\t\treturn queryClient.ensureQueryData((0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, opts$1), {}, {\n\t\t\t\tqueryKey,\n\t\t\t\tqueryFn: () => untypedClient.query(...getClientArgs(queryKey, opts$1))\n\t\t\t}));\n\t\t},\n\t\tinvalidateQueries: (queryKey, filters, options) => {\n\t\t\treturn queryClient.invalidateQueries((0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, filters), {}, { queryKey }), options);\n\t\t},\n\t\tresetQueries: (queryKey, filters, options) => {\n\t\t\treturn queryClient.resetQueries((0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, filters), {}, { queryKey }), options);\n\t\t},\n\t\trefetchQueries: (queryKey, filters, options) => {\n\t\t\treturn queryClient.refetchQueries((0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, filters), {}, { queryKey }), options);\n\t\t},\n\t\tcancelQuery: (queryKey, options) => {\n\t\t\treturn queryClient.cancelQueries({ queryKey }, options);\n\t\t},\n\t\tsetQueryData: (queryKey, updater, options) => {\n\t\t\treturn queryClient.setQueryData(queryKey, updater, options);\n\t\t},\n\t\tsetQueriesData: (queryKey, filters, updater, options) => {\n\t\t\treturn queryClient.setQueriesData((0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, filters), {}, { queryKey }), updater, options);\n\t\t},\n\t\tgetQueryData: (queryKey) => {\n\t\t\treturn queryClient.getQueryData(queryKey);\n\t\t},\n\t\tsetInfiniteQueryData: (queryKey, updater, options) => {\n\t\t\treturn queryClient.setQueryData(queryKey, updater, options);\n\t\t},\n\t\tgetInfiniteQueryData: (queryKey) => {\n\t\t\treturn queryClient.getQueryData(queryKey);\n\t\t},\n\t\tsetMutationDefaults: (mutationKey, options) => {\n\t\t\tconst path = mutationKey[0];\n\t\t\tconst canonicalMutationFn = (input) => {\n\t\t\t\treturn untypedClient.mutation(...getClientArgs([path, { input }], opts));\n\t\t\t};\n\t\t\treturn queryClient.setMutationDefaults(mutationKey, typeof options === \"function\" ? options({ canonicalMutationFn }) : options);\n\t\t},\n\t\tgetMutationDefaults: (mutationKey) => {\n\t\t\treturn queryClient.getMutationDefaults(mutationKey);\n\t\t},\n\t\tisMutating: (filters) => {\n\t\t\treturn queryClient.isMutating((0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, filters), {}, { exact: true }));\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/shared/hooks/createHooksInternal.tsx\nvar import_objectSpread2 = __toESM(require_objectSpread2());\nconst trackResult = (result, onTrackResult) => {\n\tconst trackedResult = new Proxy(result, { get(target, prop) {\n\t\tonTrackResult(prop);\n\t\treturn target[prop];\n\t} });\n\treturn trackedResult;\n};\n/**\n* @internal\n*/\nfunction createRootHooks(config) {\n\tvar _config$overrides$use, _config$overrides, _config$context;\n\tconst mutationSuccessOverride = (_config$overrides$use = config === null || config === void 0 || (_config$overrides = config.overrides) === null || _config$overrides === void 0 || (_config$overrides = _config$overrides.useMutation) === null || _config$overrides === void 0 ? void 0 : _config$overrides.onSuccess) !== null && _config$overrides$use !== void 0 ? _config$overrides$use : (options) => options.originalFn();\n\tconst Context = (_config$context = config === null || config === void 0 ? void 0 : config.context) !== null && _config$context !== void 0 ? _config$context : TRPCContext;\n\tconst createClient = createTRPCClient;\n\tconst TRPCProvider = (props) => {\n\t\tvar _props$ssrState;\n\t\tconst { abortOnUnmount = false, queryClient, ssrContext } = props;\n\t\tconst [ssrState, setSSRState] = React.useState((_props$ssrState = props.ssrState) !== null && _props$ssrState !== void 0 ? _props$ssrState : false);\n\t\tconst client = props.client instanceof TRPCUntypedClient ? props.client : getUntypedClient(props.client);\n\t\tconst fns = React.useMemo(() => createUtilityFunctions({\n\t\t\tclient,\n\t\t\tqueryClient\n\t\t}), [client, queryClient]);\n\t\tconst contextValue = React.useMemo(() => (0, import_objectSpread2.default)({\n\t\t\tabortOnUnmount,\n\t\t\tqueryClient,\n\t\t\tclient,\n\t\t\tssrContext: ssrContext !== null && ssrContext !== void 0 ? ssrContext : null,\n\t\t\tssrState\n\t\t}, fns), [\n\t\t\tabortOnUnmount,\n\t\t\tclient,\n\t\t\tfns,\n\t\t\tqueryClient,\n\t\t\tssrContext,\n\t\t\tssrState\n\t\t]);\n\t\tReact.useEffect(() => {\n\t\t\tsetSSRState((state) => state ? \"mounted\" : false);\n\t\t}, []);\n\t\treturn /* @__PURE__ */ jsx(Context.Provider, {\n\t\t\tvalue: contextValue,\n\t\t\tchildren: props.children\n\t\t});\n\t};\n\tfunction useContext() {\n\t\tconst context = React.useContext(Context);\n\t\tif (!context) throw new Error(\"Unable to find tRPC Context. Did you forget to wrap your App inside `withTRPC` HoC?\");\n\t\treturn context;\n\t}\n\t/**\n\t* Hack to make sure errors return `status`='error` when doing SSR\n\t* @see https://github.com/trpc/trpc/pull/1645\n\t*/\n\tfunction useSSRQueryOptionsIfNeeded(queryKey, opts) {\n\t\tvar _queryClient$getQuery;\n\t\tconst { queryClient, ssrState } = useContext();\n\t\treturn ssrState && ssrState !== \"mounted\" && ((_queryClient$getQuery = queryClient.getQueryCache().find({ queryKey })) === null || _queryClient$getQuery === void 0 ? void 0 : _queryClient$getQuery.state.status) === \"error\" ? (0, import_objectSpread2.default)({ retryOnMount: false }, opts) : opts;\n\t}\n\tfunction useQuery$1(path, input, opts) {\n\t\tvar _opts$trpc, _opts$enabled, _ref, _opts$trpc$abortOnUnm, _opts$trpc2;\n\t\tconst context = useContext();\n\t\tconst { abortOnUnmount, client, ssrState, queryClient, prefetchQuery } = context;\n\t\tconst queryKey = getQueryKeyInternal(path, input, \"query\");\n\t\tconst defaultOpts = queryClient.getQueryDefaults(queryKey);\n\t\tconst isInputSkipToken = input === skipToken;\n\t\tif (typeof window === \"undefined\" && ssrState === \"prepass\" && (opts === null || opts === void 0 || (_opts$trpc = opts.trpc) === null || _opts$trpc === void 0 ? void 0 : _opts$trpc.ssr) !== false && ((_opts$enabled = opts === null || opts === void 0 ? void 0 : opts.enabled) !== null && _opts$enabled !== void 0 ? _opts$enabled : defaultOpts === null || defaultOpts === void 0 ? void 0 : defaultOpts.enabled) !== false && !isInputSkipToken && !queryClient.getQueryCache().find({ queryKey })) prefetchQuery(queryKey, opts);\n\t\tconst ssrOpts = useSSRQueryOptionsIfNeeded(queryKey, (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, defaultOpts), opts));\n\t\tconst shouldAbortOnUnmount = (_ref = (_opts$trpc$abortOnUnm = opts === null || opts === void 0 || (_opts$trpc2 = opts.trpc) === null || _opts$trpc2 === void 0 ? void 0 : _opts$trpc2.abortOnUnmount) !== null && _opts$trpc$abortOnUnm !== void 0 ? _opts$trpc$abortOnUnm : config === null || config === void 0 ? void 0 : config.abortOnUnmount) !== null && _ref !== void 0 ? _ref : abortOnUnmount;\n\t\tconst hook = useQuery((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, ssrOpts), {}, {\n\t\t\tqueryKey,\n\t\t\tqueryFn: isInputSkipToken ? input : async (queryFunctionContext) => {\n\t\t\t\tconst actualOpts = (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, ssrOpts), {}, { trpc: (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, ssrOpts === null || ssrOpts === void 0 ? void 0 : ssrOpts.trpc), shouldAbortOnUnmount ? { signal: queryFunctionContext.signal } : { signal: null }) });\n\t\t\t\tconst result = await client.query(...getClientArgs(queryKey, actualOpts));\n\t\t\t\tif (isAsyncIterable(result)) return buildQueryFromAsyncIterable(result, queryClient, queryKey);\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}), queryClient);\n\t\thook.trpc = useHookResult({ path });\n\t\treturn hook;\n\t}\n\tfunction usePrefetchQuery$1(path, input, opts) {\n\t\tvar _ref2, _opts$trpc$abortOnUnm2, _opts$trpc3;\n\t\tconst context = useContext();\n\t\tconst queryKey = getQueryKeyInternal(path, input, \"query\");\n\t\tconst isInputSkipToken = input === skipToken;\n\t\tconst shouldAbortOnUnmount = (_ref2 = (_opts$trpc$abortOnUnm2 = opts === null || opts === void 0 || (_opts$trpc3 = opts.trpc) === null || _opts$trpc3 === void 0 ? void 0 : _opts$trpc3.abortOnUnmount) !== null && _opts$trpc$abortOnUnm2 !== void 0 ? _opts$trpc$abortOnUnm2 : config === null || config === void 0 ? void 0 : config.abortOnUnmount) !== null && _ref2 !== void 0 ? _ref2 : context.abortOnUnmount;\n\t\tusePrefetchQuery((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {\n\t\t\tqueryKey,\n\t\t\tqueryFn: isInputSkipToken ? input : (queryFunctionContext) => {\n\t\t\t\tconst actualOpts = { trpc: (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts === null || opts === void 0 ? void 0 : opts.trpc), shouldAbortOnUnmount ? { signal: queryFunctionContext.signal } : {}) };\n\t\t\t\treturn context.client.query(...getClientArgs(queryKey, actualOpts));\n\t\t\t}\n\t\t}));\n\t}\n\tfunction useSuspenseQuery$1(path, input, opts) {\n\t\tvar _ref3, _opts$trpc$abortOnUnm3, _opts$trpc4;\n\t\tconst context = useContext();\n\t\tconst queryKey = getQueryKeyInternal(path, input, \"query\");\n\t\tconst shouldAbortOnUnmount = (_ref3 = (_opts$trpc$abortOnUnm3 = opts === null || opts === void 0 || (_opts$trpc4 = opts.trpc) === null || _opts$trpc4 === void 0 ? void 0 : _opts$trpc4.abortOnUnmount) !== null && _opts$trpc$abortOnUnm3 !== void 0 ? _opts$trpc$abortOnUnm3 : config === null || config === void 0 ? void 0 : config.abortOnUnmount) !== null && _ref3 !== void 0 ? _ref3 : context.abortOnUnmount;\n\t\tconst hook = useSuspenseQuery((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {\n\t\t\tqueryKey,\n\t\t\tqueryFn: (queryFunctionContext) => {\n\t\t\t\tconst actualOpts = (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, { trpc: (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts === null || opts === void 0 ? void 0 : opts.trpc), shouldAbortOnUnmount ? { signal: queryFunctionContext.signal } : { signal: null }) });\n\t\t\t\treturn context.client.query(...getClientArgs(queryKey, actualOpts));\n\t\t\t}\n\t\t}), context.queryClient);\n\t\thook.trpc = useHookResult({ path });\n\t\treturn [hook.data, hook];\n\t}\n\tfunction useMutation$1(path, opts) {\n\t\tconst { client, queryClient } = useContext();\n\t\tconst mutationKey = getMutationKeyInternal(path);\n\t\tconst defaultOpts = queryClient.defaultMutationOptions(queryClient.getMutationDefaults(mutationKey));\n\t\tconst hook = useMutation((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {\n\t\t\tmutationKey,\n\t\t\tmutationFn: (input) => {\n\t\t\t\treturn client.mutation(...getClientArgs([path, { input }], opts));\n\t\t\t},\n\t\t\tonSuccess(...args) {\n\t\t\t\tvar _ref4, _opts$meta;\n\t\t\t\tconst originalFn = () => {\n\t\t\t\t\tvar _opts$onSuccess, _opts$onSuccess2, _defaultOpts$onSucces;\n\t\t\t\t\treturn (_opts$onSuccess = opts === null || opts === void 0 || (_opts$onSuccess2 = opts.onSuccess) === null || _opts$onSuccess2 === void 0 ? void 0 : _opts$onSuccess2.call(opts, ...args)) !== null && _opts$onSuccess !== void 0 ? _opts$onSuccess : defaultOpts === null || defaultOpts === void 0 || (_defaultOpts$onSucces = defaultOpts.onSuccess) === null || _defaultOpts$onSucces === void 0 ? void 0 : _defaultOpts$onSucces.call(defaultOpts, ...args);\n\t\t\t\t};\n\t\t\t\treturn mutationSuccessOverride({\n\t\t\t\t\toriginalFn,\n\t\t\t\t\tqueryClient,\n\t\t\t\t\tmeta: (_ref4 = (_opts$meta = opts === null || opts === void 0 ? void 0 : opts.meta) !== null && _opts$meta !== void 0 ? _opts$meta : defaultOpts === null || defaultOpts === void 0 ? void 0 : defaultOpts.meta) !== null && _ref4 !== void 0 ? _ref4 : {}\n\t\t\t\t});\n\t\t\t}\n\t\t}), queryClient);\n\t\thook.trpc = useHookResult({ path });\n\t\treturn hook;\n\t}\n\tconst initialStateIdle = {\n\t\tdata: void 0,\n\t\terror: null,\n\t\tstatus: \"idle\"\n\t};\n\tconst initialStateConnecting = {\n\t\tdata: void 0,\n\t\terror: null,\n\t\tstatus: \"connecting\"\n\t};\n\t/* istanbul ignore next -- @preserve */\n\tfunction useSubscription(path, input, opts) {\n\t\tvar _opts$enabled2;\n\t\tconst enabled = (_opts$enabled2 = opts === null || opts === void 0 ? void 0 : opts.enabled) !== null && _opts$enabled2 !== void 0 ? _opts$enabled2 : input !== skipToken;\n\t\tconst queryKey = hashKey(getQueryKeyInternal(path, input, \"any\"));\n\t\tconst { client } = useContext();\n\t\tconst optsRef = React.useRef(opts);\n\t\tReact.useEffect(() => {\n\t\t\toptsRef.current = opts;\n\t\t});\n\t\tconst [trackedProps] = React.useState(new Set([]));\n\t\tconst addTrackedProp = React.useCallback((key) => {\n\t\t\ttrackedProps.add(key);\n\t\t}, [trackedProps]);\n\t\tconst currentSubscriptionRef = React.useRef(null);\n\t\tconst updateState = React.useCallback((callback) => {\n\t\t\tconst prev = resultRef.current;\n\t\t\tconst next = resultRef.current = callback(prev);\n\t\t\tlet shouldUpdate = false;\n\t\t\tfor (const key of trackedProps) if (prev[key] !== next[key]) {\n\t\t\t\tshouldUpdate = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldUpdate) setState(trackResult(next, addTrackedProp));\n\t\t}, [addTrackedProp, trackedProps]);\n\t\tconst reset = React.useCallback(() => {\n\t\t\tvar _currentSubscriptionR;\n\t\t\t(_currentSubscriptionR = currentSubscriptionRef.current) === null || _currentSubscriptionR === void 0 || _currentSubscriptionR.unsubscribe();\n\t\t\tif (!enabled) {\n\t\t\t\tupdateState(() => (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, initialStateIdle), {}, { reset }));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tupdateState(() => (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, initialStateConnecting), {}, { reset }));\n\t\t\tconst subscription = client.subscription(path.join(\".\"), input !== null && input !== void 0 ? input : void 0, {\n\t\t\t\tonStarted: () => {\n\t\t\t\t\tvar _optsRef$current$onSt, _optsRef$current;\n\t\t\t\t\t(_optsRef$current$onSt = (_optsRef$current = optsRef.current).onStarted) === null || _optsRef$current$onSt === void 0 || _optsRef$current$onSt.call(_optsRef$current);\n\t\t\t\t\tupdateState((prev) => (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, prev), {}, {\n\t\t\t\t\t\tstatus: \"pending\",\n\t\t\t\t\t\terror: null\n\t\t\t\t\t}));\n\t\t\t\t},\n\t\t\t\tonData: (data) => {\n\t\t\t\t\tvar _optsRef$current$onDa, _optsRef$current2;\n\t\t\t\t\t(_optsRef$current$onDa = (_optsRef$current2 = optsRef.current).onData) === null || _optsRef$current$onDa === void 0 || _optsRef$current$onDa.call(_optsRef$current2, data);\n\t\t\t\t\tupdateState((prev) => (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, prev), {}, {\n\t\t\t\t\t\tstatus: \"pending\",\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\terror: null\n\t\t\t\t\t}));\n\t\t\t\t},\n\t\t\t\tonError: (error) => {\n\t\t\t\t\tvar _optsRef$current$onEr, _optsRef$current3;\n\t\t\t\t\t(_optsRef$current$onEr = (_optsRef$current3 = optsRef.current).onError) === null || _optsRef$current$onEr === void 0 || _optsRef$current$onEr.call(_optsRef$current3, error);\n\t\t\t\t\tupdateState((prev) => (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, prev), {}, {\n\t\t\t\t\t\tstatus: \"error\",\n\t\t\t\t\t\terror\n\t\t\t\t\t}));\n\t\t\t\t},\n\t\t\t\tonConnectionStateChange: (result) => {\n\t\t\t\t\tupdateState((prev) => {\n\t\t\t\t\t\tswitch (result.state) {\n\t\t\t\t\t\t\tcase \"idle\": return (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, prev), {}, {\n\t\t\t\t\t\t\t\tstatus: result.state,\n\t\t\t\t\t\t\t\terror: null,\n\t\t\t\t\t\t\t\tdata: void 0\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tcase \"connecting\": return (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, prev), {}, {\n\t\t\t\t\t\t\t\terror: result.error,\n\t\t\t\t\t\t\t\tstatus: result.state\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tcase \"pending\": return prev;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tonComplete: () => {\n\t\t\t\t\tvar _optsRef$current$onCo, _optsRef$current4;\n\t\t\t\t\t(_optsRef$current$onCo = (_optsRef$current4 = optsRef.current).onComplete) === null || _optsRef$current$onCo === void 0 || _optsRef$current$onCo.call(_optsRef$current4);\n\t\t\t\t\tupdateState((prev) => (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, prev), {}, {\n\t\t\t\t\t\tstatus: \"idle\",\n\t\t\t\t\t\terror: null,\n\t\t\t\t\t\tdata: void 0\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t});\n\t\t\tcurrentSubscriptionRef.current = subscription;\n\t\t}, [\n\t\t\tclient,\n\t\t\tqueryKey,\n\t\t\tenabled,\n\t\t\tupdateState\n\t\t]);\n\t\tReact.useEffect(() => {\n\t\t\treset();\n\t\t\treturn () => {\n\t\t\t\tvar _currentSubscriptionR2;\n\t\t\t\t(_currentSubscriptionR2 = currentSubscriptionRef.current) === null || _currentSubscriptionR2 === void 0 || _currentSubscriptionR2.unsubscribe();\n\t\t\t};\n\t\t}, [reset]);\n\t\tconst resultRef = React.useRef(enabled ? (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, initialStateConnecting), {}, { reset }) : (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, initialStateIdle), {}, { reset }));\n\t\tconst [state, setState] = React.useState(trackResult(resultRef.current, addTrackedProp));\n\t\treturn state;\n\t}\n\tfunction useInfiniteQuery$1(path, input, opts) {\n\t\tvar _opts$trpc5, _opts$enabled3, _opts$trpc$abortOnUnm4, _opts$trpc6, _opts$initialCursor;\n\t\tconst { client, ssrState, prefetchInfiniteQuery, queryClient, abortOnUnmount } = useContext();\n\t\tconst queryKey = getQueryKeyInternal(path, input, \"infinite\");\n\t\tconst defaultOpts = queryClient.getQueryDefaults(queryKey);\n\t\tconst isInputSkipToken = input === skipToken;\n\t\tif (typeof window === \"undefined\" && ssrState === \"prepass\" && (opts === null || opts === void 0 || (_opts$trpc5 = opts.trpc) === null || _opts$trpc5 === void 0 ? void 0 : _opts$trpc5.ssr) !== false && ((_opts$enabled3 = opts === null || opts === void 0 ? void 0 : opts.enabled) !== null && _opts$enabled3 !== void 0 ? _opts$enabled3 : defaultOpts === null || defaultOpts === void 0 ? void 0 : defaultOpts.enabled) !== false && !isInputSkipToken && !queryClient.getQueryCache().find({ queryKey })) prefetchInfiniteQuery(queryKey, (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, defaultOpts), opts));\n\t\tconst ssrOpts = useSSRQueryOptionsIfNeeded(queryKey, (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, defaultOpts), opts));\n\t\tconst shouldAbortOnUnmount = (_opts$trpc$abortOnUnm4 = opts === null || opts === void 0 || (_opts$trpc6 = opts.trpc) === null || _opts$trpc6 === void 0 ? void 0 : _opts$trpc6.abortOnUnmount) !== null && _opts$trpc$abortOnUnm4 !== void 0 ? _opts$trpc$abortOnUnm4 : abortOnUnmount;\n\t\tconst hook = useInfiniteQuery((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, ssrOpts), {}, {\n\t\t\tinitialPageParam: (_opts$initialCursor = opts.initialCursor) !== null && _opts$initialCursor !== void 0 ? _opts$initialCursor : null,\n\t\t\tpersister: opts.persister,\n\t\t\tqueryKey,\n\t\t\tqueryFn: isInputSkipToken ? input : (queryFunctionContext) => {\n\t\t\t\tvar _queryFunctionContext;\n\t\t\t\tconst actualOpts = (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, ssrOpts), {}, { trpc: (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, ssrOpts === null || ssrOpts === void 0 ? void 0 : ssrOpts.trpc), shouldAbortOnUnmount ? { signal: queryFunctionContext.signal } : { signal: null }) });\n\t\t\t\treturn client.query(...getClientArgs(queryKey, actualOpts, {\n\t\t\t\t\tpageParam: (_queryFunctionContext = queryFunctionContext.pageParam) !== null && _queryFunctionContext !== void 0 ? _queryFunctionContext : opts.initialCursor,\n\t\t\t\t\tdirection: queryFunctionContext.direction\n\t\t\t\t}));\n\t\t\t}\n\t\t}), queryClient);\n\t\thook.trpc = useHookResult({ path });\n\t\treturn hook;\n\t}\n\tfunction usePrefetchInfiniteQuery$1(path, input, opts) {\n\t\tvar _opts$trpc$abortOnUnm5, _opts$trpc7, _opts$initialCursor2;\n\t\tconst context = useContext();\n\t\tconst queryKey = getQueryKeyInternal(path, input, \"infinite\");\n\t\tconst defaultOpts = context.queryClient.getQueryDefaults(queryKey);\n\t\tconst isInputSkipToken = input === skipToken;\n\t\tconst ssrOpts = useSSRQueryOptionsIfNeeded(queryKey, (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, defaultOpts), opts));\n\t\tconst shouldAbortOnUnmount = (_opts$trpc$abortOnUnm5 = opts === null || opts === void 0 || (_opts$trpc7 = opts.trpc) === null || _opts$trpc7 === void 0 ? void 0 : _opts$trpc7.abortOnUnmount) !== null && _opts$trpc$abortOnUnm5 !== void 0 ? _opts$trpc$abortOnUnm5 : context.abortOnUnmount;\n\t\tusePrefetchInfiniteQuery((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {\n\t\t\tinitialPageParam: (_opts$initialCursor2 = opts.initialCursor) !== null && _opts$initialCursor2 !== void 0 ? _opts$initialCursor2 : null,\n\t\t\tqueryKey,\n\t\t\tqueryFn: isInputSkipToken ? input : (queryFunctionContext) => {\n\t\t\t\tvar _queryFunctionContext2;\n\t\t\t\tconst actualOpts = (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, ssrOpts), {}, { trpc: (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, ssrOpts === null || ssrOpts === void 0 ? void 0 : ssrOpts.trpc), shouldAbortOnUnmount ? { signal: queryFunctionContext.signal } : {}) });\n\t\t\t\treturn context.client.query(...getClientArgs(queryKey, actualOpts, {\n\t\t\t\t\tpageParam: (_queryFunctionContext2 = queryFunctionContext.pageParam) !== null && _queryFunctionContext2 !== void 0 ? _queryFunctionContext2 : opts.initialCursor,\n\t\t\t\t\tdirection: queryFunctionContext.direction\n\t\t\t\t}));\n\t\t\t}\n\t\t}));\n\t}\n\tfunction useSuspenseInfiniteQuery$1(path, input, opts) {\n\t\tvar _opts$trpc$abortOnUnm6, _opts$trpc8, _opts$initialCursor3;\n\t\tconst context = useContext();\n\t\tconst queryKey = getQueryKeyInternal(path, input, \"infinite\");\n\t\tconst defaultOpts = context.queryClient.getQueryDefaults(queryKey);\n\t\tconst ssrOpts = useSSRQueryOptionsIfNeeded(queryKey, (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, defaultOpts), opts));\n\t\tconst shouldAbortOnUnmount = (_opts$trpc$abortOnUnm6 = opts === null || opts === void 0 || (_opts$trpc8 = opts.trpc) === null || _opts$trpc8 === void 0 ? void 0 : _opts$trpc8.abortOnUnmount) !== null && _opts$trpc$abortOnUnm6 !== void 0 ? _opts$trpc$abortOnUnm6 : context.abortOnUnmount;\n\t\tconst hook = useSuspenseInfiniteQuery((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {\n\t\t\tinitialPageParam: (_opts$initialCursor3 = opts.initialCursor) !== null && _opts$initialCursor3 !== void 0 ? _opts$initialCursor3 : null,\n\t\t\tqueryKey,\n\t\t\tqueryFn: (queryFunctionContext) => {\n\t\t\t\tvar _queryFunctionContext3;\n\t\t\t\tconst actualOpts = (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, ssrOpts), {}, { trpc: (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, ssrOpts === null || ssrOpts === void 0 ? void 0 : ssrOpts.trpc), shouldAbortOnUnmount ? { signal: queryFunctionContext.signal } : {}) });\n\t\t\t\treturn context.client.query(...getClientArgs(queryKey, actualOpts, {\n\t\t\t\t\tpageParam: (_queryFunctionContext3 = queryFunctionContext.pageParam) !== null && _queryFunctionContext3 !== void 0 ? _queryFunctionContext3 : opts.initialCursor,\n\t\t\t\t\tdirection: queryFunctionContext.direction\n\t\t\t\t}));\n\t\t\t}\n\t\t}), context.queryClient);\n\t\thook.trpc = useHookResult({ path });\n\t\treturn [hook.data, hook];\n\t}\n\tconst useQueries$1 = (queriesCallback, options) => {\n\t\tconst { ssrState, queryClient, prefetchQuery, client } = useContext();\n\t\tconst proxy = createUseQueries(client);\n\t\tconst queries = queriesCallback(proxy);\n\t\tif (typeof window === \"undefined\" && ssrState === \"prepass\") for (const query of queries) {\n\t\t\tvar _queryOption$trpc;\n\t\t\tconst queryOption = query;\n\t\t\tif (((_queryOption$trpc = queryOption.trpc) === null || _queryOption$trpc === void 0 ? void 0 : _queryOption$trpc.ssr) !== false && !queryClient.getQueryCache().find({ queryKey: queryOption.queryKey })) prefetchQuery(queryOption.queryKey, queryOption);\n\t\t}\n\t\treturn useQueries({\n\t\t\tqueries: queries.map((query) => (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, query), {}, { queryKey: query.queryKey })),\n\t\t\tcombine: options === null || options === void 0 ? void 0 : options.combine\n\t\t}, queryClient);\n\t};\n\tconst useSuspenseQueries$1 = (queriesCallback) => {\n\t\tconst { queryClient, client } = useContext();\n\t\tconst proxy = createUseQueries(client);\n\t\tconst queries = queriesCallback(proxy);\n\t\tconst hook = useSuspenseQueries({ queries: queries.map((query) => (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, query), {}, {\n\t\t\tqueryFn: query.queryFn,\n\t\t\tqueryKey: query.queryKey\n\t\t})) }, queryClient);\n\t\treturn [hook.map((h) => h.data), hook];\n\t};\n\treturn {\n\t\tProvider: TRPCProvider,\n\t\tcreateClient,\n\t\tuseContext,\n\t\tuseUtils: useContext,\n\t\tuseQuery: useQuery$1,\n\t\tusePrefetchQuery: usePrefetchQuery$1,\n\t\tuseSuspenseQuery: useSuspenseQuery$1,\n\t\tuseQueries: useQueries$1,\n\t\tuseSuspenseQueries: useSuspenseQueries$1,\n\t\tuseMutation: useMutation$1,\n\t\tuseSubscription,\n\t\tuseInfiniteQuery: useInfiniteQuery$1,\n\t\tusePrefetchInfiniteQuery: usePrefetchInfiniteQuery$1,\n\t\tuseSuspenseInfiniteQuery: useSuspenseInfiniteQuery$1\n\t};\n}\n\n//#endregion\n//#region src/shared/queryClient.ts\n/**\n* @internal\n*/\nconst getQueryClient = (config) => {\n\tvar _config$queryClient;\n\treturn (_config$queryClient = config.queryClient) !== null && _config$queryClient !== void 0 ? _config$queryClient : new QueryClient(config.queryClientConfig);\n};\n\n//#endregion\nexport { TRPCContext, contextProps, createQueryUtilsProxy, createReactDecoration, createReactQueryUtils, createRootHooks, createUseQueries, createUtilityFunctions, getClientArgs, getQueryClient, getQueryType };\n//# sourceMappingURL=shared-JtnEvJvB.mjs.map","import { getMutationKey, getQueryKey } from \"./getQueryKey-BY58RNzP.mjs\";\nimport { createQueryUtilsProxy, createReactDecoration, createReactQueryUtils, createRootHooks, createUtilityFunctions } from \"./shared-JtnEvJvB.mjs\";\nimport { createFlatProxy } from \"@trpc/server/unstable-core-do-not-import\";\nimport * as React from \"react\";\n\nexport * from \"@trpc/client\"\n\n//#region src/createTRPCReact.tsx\n/**\n* @internal\n*/\nfunction createHooksInternal(trpc) {\n\tconst proxy = createReactDecoration(trpc);\n\treturn createFlatProxy((key) => {\n\t\tif (key === \"useContext\" || key === \"useUtils\") return () => {\n\t\t\tconst context = trpc.useUtils();\n\t\t\treturn React.useMemo(() => {\n\t\t\t\treturn createReactQueryUtils(context);\n\t\t\t}, [context]);\n\t\t};\n\t\tif (trpc.hasOwnProperty(key)) return trpc[key];\n\t\treturn proxy[key];\n\t});\n}\nfunction createTRPCReact(opts) {\n\tconst hooks = createRootHooks(opts);\n\tconst proxy = createHooksInternal(hooks);\n\treturn proxy;\n}\n\n//#endregion\n//#region src/createTRPCQueryUtils.tsx\nfunction createTRPCQueryUtils(opts) {\n\tconst utils = createUtilityFunctions(opts);\n\treturn createQueryUtilsProxy(utils);\n}\n\n//#endregion\nexport { createTRPCQueryUtils, createTRPCReact, getMutationKey, getQueryKey };\n//# sourceMappingURL=index.mjs.map","import type { AppRouter } from '@backend/router';\nimport { QueryClient } from '@tanstack/react-query';\nimport { httpSubscriptionLink } from '@trpc/client';\nimport { createTRPCReact, httpBatchLink, splitLink } from '@trpc/react-query';\nimport type { inferRouterInputs, inferRouterOutputs } from '@trpc/server';\n\nexport type RouterOutputs = inferRouterOutputs<AppRouter>;\nexport type RouterInputs = inferRouterInputs<AppRouter>;\n\nexport const trpc = createTRPCReact<AppRouter>();\n\nexport const queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n retry: 2,\n staleTime: 5000,\n },\n },\n});\n\nexport const trpcClient = trpc.createClient({\n links: [\n splitLink({\n condition: op => op.type === 'subscription',\n true: httpSubscriptionLink({\n url: '/trpc',\n eventSourceOptions: { withCredentials: true },\n }),\n false: httpBatchLink({\n url: '/trpc',\n fetch: (url, opts) => fetch(url, { ...opts, credentials: 'include' }),\n }),\n }),\n ],\n});\n","import type { BRRoleSetupEntry } from '@/brickadia/types';\nimport { IconCaretDown } from '@tabler/icons-react';\nimport type React from 'react';\nimport { useEffect, useRef, useState, type HTMLAttributes } from 'react';\nimport { trpc } from '../../trpc';\nimport { Loader } from '../loader';\n\nexport const RoleDropdown = ({\n disabled = false,\n value,\n onChange,\n ...props\n}: React.PropsWithChildren<{\n disabled?: boolean;\n value: string;\n onChange: (value: string) => void;\n}> &\n HTMLAttributes<HTMLDivElement>) => {\n const [open, setOpen] = useState(false);\n const [loading, setLoading] = useState(false);\n const [options, setOptions] = useState<string[]>([]);\n const ref = useRef<HTMLDivElement>(null);\n\n const utils = trpc.useUtils();\n\n async function fetchRoles() {\n setLoading(true);\n setOptions([]);\n const roles: BRRoleSetupEntry[] = await utils.role.list.fetch();\n setOptions(roles.map(role => role.name));\n setLoading(false);\n }\n\n // Hide the dropdown when clicking outside of it\n useEffect(() => {\n if (!open) return;\n\n function handler(e: MouseEvent) {\n if (e.target && !ref.current?.contains(e.target as Node)) {\n setOpen(false);\n }\n }\n document.addEventListener('click', handler);\n return () => document.removeEventListener('click', handler);\n }, [open]);\n\n return (\n <div\n className={`role-dropdown ${disabled ? 'disabled' : ''}`}\n ref={ref}\n {...props}\n >\n {open && (\n <div className=\"options\">\n {loading && (\n <div className=\"option search\" style={{ position: 'relative' }}>\n <Loader active size=\"small\" />\n </div>\n )}\n {options.map(o => (\n <div\n key={o}\n onClick={() => {\n onChange(o);\n setOpen(false);\n }}\n className={`option ${value === o ? 'green' : ''}`}\n >\n {o}\n </div>\n ))}\n </div>\n )}\n <div\n className=\"selected\"\n onClick={() => {\n setOpen(o => !o);\n if (!open) fetchRoles();\n }}\n >\n <div className=\"value\">{value}</div>\n <IconCaretDown />\n </div>\n </div>\n );\n};\n","import { IconMinus, IconPlus } from '@tabler/icons-react';\nimport { Button } from '../button';\nimport { Dropdown } from '../dropdown';\nimport { Input } from '../input';\nimport { RoleDropdown } from '../role-dropdown';\n\nexport type ListInputType = 'string' | 'password' | 'number' | 'enum' | 'role';\n\nexport const ListInput = ({\n placeholder = '',\n disabled = false,\n type,\n value = [],\n options = [],\n onChange,\n}: {\n placeholder?: string;\n disabled?: boolean;\n type: ListInputType;\n value: any[];\n options?: any[];\n onChange: (value: any[]) => void;\n}) => {\n const updateItem = (index: number, val: any) => {\n const clone = value.slice();\n clone[index] = val;\n onChange(clone);\n };\n\n const addItem = () => {\n const clone = value.slice();\n clone.push(\n {\n string: '',\n number: 0,\n password: '',\n role: '',\n enum: options && options[0],\n }[type],\n );\n onChange(clone);\n };\n\n const removeItem = (index: number) => {\n const clone = value.slice();\n clone.splice(index, 1);\n onChange(clone);\n };\n\n return (\n <div className={`br-list-input ${disabled ? 'disabled' : ''}`}>\n {(value || []).map((v, i) => (\n <div className=\"br-list-item\" key={i}>\n {(type === 'string' || type === 'password' || type === 'number') && (\n <Input\n value={v}\n onChange={v => updateItem(i, v)}\n placeholder={placeholder}\n type={type === 'string' ? 'text' : type}\n disabled={disabled}\n />\n )}\n {type === 'enum' && (\n <Dropdown\n value={v}\n options={options}\n onChange={val => updateItem(i, val)}\n disabled={disabled}\n />\n )}\n {type === 'role' && (\n <RoleDropdown\n value={v}\n onChange={val => updateItem(i, val)}\n disabled={disabled}\n />\n )}\n <Button\n icon\n warn\n data-tooltip=\"Remove this item from the list\"\n onClick={() => removeItem(i)}\n disabled={disabled}\n >\n <IconMinus />\n </Button>\n </div>\n ))}\n <Button\n icon\n main\n data-tooltip=\"Add an item to the list\"\n onClick={addItem}\n disabled={disabled}\n >\n <IconPlus />\n </Button>\n </div>\n );\n};\n","import type { OmeggaSocketData } from '@backend/api';\nimport { atom } from 'nanostores';\n\nexport const $showLogout = atom(false);\nexport const $user = atom<OmeggaSocketData['user'] | null>(null);\nexport const $roles = atom<OmeggaSocketData['roles']>([]);\nexport const $omeggaData = atom<OmeggaSocketData | null>(null);\n","import { useStore } from '@nanostores/react';\nimport type { HTMLAttributes, PropsWithChildren } from 'react';\nimport { Button } from '../button';\nimport { logout } from '../../utils';\nimport { IconLogout } from '@tabler/icons-react';\nimport { $showLogout, $user } from '../../stores/user';\n\nexport const NavBar = ({\n children,\n attached,\n className,\n}: HTMLAttributes<HTMLDivElement> & { attached?: boolean }) => (\n <div className={`navbar ${attached ? 'attached' : ''} ${className ?? ''}`}>\n {children}\n </div>\n);\n\nexport const NavHeader = ({\n title,\n className,\n children,\n}: PropsWithChildren<{ title: string; className?: string }>) => {\n const user = useStore($user);\n const showLogout = useStore($showLogout);\n\n return (\n <div className={`main-nav ${className ?? ''}`}>\n <header className=\"nav-header\">{title}</header>\n <NavBar>\n <span style={{ flex: 1, marginLeft: 8 }}>\n Welcome, {user?.username ?? '...'}\n </span>\n {children}\n {showLogout && (\n <Button\n icon\n error\n data-tooltip=\"Logout of Web UI\"\n onClick={() => logout()}\n >\n <IconLogout />\n </Button>\n )}\n </NavBar>\n </div>\n );\n};\n","import type React from 'react';\nimport { Background } from '../background';\n\nexport const PageContent = ({ children }: React.PropsWithChildren) => (\n <div className=\"main-content\">{children}</div>\n);\n\nexport const Page = ({\n children,\n loading,\n}: React.PropsWithChildren<{ loading?: boolean }>) => (\n <div>\n <Background />\n <div className=\"content-parent\">\n {!loading && <div className=\"content\">{children}</div>}\n </div>\n </div>\n);\n","import { IconMinus } from '@tabler/icons-react';\nimport { debounce } from '@utils';\nimport type React from 'react';\nimport {\n useEffect,\n useMemo,\n useRef,\n useState,\n type HTMLAttributes,\n} from 'react';\nimport { Link } from 'wouter';\nimport { trpc } from '../../trpc';\nimport { Button } from '../button';\nimport { Input } from '../input';\nimport { Loader } from '../loader';\n\nexport const PlayerDropdown = ({\n disabled = false,\n value,\n placeholder,\n onChange,\n ...props\n}: React.PropsWithChildren<{\n disabled?: boolean;\n placeholder?: string;\n value: { id: string; name: string }[];\n onChange: (value: { id: string; name: string }[]) => void;\n}> &\n HTMLAttributes<HTMLDivElement>) => {\n const [open, setOpen] = useState(false);\n const [loading, setLoading] = useState(false);\n const [options, setOptions] = useState<{ id: string; name: string }[]>([]);\n const [search, setSearch] = useState('');\n const ref = useRef<HTMLDivElement>(null);\n\n const utils = trpc.useUtils();\n\n // Hide the dropdown when clicking outside of it\n useEffect(() => {\n if (!open) return;\n\n function handler(e: MouseEvent) {\n if (e.target && !ref.current?.contains(e.target as Node)) {\n setOpen(false);\n }\n }\n document.addEventListener('click', handler);\n return () => document.removeEventListener('click', handler);\n }, [open]);\n\n function removeItem(i: number) {\n const next = value.slice();\n next.splice(i, 1);\n onChange(next);\n }\n\n function addItem({ id, name }: { id: string; name: string }) {\n onChange([...value, { id, name }]);\n setOpen(false);\n setSearch('');\n }\n\n const searchRef = useRef(search);\n searchRef.current = search;\n const doSearch = useMemo(\n () =>\n debounce(async () => {\n if (searchRef.current.length === 0) {\n setOpen(false);\n setLoading(false);\n setOptions([]);\n return;\n }\n\n setLoading(true);\n setOpen(true);\n const { players } = await utils.player.list.fetch({\n page: 0,\n search: searchRef.current,\n sort: 'lastSeen',\n direction: -1,\n filter: '',\n });\n setOptions(players);\n setLoading(false);\n }, 500),\n [],\n );\n\n return (\n <div className={`br-player-list ${disabled ? 'disabled' : ''}`} {...props}>\n {value.map((v, i) => (\n <div className=\"br-player-item\" key={v.id}>\n <Link\n href={`/players/${v.id}`}\n className=\"selected\"\n data-tooltip=\"Click to navigate to player page\"\n >\n {v.name}\n </Link>\n <Button\n icon\n warn\n data-tooltip=\"Remove this player from the list\"\n onClick={() => removeItem(i)}\n >\n <IconMinus />\n </Button>\n </div>\n ))}\n <div className=\"player-search\" ref={ref}>\n <Input\n type=\"text\"\n placeholder=\"Search Players...\"\n value={search}\n onChange={value => {\n setSearch(value);\n doSearch();\n }}\n />\n {open && (\n <div className=\"options\">\n {loading && (\n <div className=\"option search\" style={{ position: 'relative' }}>\n <Loader active size=\"small\" />\n </div>\n )}\n {options.map(o => (\n <div key={o.id} onClick={() => addItem(o)} className=\"option\">\n {o.name}\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n );\n};\n","import React, { type HTMLAttributes } from 'react';\n\nexport const Scroll = ({\n children,\n className,\n ref,\n ...props\n}: HTMLAttributes<HTMLDivElement> & { ref?: React.Ref<HTMLDivElement> }) => (\n <div className={`scroll-container ${className ?? ''}`} {...props}>\n <div className=\"scroll-scroller\" ref={ref}>\n {children}\n </div>\n </div>\n);\n","import {\n IconDashboard,\n IconList,\n IconMessages,\n IconPlug,\n IconServer,\n IconUser,\n IconWorld,\n} from '@tabler/icons-react';\nimport type React from 'react';\nimport { memo, type AnchorHTMLAttributes } from 'react';\nimport { Link } from 'wouter';\n\nexport const MenuButton = ({\n children,\n disabled,\n to,\n ...props\n}: React.PropsWithChildren<{\n disabled?: boolean;\n to: string;\n}> &\n AnchorHTMLAttributes<HTMLAnchorElement>) => (\n <Link\n href={to}\n className={active =>\n `menu-button ${disabled ? 'disabled' : ''} ${active ? 'active' : ''}`\n }\n {...props}\n >\n <div className=\"menu-button-content\">{children}</div>\n </Link>\n);\n\nexport const SideNav = memo(() => (\n <div className=\"main-menu-buttons\">\n <MenuButton\n to=\"/\"\n data-tooltip=\"Chat with players, view server status. Main Dashboard\"\n >\n <IconDashboard style={{ background: '#de4f43' }} />\n Dashboard\n </MenuButton>\n <MenuButton to=\"/worlds\" data-tooltip=\"Manage worlds\">\n <IconWorld style={{ background: '#f0a500' }} />\n Worlds\n </MenuButton>\n <MenuButton to=\"/history\" data-tooltip=\"Browse chat history\">\n <IconMessages style={{ background: '#008bd6' }} />\n History\n </MenuButton>\n <MenuButton\n to=\"/plugins\"\n data-tooltip=\"Manage, reload, and configure plugins\"\n >\n <IconPlug style={{ background: '#00b35f' }} />\n Plugins\n </MenuButton>\n <MenuButton to=\"/players\" data-tooltip=\"Browse player info and play time\">\n <IconList style={{ background: '#b3006b' }} />\n Players\n </MenuButton>\n <MenuButton to=\"/server\" data-tooltip=\"Server management\">\n <IconServer style={{ background: '#453d9c' }} />\n Server\n </MenuButton>\n <MenuButton to=\"/users\" data-tooltip=\"Server users\">\n <IconUser style={{ background: '#7f0b8a' }} />\n Users\n </MenuButton>\n </div>\n));\n","import { IconSortAscending, IconSortDescending } from '@tabler/icons-react';\n\nexport const SortIcons = ({\n name,\n sort,\n direction,\n}: {\n name: string;\n sort: string;\n direction: number;\n}) =>\n name === sort && (\n <>\n {direction === 1 && <IconSortAscending />}\n {direction === -1 && <IconSortDescending />}\n </>\n );\n","export const Toggle = ({\n disabled = false,\n value,\n onChange,\n tooltip,\n}: {\n disabled?: boolean;\n value: boolean;\n onChange: (v: boolean) => void;\n tooltip?: string;\n}) => (\n <div\n data-tooltip={tooltip}\n className={`toggle ${disabled ? 'disabled' : ''}`}\n onClick={() => onChange(!value)}\n >\n <div className={`toggle-slider ${value ? 'on' : ''}`}>\n <div className=\"symbol\" />\n </div>\n </div>\n);\n"],"names":["encodedTlds","encodedUtlds","numeric","ascii","alpha","asciinumeric","alphanumeric","domain","emoji","scheme","slashscheme","whitespace","registerGroup","name","groups","addToGroups","t","flags","k","group","flagsForToken","result","c","State","token","input","state","nextState","i","regex","exactOnly","inputs","next","regexp","len","templateState","allFlags","ta","tr","ts","tt","WORD","UWORD","ASCIINUMERICAL","ALPHANUMERICAL","LOCALHOST","TLD","UTLD","SCHEME","SLASH_SCHEME","NUM","WS","NL","OPENBRACE","CLOSEBRACE","OPENBRACKET","CLOSEBRACKET","OPENPAREN","CLOSEPAREN","OPENANGLEBRACKET","CLOSEANGLEBRACKET","FULLWIDTHLEFTPAREN","FULLWIDTHRIGHTPAREN","LEFTCORNERBRACKET","RIGHTCORNERBRACKET","LEFTWHITECORNERBRACKET","RIGHTWHITECORNERBRACKET","FULLWIDTHLESSTHAN","FULLWIDTHGREATERTHAN","AMPERSAND","APOSTROPHE","ASTERISK","AT","BACKSLASH","BACKTICK","CARET","COLON","COMMA","DOLLAR","DOT","EQUALS","EXCLAMATION","HYPHEN","PERCENT","PIPE","PLUS","POUND","QUERY","QUOTE","FULLWIDTHMIDDLEDOT","SEMI","SLASH","TILDE","UNDERSCORE","EMOJI$1","SYM","tk","ASCII_LETTER","LETTER","EMOJI","DIGIT","SPACE","CR","LF","EMOJI_VARIATION","EMOJI_JOINER","OBJECT_REPLACEMENT","tlds","utlds","init$2","customSchemes","Start","decodeTlds","Num","Asciinumeric","Alphanumeric","Word","UWord","Nl","Cr","Ws","Emoji","EmojiJoiner","wordjr","uwordjr","fastts","a","b","sch","run$1","start","str","iterable","stringToArray","charCount","tokens","cursor","charCursor","tokenLength","latestAccepting","sinceAccepts","charsSinceAccepts","index","first","second","char","defaultt","jr","encoded","words","stack","digits","popDigitCount","popCount","defaults","noop","Options","opts","defaultRender","o","ignoredTags","uppercaseIgnoredTags","ir","key","operator","isCallable","option","obj","val","MultiToken","value","options","truncate","formatted","protocol","href","formattedHref","tagName","content","attributes","className","target","rel","attrs","eventListeners","createTokenClass","type","props","Token","p","Email","Text","Url","makeState","arg","init$1","qsAccepting","qsNonAccepting","localpartAccepting","Localpart","Domain","Scheme","SlashScheme","LocalpartAt","LocalpartDot","EmailDomain","EmailDomainDot","Email$1","EmailDomainHyphen","EmailColon","DomainHyphen","DomainDot","DomainDotTld","DomainDotTldColon","DomainDotTldColonPort","Url$1","UrlNonaccept","SchemeColon","SlashSchemeColon","SlashSchemeColonSlash","UriPrefix","bracketPairs","OPEN","CLOSE","UrlOpen","UrlOpenQ","UrlOpenSyms","run","multis","textTokens","secondState","multiLength","initMultiToken","Multi","subtokens","startIdx","endIdx","INIT","init","tokenize","stringToElements","meta","elements","React.createElement","rendered","React.cloneElement","linkifyReactElement","element","React.Children","children","child","React.isValidElement","newProps","Linkify","linkId","defaultLinkRender","prop","as","React.Fragment","ChatTime","time","date","hours","pm","minutes","jsxs","UserName","color","user","link","jsx","Link","ChatEntry","log","_match","params","useRoute","isFocused","IconLink","Dropdown","disabled","onChange","open","setOpen","useState","selfRef","useRef","useEffect","handler","e","IconCaretDown","InfiniteScroll","loading","offset","onTopScrollsToBottom","onBottom","onTop","targetRef","prevScrollTopRef","lastDirectionRef","loadingRef","scrollHeightBeforeLoad","skipNextScroll","useLayoutEffect","el","dir","heightDelta","handleElementScroll","useCallback","scrollTop","prevScrollTop","Subscribable","listener","defaultTimeoutProvider","callback","delay","timeoutId","intervalId","TimeoutManager","#provider","#providerCalled","provider","timeoutManager","systemSetTimeoutZero","isServer","functionalUpdate","updater","isValidTimeout","timeUntilStale","updatedAt","staleTime","resolveStaleTime","query","resolveEnabled","enabled","matchQuery","filters","exact","fetchStatus","predicate","queryKey","stale","hashQueryKeyByOptions","partialMatchKey","isActive","matchMutation","mutation","status","mutationKey","hashKey","_","isPlainObject","hasOwn","replaceEqualDeep","depth","array","isPlainArray","aSize","bItems","bSize","copy","equalItems","aItem","bItem","v","shallowEqualObjects","hasObjectPrototype","ctor","prot","sleep","timeout","resolve","replaceData","prevData","data","addToEnd","items","item","max","newItems","addToStart","skipToken","ensureQueryFn","fetchOptions","shouldThrowError","throwOnError","addConsumeAwareSignal","object","getSignal","onCancelled","consumed","signal","FocusManager","#focused","#cleanup","#setup","onFocus","setup","focused","focusManager","pendingThenable","reject","thenable","_resolve","_reject","finalize","reason","defaultScheduler","createNotifyManager","queue","transactions","notifyFn","batchNotifyFn","scheduleFn","schedule","flush","originalQueue","args","fn","notifyManager","OnlineManager","#online","onOnline","onlineListener","offlineListener","online","onlineManager","defaultRetryDelay","failureCount","canFetch","networkMode","CancelledError","createRetryer","config","isRetryCancelled","continueFn","isResolved","cancel","cancelOptions","error","cancelRetry","continueRetry","canContinue","canStart","pause","continueResolve","promiseOrValue","initialPromise","retry","retryDelay","shouldRetry","Removable","#gcTimeout","newGcTime","Query","#initialState","#revertState","#cache","#client","#retryer","#defaultOptions","#abortSignalConsumed","getDefaultState","defaultState","successState","newData","#dispatch","setStateOptions","promise","observer","x","abortController","addSignalProperty","fetchFn","queryFn","queryFnContext","queryFnContext2","context","context2","action","reducer","fetchState","newState","dataUpdatedAt","hasData","initialDataUpdatedAt","QueryObserver","client","#selectError","#currentThenable","#currentQuery","#currentQueryInitialState","#currentResult","#currentResultState","#currentResultOptions","#selectFn","#selectResult","#lastQueryWithDefinedData","#staleTimeoutId","#refetchIntervalId","#currentRefetchInterval","#trackedProps","shouldFetchOnMount","#executeFetch","#updateTimers","shouldFetchOn","#clearStaleTimeout","#clearRefetchInterval","prevOptions","prevQuery","#updateQuery","mounted","shouldFetchOptionally","#updateStaleTimeout","nextRefetchInterval","#computeRefetchInterval","#updateRefetchInterval","shouldAssignObserverCurrentProperties","onPropTracked","defaultedOptions","nextInterval","prevResult","prevResultState","prevResultOptions","queryInitialState","isPlaceholderData","fetchOnMount","fetchOptionally","errorUpdatedAt","skipSelect","placeholderData","selectError","isFetching","isPending","isError","isLoading","nextResult","isStale","hasResultData","isErrorWithoutData","finalizeThenableIfPossible","recreateThenable","pending","prevThenable","shouldNotifyListeners","notifyOnChangeProps","notifyOnChangePropsValue","includedProps","typedKey","#notify","notifyOptions","shouldLoadOnMount","field","optimisticResult","infiniteQueryBehavior","pages","direction","oldPages","oldPageParams","currentPage","cancelled","fetchPage","param","previous","page","maxPages","addTo","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","remainingPages","pageParams","lastIndex","hasNextPage","hasPreviousPage","InfiniteQueryObserver","parentResult","isRefetching","isRefetchError","fetchDirection","isFetchNextPageError","isFetchingNextPage","isFetchPreviousPageError","isFetchingPreviousPage","Mutation","#observers","#mutationCache","variables","onContinue","mutationFnContext","restored","isPaused","MutationCache","#mutations","#scopes","#mutationId","scope","scopeFor","scopedMutations","firstPendingMutation","m","defaultedFilters","event","pausedMutations","MutationObserver","#currentMutation","#mutateOptions","#updateResult","onMutateResult","difference","array1","array2","excludeSet","replaceAt","QueriesObserver","#result","#queries","#options","#combinedResult","#lastCombine","#lastResult","#lastQueryHashes","#observerMatches","queries","#onUpdate","prevObservers","newObserverMatches","#findMatchingObservers","match","newObservers","newResult","hasLengthChange","hasIndexChange","hasStructuralChange","hasResultChange","prev","combine","matches","queryHashes","r","#combineResult","#trackResult","observerResult","accessedProp","lastHashes","queryHashesChanged","hash","prevObserversMap","previousObservers","observers","previousResult","newTracked","QueryCache","queryHash","queryInMap","QueryClient","#queryCache","#queryDefaults","#mutationDefaults","#mountCount","#unsubscribeFocus","#unsubscribeOnline","cachedData","queryCache","defaultedCancelOptions","promises","queryDefault","QueryClientContext","React.createContext","useQueryClient","queryClient","React.useContext","QueryClientProvider","React.useEffect","IsRestoringContext","useIsRestoring","createValue","isReset","QueryErrorResetBoundaryContext","useQueryErrorResetBoundary","ensurePreventErrorBoundaryRetry","errorResetBoundary","useClearResetErrorBoundary","getHasError","suspense","defaultThrowOnError","_error","ensureSuspenseTimers","clamp","originalStaleTime","willFetch","isRestoring","shouldSuspend","fetchOptimistic","useQueries","defaultedQueries","React.useMemo","queryOptions","React.useState","getCombinedResult","trackResult","shouldSubscribe","React.useSyncExternalStore","React.useCallback","onStoreChange","suspensePromises","queryObserver","firstSingleResultWhichShouldThrow","useBaseQuery","Observer","isNewCacheEntry","unsubscribe","useQuery","useSuspenseQuery","useSuspenseInfiniteQuery","useSuspenseQueries","usePrefetchQuery","usePrefetchInfiniteQuery","useMutation","mutate","mutateOptions","useInfiniteQuery","__create","__defProp","__getOwnPropDesc","__getOwnPropNames","__getProtoOf","__hasOwnProp","__commonJS","cb","mod","__copyProps","to","from","except","desc","keys","n","__toESM","isNodeMode","require_typeof","exports","module","_typeof$2","o$1","require_toPrimitive","_typeof$1","toPrimitive$1","require_toPropertyKey","_typeof","toPrimitive","toPropertyKey$1","require_defineProperty","toPropertyKey","_defineProperty","require_objectSpread2","defineProperty","ownKeys","r$1","_objectSpread2","observable","subscribe","self","teardownRef","isDone","unsubscribed","teardownImmediately","_observer$next","err","_observer$error","_observer$complete","operations","pipeReducer","observableToPromise","observable$1","ac","onDone","obs$","share","_opts","source","refCount","subscription","startIfNeeded","resetIfNeeded","_sub","subscriber","behaviorSubject","initialValue","observerList","addObserver","removeObserver","obs","nextValue","createChain","execute","op","nextOp","asArray","splitLink","runtime","yes","no","links","isObject","emptyObject","asyncIteratorsSupported","isAsyncIterable","TRPC_ERROR_CODES_BY_KEY","retryableRpcCodes","freezeIfAvailable","createInnerProxy","path","memo","_memo$cacheKey","cacheKey","_obj","_1","_2","lastOfPath","createRecursiveProxy","createFlatProxy","import_objectSpread2$1","transformResultInner","response","transformer","TransformResultError","transformResult","import_defineProperty","_Symbol$toStringTag","subscribableCache","NOOP","Unpromise","thenReturn","subscribers","settlement","withResolvers","listWithMember","listWithoutMember","onfulfilled","onrejected","subscribed","onfinally","cached","created","values","subscribedPromises","selfPromises","resolveSelfTuple","arr","member","listWithoutIndex","_Symbol","_Symbol$dispose","_Symbol2","_Symbol2$asyncDispose","makeResource","thing","dispose","it","existing","makeAsyncResource","disposablePromiseTimerResult","timerResource","ms","timer","require_usingCtx","_usingCtx","e$1","n$1","using","r$2","s","require_OverloadYield","_OverloadYield","d","require_awaitAsyncGenerator","OverloadYield$2","_awaitAsyncGenerator$5","require_wrapAsyncGenerator","OverloadYield$1","_wrapAsyncGenerator$6","AsyncGenerator","resume","t$1","u","t$2","settle","require_asyncIterator","_asyncIterator$2","AsyncFromSyncIterator","AsyncFromSyncIteratorContinuation","require_asyncGeneratorDelegate","OverloadYield","_asyncGeneratorDelegate$1","pump","import_awaitAsyncGenerator","import_wrapAsyncGenerator$1","import_usingCtx","PING_EVENT","SERIALIZED_ERROR_EVENT","CONNECTED_EVENT","RETURN_EVENT","withTimeout","_usingCtx$1","timeoutPromise","res","sseStreamConsumer","deserialize","clientOptions","_es","createStream","controller","url","eventSource","_msg","msg","def","onAbort","getStreamResource","stream","reader","_usingCtx3","timeoutMs","import_objectSpread2","isTRPCClientError","cause","TRPCClientError","isTRPCErrorResponse","getMessageFromUnknownError","fallback","message","_opts$result","_opts$result2","_cause","getTransformer","_transformer","isFunction","getFetch","customFetchImpl","resolveHTTPLinkOptions","arrayToDict","dict","METHOD","getInput","_input","getUrl","parts","queryParts","getBody","jsonHttpRequester","httpRequest","AbortError","throwIfAborted","_signal$throwIfAborte","fetchHTTPResponse","_opts$methodOverride","body","method","resolvedHeaders","heads","headers","json","throwFatalError","dataLoader","batchLoader","pendingItems","dispatchTimer","destroyTimerAndPendingItems","groupItems","groupedItems","lastGroup","_item$reject","_item$reject2","dispatch","batch","_item","valueOrPromise","_item$resolve","_item$reject3","_item$reject4","_item$reject5","load","_dispatchTimer","_pendingItems","allAbortSignals","signals","count","abortedCount","raceAbortSignals","httpBatchLink","_opts$maxURLLength","_opts$maxItems","resolvedOpts","maxURLLength","maxItems","batchOps","loaders","_res","transformed","resultOf","rej","prepareUrl","urlOptions","connectionParams","buildConnectionMessage","encoder","import_defineProperty$1","asyncWsOpen","ws","setupPingInterval","intervalMs","pongTimeoutMs","pingTimeout","pongTimeout","reset","pong","WsConnection","_opts$WebSocketPonyfi","_this","wsPromise","_this2","_this$ws","import_objectSpread2$4","TRPCUntypedClient","_opts$context","req$","envelope","_opts$onConnectionSta","_opts$onStarted","_opts$onStopped","_opts$onData","_opts$onError","_opts$onComplete","untypedClientSymbol","clientCallTypeMap","clientCallTypeToProcedureType","clientCallType","createTRPCClientProxy","proxy","pathCopy","procedureType","fullPath","createTRPCClient","getUntypedClient","import_objectSpread2$2","inputWithTrackedEventId","lastEventId","_asyncIterator$1","import_asyncIterator","urlWithConnectionParams","prefix","httpSubscriptionLink","_opts$EventSource","eventSourceStream","connectionState","connectionSub","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","chunk","chunkData","lastState","_awaitAsyncGenerator$1","_wrapAsyncGenerator$1","require_objectWithoutPropertiesLoose","_objectWithoutPropertiesLoose","require_objectWithoutProperties","objectWithoutPropertiesLoose","_objectWithoutProperties$1","import_objectWithoutProperties","_excluded","getQueryKeyInternal","splitPath","part","__","inputWithoutCursorAndDirection","getMutationKeyInternal","createReactDecoration","hooks","_rest$","lastArg","rest","_React$createContext","contextProps","TRPCContext","React$2.createContext","React$2","getQueryType","utilName","createRecursiveUtilsProxy","queryType","createReactQueryUtils","clientProxy","contextName","import_objectSpread2$3","createUseQueries","untypedClient","arrayPath","dotPath","getClientArgs","infiniteParams","_queryKey$","createTRPCOptionsResult","useHookResult","React$1.useMemo","buildQueryFromAsyncIterable","asyncIterable","aggregate","createUtilityFunctions","opts$1","_ref","inputIsSkipToken","_opts$trpc","actualOpts","_queryKey$2","_opts$trpc2","_opts$initialCursor","pageParam","_opts$initialCursor2","canonicalMutationFn","onTrackResult","createRootHooks","_config$overrides$use","_config$context","mutationSuccessOverride","Context","createClient","TRPCProvider","_props$ssrState","abortOnUnmount","ssrContext","ssrState","setSSRState","fns","contextValue","useContext","useSSRQueryOptionsIfNeeded","_queryClient$getQuery","useQuery$1","_opts$enabled","_opts$trpc$abortOnUnm","prefetchQuery","defaultOpts","isInputSkipToken","ssrOpts","shouldAbortOnUnmount","hook","queryFunctionContext","usePrefetchQuery$1","_ref2","_opts$trpc$abortOnUnm2","_opts$trpc3","useSuspenseQuery$1","_ref3","_opts$trpc$abortOnUnm3","_opts$trpc4","useMutation$1","_ref4","_opts$meta","_opts$onSuccess","_opts$onSuccess2","_defaultOpts$onSucces","initialStateIdle","initialStateConnecting","useSubscription","_opts$enabled2","optsRef","React.useRef","trackedProps","addTrackedProp","currentSubscriptionRef","updateState","resultRef","shouldUpdate","setState","_currentSubscriptionR","_optsRef$current$onSt","_optsRef$current","_optsRef$current$onDa","_optsRef$current2","_optsRef$current$onEr","_optsRef$current3","_optsRef$current$onCo","_optsRef$current4","_currentSubscriptionR2","useInfiniteQuery$1","_opts$trpc5","_opts$enabled3","_opts$trpc$abortOnUnm4","_opts$trpc6","prefetchInfiniteQuery","_queryFunctionContext","usePrefetchInfiniteQuery$1","_opts$trpc$abortOnUnm5","_opts$trpc7","_queryFunctionContext2","useSuspenseInfiniteQuery$1","_opts$trpc$abortOnUnm6","_opts$trpc8","_opts$initialCursor3","_queryFunctionContext3","queriesCallback","_queryOption$trpc","queryOption","h","createHooksInternal","trpc","createTRPCReact","trpcClient","RoleDropdown","setLoading","setOptions","ref","utils","fetchRoles","roles","role","Loader","ListInput","placeholder","updateItem","clone","addItem","removeItem","Input","Button","IconMinus","IconPlus","$showLogout","atom","$user","$roles","$omeggaData","NavBar","attached","NavHeader","title","useStore","showLogout","logout","IconLogout","PageContent","Page","Background","PlayerDropdown","search","setSearch","id","searchRef","doSearch","useMemo","debounce","players","Scroll","MenuButton","active","SideNav","IconDashboard","IconWorld","IconMessages","IconPlug","IconList","IconServer","IconUser","SortIcons","sort","Fragment","IconSortAscending","IconSortDescending","Toggle","tooltip"],"mappings":"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","x_google_ignoreList":[0,1,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58]}
|