{"version":3,"file":"snowflake.mjs","sources":["../../../../../src/mods/snowflake/snowflake.ts"],"sourcesContent":["import { Opaque, Writable } from \"@hazae41/binary\"\nimport { KcpDuplex } from \"@hazae41/kcp\"\nimport { SmuxDuplex } from \"@hazae41/smux\"\nimport { TurboDuplex } from \"mods/snowflake/turbo/stream.js\"\n\nexport function createSnowflakeStream(raw: { outer: ReadableWritablePair<Opaque, Writable> }): { outer: ReadableWritablePair<Opaque, Writable> } {\n  const turbo = new TurboDuplex()\n  const kcp = new KcpDuplex({ lowDelay: 100, highDelay: 1000 })\n  const smux = new SmuxDuplex()\n\n  raw.outer.readable.pipeTo(turbo.inner.writable).catch(() => { })\n  turbo.inner.readable.pipeTo(raw.outer.writable).catch(() => { })\n\n  turbo.outer.readable.pipeTo(kcp.inner.writable).catch(() => { })\n  kcp.inner.readable.pipeTo(turbo.outer.writable).catch(() => { })\n\n  kcp.outer.readable.pipeTo(smux.inner.writable).catch(() => { })\n  smux.inner.readable.pipeTo(kcp.outer.writable).catch(() => { })\n\n  return smux\n}\n"],"names":[],"mappings":";;;;AAKM,SAAU,qBAAqB,CAAC,GAAsD,EAAA;AAC1F,IAAA,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAA;AAC/B,IAAA,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;AAC7D,IAAA,MAAM,IAAI,GAAG,IAAI,UAAU,EAAE,CAAA;IAE7B,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAK,GAAI,CAAC,CAAA;IAChE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAK,GAAI,CAAC,CAAA;IAEhE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAK,GAAI,CAAC,CAAA;IAChE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAK,GAAI,CAAC,CAAA;IAEhE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAK,GAAI,CAAC,CAAA;IAC/D,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAK,GAAI,CAAC,CAAA;AAE/D,IAAA,OAAO,IAAI,CAAA;AACb;;;;"}