{"version":3,"file":"cell.cjs","sources":["../../../../../../../../../src/mods/tor/binary/cells/direct/netinfo/cell.ts"],"sourcesContent":["import { Cursor } from \"@hazae41/cursor\";\nimport { TypedAddress } from \"mods/tor/binary/address.js\";\n\nexport class NetinfoCell {\n  readonly #class = NetinfoCell\n\n  static readonly old = false\n  static readonly circuit = false\n  static readonly command = 8\n\n  constructor(\n    readonly time: number,\n    readonly other: TypedAddress,\n    readonly owneds: TypedAddress[]\n  ) { }\n\n  get old(): false {\n    return this.#class.old\n  }\n\n  get circuit(): false {\n    return this.#class.circuit\n  }\n\n  get command() {\n    return this.#class.command\n  }\n\n  sizeOrThrow() {\n    return 0\n      + 4\n      + this.other.sizeOrThrow()\n      + 1\n      + this.owneds.reduce((p, c) => p + c.sizeOrThrow(), 0)\n  }\n\n  writeOrThrow(cursor: Cursor) {\n    cursor.writeUint32OrThrow(this.time)\n    this.other.writeOrThrow(cursor)\n    cursor.writeUint8OrThrow(this.owneds.length)\n\n    for (const owned of this.owneds)\n      owned.writeOrThrow(cursor)\n\n    return\n  }\n\n  static readOrThrow(cursor: Cursor) {\n    const time = cursor.readUint32OrThrow()\n    const other = TypedAddress.readOrThrow(cursor)\n\n    const owneds = new Array<TypedAddress>(cursor.readUint8OrThrow())\n\n    for (let i = 0; i < owneds.length; i++)\n      owneds[i] = TypedAddress.readOrThrow(cursor)\n\n    cursor.offset += cursor.remaining\n\n    return new NetinfoCell(time, other, owneds)\n  }\n\n}"],"names":["TypedAddress"],"mappings":";;;;;MAGa,WAAW,CAAA;AAQX,IAAA,IAAA,CAAA;AACA,IAAA,KAAA,CAAA;AACA,IAAA,MAAA,CAAA;IATF,MAAM,GAAG,EAAW,CAAA;AAE7B,IAAA,OAAgB,GAAG,GAAG,KAAK,CAAA;AAC3B,IAAA,OAAgB,OAAO,GAAG,KAAK,CAAA;AAC/B,IAAA,OAAgB,OAAO,GAAG,CAAC,CAAA;AAE3B,IAAA,WAAA,CACW,IAAY,EACZ,KAAmB,EACnB,MAAsB,EAAA;QAFtB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QACZ,IAAK,CAAA,KAAA,GAAL,KAAK,CAAc;QACnB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAgB;KAC5B;AAEL,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAA;KACvB;AAED,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;KAC3B;AAED,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;KAC3B;IAED,WAAW,GAAA;AACT,QAAA,OAAO,CAAC;cACJ,CAAC;AACD,cAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;cACxB,CAAC;cACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAA;KACzD;AAED,IAAA,YAAY,CAAC,MAAc,EAAA;AACzB,QAAA,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACpC,QAAA,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QAC/B,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAE5C,QAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM;AAC7B,YAAA,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QAE5B,OAAM;KACP;IAED,OAAO,WAAW,CAAC,MAAc,EAAA;AAC/B,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAA;QACvC,MAAM,KAAK,GAAGA,oBAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QAE9C,MAAM,MAAM,GAAG,IAAI,KAAK,CAAe,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAA;AAEjE,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE;YACpC,MAAM,CAAC,CAAC,CAAC,GAAGA,oBAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;AAE9C,QAAA,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,CAAA;QAEjC,OAAO,IAAI,EAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;KAC5C;;;;;;"}