rendezvous.ts 68 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026
  1. /* eslint-disable */
  2. import _m0 from "protobufjs/minimal";
  3. export const protobufPackage = "hbb";
  4. export enum ConnType {
  5. DEFAULT_CONN = 0,
  6. FILE_TRANSFER = 1,
  7. PORT_FORWARD = 2,
  8. RDP = 3,
  9. UNRECOGNIZED = -1,
  10. }
  11. export function connTypeFromJSON(object: any): ConnType {
  12. switch (object) {
  13. case 0:
  14. case "DEFAULT_CONN":
  15. return ConnType.DEFAULT_CONN;
  16. case 1:
  17. case "FILE_TRANSFER":
  18. return ConnType.FILE_TRANSFER;
  19. case 2:
  20. case "PORT_FORWARD":
  21. return ConnType.PORT_FORWARD;
  22. case 3:
  23. case "RDP":
  24. return ConnType.RDP;
  25. case -1:
  26. case "UNRECOGNIZED":
  27. default:
  28. return ConnType.UNRECOGNIZED;
  29. }
  30. }
  31. export function connTypeToJSON(object: ConnType): string {
  32. switch (object) {
  33. case ConnType.DEFAULT_CONN:
  34. return "DEFAULT_CONN";
  35. case ConnType.FILE_TRANSFER:
  36. return "FILE_TRANSFER";
  37. case ConnType.PORT_FORWARD:
  38. return "PORT_FORWARD";
  39. case ConnType.RDP:
  40. return "RDP";
  41. case ConnType.UNRECOGNIZED:
  42. default:
  43. return "UNRECOGNIZED";
  44. }
  45. }
  46. export enum NatType {
  47. UNKNOWN_NAT = 0,
  48. ASYMMETRIC = 1,
  49. SYMMETRIC = 2,
  50. UNRECOGNIZED = -1,
  51. }
  52. export function natTypeFromJSON(object: any): NatType {
  53. switch (object) {
  54. case 0:
  55. case "UNKNOWN_NAT":
  56. return NatType.UNKNOWN_NAT;
  57. case 1:
  58. case "ASYMMETRIC":
  59. return NatType.ASYMMETRIC;
  60. case 2:
  61. case "SYMMETRIC":
  62. return NatType.SYMMETRIC;
  63. case -1:
  64. case "UNRECOGNIZED":
  65. default:
  66. return NatType.UNRECOGNIZED;
  67. }
  68. }
  69. export function natTypeToJSON(object: NatType): string {
  70. switch (object) {
  71. case NatType.UNKNOWN_NAT:
  72. return "UNKNOWN_NAT";
  73. case NatType.ASYMMETRIC:
  74. return "ASYMMETRIC";
  75. case NatType.SYMMETRIC:
  76. return "SYMMETRIC";
  77. case NatType.UNRECOGNIZED:
  78. default:
  79. return "UNRECOGNIZED";
  80. }
  81. }
  82. export interface RegisterPeer {
  83. id: string;
  84. serial: number;
  85. }
  86. export interface RegisterPeerResponse {
  87. request_pk: boolean;
  88. }
  89. export interface PunchHoleRequest {
  90. id: string;
  91. nat_type: NatType;
  92. licence_key: string;
  93. conn_type: ConnType;
  94. token: string;
  95. }
  96. export interface PunchHole {
  97. socket_addr: Uint8Array;
  98. relay_server: string;
  99. nat_type: NatType;
  100. }
  101. export interface TestNatRequest {
  102. serial: number;
  103. }
  104. /** per my test, uint/int has no difference in encoding, int not good for negative, use sint for negative */
  105. export interface TestNatResponse {
  106. port: number;
  107. /** for mobile */
  108. cu: ConfigUpdate | undefined;
  109. }
  110. export interface PunchHoleSent {
  111. socket_addr: Uint8Array;
  112. id: string;
  113. relay_server: string;
  114. nat_type: NatType;
  115. version: string;
  116. }
  117. export interface RegisterPk {
  118. id: string;
  119. uuid: Uint8Array;
  120. pk: Uint8Array;
  121. old_id: string;
  122. }
  123. export interface RegisterPkResponse {
  124. result: RegisterPkResponse_Result;
  125. }
  126. export enum RegisterPkResponse_Result {
  127. OK = 0,
  128. UUID_MISMATCH = 2,
  129. ID_EXISTS = 3,
  130. TOO_FREQUENT = 4,
  131. INVALID_ID_FORMAT = 5,
  132. NOT_SUPPORT = 6,
  133. SERVER_ERROR = 7,
  134. UNRECOGNIZED = -1,
  135. }
  136. export function registerPkResponse_ResultFromJSON(object: any): RegisterPkResponse_Result {
  137. switch (object) {
  138. case 0:
  139. case "OK":
  140. return RegisterPkResponse_Result.OK;
  141. case 2:
  142. case "UUID_MISMATCH":
  143. return RegisterPkResponse_Result.UUID_MISMATCH;
  144. case 3:
  145. case "ID_EXISTS":
  146. return RegisterPkResponse_Result.ID_EXISTS;
  147. case 4:
  148. case "TOO_FREQUENT":
  149. return RegisterPkResponse_Result.TOO_FREQUENT;
  150. case 5:
  151. case "INVALID_ID_FORMAT":
  152. return RegisterPkResponse_Result.INVALID_ID_FORMAT;
  153. case 6:
  154. case "NOT_SUPPORT":
  155. return RegisterPkResponse_Result.NOT_SUPPORT;
  156. case 7:
  157. case "SERVER_ERROR":
  158. return RegisterPkResponse_Result.SERVER_ERROR;
  159. case -1:
  160. case "UNRECOGNIZED":
  161. default:
  162. return RegisterPkResponse_Result.UNRECOGNIZED;
  163. }
  164. }
  165. export function registerPkResponse_ResultToJSON(object: RegisterPkResponse_Result): string {
  166. switch (object) {
  167. case RegisterPkResponse_Result.OK:
  168. return "OK";
  169. case RegisterPkResponse_Result.UUID_MISMATCH:
  170. return "UUID_MISMATCH";
  171. case RegisterPkResponse_Result.ID_EXISTS:
  172. return "ID_EXISTS";
  173. case RegisterPkResponse_Result.TOO_FREQUENT:
  174. return "TOO_FREQUENT";
  175. case RegisterPkResponse_Result.INVALID_ID_FORMAT:
  176. return "INVALID_ID_FORMAT";
  177. case RegisterPkResponse_Result.NOT_SUPPORT:
  178. return "NOT_SUPPORT";
  179. case RegisterPkResponse_Result.SERVER_ERROR:
  180. return "SERVER_ERROR";
  181. case RegisterPkResponse_Result.UNRECOGNIZED:
  182. default:
  183. return "UNRECOGNIZED";
  184. }
  185. }
  186. export interface PunchHoleResponse {
  187. socket_addr: Uint8Array;
  188. pk: Uint8Array;
  189. failure: PunchHoleResponse_Failure;
  190. relay_server: string;
  191. nat_type?: NatType | undefined;
  192. is_local?: boolean | undefined;
  193. other_failure: string;
  194. }
  195. export enum PunchHoleResponse_Failure {
  196. ID_NOT_EXIST = 0,
  197. OFFLINE = 2,
  198. LICENSE_MISMATCH = 3,
  199. LICENSE_OVERUSE = 4,
  200. UNRECOGNIZED = -1,
  201. }
  202. export function punchHoleResponse_FailureFromJSON(object: any): PunchHoleResponse_Failure {
  203. switch (object) {
  204. case 0:
  205. case "ID_NOT_EXIST":
  206. return PunchHoleResponse_Failure.ID_NOT_EXIST;
  207. case 2:
  208. case "OFFLINE":
  209. return PunchHoleResponse_Failure.OFFLINE;
  210. case 3:
  211. case "LICENSE_MISMATCH":
  212. return PunchHoleResponse_Failure.LICENSE_MISMATCH;
  213. case 4:
  214. case "LICENSE_OVERUSE":
  215. return PunchHoleResponse_Failure.LICENSE_OVERUSE;
  216. case -1:
  217. case "UNRECOGNIZED":
  218. default:
  219. return PunchHoleResponse_Failure.UNRECOGNIZED;
  220. }
  221. }
  222. export function punchHoleResponse_FailureToJSON(object: PunchHoleResponse_Failure): string {
  223. switch (object) {
  224. case PunchHoleResponse_Failure.ID_NOT_EXIST:
  225. return "ID_NOT_EXIST";
  226. case PunchHoleResponse_Failure.OFFLINE:
  227. return "OFFLINE";
  228. case PunchHoleResponse_Failure.LICENSE_MISMATCH:
  229. return "LICENSE_MISMATCH";
  230. case PunchHoleResponse_Failure.LICENSE_OVERUSE:
  231. return "LICENSE_OVERUSE";
  232. case PunchHoleResponse_Failure.UNRECOGNIZED:
  233. default:
  234. return "UNRECOGNIZED";
  235. }
  236. }
  237. export interface ConfigUpdate {
  238. serial: number;
  239. rendezvous_servers: string[];
  240. }
  241. export interface RequestRelay {
  242. id: string;
  243. uuid: string;
  244. socket_addr: Uint8Array;
  245. relay_server: string;
  246. secure: boolean;
  247. licence_key: string;
  248. conn_type: ConnType;
  249. token: string;
  250. }
  251. export interface RelayResponse {
  252. socket_addr: Uint8Array;
  253. uuid: string;
  254. relay_server: string;
  255. id?: string | undefined;
  256. pk?: Uint8Array | undefined;
  257. refuse_reason: string;
  258. version: string;
  259. }
  260. export interface SoftwareUpdate {
  261. url: string;
  262. }
  263. /**
  264. * if in same intranet, punch hole won't work both for udp and tcp,
  265. * even some router has below connection error if we connect itself,
  266. * { kind: Other, error: "could not resolve to any address" },
  267. * so we request local address to connect.
  268. */
  269. export interface FetchLocalAddr {
  270. socket_addr: Uint8Array;
  271. relay_server: string;
  272. }
  273. export interface LocalAddr {
  274. socket_addr: Uint8Array;
  275. local_addr: Uint8Array;
  276. relay_server: string;
  277. id: string;
  278. version: string;
  279. }
  280. export interface PeerDiscovery {
  281. cmd: string;
  282. mac: string;
  283. id: string;
  284. username: string;
  285. hostname: string;
  286. platform: string;
  287. misc: string;
  288. }
  289. export interface RendezvousMessage {
  290. register_peer?: RegisterPeer | undefined;
  291. register_peer_response?: RegisterPeerResponse | undefined;
  292. punch_hole_request?: PunchHoleRequest | undefined;
  293. punch_hole?: PunchHole | undefined;
  294. punch_hole_sent?: PunchHoleSent | undefined;
  295. punch_hole_response?: PunchHoleResponse | undefined;
  296. fetch_local_addr?: FetchLocalAddr | undefined;
  297. local_addr?: LocalAddr | undefined;
  298. configure_update?: ConfigUpdate | undefined;
  299. register_pk?: RegisterPk | undefined;
  300. register_pk_response?: RegisterPkResponse | undefined;
  301. software_update?: SoftwareUpdate | undefined;
  302. request_relay?: RequestRelay | undefined;
  303. relay_response?: RelayResponse | undefined;
  304. test_nat_request?: TestNatRequest | undefined;
  305. test_nat_response?: TestNatResponse | undefined;
  306. peer_discovery?: PeerDiscovery | undefined;
  307. }
  308. function createBaseRegisterPeer(): RegisterPeer {
  309. return { id: "", serial: 0 };
  310. }
  311. export const RegisterPeer = {
  312. encode(message: RegisterPeer, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
  313. if (message.id !== "") {
  314. writer.uint32(10).string(message.id);
  315. }
  316. if (message.serial !== 0) {
  317. writer.uint32(16).int32(message.serial);
  318. }
  319. return writer;
  320. },
  321. decode(input: _m0.Reader | Uint8Array, length?: number): RegisterPeer {
  322. const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
  323. let end = length === undefined ? reader.len : reader.pos + length;
  324. const message = createBaseRegisterPeer();
  325. while (reader.pos < end) {
  326. const tag = reader.uint32();
  327. switch (tag >>> 3) {
  328. case 1:
  329. message.id = reader.string();
  330. break;
  331. case 2:
  332. message.serial = reader.int32();
  333. break;
  334. default:
  335. reader.skipType(tag & 7);
  336. break;
  337. }
  338. }
  339. return message;
  340. },
  341. fromJSON(object: any): RegisterPeer {
  342. return { id: isSet(object.id) ? String(object.id) : "", serial: isSet(object.serial) ? Number(object.serial) : 0 };
  343. },
  344. toJSON(message: RegisterPeer): unknown {
  345. const obj: any = {};
  346. message.id !== undefined && (obj.id = message.id);
  347. message.serial !== undefined && (obj.serial = Math.round(message.serial));
  348. return obj;
  349. },
  350. create<I extends Exact<DeepPartial<RegisterPeer>, I>>(base?: I): RegisterPeer {
  351. return RegisterPeer.fromPartial(base ?? {});
  352. },
  353. fromPartial<I extends Exact<DeepPartial<RegisterPeer>, I>>(object: I): RegisterPeer {
  354. const message = createBaseRegisterPeer();
  355. message.id = object.id ?? "";
  356. message.serial = object.serial ?? 0;
  357. return message;
  358. },
  359. };
  360. function createBaseRegisterPeerResponse(): RegisterPeerResponse {
  361. return { request_pk: false };
  362. }
  363. export const RegisterPeerResponse = {
  364. encode(message: RegisterPeerResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
  365. if (message.request_pk === true) {
  366. writer.uint32(16).bool(message.request_pk);
  367. }
  368. return writer;
  369. },
  370. decode(input: _m0.Reader | Uint8Array, length?: number): RegisterPeerResponse {
  371. const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
  372. let end = length === undefined ? reader.len : reader.pos + length;
  373. const message = createBaseRegisterPeerResponse();
  374. while (reader.pos < end) {
  375. const tag = reader.uint32();
  376. switch (tag >>> 3) {
  377. case 2:
  378. message.request_pk = reader.bool();
  379. break;
  380. default:
  381. reader.skipType(tag & 7);
  382. break;
  383. }
  384. }
  385. return message;
  386. },
  387. fromJSON(object: any): RegisterPeerResponse {
  388. return { request_pk: isSet(object.request_pk) ? Boolean(object.request_pk) : false };
  389. },
  390. toJSON(message: RegisterPeerResponse): unknown {
  391. const obj: any = {};
  392. message.request_pk !== undefined && (obj.request_pk = message.request_pk);
  393. return obj;
  394. },
  395. create<I extends Exact<DeepPartial<RegisterPeerResponse>, I>>(base?: I): RegisterPeerResponse {
  396. return RegisterPeerResponse.fromPartial(base ?? {});
  397. },
  398. fromPartial<I extends Exact<DeepPartial<RegisterPeerResponse>, I>>(object: I): RegisterPeerResponse {
  399. const message = createBaseRegisterPeerResponse();
  400. message.request_pk = object.request_pk ?? false;
  401. return message;
  402. },
  403. };
  404. function createBasePunchHoleRequest(): PunchHoleRequest {
  405. return { id: "", nat_type: 0, licence_key: "", conn_type: 0, token: "" };
  406. }
  407. export const PunchHoleRequest = {
  408. encode(message: PunchHoleRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
  409. if (message.id !== "") {
  410. writer.uint32(10).string(message.id);
  411. }
  412. if (message.nat_type !== 0) {
  413. writer.uint32(16).int32(message.nat_type);
  414. }
  415. if (message.licence_key !== "") {
  416. writer.uint32(26).string(message.licence_key);
  417. }
  418. if (message.conn_type !== 0) {
  419. writer.uint32(32).int32(message.conn_type);
  420. }
  421. if (message.token !== "") {
  422. writer.uint32(42).string(message.token);
  423. }
  424. return writer;
  425. },
  426. decode(input: _m0.Reader | Uint8Array, length?: number): PunchHoleRequest {
  427. const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
  428. let end = length === undefined ? reader.len : reader.pos + length;
  429. const message = createBasePunchHoleRequest();
  430. while (reader.pos < end) {
  431. const tag = reader.uint32();
  432. switch (tag >>> 3) {
  433. case 1:
  434. message.id = reader.string();
  435. break;
  436. case 2:
  437. message.nat_type = reader.int32() as any;
  438. break;
  439. case 3:
  440. message.licence_key = reader.string();
  441. break;
  442. case 4:
  443. message.conn_type = reader.int32() as any;
  444. break;
  445. case 5:
  446. message.token = reader.string();
  447. break;
  448. default:
  449. reader.skipType(tag & 7);
  450. break;
  451. }
  452. }
  453. return message;
  454. },
  455. fromJSON(object: any): PunchHoleRequest {
  456. return {
  457. id: isSet(object.id) ? String(object.id) : "",
  458. nat_type: isSet(object.nat_type) ? natTypeFromJSON(object.nat_type) : 0,
  459. licence_key: isSet(object.licence_key) ? String(object.licence_key) : "",
  460. conn_type: isSet(object.conn_type) ? connTypeFromJSON(object.conn_type) : 0,
  461. token: isSet(object.token) ? String(object.token) : "",
  462. };
  463. },
  464. toJSON(message: PunchHoleRequest): unknown {
  465. const obj: any = {};
  466. message.id !== undefined && (obj.id = message.id);
  467. message.nat_type !== undefined && (obj.nat_type = natTypeToJSON(message.nat_type));
  468. message.licence_key !== undefined && (obj.licence_key = message.licence_key);
  469. message.conn_type !== undefined && (obj.conn_type = connTypeToJSON(message.conn_type));
  470. message.token !== undefined && (obj.token = message.token);
  471. return obj;
  472. },
  473. create<I extends Exact<DeepPartial<PunchHoleRequest>, I>>(base?: I): PunchHoleRequest {
  474. return PunchHoleRequest.fromPartial(base ?? {});
  475. },
  476. fromPartial<I extends Exact<DeepPartial<PunchHoleRequest>, I>>(object: I): PunchHoleRequest {
  477. const message = createBasePunchHoleRequest();
  478. message.id = object.id ?? "";
  479. message.nat_type = object.nat_type ?? 0;
  480. message.licence_key = object.licence_key ?? "";
  481. message.conn_type = object.conn_type ?? 0;
  482. message.token = object.token ?? "";
  483. return message;
  484. },
  485. };
  486. function createBasePunchHole(): PunchHole {
  487. return { socket_addr: new Uint8Array(), relay_server: "", nat_type: 0 };
  488. }
  489. export const PunchHole = {
  490. encode(message: PunchHole, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
  491. if (message.socket_addr.length !== 0) {
  492. writer.uint32(10).bytes(message.socket_addr);
  493. }
  494. if (message.relay_server !== "") {
  495. writer.uint32(18).string(message.relay_server);
  496. }
  497. if (message.nat_type !== 0) {
  498. writer.uint32(24).int32(message.nat_type);
  499. }
  500. return writer;
  501. },
  502. decode(input: _m0.Reader | Uint8Array, length?: number): PunchHole {
  503. const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
  504. let end = length === undefined ? reader.len : reader.pos + length;
  505. const message = createBasePunchHole();
  506. while (reader.pos < end) {
  507. const tag = reader.uint32();
  508. switch (tag >>> 3) {
  509. case 1:
  510. message.socket_addr = reader.bytes();
  511. break;
  512. case 2:
  513. message.relay_server = reader.string();
  514. break;
  515. case 3:
  516. message.nat_type = reader.int32() as any;
  517. break;
  518. default:
  519. reader.skipType(tag & 7);
  520. break;
  521. }
  522. }
  523. return message;
  524. },
  525. fromJSON(object: any): PunchHole {
  526. return {
  527. socket_addr: isSet(object.socket_addr) ? bytesFromBase64(object.socket_addr) : new Uint8Array(),
  528. relay_server: isSet(object.relay_server) ? String(object.relay_server) : "",
  529. nat_type: isSet(object.nat_type) ? natTypeFromJSON(object.nat_type) : 0,
  530. };
  531. },
  532. toJSON(message: PunchHole): unknown {
  533. const obj: any = {};
  534. message.socket_addr !== undefined &&
  535. (obj.socket_addr = base64FromBytes(message.socket_addr !== undefined ? message.socket_addr : new Uint8Array()));
  536. message.relay_server !== undefined && (obj.relay_server = message.relay_server);
  537. message.nat_type !== undefined && (obj.nat_type = natTypeToJSON(message.nat_type));
  538. return obj;
  539. },
  540. create<I extends Exact<DeepPartial<PunchHole>, I>>(base?: I): PunchHole {
  541. return PunchHole.fromPartial(base ?? {});
  542. },
  543. fromPartial<I extends Exact<DeepPartial<PunchHole>, I>>(object: I): PunchHole {
  544. const message = createBasePunchHole();
  545. message.socket_addr = object.socket_addr ?? new Uint8Array();
  546. message.relay_server = object.relay_server ?? "";
  547. message.nat_type = object.nat_type ?? 0;
  548. return message;
  549. },
  550. };
  551. function createBaseTestNatRequest(): TestNatRequest {
  552. return { serial: 0 };
  553. }
  554. export const TestNatRequest = {
  555. encode(message: TestNatRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
  556. if (message.serial !== 0) {
  557. writer.uint32(8).int32(message.serial);
  558. }
  559. return writer;
  560. },
  561. decode(input: _m0.Reader | Uint8Array, length?: number): TestNatRequest {
  562. const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
  563. let end = length === undefined ? reader.len : reader.pos + length;
  564. const message = createBaseTestNatRequest();
  565. while (reader.pos < end) {
  566. const tag = reader.uint32();
  567. switch (tag >>> 3) {
  568. case 1:
  569. message.serial = reader.int32();
  570. break;
  571. default:
  572. reader.skipType(tag & 7);
  573. break;
  574. }
  575. }
  576. return message;
  577. },
  578. fromJSON(object: any): TestNatRequest {
  579. return { serial: isSet(object.serial) ? Number(object.serial) : 0 };
  580. },
  581. toJSON(message: TestNatRequest): unknown {
  582. const obj: any = {};
  583. message.serial !== undefined && (obj.serial = Math.round(message.serial));
  584. return obj;
  585. },
  586. create<I extends Exact<DeepPartial<TestNatRequest>, I>>(base?: I): TestNatRequest {
  587. return TestNatRequest.fromPartial(base ?? {});
  588. },
  589. fromPartial<I extends Exact<DeepPartial<TestNatRequest>, I>>(object: I): TestNatRequest {
  590. const message = createBaseTestNatRequest();
  591. message.serial = object.serial ?? 0;
  592. return message;
  593. },
  594. };
  595. function createBaseTestNatResponse(): TestNatResponse {
  596. return { port: 0, cu: undefined };
  597. }
  598. export const TestNatResponse = {
  599. encode(message: TestNatResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
  600. if (message.port !== 0) {
  601. writer.uint32(8).int32(message.port);
  602. }
  603. if (message.cu !== undefined) {
  604. ConfigUpdate.encode(message.cu, writer.uint32(18).fork()).ldelim();
  605. }
  606. return writer;
  607. },
  608. decode(input: _m0.Reader | Uint8Array, length?: number): TestNatResponse {
  609. const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
  610. let end = length === undefined ? reader.len : reader.pos + length;
  611. const message = createBaseTestNatResponse();
  612. while (reader.pos < end) {
  613. const tag = reader.uint32();
  614. switch (tag >>> 3) {
  615. case 1:
  616. message.port = reader.int32();
  617. break;
  618. case 2:
  619. message.cu = ConfigUpdate.decode(reader, reader.uint32());
  620. break;
  621. default:
  622. reader.skipType(tag & 7);
  623. break;
  624. }
  625. }
  626. return message;
  627. },
  628. fromJSON(object: any): TestNatResponse {
  629. return {
  630. port: isSet(object.port) ? Number(object.port) : 0,
  631. cu: isSet(object.cu) ? ConfigUpdate.fromJSON(object.cu) : undefined,
  632. };
  633. },
  634. toJSON(message: TestNatResponse): unknown {
  635. const obj: any = {};
  636. message.port !== undefined && (obj.port = Math.round(message.port));
  637. message.cu !== undefined && (obj.cu = message.cu ? ConfigUpdate.toJSON(message.cu) : undefined);
  638. return obj;
  639. },
  640. create<I extends Exact<DeepPartial<TestNatResponse>, I>>(base?: I): TestNatResponse {
  641. return TestNatResponse.fromPartial(base ?? {});
  642. },
  643. fromPartial<I extends Exact<DeepPartial<TestNatResponse>, I>>(object: I): TestNatResponse {
  644. const message = createBaseTestNatResponse();
  645. message.port = object.port ?? 0;
  646. message.cu = (object.cu !== undefined && object.cu !== null) ? ConfigUpdate.fromPartial(object.cu) : undefined;
  647. return message;
  648. },
  649. };
  650. function createBasePunchHoleSent(): PunchHoleSent {
  651. return { socket_addr: new Uint8Array(), id: "", relay_server: "", nat_type: 0, version: "" };
  652. }
  653. export const PunchHoleSent = {
  654. encode(message: PunchHoleSent, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
  655. if (message.socket_addr.length !== 0) {
  656. writer.uint32(10).bytes(message.socket_addr);
  657. }
  658. if (message.id !== "") {
  659. writer.uint32(18).string(message.id);
  660. }
  661. if (message.relay_server !== "") {
  662. writer.uint32(26).string(message.relay_server);
  663. }
  664. if (message.nat_type !== 0) {
  665. writer.uint32(32).int32(message.nat_type);
  666. }
  667. if (message.version !== "") {
  668. writer.uint32(42).string(message.version);
  669. }
  670. return writer;
  671. },
  672. decode(input: _m0.Reader | Uint8Array, length?: number): PunchHoleSent {
  673. const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
  674. let end = length === undefined ? reader.len : reader.pos + length;
  675. const message = createBasePunchHoleSent();
  676. while (reader.pos < end) {
  677. const tag = reader.uint32();
  678. switch (tag >>> 3) {
  679. case 1:
  680. message.socket_addr = reader.bytes();
  681. break;
  682. case 2:
  683. message.id = reader.string();
  684. break;
  685. case 3:
  686. message.relay_server = reader.string();
  687. break;
  688. case 4:
  689. message.nat_type = reader.int32() as any;
  690. break;
  691. case 5:
  692. message.version = reader.string();
  693. break;
  694. default:
  695. reader.skipType(tag & 7);
  696. break;
  697. }
  698. }
  699. return message;
  700. },
  701. fromJSON(object: any): PunchHoleSent {
  702. return {
  703. socket_addr: isSet(object.socket_addr) ? bytesFromBase64(object.socket_addr) : new Uint8Array(),
  704. id: isSet(object.id) ? String(object.id) : "",
  705. relay_server: isSet(object.relay_server) ? String(object.relay_server) : "",
  706. nat_type: isSet(object.nat_type) ? natTypeFromJSON(object.nat_type) : 0,
  707. version: isSet(object.version) ? String(object.version) : "",
  708. };
  709. },
  710. toJSON(message: PunchHoleSent): unknown {
  711. const obj: any = {};
  712. message.socket_addr !== undefined &&
  713. (obj.socket_addr = base64FromBytes(message.socket_addr !== undefined ? message.socket_addr : new Uint8Array()));
  714. message.id !== undefined && (obj.id = message.id);
  715. message.relay_server !== undefined && (obj.relay_server = message.relay_server);
  716. message.nat_type !== undefined && (obj.nat_type = natTypeToJSON(message.nat_type));
  717. message.version !== undefined && (obj.version = message.version);
  718. return obj;
  719. },
  720. create<I extends Exact<DeepPartial<PunchHoleSent>, I>>(base?: I): PunchHoleSent {
  721. return PunchHoleSent.fromPartial(base ?? {});
  722. },
  723. fromPartial<I extends Exact<DeepPartial<PunchHoleSent>, I>>(object: I): PunchHoleSent {
  724. const message = createBasePunchHoleSent();
  725. message.socket_addr = object.socket_addr ?? new Uint8Array();
  726. message.id = object.id ?? "";
  727. message.relay_server = object.relay_server ?? "";
  728. message.nat_type = object.nat_type ?? 0;
  729. message.version = object.version ?? "";
  730. return message;
  731. },
  732. };
  733. function createBaseRegisterPk(): RegisterPk {
  734. return { id: "", uuid: new Uint8Array(), pk: new Uint8Array(), old_id: "" };
  735. }
  736. export const RegisterPk = {
  737. encode(message: RegisterPk, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
  738. if (message.id !== "") {
  739. writer.uint32(10).string(message.id);
  740. }
  741. if (message.uuid.length !== 0) {
  742. writer.uint32(18).bytes(message.uuid);
  743. }
  744. if (message.pk.length !== 0) {
  745. writer.uint32(26).bytes(message.pk);
  746. }
  747. if (message.old_id !== "") {
  748. writer.uint32(34).string(message.old_id);
  749. }
  750. return writer;
  751. },
  752. decode(input: _m0.Reader | Uint8Array, length?: number): RegisterPk {
  753. const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
  754. let end = length === undefined ? reader.len : reader.pos + length;
  755. const message = createBaseRegisterPk();
  756. while (reader.pos < end) {
  757. const tag = reader.uint32();
  758. switch (tag >>> 3) {
  759. case 1:
  760. message.id = reader.string();
  761. break;
  762. case 2:
  763. message.uuid = reader.bytes();
  764. break;
  765. case 3:
  766. message.pk = reader.bytes();
  767. break;
  768. case 4:
  769. message.old_id = reader.string();
  770. break;
  771. default:
  772. reader.skipType(tag & 7);
  773. break;
  774. }
  775. }
  776. return message;
  777. },
  778. fromJSON(object: any): RegisterPk {
  779. return {
  780. id: isSet(object.id) ? String(object.id) : "",
  781. uuid: isSet(object.uuid) ? bytesFromBase64(object.uuid) : new Uint8Array(),
  782. pk: isSet(object.pk) ? bytesFromBase64(object.pk) : new Uint8Array(),
  783. old_id: isSet(object.old_id) ? String(object.old_id) : "",
  784. };
  785. },
  786. toJSON(message: RegisterPk): unknown {
  787. const obj: any = {};
  788. message.id !== undefined && (obj.id = message.id);
  789. message.uuid !== undefined &&
  790. (obj.uuid = base64FromBytes(message.uuid !== undefined ? message.uuid : new Uint8Array()));
  791. message.pk !== undefined && (obj.pk = base64FromBytes(message.pk !== undefined ? message.pk : new Uint8Array()));
  792. message.old_id !== undefined && (obj.old_id = message.old_id);
  793. return obj;
  794. },
  795. create<I extends Exact<DeepPartial<RegisterPk>, I>>(base?: I): RegisterPk {
  796. return RegisterPk.fromPartial(base ?? {});
  797. },
  798. fromPartial<I extends Exact<DeepPartial<RegisterPk>, I>>(object: I): RegisterPk {
  799. const message = createBaseRegisterPk();
  800. message.id = object.id ?? "";
  801. message.uuid = object.uuid ?? new Uint8Array();
  802. message.pk = object.pk ?? new Uint8Array();
  803. message.old_id = object.old_id ?? "";
  804. return message;
  805. },
  806. };
  807. function createBaseRegisterPkResponse(): RegisterPkResponse {
  808. return { result: 0 };
  809. }
  810. export const RegisterPkResponse = {
  811. encode(message: RegisterPkResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
  812. if (message.result !== 0) {
  813. writer.uint32(8).int32(message.result);
  814. }
  815. return writer;
  816. },
  817. decode(input: _m0.Reader | Uint8Array, length?: number): RegisterPkResponse {
  818. const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
  819. let end = length === undefined ? reader.len : reader.pos + length;
  820. const message = createBaseRegisterPkResponse();
  821. while (reader.pos < end) {
  822. const tag = reader.uint32();
  823. switch (tag >>> 3) {
  824. case 1:
  825. message.result = reader.int32() as any;
  826. break;
  827. default:
  828. reader.skipType(tag & 7);
  829. break;
  830. }
  831. }
  832. return message;
  833. },
  834. fromJSON(object: any): RegisterPkResponse {
  835. return { result: isSet(object.result) ? registerPkResponse_ResultFromJSON(object.result) : 0 };
  836. },
  837. toJSON(message: RegisterPkResponse): unknown {
  838. const obj: any = {};
  839. message.result !== undefined && (obj.result = registerPkResponse_ResultToJSON(message.result));
  840. return obj;
  841. },
  842. create<I extends Exact<DeepPartial<RegisterPkResponse>, I>>(base?: I): RegisterPkResponse {
  843. return RegisterPkResponse.fromPartial(base ?? {});
  844. },
  845. fromPartial<I extends Exact<DeepPartial<RegisterPkResponse>, I>>(object: I): RegisterPkResponse {
  846. const message = createBaseRegisterPkResponse();
  847. message.result = object.result ?? 0;
  848. return message;
  849. },
  850. };
  851. function createBasePunchHoleResponse(): PunchHoleResponse {
  852. return {
  853. socket_addr: new Uint8Array(),
  854. pk: new Uint8Array(),
  855. failure: 0,
  856. relay_server: "",
  857. nat_type: undefined,
  858. is_local: undefined,
  859. other_failure: "",
  860. };
  861. }
  862. export const PunchHoleResponse = {
  863. encode(message: PunchHoleResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
  864. if (message.socket_addr.length !== 0) {
  865. writer.uint32(10).bytes(message.socket_addr);
  866. }
  867. if (message.pk.length !== 0) {
  868. writer.uint32(18).bytes(message.pk);
  869. }
  870. if (message.failure !== 0) {
  871. writer.uint32(24).int32(message.failure);
  872. }
  873. if (message.relay_server !== "") {
  874. writer.uint32(34).string(message.relay_server);
  875. }
  876. if (message.nat_type !== undefined) {
  877. writer.uint32(40).int32(message.nat_type);
  878. }
  879. if (message.is_local !== undefined) {
  880. writer.uint32(48).bool(message.is_local);
  881. }
  882. if (message.other_failure !== "") {
  883. writer.uint32(58).string(message.other_failure);
  884. }
  885. return writer;
  886. },
  887. decode(input: _m0.Reader | Uint8Array, length?: number): PunchHoleResponse {
  888. const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
  889. let end = length === undefined ? reader.len : reader.pos + length;
  890. const message = createBasePunchHoleResponse();
  891. while (reader.pos < end) {
  892. const tag = reader.uint32();
  893. switch (tag >>> 3) {
  894. case 1:
  895. message.socket_addr = reader.bytes();
  896. break;
  897. case 2:
  898. message.pk = reader.bytes();
  899. break;
  900. case 3:
  901. message.failure = reader.int32() as any;
  902. break;
  903. case 4:
  904. message.relay_server = reader.string();
  905. break;
  906. case 5:
  907. message.nat_type = reader.int32() as any;
  908. break;
  909. case 6:
  910. message.is_local = reader.bool();
  911. break;
  912. case 7:
  913. message.other_failure = reader.string();
  914. break;
  915. default:
  916. reader.skipType(tag & 7);
  917. break;
  918. }
  919. }
  920. return message;
  921. },
  922. fromJSON(object: any): PunchHoleResponse {
  923. return {
  924. socket_addr: isSet(object.socket_addr) ? bytesFromBase64(object.socket_addr) : new Uint8Array(),
  925. pk: isSet(object.pk) ? bytesFromBase64(object.pk) : new Uint8Array(),
  926. failure: isSet(object.failure) ? punchHoleResponse_FailureFromJSON(object.failure) : 0,
  927. relay_server: isSet(object.relay_server) ? String(object.relay_server) : "",
  928. nat_type: isSet(object.nat_type) ? natTypeFromJSON(object.nat_type) : undefined,
  929. is_local: isSet(object.is_local) ? Boolean(object.is_local) : undefined,
  930. other_failure: isSet(object.other_failure) ? String(object.other_failure) : "",
  931. };
  932. },
  933. toJSON(message: PunchHoleResponse): unknown {
  934. const obj: any = {};
  935. message.socket_addr !== undefined &&
  936. (obj.socket_addr = base64FromBytes(message.socket_addr !== undefined ? message.socket_addr : new Uint8Array()));
  937. message.pk !== undefined && (obj.pk = base64FromBytes(message.pk !== undefined ? message.pk : new Uint8Array()));
  938. message.failure !== undefined && (obj.failure = punchHoleResponse_FailureToJSON(message.failure));
  939. message.relay_server !== undefined && (obj.relay_server = message.relay_server);
  940. message.nat_type !== undefined &&
  941. (obj.nat_type = message.nat_type !== undefined ? natTypeToJSON(message.nat_type) : undefined);
  942. message.is_local !== undefined && (obj.is_local = message.is_local);
  943. message.other_failure !== undefined && (obj.other_failure = message.other_failure);
  944. return obj;
  945. },
  946. create<I extends Exact<DeepPartial<PunchHoleResponse>, I>>(base?: I): PunchHoleResponse {
  947. return PunchHoleResponse.fromPartial(base ?? {});
  948. },
  949. fromPartial<I extends Exact<DeepPartial<PunchHoleResponse>, I>>(object: I): PunchHoleResponse {
  950. const message = createBasePunchHoleResponse();
  951. message.socket_addr = object.socket_addr ?? new Uint8Array();
  952. message.pk = object.pk ?? new Uint8Array();
  953. message.failure = object.failure ?? 0;
  954. message.relay_server = object.relay_server ?? "";
  955. message.nat_type = object.nat_type ?? undefined;
  956. message.is_local = object.is_local ?? undefined;
  957. message.other_failure = object.other_failure ?? "";
  958. return message;
  959. },
  960. };
  961. function createBaseConfigUpdate(): ConfigUpdate {
  962. return { serial: 0, rendezvous_servers: [] };
  963. }
  964. export const ConfigUpdate = {
  965. encode(message: ConfigUpdate, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
  966. if (message.serial !== 0) {
  967. writer.uint32(8).int32(message.serial);
  968. }
  969. for (const v of message.rendezvous_servers) {
  970. writer.uint32(18).string(v!);
  971. }
  972. return writer;
  973. },
  974. decode(input: _m0.Reader | Uint8Array, length?: number): ConfigUpdate {
  975. const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
  976. let end = length === undefined ? reader.len : reader.pos + length;
  977. const message = createBaseConfigUpdate();
  978. while (reader.pos < end) {
  979. const tag = reader.uint32();
  980. switch (tag >>> 3) {
  981. case 1:
  982. message.serial = reader.int32();
  983. break;
  984. case 2:
  985. message.rendezvous_servers.push(reader.string());
  986. break;
  987. default:
  988. reader.skipType(tag & 7);
  989. break;
  990. }
  991. }
  992. return message;
  993. },
  994. fromJSON(object: any): ConfigUpdate {
  995. return {
  996. serial: isSet(object.serial) ? Number(object.serial) : 0,
  997. rendezvous_servers: Array.isArray(object?.rendezvous_servers)
  998. ? object.rendezvous_servers.map((e: any) => String(e))
  999. : [],
  1000. };
  1001. },
  1002. toJSON(message: ConfigUpdate): unknown {
  1003. const obj: any = {};
  1004. message.serial !== undefined && (obj.serial = Math.round(message.serial));
  1005. if (message.rendezvous_servers) {
  1006. obj.rendezvous_servers = message.rendezvous_servers.map((e) => e);
  1007. } else {
  1008. obj.rendezvous_servers = [];
  1009. }
  1010. return obj;
  1011. },
  1012. create<I extends Exact<DeepPartial<ConfigUpdate>, I>>(base?: I): ConfigUpdate {
  1013. return ConfigUpdate.fromPartial(base ?? {});
  1014. },
  1015. fromPartial<I extends Exact<DeepPartial<ConfigUpdate>, I>>(object: I): ConfigUpdate {
  1016. const message = createBaseConfigUpdate();
  1017. message.serial = object.serial ?? 0;
  1018. message.rendezvous_servers = object.rendezvous_servers?.map((e) => e) || [];
  1019. return message;
  1020. },
  1021. };
  1022. function createBaseRequestRelay(): RequestRelay {
  1023. return {
  1024. id: "",
  1025. uuid: "",
  1026. socket_addr: new Uint8Array(),
  1027. relay_server: "",
  1028. secure: false,
  1029. licence_key: "",
  1030. conn_type: 0,
  1031. token: "",
  1032. };
  1033. }
  1034. export const RequestRelay = {
  1035. encode(message: RequestRelay, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
  1036. if (message.id !== "") {
  1037. writer.uint32(10).string(message.id);
  1038. }
  1039. if (message.uuid !== "") {
  1040. writer.uint32(18).string(message.uuid);
  1041. }
  1042. if (message.socket_addr.length !== 0) {
  1043. writer.uint32(26).bytes(message.socket_addr);
  1044. }
  1045. if (message.relay_server !== "") {
  1046. writer.uint32(34).string(message.relay_server);
  1047. }
  1048. if (message.secure === true) {
  1049. writer.uint32(40).bool(message.secure);
  1050. }
  1051. if (message.licence_key !== "") {
  1052. writer.uint32(50).string(message.licence_key);
  1053. }
  1054. if (message.conn_type !== 0) {
  1055. writer.uint32(56).int32(message.conn_type);
  1056. }
  1057. if (message.token !== "") {
  1058. writer.uint32(66).string(message.token);
  1059. }
  1060. return writer;
  1061. },
  1062. decode(input: _m0.Reader | Uint8Array, length?: number): RequestRelay {
  1063. const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
  1064. let end = length === undefined ? reader.len : reader.pos + length;
  1065. const message = createBaseRequestRelay();
  1066. while (reader.pos < end) {
  1067. const tag = reader.uint32();
  1068. switch (tag >>> 3) {
  1069. case 1:
  1070. message.id = reader.string();
  1071. break;
  1072. case 2:
  1073. message.uuid = reader.string();
  1074. break;
  1075. case 3:
  1076. message.socket_addr = reader.bytes();
  1077. break;
  1078. case 4:
  1079. message.relay_server = reader.string();
  1080. break;
  1081. case 5:
  1082. message.secure = reader.bool();
  1083. break;
  1084. case 6:
  1085. message.licence_key = reader.string();
  1086. break;
  1087. case 7:
  1088. message.conn_type = reader.int32() as any;
  1089. break;
  1090. case 8:
  1091. message.token = reader.string();
  1092. break;
  1093. default:
  1094. reader.skipType(tag & 7);
  1095. break;
  1096. }
  1097. }
  1098. return message;
  1099. },
  1100. fromJSON(object: any): RequestRelay {
  1101. return {
  1102. id: isSet(object.id) ? String(object.id) : "",
  1103. uuid: isSet(object.uuid) ? String(object.uuid) : "",
  1104. socket_addr: isSet(object.socket_addr) ? bytesFromBase64(object.socket_addr) : new Uint8Array(),
  1105. relay_server: isSet(object.relay_server) ? String(object.relay_server) : "",
  1106. secure: isSet(object.secure) ? Boolean(object.secure) : false,
  1107. licence_key: isSet(object.licence_key) ? String(object.licence_key) : "",
  1108. conn_type: isSet(object.conn_type) ? connTypeFromJSON(object.conn_type) : 0,
  1109. token: isSet(object.token) ? String(object.token) : "",
  1110. };
  1111. },
  1112. toJSON(message: RequestRelay): unknown {
  1113. const obj: any = {};
  1114. message.id !== undefined && (obj.id = message.id);
  1115. message.uuid !== undefined && (obj.uuid = message.uuid);
  1116. message.socket_addr !== undefined &&
  1117. (obj.socket_addr = base64FromBytes(message.socket_addr !== undefined ? message.socket_addr : new Uint8Array()));
  1118. message.relay_server !== undefined && (obj.relay_server = message.relay_server);
  1119. message.secure !== undefined && (obj.secure = message.secure);
  1120. message.licence_key !== undefined && (obj.licence_key = message.licence_key);
  1121. message.conn_type !== undefined && (obj.conn_type = connTypeToJSON(message.conn_type));
  1122. message.token !== undefined && (obj.token = message.token);
  1123. return obj;
  1124. },
  1125. create<I extends Exact<DeepPartial<RequestRelay>, I>>(base?: I): RequestRelay {
  1126. return RequestRelay.fromPartial(base ?? {});
  1127. },
  1128. fromPartial<I extends Exact<DeepPartial<RequestRelay>, I>>(object: I): RequestRelay {
  1129. const message = createBaseRequestRelay();
  1130. message.id = object.id ?? "";
  1131. message.uuid = object.uuid ?? "";
  1132. message.socket_addr = object.socket_addr ?? new Uint8Array();
  1133. message.relay_server = object.relay_server ?? "";
  1134. message.secure = object.secure ?? false;
  1135. message.licence_key = object.licence_key ?? "";
  1136. message.conn_type = object.conn_type ?? 0;
  1137. message.token = object.token ?? "";
  1138. return message;
  1139. },
  1140. };
  1141. function createBaseRelayResponse(): RelayResponse {
  1142. return {
  1143. socket_addr: new Uint8Array(),
  1144. uuid: "",
  1145. relay_server: "",
  1146. id: undefined,
  1147. pk: undefined,
  1148. refuse_reason: "",
  1149. version: "",
  1150. };
  1151. }
  1152. export const RelayResponse = {
  1153. encode(message: RelayResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
  1154. if (message.socket_addr.length !== 0) {
  1155. writer.uint32(10).bytes(message.socket_addr);
  1156. }
  1157. if (message.uuid !== "") {
  1158. writer.uint32(18).string(message.uuid);
  1159. }
  1160. if (message.relay_server !== "") {
  1161. writer.uint32(26).string(message.relay_server);
  1162. }
  1163. if (message.id !== undefined) {
  1164. writer.uint32(34).string(message.id);
  1165. }
  1166. if (message.pk !== undefined) {
  1167. writer.uint32(42).bytes(message.pk);
  1168. }
  1169. if (message.refuse_reason !== "") {
  1170. writer.uint32(50).string(message.refuse_reason);
  1171. }
  1172. if (message.version !== "") {
  1173. writer.uint32(58).string(message.version);
  1174. }
  1175. return writer;
  1176. },
  1177. decode(input: _m0.Reader | Uint8Array, length?: number): RelayResponse {
  1178. const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
  1179. let end = length === undefined ? reader.len : reader.pos + length;
  1180. const message = createBaseRelayResponse();
  1181. while (reader.pos < end) {
  1182. const tag = reader.uint32();
  1183. switch (tag >>> 3) {
  1184. case 1:
  1185. message.socket_addr = reader.bytes();
  1186. break;
  1187. case 2:
  1188. message.uuid = reader.string();
  1189. break;
  1190. case 3:
  1191. message.relay_server = reader.string();
  1192. break;
  1193. case 4:
  1194. message.id = reader.string();
  1195. break;
  1196. case 5:
  1197. message.pk = reader.bytes();
  1198. break;
  1199. case 6:
  1200. message.refuse_reason = reader.string();
  1201. break;
  1202. case 7:
  1203. message.version = reader.string();
  1204. break;
  1205. default:
  1206. reader.skipType(tag & 7);
  1207. break;
  1208. }
  1209. }
  1210. return message;
  1211. },
  1212. fromJSON(object: any): RelayResponse {
  1213. return {
  1214. socket_addr: isSet(object.socket_addr) ? bytesFromBase64(object.socket_addr) : new Uint8Array(),
  1215. uuid: isSet(object.uuid) ? String(object.uuid) : "",
  1216. relay_server: isSet(object.relay_server) ? String(object.relay_server) : "",
  1217. id: isSet(object.id) ? String(object.id) : undefined,
  1218. pk: isSet(object.pk) ? bytesFromBase64(object.pk) : undefined,
  1219. refuse_reason: isSet(object.refuse_reason) ? String(object.refuse_reason) : "",
  1220. version: isSet(object.version) ? String(object.version) : "",
  1221. };
  1222. },
  1223. toJSON(message: RelayResponse): unknown {
  1224. const obj: any = {};
  1225. message.socket_addr !== undefined &&
  1226. (obj.socket_addr = base64FromBytes(message.socket_addr !== undefined ? message.socket_addr : new Uint8Array()));
  1227. message.uuid !== undefined && (obj.uuid = message.uuid);
  1228. message.relay_server !== undefined && (obj.relay_server = message.relay_server);
  1229. message.id !== undefined && (obj.id = message.id);
  1230. message.pk !== undefined && (obj.pk = message.pk !== undefined ? base64FromBytes(message.pk) : undefined);
  1231. message.refuse_reason !== undefined && (obj.refuse_reason = message.refuse_reason);
  1232. message.version !== undefined && (obj.version = message.version);
  1233. return obj;
  1234. },
  1235. create<I extends Exact<DeepPartial<RelayResponse>, I>>(base?: I): RelayResponse {
  1236. return RelayResponse.fromPartial(base ?? {});
  1237. },
  1238. fromPartial<I extends Exact<DeepPartial<RelayResponse>, I>>(object: I): RelayResponse {
  1239. const message = createBaseRelayResponse();
  1240. message.socket_addr = object.socket_addr ?? new Uint8Array();
  1241. message.uuid = object.uuid ?? "";
  1242. message.relay_server = object.relay_server ?? "";
  1243. message.id = object.id ?? undefined;
  1244. message.pk = object.pk ?? undefined;
  1245. message.refuse_reason = object.refuse_reason ?? "";
  1246. message.version = object.version ?? "";
  1247. return message;
  1248. },
  1249. };
  1250. function createBaseSoftwareUpdate(): SoftwareUpdate {
  1251. return { url: "" };
  1252. }
  1253. export const SoftwareUpdate = {
  1254. encode(message: SoftwareUpdate, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
  1255. if (message.url !== "") {
  1256. writer.uint32(10).string(message.url);
  1257. }
  1258. return writer;
  1259. },
  1260. decode(input: _m0.Reader | Uint8Array, length?: number): SoftwareUpdate {
  1261. const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
  1262. let end = length === undefined ? reader.len : reader.pos + length;
  1263. const message = createBaseSoftwareUpdate();
  1264. while (reader.pos < end) {
  1265. const tag = reader.uint32();
  1266. switch (tag >>> 3) {
  1267. case 1:
  1268. message.url = reader.string();
  1269. break;
  1270. default:
  1271. reader.skipType(tag & 7);
  1272. break;
  1273. }
  1274. }
  1275. return message;
  1276. },
  1277. fromJSON(object: any): SoftwareUpdate {
  1278. return { url: isSet(object.url) ? String(object.url) : "" };
  1279. },
  1280. toJSON(message: SoftwareUpdate): unknown {
  1281. const obj: any = {};
  1282. message.url !== undefined && (obj.url = message.url);
  1283. return obj;
  1284. },
  1285. create<I extends Exact<DeepPartial<SoftwareUpdate>, I>>(base?: I): SoftwareUpdate {
  1286. return SoftwareUpdate.fromPartial(base ?? {});
  1287. },
  1288. fromPartial<I extends Exact<DeepPartial<SoftwareUpdate>, I>>(object: I): SoftwareUpdate {
  1289. const message = createBaseSoftwareUpdate();
  1290. message.url = object.url ?? "";
  1291. return message;
  1292. },
  1293. };
  1294. function createBaseFetchLocalAddr(): FetchLocalAddr {
  1295. return { socket_addr: new Uint8Array(), relay_server: "" };
  1296. }
  1297. export const FetchLocalAddr = {
  1298. encode(message: FetchLocalAddr, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
  1299. if (message.socket_addr.length !== 0) {
  1300. writer.uint32(10).bytes(message.socket_addr);
  1301. }
  1302. if (message.relay_server !== "") {
  1303. writer.uint32(18).string(message.relay_server);
  1304. }
  1305. return writer;
  1306. },
  1307. decode(input: _m0.Reader | Uint8Array, length?: number): FetchLocalAddr {
  1308. const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
  1309. let end = length === undefined ? reader.len : reader.pos + length;
  1310. const message = createBaseFetchLocalAddr();
  1311. while (reader.pos < end) {
  1312. const tag = reader.uint32();
  1313. switch (tag >>> 3) {
  1314. case 1:
  1315. message.socket_addr = reader.bytes();
  1316. break;
  1317. case 2:
  1318. message.relay_server = reader.string();
  1319. break;
  1320. default:
  1321. reader.skipType(tag & 7);
  1322. break;
  1323. }
  1324. }
  1325. return message;
  1326. },
  1327. fromJSON(object: any): FetchLocalAddr {
  1328. return {
  1329. socket_addr: isSet(object.socket_addr) ? bytesFromBase64(object.socket_addr) : new Uint8Array(),
  1330. relay_server: isSet(object.relay_server) ? String(object.relay_server) : "",
  1331. };
  1332. },
  1333. toJSON(message: FetchLocalAddr): unknown {
  1334. const obj: any = {};
  1335. message.socket_addr !== undefined &&
  1336. (obj.socket_addr = base64FromBytes(message.socket_addr !== undefined ? message.socket_addr : new Uint8Array()));
  1337. message.relay_server !== undefined && (obj.relay_server = message.relay_server);
  1338. return obj;
  1339. },
  1340. create<I extends Exact<DeepPartial<FetchLocalAddr>, I>>(base?: I): FetchLocalAddr {
  1341. return FetchLocalAddr.fromPartial(base ?? {});
  1342. },
  1343. fromPartial<I extends Exact<DeepPartial<FetchLocalAddr>, I>>(object: I): FetchLocalAddr {
  1344. const message = createBaseFetchLocalAddr();
  1345. message.socket_addr = object.socket_addr ?? new Uint8Array();
  1346. message.relay_server = object.relay_server ?? "";
  1347. return message;
  1348. },
  1349. };
  1350. function createBaseLocalAddr(): LocalAddr {
  1351. return { socket_addr: new Uint8Array(), local_addr: new Uint8Array(), relay_server: "", id: "", version: "" };
  1352. }
  1353. export const LocalAddr = {
  1354. encode(message: LocalAddr, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
  1355. if (message.socket_addr.length !== 0) {
  1356. writer.uint32(10).bytes(message.socket_addr);
  1357. }
  1358. if (message.local_addr.length !== 0) {
  1359. writer.uint32(18).bytes(message.local_addr);
  1360. }
  1361. if (message.relay_server !== "") {
  1362. writer.uint32(26).string(message.relay_server);
  1363. }
  1364. if (message.id !== "") {
  1365. writer.uint32(34).string(message.id);
  1366. }
  1367. if (message.version !== "") {
  1368. writer.uint32(42).string(message.version);
  1369. }
  1370. return writer;
  1371. },
  1372. decode(input: _m0.Reader | Uint8Array, length?: number): LocalAddr {
  1373. const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
  1374. let end = length === undefined ? reader.len : reader.pos + length;
  1375. const message = createBaseLocalAddr();
  1376. while (reader.pos < end) {
  1377. const tag = reader.uint32();
  1378. switch (tag >>> 3) {
  1379. case 1:
  1380. message.socket_addr = reader.bytes();
  1381. break;
  1382. case 2:
  1383. message.local_addr = reader.bytes();
  1384. break;
  1385. case 3:
  1386. message.relay_server = reader.string();
  1387. break;
  1388. case 4:
  1389. message.id = reader.string();
  1390. break;
  1391. case 5:
  1392. message.version = reader.string();
  1393. break;
  1394. default:
  1395. reader.skipType(tag & 7);
  1396. break;
  1397. }
  1398. }
  1399. return message;
  1400. },
  1401. fromJSON(object: any): LocalAddr {
  1402. return {
  1403. socket_addr: isSet(object.socket_addr) ? bytesFromBase64(object.socket_addr) : new Uint8Array(),
  1404. local_addr: isSet(object.local_addr) ? bytesFromBase64(object.local_addr) : new Uint8Array(),
  1405. relay_server: isSet(object.relay_server) ? String(object.relay_server) : "",
  1406. id: isSet(object.id) ? String(object.id) : "",
  1407. version: isSet(object.version) ? String(object.version) : "",
  1408. };
  1409. },
  1410. toJSON(message: LocalAddr): unknown {
  1411. const obj: any = {};
  1412. message.socket_addr !== undefined &&
  1413. (obj.socket_addr = base64FromBytes(message.socket_addr !== undefined ? message.socket_addr : new Uint8Array()));
  1414. message.local_addr !== undefined &&
  1415. (obj.local_addr = base64FromBytes(message.local_addr !== undefined ? message.local_addr : new Uint8Array()));
  1416. message.relay_server !== undefined && (obj.relay_server = message.relay_server);
  1417. message.id !== undefined && (obj.id = message.id);
  1418. message.version !== undefined && (obj.version = message.version);
  1419. return obj;
  1420. },
  1421. create<I extends Exact<DeepPartial<LocalAddr>, I>>(base?: I): LocalAddr {
  1422. return LocalAddr.fromPartial(base ?? {});
  1423. },
  1424. fromPartial<I extends Exact<DeepPartial<LocalAddr>, I>>(object: I): LocalAddr {
  1425. const message = createBaseLocalAddr();
  1426. message.socket_addr = object.socket_addr ?? new Uint8Array();
  1427. message.local_addr = object.local_addr ?? new Uint8Array();
  1428. message.relay_server = object.relay_server ?? "";
  1429. message.id = object.id ?? "";
  1430. message.version = object.version ?? "";
  1431. return message;
  1432. },
  1433. };
  1434. function createBasePeerDiscovery(): PeerDiscovery {
  1435. return { cmd: "", mac: "", id: "", username: "", hostname: "", platform: "", misc: "" };
  1436. }
  1437. export const PeerDiscovery = {
  1438. encode(message: PeerDiscovery, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
  1439. if (message.cmd !== "") {
  1440. writer.uint32(10).string(message.cmd);
  1441. }
  1442. if (message.mac !== "") {
  1443. writer.uint32(18).string(message.mac);
  1444. }
  1445. if (message.id !== "") {
  1446. writer.uint32(26).string(message.id);
  1447. }
  1448. if (message.username !== "") {
  1449. writer.uint32(34).string(message.username);
  1450. }
  1451. if (message.hostname !== "") {
  1452. writer.uint32(42).string(message.hostname);
  1453. }
  1454. if (message.platform !== "") {
  1455. writer.uint32(50).string(message.platform);
  1456. }
  1457. if (message.misc !== "") {
  1458. writer.uint32(58).string(message.misc);
  1459. }
  1460. return writer;
  1461. },
  1462. decode(input: _m0.Reader | Uint8Array, length?: number): PeerDiscovery {
  1463. const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
  1464. let end = length === undefined ? reader.len : reader.pos + length;
  1465. const message = createBasePeerDiscovery();
  1466. while (reader.pos < end) {
  1467. const tag = reader.uint32();
  1468. switch (tag >>> 3) {
  1469. case 1:
  1470. message.cmd = reader.string();
  1471. break;
  1472. case 2:
  1473. message.mac = reader.string();
  1474. break;
  1475. case 3:
  1476. message.id = reader.string();
  1477. break;
  1478. case 4:
  1479. message.username = reader.string();
  1480. break;
  1481. case 5:
  1482. message.hostname = reader.string();
  1483. break;
  1484. case 6:
  1485. message.platform = reader.string();
  1486. break;
  1487. case 7:
  1488. message.misc = reader.string();
  1489. break;
  1490. default:
  1491. reader.skipType(tag & 7);
  1492. break;
  1493. }
  1494. }
  1495. return message;
  1496. },
  1497. fromJSON(object: any): PeerDiscovery {
  1498. return {
  1499. cmd: isSet(object.cmd) ? String(object.cmd) : "",
  1500. mac: isSet(object.mac) ? String(object.mac) : "",
  1501. id: isSet(object.id) ? String(object.id) : "",
  1502. username: isSet(object.username) ? String(object.username) : "",
  1503. hostname: isSet(object.hostname) ? String(object.hostname) : "",
  1504. platform: isSet(object.platform) ? String(object.platform) : "",
  1505. misc: isSet(object.misc) ? String(object.misc) : "",
  1506. };
  1507. },
  1508. toJSON(message: PeerDiscovery): unknown {
  1509. const obj: any = {};
  1510. message.cmd !== undefined && (obj.cmd = message.cmd);
  1511. message.mac !== undefined && (obj.mac = message.mac);
  1512. message.id !== undefined && (obj.id = message.id);
  1513. message.username !== undefined && (obj.username = message.username);
  1514. message.hostname !== undefined && (obj.hostname = message.hostname);
  1515. message.platform !== undefined && (obj.platform = message.platform);
  1516. message.misc !== undefined && (obj.misc = message.misc);
  1517. return obj;
  1518. },
  1519. create<I extends Exact<DeepPartial<PeerDiscovery>, I>>(base?: I): PeerDiscovery {
  1520. return PeerDiscovery.fromPartial(base ?? {});
  1521. },
  1522. fromPartial<I extends Exact<DeepPartial<PeerDiscovery>, I>>(object: I): PeerDiscovery {
  1523. const message = createBasePeerDiscovery();
  1524. message.cmd = object.cmd ?? "";
  1525. message.mac = object.mac ?? "";
  1526. message.id = object.id ?? "";
  1527. message.username = object.username ?? "";
  1528. message.hostname = object.hostname ?? "";
  1529. message.platform = object.platform ?? "";
  1530. message.misc = object.misc ?? "";
  1531. return message;
  1532. },
  1533. };
  1534. function createBaseRendezvousMessage(): RendezvousMessage {
  1535. return {
  1536. register_peer: undefined,
  1537. register_peer_response: undefined,
  1538. punch_hole_request: undefined,
  1539. punch_hole: undefined,
  1540. punch_hole_sent: undefined,
  1541. punch_hole_response: undefined,
  1542. fetch_local_addr: undefined,
  1543. local_addr: undefined,
  1544. configure_update: undefined,
  1545. register_pk: undefined,
  1546. register_pk_response: undefined,
  1547. software_update: undefined,
  1548. request_relay: undefined,
  1549. relay_response: undefined,
  1550. test_nat_request: undefined,
  1551. test_nat_response: undefined,
  1552. peer_discovery: undefined,
  1553. };
  1554. }
  1555. export const RendezvousMessage = {
  1556. encode(message: RendezvousMessage, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
  1557. if (message.register_peer !== undefined) {
  1558. RegisterPeer.encode(message.register_peer, writer.uint32(50).fork()).ldelim();
  1559. }
  1560. if (message.register_peer_response !== undefined) {
  1561. RegisterPeerResponse.encode(message.register_peer_response, writer.uint32(58).fork()).ldelim();
  1562. }
  1563. if (message.punch_hole_request !== undefined) {
  1564. PunchHoleRequest.encode(message.punch_hole_request, writer.uint32(66).fork()).ldelim();
  1565. }
  1566. if (message.punch_hole !== undefined) {
  1567. PunchHole.encode(message.punch_hole, writer.uint32(74).fork()).ldelim();
  1568. }
  1569. if (message.punch_hole_sent !== undefined) {
  1570. PunchHoleSent.encode(message.punch_hole_sent, writer.uint32(82).fork()).ldelim();
  1571. }
  1572. if (message.punch_hole_response !== undefined) {
  1573. PunchHoleResponse.encode(message.punch_hole_response, writer.uint32(90).fork()).ldelim();
  1574. }
  1575. if (message.fetch_local_addr !== undefined) {
  1576. FetchLocalAddr.encode(message.fetch_local_addr, writer.uint32(98).fork()).ldelim();
  1577. }
  1578. if (message.local_addr !== undefined) {
  1579. LocalAddr.encode(message.local_addr, writer.uint32(106).fork()).ldelim();
  1580. }
  1581. if (message.configure_update !== undefined) {
  1582. ConfigUpdate.encode(message.configure_update, writer.uint32(114).fork()).ldelim();
  1583. }
  1584. if (message.register_pk !== undefined) {
  1585. RegisterPk.encode(message.register_pk, writer.uint32(122).fork()).ldelim();
  1586. }
  1587. if (message.register_pk_response !== undefined) {
  1588. RegisterPkResponse.encode(message.register_pk_response, writer.uint32(130).fork()).ldelim();
  1589. }
  1590. if (message.software_update !== undefined) {
  1591. SoftwareUpdate.encode(message.software_update, writer.uint32(138).fork()).ldelim();
  1592. }
  1593. if (message.request_relay !== undefined) {
  1594. RequestRelay.encode(message.request_relay, writer.uint32(146).fork()).ldelim();
  1595. }
  1596. if (message.relay_response !== undefined) {
  1597. RelayResponse.encode(message.relay_response, writer.uint32(154).fork()).ldelim();
  1598. }
  1599. if (message.test_nat_request !== undefined) {
  1600. TestNatRequest.encode(message.test_nat_request, writer.uint32(162).fork()).ldelim();
  1601. }
  1602. if (message.test_nat_response !== undefined) {
  1603. TestNatResponse.encode(message.test_nat_response, writer.uint32(170).fork()).ldelim();
  1604. }
  1605. if (message.peer_discovery !== undefined) {
  1606. PeerDiscovery.encode(message.peer_discovery, writer.uint32(178).fork()).ldelim();
  1607. }
  1608. return writer;
  1609. },
  1610. decode(input: _m0.Reader | Uint8Array, length?: number): RendezvousMessage {
  1611. const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
  1612. let end = length === undefined ? reader.len : reader.pos + length;
  1613. const message = createBaseRendezvousMessage();
  1614. while (reader.pos < end) {
  1615. const tag = reader.uint32();
  1616. switch (tag >>> 3) {
  1617. case 6:
  1618. message.register_peer = RegisterPeer.decode(reader, reader.uint32());
  1619. break;
  1620. case 7:
  1621. message.register_peer_response = RegisterPeerResponse.decode(reader, reader.uint32());
  1622. break;
  1623. case 8:
  1624. message.punch_hole_request = PunchHoleRequest.decode(reader, reader.uint32());
  1625. break;
  1626. case 9:
  1627. message.punch_hole = PunchHole.decode(reader, reader.uint32());
  1628. break;
  1629. case 10:
  1630. message.punch_hole_sent = PunchHoleSent.decode(reader, reader.uint32());
  1631. break;
  1632. case 11:
  1633. message.punch_hole_response = PunchHoleResponse.decode(reader, reader.uint32());
  1634. break;
  1635. case 12:
  1636. message.fetch_local_addr = FetchLocalAddr.decode(reader, reader.uint32());
  1637. break;
  1638. case 13:
  1639. message.local_addr = LocalAddr.decode(reader, reader.uint32());
  1640. break;
  1641. case 14:
  1642. message.configure_update = ConfigUpdate.decode(reader, reader.uint32());
  1643. break;
  1644. case 15:
  1645. message.register_pk = RegisterPk.decode(reader, reader.uint32());
  1646. break;
  1647. case 16:
  1648. message.register_pk_response = RegisterPkResponse.decode(reader, reader.uint32());
  1649. break;
  1650. case 17:
  1651. message.software_update = SoftwareUpdate.decode(reader, reader.uint32());
  1652. break;
  1653. case 18:
  1654. message.request_relay = RequestRelay.decode(reader, reader.uint32());
  1655. break;
  1656. case 19:
  1657. message.relay_response = RelayResponse.decode(reader, reader.uint32());
  1658. break;
  1659. case 20:
  1660. message.test_nat_request = TestNatRequest.decode(reader, reader.uint32());
  1661. break;
  1662. case 21:
  1663. message.test_nat_response = TestNatResponse.decode(reader, reader.uint32());
  1664. break;
  1665. case 22:
  1666. message.peer_discovery = PeerDiscovery.decode(reader, reader.uint32());
  1667. break;
  1668. default:
  1669. reader.skipType(tag & 7);
  1670. break;
  1671. }
  1672. }
  1673. return message;
  1674. },
  1675. fromJSON(object: any): RendezvousMessage {
  1676. return {
  1677. register_peer: isSet(object.register_peer) ? RegisterPeer.fromJSON(object.register_peer) : undefined,
  1678. register_peer_response: isSet(object.register_peer_response)
  1679. ? RegisterPeerResponse.fromJSON(object.register_peer_response)
  1680. : undefined,
  1681. punch_hole_request: isSet(object.punch_hole_request)
  1682. ? PunchHoleRequest.fromJSON(object.punch_hole_request)
  1683. : undefined,
  1684. punch_hole: isSet(object.punch_hole) ? PunchHole.fromJSON(object.punch_hole) : undefined,
  1685. punch_hole_sent: isSet(object.punch_hole_sent) ? PunchHoleSent.fromJSON(object.punch_hole_sent) : undefined,
  1686. punch_hole_response: isSet(object.punch_hole_response)
  1687. ? PunchHoleResponse.fromJSON(object.punch_hole_response)
  1688. : undefined,
  1689. fetch_local_addr: isSet(object.fetch_local_addr) ? FetchLocalAddr.fromJSON(object.fetch_local_addr) : undefined,
  1690. local_addr: isSet(object.local_addr) ? LocalAddr.fromJSON(object.local_addr) : undefined,
  1691. configure_update: isSet(object.configure_update) ? ConfigUpdate.fromJSON(object.configure_update) : undefined,
  1692. register_pk: isSet(object.register_pk) ? RegisterPk.fromJSON(object.register_pk) : undefined,
  1693. register_pk_response: isSet(object.register_pk_response)
  1694. ? RegisterPkResponse.fromJSON(object.register_pk_response)
  1695. : undefined,
  1696. software_update: isSet(object.software_update) ? SoftwareUpdate.fromJSON(object.software_update) : undefined,
  1697. request_relay: isSet(object.request_relay) ? RequestRelay.fromJSON(object.request_relay) : undefined,
  1698. relay_response: isSet(object.relay_response) ? RelayResponse.fromJSON(object.relay_response) : undefined,
  1699. test_nat_request: isSet(object.test_nat_request) ? TestNatRequest.fromJSON(object.test_nat_request) : undefined,
  1700. test_nat_response: isSet(object.test_nat_response)
  1701. ? TestNatResponse.fromJSON(object.test_nat_response)
  1702. : undefined,
  1703. peer_discovery: isSet(object.peer_discovery) ? PeerDiscovery.fromJSON(object.peer_discovery) : undefined,
  1704. };
  1705. },
  1706. toJSON(message: RendezvousMessage): unknown {
  1707. const obj: any = {};
  1708. message.register_peer !== undefined &&
  1709. (obj.register_peer = message.register_peer ? RegisterPeer.toJSON(message.register_peer) : undefined);
  1710. message.register_peer_response !== undefined && (obj.register_peer_response = message.register_peer_response
  1711. ? RegisterPeerResponse.toJSON(message.register_peer_response)
  1712. : undefined);
  1713. message.punch_hole_request !== undefined && (obj.punch_hole_request = message.punch_hole_request
  1714. ? PunchHoleRequest.toJSON(message.punch_hole_request)
  1715. : undefined);
  1716. message.punch_hole !== undefined &&
  1717. (obj.punch_hole = message.punch_hole ? PunchHole.toJSON(message.punch_hole) : undefined);
  1718. message.punch_hole_sent !== undefined &&
  1719. (obj.punch_hole_sent = message.punch_hole_sent ? PunchHoleSent.toJSON(message.punch_hole_sent) : undefined);
  1720. message.punch_hole_response !== undefined && (obj.punch_hole_response = message.punch_hole_response
  1721. ? PunchHoleResponse.toJSON(message.punch_hole_response)
  1722. : undefined);
  1723. message.fetch_local_addr !== undefined &&
  1724. (obj.fetch_local_addr = message.fetch_local_addr ? FetchLocalAddr.toJSON(message.fetch_local_addr) : undefined);
  1725. message.local_addr !== undefined &&
  1726. (obj.local_addr = message.local_addr ? LocalAddr.toJSON(message.local_addr) : undefined);
  1727. message.configure_update !== undefined &&
  1728. (obj.configure_update = message.configure_update ? ConfigUpdate.toJSON(message.configure_update) : undefined);
  1729. message.register_pk !== undefined &&
  1730. (obj.register_pk = message.register_pk ? RegisterPk.toJSON(message.register_pk) : undefined);
  1731. message.register_pk_response !== undefined && (obj.register_pk_response = message.register_pk_response
  1732. ? RegisterPkResponse.toJSON(message.register_pk_response)
  1733. : undefined);
  1734. message.software_update !== undefined &&
  1735. (obj.software_update = message.software_update ? SoftwareUpdate.toJSON(message.software_update) : undefined);
  1736. message.request_relay !== undefined &&
  1737. (obj.request_relay = message.request_relay ? RequestRelay.toJSON(message.request_relay) : undefined);
  1738. message.relay_response !== undefined &&
  1739. (obj.relay_response = message.relay_response ? RelayResponse.toJSON(message.relay_response) : undefined);
  1740. message.test_nat_request !== undefined &&
  1741. (obj.test_nat_request = message.test_nat_request ? TestNatRequest.toJSON(message.test_nat_request) : undefined);
  1742. message.test_nat_response !== undefined &&
  1743. (obj.test_nat_response = message.test_nat_response
  1744. ? TestNatResponse.toJSON(message.test_nat_response)
  1745. : undefined);
  1746. message.peer_discovery !== undefined &&
  1747. (obj.peer_discovery = message.peer_discovery ? PeerDiscovery.toJSON(message.peer_discovery) : undefined);
  1748. return obj;
  1749. },
  1750. create<I extends Exact<DeepPartial<RendezvousMessage>, I>>(base?: I): RendezvousMessage {
  1751. return RendezvousMessage.fromPartial(base ?? {});
  1752. },
  1753. fromPartial<I extends Exact<DeepPartial<RendezvousMessage>, I>>(object: I): RendezvousMessage {
  1754. const message = createBaseRendezvousMessage();
  1755. message.register_peer = (object.register_peer !== undefined && object.register_peer !== null)
  1756. ? RegisterPeer.fromPartial(object.register_peer)
  1757. : undefined;
  1758. message.register_peer_response =
  1759. (object.register_peer_response !== undefined && object.register_peer_response !== null)
  1760. ? RegisterPeerResponse.fromPartial(object.register_peer_response)
  1761. : undefined;
  1762. message.punch_hole_request = (object.punch_hole_request !== undefined && object.punch_hole_request !== null)
  1763. ? PunchHoleRequest.fromPartial(object.punch_hole_request)
  1764. : undefined;
  1765. message.punch_hole = (object.punch_hole !== undefined && object.punch_hole !== null)
  1766. ? PunchHole.fromPartial(object.punch_hole)
  1767. : undefined;
  1768. message.punch_hole_sent = (object.punch_hole_sent !== undefined && object.punch_hole_sent !== null)
  1769. ? PunchHoleSent.fromPartial(object.punch_hole_sent)
  1770. : undefined;
  1771. message.punch_hole_response = (object.punch_hole_response !== undefined && object.punch_hole_response !== null)
  1772. ? PunchHoleResponse.fromPartial(object.punch_hole_response)
  1773. : undefined;
  1774. message.fetch_local_addr = (object.fetch_local_addr !== undefined && object.fetch_local_addr !== null)
  1775. ? FetchLocalAddr.fromPartial(object.fetch_local_addr)
  1776. : undefined;
  1777. message.local_addr = (object.local_addr !== undefined && object.local_addr !== null)
  1778. ? LocalAddr.fromPartial(object.local_addr)
  1779. : undefined;
  1780. message.configure_update = (object.configure_update !== undefined && object.configure_update !== null)
  1781. ? ConfigUpdate.fromPartial(object.configure_update)
  1782. : undefined;
  1783. message.register_pk = (object.register_pk !== undefined && object.register_pk !== null)
  1784. ? RegisterPk.fromPartial(object.register_pk)
  1785. : undefined;
  1786. message.register_pk_response = (object.register_pk_response !== undefined && object.register_pk_response !== null)
  1787. ? RegisterPkResponse.fromPartial(object.register_pk_response)
  1788. : undefined;
  1789. message.software_update = (object.software_update !== undefined && object.software_update !== null)
  1790. ? SoftwareUpdate.fromPartial(object.software_update)
  1791. : undefined;
  1792. message.request_relay = (object.request_relay !== undefined && object.request_relay !== null)
  1793. ? RequestRelay.fromPartial(object.request_relay)
  1794. : undefined;
  1795. message.relay_response = (object.relay_response !== undefined && object.relay_response !== null)
  1796. ? RelayResponse.fromPartial(object.relay_response)
  1797. : undefined;
  1798. message.test_nat_request = (object.test_nat_request !== undefined && object.test_nat_request !== null)
  1799. ? TestNatRequest.fromPartial(object.test_nat_request)
  1800. : undefined;
  1801. message.test_nat_response = (object.test_nat_response !== undefined && object.test_nat_response !== null)
  1802. ? TestNatResponse.fromPartial(object.test_nat_response)
  1803. : undefined;
  1804. message.peer_discovery = (object.peer_discovery !== undefined && object.peer_discovery !== null)
  1805. ? PeerDiscovery.fromPartial(object.peer_discovery)
  1806. : undefined;
  1807. return message;
  1808. },
  1809. };
  1810. declare var self: any | undefined;
  1811. declare var window: any | undefined;
  1812. declare var global: any | undefined;
  1813. var tsProtoGlobalThis: any = (() => {
  1814. if (typeof globalThis !== "undefined") {
  1815. return globalThis;
  1816. }
  1817. if (typeof self !== "undefined") {
  1818. return self;
  1819. }
  1820. if (typeof window !== "undefined") {
  1821. return window;
  1822. }
  1823. if (typeof global !== "undefined") {
  1824. return global;
  1825. }
  1826. throw "Unable to locate global object";
  1827. })();
  1828. function bytesFromBase64(b64: string): Uint8Array {
  1829. if (tsProtoGlobalThis.Buffer) {
  1830. return Uint8Array.from(tsProtoGlobalThis.Buffer.from(b64, "base64"));
  1831. } else {
  1832. const bin = tsProtoGlobalThis.atob(b64);
  1833. const arr = new Uint8Array(bin.length);
  1834. for (let i = 0; i < bin.length; ++i) {
  1835. arr[i] = bin.charCodeAt(i);
  1836. }
  1837. return arr;
  1838. }
  1839. }
  1840. function base64FromBytes(arr: Uint8Array): string {
  1841. if (tsProtoGlobalThis.Buffer) {
  1842. return tsProtoGlobalThis.Buffer.from(arr).toString("base64");
  1843. } else {
  1844. const bin: string[] = [];
  1845. arr.forEach((byte) => {
  1846. bin.push(String.fromCharCode(byte));
  1847. });
  1848. return tsProtoGlobalThis.btoa(bin.join(""));
  1849. }
  1850. }
  1851. type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
  1852. export type DeepPartial<T> = T extends Builtin ? T
  1853. : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>
  1854. : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }
  1855. : Partial<T>;
  1856. type KeysOfUnion<T> = T extends T ? keyof T : never;
  1857. export type Exact<P, I extends P> = P extends Builtin ? P
  1858. : P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };
  1859. function isSet(value: any): boolean {
  1860. return value !== null && value !== undefined;
  1861. }