protobuf definitions for hyper-real-time chat

compile lrc 1.0 for ts

+10
.gitignore
··· 1 + node_modules/ 2 + dist/ 3 + *.log 4 + npm-debug.log* 5 + 6 + .DS_Store 7 + Thumbs.db 8 + *.swp 9 + .idea/ 10 + .vscode/
+2
.npmignore
··· 1 + gen/go/ 2 + go.*
+56
README.md
··· 1 + # @rachel-mp4/lrcproto 2 + 3 + This repository defines the LRC protocol message schema using Protocol Buffers and provides generated code for both **TypeScript** and **Go**. 4 + 5 + ## Installation 6 + 7 + ### TypeScript 8 + 9 + ```bash 10 + npm install @rachel-mp4/lrcproto 11 + ``` 12 + 13 + ### Go 14 + 15 + ```go 16 + import "github.com/rachel.mp4/lrcproto/gen/go" 17 + ``` 18 + 19 + ## Schema 20 + 21 + When implemented in a websocket, LRC communication occurs by sending **Events**, which in LRC 1.0 can be of 14 types. Their semantics may differ slightly if they are sent from client -> server or server -> client 22 + 23 + ``` 24 + Ping #Requests a Pong 25 + 26 + Pong #Response to a Ping 27 + 28 + Init #Initializes my message (client -> server) 29 + #or declares that a message was initialized (server -> client) 30 + Pub #Publishes my message (client -> server) 31 + #or declares that a message was published (server -> client) 32 + Insert #Inserts a string at a given byte offset 33 + 34 + Delete #Deletes the bytes between two offsets 35 + 36 + Mute #Requests the server stop relaying events from a user 37 + 38 + Unmute #Requests the server start relaying events from a user 39 + 40 + Set #Sets my metadata 41 + 42 + Get #Requests the included fields from the server (client -> server) 43 + #or provides it to the client (server -> client) 44 + Kick #Requests to kick a user 45 + 46 + Hug #Hugs a user 47 + 48 + Ban #Requests to ban a user 49 + 50 + Unban #Requests to unban a user 51 + ``` 52 + 53 + The LRC protocol does not inherently determine how Mute, Unmute, Kick, Ban and Unban should be implemented. ExternalID and Secret fields allow for some form of verification of identity, which can occur outside of the protocol. 54 + 55 + ## License 56 + MIT
+1278
gen/ts/lrc.ts
··· 1 + // @generated by protobuf-ts 2.10.0 2 + // @generated from protobuf file "lrc.proto" (syntax proto3) 3 + // tslint:disable 4 + import type { BinaryWriteOptions } from "@protobuf-ts/runtime"; 5 + import type { IBinaryWriter } from "@protobuf-ts/runtime"; 6 + import { WireType } from "@protobuf-ts/runtime"; 7 + import type { BinaryReadOptions } from "@protobuf-ts/runtime"; 8 + import type { IBinaryReader } from "@protobuf-ts/runtime"; 9 + import { UnknownFieldHandler } from "@protobuf-ts/runtime"; 10 + import type { PartialMessage } from "@protobuf-ts/runtime"; 11 + import { reflectionMergePartial } from "@protobuf-ts/runtime"; 12 + import { MessageType } from "@protobuf-ts/runtime"; 13 + /** 14 + * @generated from protobuf message Event 15 + */ 16 + export interface Event { 17 + /** 18 + * @generated from protobuf oneof: msg 19 + */ 20 + msg: { 21 + oneofKind: "ping"; 22 + /** 23 + * @generated from protobuf field: Ping ping = 1; 24 + */ 25 + ping: Ping; 26 + } | { 27 + oneofKind: "pong"; 28 + /** 29 + * @generated from protobuf field: Pong pong = 2; 30 + */ 31 + pong: Pong; 32 + } | { 33 + oneofKind: "init"; 34 + /** 35 + * @generated from protobuf field: Init init = 3; 36 + */ 37 + init: Init; 38 + } | { 39 + oneofKind: "pub"; 40 + /** 41 + * @generated from protobuf field: Pub pub = 4; 42 + */ 43 + pub: Pub; 44 + } | { 45 + oneofKind: "insert"; 46 + /** 47 + * @generated from protobuf field: Insert insert = 5; 48 + */ 49 + insert: Insert; 50 + } | { 51 + oneofKind: "delete"; 52 + /** 53 + * @generated from protobuf field: Delete delete = 6; 54 + */ 55 + delete: Delete; 56 + } | { 57 + oneofKind: "mute"; 58 + /** 59 + * @generated from protobuf field: Mute mute = 7; 60 + */ 61 + mute: Mute; 62 + } | { 63 + oneofKind: "unmute"; 64 + /** 65 + * @generated from protobuf field: Unmute unmute = 8; 66 + */ 67 + unmute: Unmute; 68 + } | { 69 + oneofKind: "set"; 70 + /** 71 + * @generated from protobuf field: Set set = 9; 72 + */ 73 + set: Set; 74 + } | { 75 + oneofKind: "get"; 76 + /** 77 + * @generated from protobuf field: Get get = 10; 78 + */ 79 + get: Get; 80 + } | { 81 + oneofKind: "kick"; 82 + /** 83 + * @generated from protobuf field: Kick kick = 11; 84 + */ 85 + kick: Kick; 86 + } | { 87 + oneofKind: "hug"; 88 + /** 89 + * @generated from protobuf field: Hug hug = 12; 90 + */ 91 + hug: Hug; 92 + } | { 93 + oneofKind: "ban"; 94 + /** 95 + * @generated from protobuf field: Ban ban = 13; 96 + */ 97 + ban: Ban; 98 + } | { 99 + oneofKind: "unban"; 100 + /** 101 + * @generated from protobuf field: Unban unban = 14; 102 + */ 103 + unban: Unban; 104 + } | { 105 + oneofKind: undefined; 106 + }; 107 + } 108 + /** 109 + * @generated from protobuf message Ping 110 + */ 111 + export interface Ping { 112 + } 113 + /** 114 + * @generated from protobuf message Pong 115 + */ 116 + export interface Pong { 117 + } 118 + /** 119 + * @generated from protobuf message Init 120 + */ 121 + export interface Init { 122 + /** 123 + * @generated from protobuf field: uint32 id = 1; 124 + */ 125 + id: number; 126 + /** 127 + * @generated from protobuf field: string nick = 2; 128 + */ 129 + nick: string; 130 + /** 131 + * @generated from protobuf field: string externalID = 3; 132 + */ 133 + externalID: string; 134 + /** 135 + * @generated from protobuf field: uint32 color = 4; 136 + */ 137 + color: number; 138 + /** 139 + * @generated from protobuf field: bool echoed = 5; 140 + */ 141 + echoed: boolean; 142 + } 143 + /** 144 + * @generated from protobuf message Pub 145 + */ 146 + export interface Pub { 147 + /** 148 + * @generated from protobuf field: uint32 id = 1; 149 + */ 150 + id: number; 151 + } 152 + /** 153 + * @generated from protobuf message Insert 154 + */ 155 + export interface Insert { 156 + /** 157 + * @generated from protobuf field: uint32 id = 1; 158 + */ 159 + id: number; 160 + /** 161 + * @generated from protobuf field: string body = 2; 162 + */ 163 + body: string; 164 + /** 165 + * @generated from protobuf field: uint32 byteIndex = 3; 166 + */ 167 + byteIndex: number; 168 + } 169 + /** 170 + * @generated from protobuf message Delete 171 + */ 172 + export interface Delete { 173 + /** 174 + * @generated from protobuf field: uint32 id = 1; 175 + */ 176 + id: number; 177 + /** 178 + * @generated from protobuf field: uint32 byteStart = 2; 179 + */ 180 + byteStart: number; 181 + /** 182 + * @generated from protobuf field: uint32 byteEnd = 3; 183 + */ 184 + byteEnd: number; 185 + } 186 + /** 187 + * @generated from protobuf message Mute 188 + */ 189 + export interface Mute { 190 + /** 191 + * @generated from protobuf field: uint32 id = 1; 192 + */ 193 + id: number; 194 + } 195 + /** 196 + * @generated from protobuf message Unmute 197 + */ 198 + export interface Unmute { 199 + /** 200 + * @generated from protobuf field: uint32 id = 1; 201 + */ 202 + id: number; 203 + } 204 + /** 205 + * @generated from protobuf message Set 206 + */ 207 + export interface Set { 208 + /** 209 + * @generated from protobuf field: string nick = 1; 210 + */ 211 + nick: string; 212 + /** 213 + * @generated from protobuf field: string externalID = 2; 214 + */ 215 + externalID: string; 216 + /** 217 + * @generated from protobuf field: uint32 color = 3; 218 + */ 219 + color: number; 220 + } 221 + /** 222 + * @generated from protobuf message Get 223 + */ 224 + export interface Get { 225 + /** 226 + * @generated from protobuf field: string topic = 1; 227 + */ 228 + topic: string; 229 + /** 230 + * @generated from protobuf field: uint32 connected = 2; 231 + */ 232 + connected: number; 233 + } 234 + /** 235 + * @generated from protobuf message Sudo 236 + */ 237 + export interface Sudo { 238 + /** 239 + * @generated from protobuf field: string externalID = 1; 240 + */ 241 + externalID: string; 242 + /** 243 + * @generated from protobuf field: string secret = 2; 244 + */ 245 + secret: string; 246 + } 247 + /** 248 + * @generated from protobuf message Kick 249 + */ 250 + export interface Kick { 251 + /** 252 + * @generated from protobuf field: Sudo privileges = 1; 253 + */ 254 + privileges?: Sudo; 255 + /** 256 + * @generated from protobuf field: uint32 id = 2; 257 + */ 258 + id: number; 259 + } 260 + /** 261 + * @generated from protobuf message Hug 262 + */ 263 + export interface Hug { 264 + /** 265 + * @generated from protobuf field: uint32 id = 1; 266 + */ 267 + id: number; 268 + } 269 + /** 270 + * @generated from protobuf message Ban 271 + */ 272 + export interface Ban { 273 + /** 274 + * @generated from protobuf field: Sudo privileges = 1; 275 + */ 276 + privileges?: Sudo; 277 + /** 278 + * @generated from protobuf field: uint32 id = 2; 279 + */ 280 + id: number; 281 + } 282 + /** 283 + * @generated from protobuf message Unban 284 + */ 285 + export interface Unban { 286 + /** 287 + * @generated from protobuf field: Sudo privileges = 1; 288 + */ 289 + privileges?: Sudo; 290 + /** 291 + * @generated from protobuf field: uint32 id = 2; 292 + */ 293 + id: number; 294 + } 295 + // @generated message type with reflection information, may provide speed optimized methods 296 + class Event$Type extends MessageType<Event> { 297 + constructor() { 298 + super("Event", [ 299 + { no: 1, name: "ping", kind: "message", oneof: "msg", T: () => Ping }, 300 + { no: 2, name: "pong", kind: "message", oneof: "msg", T: () => Pong }, 301 + { no: 3, name: "init", kind: "message", oneof: "msg", T: () => Init }, 302 + { no: 4, name: "pub", kind: "message", oneof: "msg", T: () => Pub }, 303 + { no: 5, name: "insert", kind: "message", oneof: "msg", T: () => Insert }, 304 + { no: 6, name: "delete", kind: "message", oneof: "msg", T: () => Delete }, 305 + { no: 7, name: "mute", kind: "message", oneof: "msg", T: () => Mute }, 306 + { no: 8, name: "unmute", kind: "message", oneof: "msg", T: () => Unmute }, 307 + { no: 9, name: "set", kind: "message", oneof: "msg", T: () => Set }, 308 + { no: 10, name: "get", kind: "message", oneof: "msg", T: () => Get }, 309 + { no: 11, name: "kick", kind: "message", oneof: "msg", T: () => Kick }, 310 + { no: 12, name: "hug", kind: "message", oneof: "msg", T: () => Hug }, 311 + { no: 13, name: "ban", kind: "message", oneof: "msg", T: () => Ban }, 312 + { no: 14, name: "unban", kind: "message", oneof: "msg", T: () => Unban } 313 + ]); 314 + } 315 + create(value?: PartialMessage<Event>): Event { 316 + const message = globalThis.Object.create((this.messagePrototype!)); 317 + message.msg = { oneofKind: undefined }; 318 + if (value !== undefined) 319 + reflectionMergePartial<Event>(this, message, value); 320 + return message; 321 + } 322 + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Event): Event { 323 + let message = target ?? this.create(), end = reader.pos + length; 324 + while (reader.pos < end) { 325 + let [fieldNo, wireType] = reader.tag(); 326 + switch (fieldNo) { 327 + case /* Ping ping */ 1: 328 + message.msg = { 329 + oneofKind: "ping", 330 + ping: Ping.internalBinaryRead(reader, reader.uint32(), options, (message.msg as any).ping) 331 + }; 332 + break; 333 + case /* Pong pong */ 2: 334 + message.msg = { 335 + oneofKind: "pong", 336 + pong: Pong.internalBinaryRead(reader, reader.uint32(), options, (message.msg as any).pong) 337 + }; 338 + break; 339 + case /* Init init */ 3: 340 + message.msg = { 341 + oneofKind: "init", 342 + init: Init.internalBinaryRead(reader, reader.uint32(), options, (message.msg as any).init) 343 + }; 344 + break; 345 + case /* Pub pub */ 4: 346 + message.msg = { 347 + oneofKind: "pub", 348 + pub: Pub.internalBinaryRead(reader, reader.uint32(), options, (message.msg as any).pub) 349 + }; 350 + break; 351 + case /* Insert insert */ 5: 352 + message.msg = { 353 + oneofKind: "insert", 354 + insert: Insert.internalBinaryRead(reader, reader.uint32(), options, (message.msg as any).insert) 355 + }; 356 + break; 357 + case /* Delete delete */ 6: 358 + message.msg = { 359 + oneofKind: "delete", 360 + delete: Delete.internalBinaryRead(reader, reader.uint32(), options, (message.msg as any).delete) 361 + }; 362 + break; 363 + case /* Mute mute */ 7: 364 + message.msg = { 365 + oneofKind: "mute", 366 + mute: Mute.internalBinaryRead(reader, reader.uint32(), options, (message.msg as any).mute) 367 + }; 368 + break; 369 + case /* Unmute unmute */ 8: 370 + message.msg = { 371 + oneofKind: "unmute", 372 + unmute: Unmute.internalBinaryRead(reader, reader.uint32(), options, (message.msg as any).unmute) 373 + }; 374 + break; 375 + case /* Set set */ 9: 376 + message.msg = { 377 + oneofKind: "set", 378 + set: Set.internalBinaryRead(reader, reader.uint32(), options, (message.msg as any).set) 379 + }; 380 + break; 381 + case /* Get get */ 10: 382 + message.msg = { 383 + oneofKind: "get", 384 + get: Get.internalBinaryRead(reader, reader.uint32(), options, (message.msg as any).get) 385 + }; 386 + break; 387 + case /* Kick kick */ 11: 388 + message.msg = { 389 + oneofKind: "kick", 390 + kick: Kick.internalBinaryRead(reader, reader.uint32(), options, (message.msg as any).kick) 391 + }; 392 + break; 393 + case /* Hug hug */ 12: 394 + message.msg = { 395 + oneofKind: "hug", 396 + hug: Hug.internalBinaryRead(reader, reader.uint32(), options, (message.msg as any).hug) 397 + }; 398 + break; 399 + case /* Ban ban */ 13: 400 + message.msg = { 401 + oneofKind: "ban", 402 + ban: Ban.internalBinaryRead(reader, reader.uint32(), options, (message.msg as any).ban) 403 + }; 404 + break; 405 + case /* Unban unban */ 14: 406 + message.msg = { 407 + oneofKind: "unban", 408 + unban: Unban.internalBinaryRead(reader, reader.uint32(), options, (message.msg as any).unban) 409 + }; 410 + break; 411 + default: 412 + let u = options.readUnknownField; 413 + if (u === "throw") 414 + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); 415 + let d = reader.skip(wireType); 416 + if (u !== false) 417 + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); 418 + } 419 + } 420 + return message; 421 + } 422 + internalBinaryWrite(message: Event, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { 423 + /* Ping ping = 1; */ 424 + if (message.msg.oneofKind === "ping") 425 + Ping.internalBinaryWrite(message.msg.ping, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); 426 + /* Pong pong = 2; */ 427 + if (message.msg.oneofKind === "pong") 428 + Pong.internalBinaryWrite(message.msg.pong, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); 429 + /* Init init = 3; */ 430 + if (message.msg.oneofKind === "init") 431 + Init.internalBinaryWrite(message.msg.init, writer.tag(3, WireType.LengthDelimited).fork(), options).join(); 432 + /* Pub pub = 4; */ 433 + if (message.msg.oneofKind === "pub") 434 + Pub.internalBinaryWrite(message.msg.pub, writer.tag(4, WireType.LengthDelimited).fork(), options).join(); 435 + /* Insert insert = 5; */ 436 + if (message.msg.oneofKind === "insert") 437 + Insert.internalBinaryWrite(message.msg.insert, writer.tag(5, WireType.LengthDelimited).fork(), options).join(); 438 + /* Delete delete = 6; */ 439 + if (message.msg.oneofKind === "delete") 440 + Delete.internalBinaryWrite(message.msg.delete, writer.tag(6, WireType.LengthDelimited).fork(), options).join(); 441 + /* Mute mute = 7; */ 442 + if (message.msg.oneofKind === "mute") 443 + Mute.internalBinaryWrite(message.msg.mute, writer.tag(7, WireType.LengthDelimited).fork(), options).join(); 444 + /* Unmute unmute = 8; */ 445 + if (message.msg.oneofKind === "unmute") 446 + Unmute.internalBinaryWrite(message.msg.unmute, writer.tag(8, WireType.LengthDelimited).fork(), options).join(); 447 + /* Set set = 9; */ 448 + if (message.msg.oneofKind === "set") 449 + Set.internalBinaryWrite(message.msg.set, writer.tag(9, WireType.LengthDelimited).fork(), options).join(); 450 + /* Get get = 10; */ 451 + if (message.msg.oneofKind === "get") 452 + Get.internalBinaryWrite(message.msg.get, writer.tag(10, WireType.LengthDelimited).fork(), options).join(); 453 + /* Kick kick = 11; */ 454 + if (message.msg.oneofKind === "kick") 455 + Kick.internalBinaryWrite(message.msg.kick, writer.tag(11, WireType.LengthDelimited).fork(), options).join(); 456 + /* Hug hug = 12; */ 457 + if (message.msg.oneofKind === "hug") 458 + Hug.internalBinaryWrite(message.msg.hug, writer.tag(12, WireType.LengthDelimited).fork(), options).join(); 459 + /* Ban ban = 13; */ 460 + if (message.msg.oneofKind === "ban") 461 + Ban.internalBinaryWrite(message.msg.ban, writer.tag(13, WireType.LengthDelimited).fork(), options).join(); 462 + /* Unban unban = 14; */ 463 + if (message.msg.oneofKind === "unban") 464 + Unban.internalBinaryWrite(message.msg.unban, writer.tag(14, WireType.LengthDelimited).fork(), options).join(); 465 + let u = options.writeUnknownFields; 466 + if (u !== false) 467 + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); 468 + return writer; 469 + } 470 + } 471 + /** 472 + * @generated MessageType for protobuf message Event 473 + */ 474 + export const Event = new Event$Type(); 475 + // @generated message type with reflection information, may provide speed optimized methods 476 + class Ping$Type extends MessageType<Ping> { 477 + constructor() { 478 + super("Ping", []); 479 + } 480 + create(value?: PartialMessage<Ping>): Ping { 481 + const message = globalThis.Object.create((this.messagePrototype!)); 482 + if (value !== undefined) 483 + reflectionMergePartial<Ping>(this, message, value); 484 + return message; 485 + } 486 + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Ping): Ping { 487 + let message = target ?? this.create(), end = reader.pos + length; 488 + while (reader.pos < end) { 489 + let [fieldNo, wireType] = reader.tag(); 490 + switch (fieldNo) { 491 + default: 492 + let u = options.readUnknownField; 493 + if (u === "throw") 494 + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); 495 + let d = reader.skip(wireType); 496 + if (u !== false) 497 + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); 498 + } 499 + } 500 + return message; 501 + } 502 + internalBinaryWrite(message: Ping, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { 503 + let u = options.writeUnknownFields; 504 + if (u !== false) 505 + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); 506 + return writer; 507 + } 508 + } 509 + /** 510 + * @generated MessageType for protobuf message Ping 511 + */ 512 + export const Ping = new Ping$Type(); 513 + // @generated message type with reflection information, may provide speed optimized methods 514 + class Pong$Type extends MessageType<Pong> { 515 + constructor() { 516 + super("Pong", []); 517 + } 518 + create(value?: PartialMessage<Pong>): Pong { 519 + const message = globalThis.Object.create((this.messagePrototype!)); 520 + if (value !== undefined) 521 + reflectionMergePartial<Pong>(this, message, value); 522 + return message; 523 + } 524 + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Pong): Pong { 525 + let message = target ?? this.create(), end = reader.pos + length; 526 + while (reader.pos < end) { 527 + let [fieldNo, wireType] = reader.tag(); 528 + switch (fieldNo) { 529 + default: 530 + let u = options.readUnknownField; 531 + if (u === "throw") 532 + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); 533 + let d = reader.skip(wireType); 534 + if (u !== false) 535 + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); 536 + } 537 + } 538 + return message; 539 + } 540 + internalBinaryWrite(message: Pong, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { 541 + let u = options.writeUnknownFields; 542 + if (u !== false) 543 + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); 544 + return writer; 545 + } 546 + } 547 + /** 548 + * @generated MessageType for protobuf message Pong 549 + */ 550 + export const Pong = new Pong$Type(); 551 + // @generated message type with reflection information, may provide speed optimized methods 552 + class Init$Type extends MessageType<Init> { 553 + constructor() { 554 + super("Init", [ 555 + { no: 1, name: "id", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, 556 + { no: 2, name: "nick", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 557 + { no: 3, name: "externalID", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 558 + { no: 4, name: "color", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, 559 + { no: 5, name: "echoed", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } 560 + ]); 561 + } 562 + create(value?: PartialMessage<Init>): Init { 563 + const message = globalThis.Object.create((this.messagePrototype!)); 564 + message.id = 0; 565 + message.nick = ""; 566 + message.externalID = ""; 567 + message.color = 0; 568 + message.echoed = false; 569 + if (value !== undefined) 570 + reflectionMergePartial<Init>(this, message, value); 571 + return message; 572 + } 573 + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Init): Init { 574 + let message = target ?? this.create(), end = reader.pos + length; 575 + while (reader.pos < end) { 576 + let [fieldNo, wireType] = reader.tag(); 577 + switch (fieldNo) { 578 + case /* uint32 id */ 1: 579 + message.id = reader.uint32(); 580 + break; 581 + case /* string nick */ 2: 582 + message.nick = reader.string(); 583 + break; 584 + case /* string externalID */ 3: 585 + message.externalID = reader.string(); 586 + break; 587 + case /* uint32 color */ 4: 588 + message.color = reader.uint32(); 589 + break; 590 + case /* bool echoed */ 5: 591 + message.echoed = reader.bool(); 592 + break; 593 + default: 594 + let u = options.readUnknownField; 595 + if (u === "throw") 596 + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); 597 + let d = reader.skip(wireType); 598 + if (u !== false) 599 + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); 600 + } 601 + } 602 + return message; 603 + } 604 + internalBinaryWrite(message: Init, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { 605 + /* uint32 id = 1; */ 606 + if (message.id !== 0) 607 + writer.tag(1, WireType.Varint).uint32(message.id); 608 + /* string nick = 2; */ 609 + if (message.nick !== "") 610 + writer.tag(2, WireType.LengthDelimited).string(message.nick); 611 + /* string externalID = 3; */ 612 + if (message.externalID !== "") 613 + writer.tag(3, WireType.LengthDelimited).string(message.externalID); 614 + /* uint32 color = 4; */ 615 + if (message.color !== 0) 616 + writer.tag(4, WireType.Varint).uint32(message.color); 617 + /* bool echoed = 5; */ 618 + if (message.echoed !== false) 619 + writer.tag(5, WireType.Varint).bool(message.echoed); 620 + let u = options.writeUnknownFields; 621 + if (u !== false) 622 + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); 623 + return writer; 624 + } 625 + } 626 + /** 627 + * @generated MessageType for protobuf message Init 628 + */ 629 + export const Init = new Init$Type(); 630 + // @generated message type with reflection information, may provide speed optimized methods 631 + class Pub$Type extends MessageType<Pub> { 632 + constructor() { 633 + super("Pub", [ 634 + { no: 1, name: "id", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } 635 + ]); 636 + } 637 + create(value?: PartialMessage<Pub>): Pub { 638 + const message = globalThis.Object.create((this.messagePrototype!)); 639 + message.id = 0; 640 + if (value !== undefined) 641 + reflectionMergePartial<Pub>(this, message, value); 642 + return message; 643 + } 644 + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Pub): Pub { 645 + let message = target ?? this.create(), end = reader.pos + length; 646 + while (reader.pos < end) { 647 + let [fieldNo, wireType] = reader.tag(); 648 + switch (fieldNo) { 649 + case /* uint32 id */ 1: 650 + message.id = reader.uint32(); 651 + break; 652 + default: 653 + let u = options.readUnknownField; 654 + if (u === "throw") 655 + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); 656 + let d = reader.skip(wireType); 657 + if (u !== false) 658 + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); 659 + } 660 + } 661 + return message; 662 + } 663 + internalBinaryWrite(message: Pub, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { 664 + /* uint32 id = 1; */ 665 + if (message.id !== 0) 666 + writer.tag(1, WireType.Varint).uint32(message.id); 667 + let u = options.writeUnknownFields; 668 + if (u !== false) 669 + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); 670 + return writer; 671 + } 672 + } 673 + /** 674 + * @generated MessageType for protobuf message Pub 675 + */ 676 + export const Pub = new Pub$Type(); 677 + // @generated message type with reflection information, may provide speed optimized methods 678 + class Insert$Type extends MessageType<Insert> { 679 + constructor() { 680 + super("Insert", [ 681 + { no: 1, name: "id", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, 682 + { no: 2, name: "body", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 683 + { no: 3, name: "byteIndex", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } 684 + ]); 685 + } 686 + create(value?: PartialMessage<Insert>): Insert { 687 + const message = globalThis.Object.create((this.messagePrototype!)); 688 + message.id = 0; 689 + message.body = ""; 690 + message.byteIndex = 0; 691 + if (value !== undefined) 692 + reflectionMergePartial<Insert>(this, message, value); 693 + return message; 694 + } 695 + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Insert): Insert { 696 + let message = target ?? this.create(), end = reader.pos + length; 697 + while (reader.pos < end) { 698 + let [fieldNo, wireType] = reader.tag(); 699 + switch (fieldNo) { 700 + case /* uint32 id */ 1: 701 + message.id = reader.uint32(); 702 + break; 703 + case /* string body */ 2: 704 + message.body = reader.string(); 705 + break; 706 + case /* uint32 byteIndex */ 3: 707 + message.byteIndex = reader.uint32(); 708 + break; 709 + default: 710 + let u = options.readUnknownField; 711 + if (u === "throw") 712 + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); 713 + let d = reader.skip(wireType); 714 + if (u !== false) 715 + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); 716 + } 717 + } 718 + return message; 719 + } 720 + internalBinaryWrite(message: Insert, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { 721 + /* uint32 id = 1; */ 722 + if (message.id !== 0) 723 + writer.tag(1, WireType.Varint).uint32(message.id); 724 + /* string body = 2; */ 725 + if (message.body !== "") 726 + writer.tag(2, WireType.LengthDelimited).string(message.body); 727 + /* uint32 byteIndex = 3; */ 728 + if (message.byteIndex !== 0) 729 + writer.tag(3, WireType.Varint).uint32(message.byteIndex); 730 + let u = options.writeUnknownFields; 731 + if (u !== false) 732 + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); 733 + return writer; 734 + } 735 + } 736 + /** 737 + * @generated MessageType for protobuf message Insert 738 + */ 739 + export const Insert = new Insert$Type(); 740 + // @generated message type with reflection information, may provide speed optimized methods 741 + class Delete$Type extends MessageType<Delete> { 742 + constructor() { 743 + super("Delete", [ 744 + { no: 1, name: "id", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, 745 + { no: 2, name: "byteStart", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }, 746 + { no: 3, name: "byteEnd", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } 747 + ]); 748 + } 749 + create(value?: PartialMessage<Delete>): Delete { 750 + const message = globalThis.Object.create((this.messagePrototype!)); 751 + message.id = 0; 752 + message.byteStart = 0; 753 + message.byteEnd = 0; 754 + if (value !== undefined) 755 + reflectionMergePartial<Delete>(this, message, value); 756 + return message; 757 + } 758 + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Delete): Delete { 759 + let message = target ?? this.create(), end = reader.pos + length; 760 + while (reader.pos < end) { 761 + let [fieldNo, wireType] = reader.tag(); 762 + switch (fieldNo) { 763 + case /* uint32 id */ 1: 764 + message.id = reader.uint32(); 765 + break; 766 + case /* uint32 byteStart */ 2: 767 + message.byteStart = reader.uint32(); 768 + break; 769 + case /* uint32 byteEnd */ 3: 770 + message.byteEnd = reader.uint32(); 771 + break; 772 + default: 773 + let u = options.readUnknownField; 774 + if (u === "throw") 775 + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); 776 + let d = reader.skip(wireType); 777 + if (u !== false) 778 + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); 779 + } 780 + } 781 + return message; 782 + } 783 + internalBinaryWrite(message: Delete, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { 784 + /* uint32 id = 1; */ 785 + if (message.id !== 0) 786 + writer.tag(1, WireType.Varint).uint32(message.id); 787 + /* uint32 byteStart = 2; */ 788 + if (message.byteStart !== 0) 789 + writer.tag(2, WireType.Varint).uint32(message.byteStart); 790 + /* uint32 byteEnd = 3; */ 791 + if (message.byteEnd !== 0) 792 + writer.tag(3, WireType.Varint).uint32(message.byteEnd); 793 + let u = options.writeUnknownFields; 794 + if (u !== false) 795 + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); 796 + return writer; 797 + } 798 + } 799 + /** 800 + * @generated MessageType for protobuf message Delete 801 + */ 802 + export const Delete = new Delete$Type(); 803 + // @generated message type with reflection information, may provide speed optimized methods 804 + class Mute$Type extends MessageType<Mute> { 805 + constructor() { 806 + super("Mute", [ 807 + { no: 1, name: "id", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } 808 + ]); 809 + } 810 + create(value?: PartialMessage<Mute>): Mute { 811 + const message = globalThis.Object.create((this.messagePrototype!)); 812 + message.id = 0; 813 + if (value !== undefined) 814 + reflectionMergePartial<Mute>(this, message, value); 815 + return message; 816 + } 817 + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Mute): Mute { 818 + let message = target ?? this.create(), end = reader.pos + length; 819 + while (reader.pos < end) { 820 + let [fieldNo, wireType] = reader.tag(); 821 + switch (fieldNo) { 822 + case /* uint32 id */ 1: 823 + message.id = reader.uint32(); 824 + break; 825 + default: 826 + let u = options.readUnknownField; 827 + if (u === "throw") 828 + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); 829 + let d = reader.skip(wireType); 830 + if (u !== false) 831 + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); 832 + } 833 + } 834 + return message; 835 + } 836 + internalBinaryWrite(message: Mute, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { 837 + /* uint32 id = 1; */ 838 + if (message.id !== 0) 839 + writer.tag(1, WireType.Varint).uint32(message.id); 840 + let u = options.writeUnknownFields; 841 + if (u !== false) 842 + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); 843 + return writer; 844 + } 845 + } 846 + /** 847 + * @generated MessageType for protobuf message Mute 848 + */ 849 + export const Mute = new Mute$Type(); 850 + // @generated message type with reflection information, may provide speed optimized methods 851 + class Unmute$Type extends MessageType<Unmute> { 852 + constructor() { 853 + super("Unmute", [ 854 + { no: 1, name: "id", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } 855 + ]); 856 + } 857 + create(value?: PartialMessage<Unmute>): Unmute { 858 + const message = globalThis.Object.create((this.messagePrototype!)); 859 + message.id = 0; 860 + if (value !== undefined) 861 + reflectionMergePartial<Unmute>(this, message, value); 862 + return message; 863 + } 864 + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Unmute): Unmute { 865 + let message = target ?? this.create(), end = reader.pos + length; 866 + while (reader.pos < end) { 867 + let [fieldNo, wireType] = reader.tag(); 868 + switch (fieldNo) { 869 + case /* uint32 id */ 1: 870 + message.id = reader.uint32(); 871 + break; 872 + default: 873 + let u = options.readUnknownField; 874 + if (u === "throw") 875 + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); 876 + let d = reader.skip(wireType); 877 + if (u !== false) 878 + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); 879 + } 880 + } 881 + return message; 882 + } 883 + internalBinaryWrite(message: Unmute, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { 884 + /* uint32 id = 1; */ 885 + if (message.id !== 0) 886 + writer.tag(1, WireType.Varint).uint32(message.id); 887 + let u = options.writeUnknownFields; 888 + if (u !== false) 889 + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); 890 + return writer; 891 + } 892 + } 893 + /** 894 + * @generated MessageType for protobuf message Unmute 895 + */ 896 + export const Unmute = new Unmute$Type(); 897 + // @generated message type with reflection information, may provide speed optimized methods 898 + class Set$Type extends MessageType<Set> { 899 + constructor() { 900 + super("Set", [ 901 + { no: 1, name: "nick", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 902 + { no: 2, name: "externalID", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 903 + { no: 3, name: "color", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } 904 + ]); 905 + } 906 + create(value?: PartialMessage<Set>): Set { 907 + const message = globalThis.Object.create((this.messagePrototype!)); 908 + message.nick = ""; 909 + message.externalID = ""; 910 + message.color = 0; 911 + if (value !== undefined) 912 + reflectionMergePartial<Set>(this, message, value); 913 + return message; 914 + } 915 + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Set): Set { 916 + let message = target ?? this.create(), end = reader.pos + length; 917 + while (reader.pos < end) { 918 + let [fieldNo, wireType] = reader.tag(); 919 + switch (fieldNo) { 920 + case /* string nick */ 1: 921 + message.nick = reader.string(); 922 + break; 923 + case /* string externalID */ 2: 924 + message.externalID = reader.string(); 925 + break; 926 + case /* uint32 color */ 3: 927 + message.color = reader.uint32(); 928 + break; 929 + default: 930 + let u = options.readUnknownField; 931 + if (u === "throw") 932 + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); 933 + let d = reader.skip(wireType); 934 + if (u !== false) 935 + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); 936 + } 937 + } 938 + return message; 939 + } 940 + internalBinaryWrite(message: Set, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { 941 + /* string nick = 1; */ 942 + if (message.nick !== "") 943 + writer.tag(1, WireType.LengthDelimited).string(message.nick); 944 + /* string externalID = 2; */ 945 + if (message.externalID !== "") 946 + writer.tag(2, WireType.LengthDelimited).string(message.externalID); 947 + /* uint32 color = 3; */ 948 + if (message.color !== 0) 949 + writer.tag(3, WireType.Varint).uint32(message.color); 950 + let u = options.writeUnknownFields; 951 + if (u !== false) 952 + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); 953 + return writer; 954 + } 955 + } 956 + /** 957 + * @generated MessageType for protobuf message Set 958 + */ 959 + export const Set = new Set$Type(); 960 + // @generated message type with reflection information, may provide speed optimized methods 961 + class Get$Type extends MessageType<Get> { 962 + constructor() { 963 + super("Get", [ 964 + { no: 1, name: "topic", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 965 + { no: 2, name: "connected", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } 966 + ]); 967 + } 968 + create(value?: PartialMessage<Get>): Get { 969 + const message = globalThis.Object.create((this.messagePrototype!)); 970 + message.topic = ""; 971 + message.connected = 0; 972 + if (value !== undefined) 973 + reflectionMergePartial<Get>(this, message, value); 974 + return message; 975 + } 976 + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Get): Get { 977 + let message = target ?? this.create(), end = reader.pos + length; 978 + while (reader.pos < end) { 979 + let [fieldNo, wireType] = reader.tag(); 980 + switch (fieldNo) { 981 + case /* string topic */ 1: 982 + message.topic = reader.string(); 983 + break; 984 + case /* uint32 connected */ 2: 985 + message.connected = reader.uint32(); 986 + break; 987 + default: 988 + let u = options.readUnknownField; 989 + if (u === "throw") 990 + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); 991 + let d = reader.skip(wireType); 992 + if (u !== false) 993 + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); 994 + } 995 + } 996 + return message; 997 + } 998 + internalBinaryWrite(message: Get, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { 999 + /* string topic = 1; */ 1000 + if (message.topic !== "") 1001 + writer.tag(1, WireType.LengthDelimited).string(message.topic); 1002 + /* uint32 connected = 2; */ 1003 + if (message.connected !== 0) 1004 + writer.tag(2, WireType.Varint).uint32(message.connected); 1005 + let u = options.writeUnknownFields; 1006 + if (u !== false) 1007 + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); 1008 + return writer; 1009 + } 1010 + } 1011 + /** 1012 + * @generated MessageType for protobuf message Get 1013 + */ 1014 + export const Get = new Get$Type(); 1015 + // @generated message type with reflection information, may provide speed optimized methods 1016 + class Sudo$Type extends MessageType<Sudo> { 1017 + constructor() { 1018 + super("Sudo", [ 1019 + { no: 1, name: "externalID", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 1020 + { no: 2, name: "secret", kind: "scalar", T: 9 /*ScalarType.STRING*/ } 1021 + ]); 1022 + } 1023 + create(value?: PartialMessage<Sudo>): Sudo { 1024 + const message = globalThis.Object.create((this.messagePrototype!)); 1025 + message.externalID = ""; 1026 + message.secret = ""; 1027 + if (value !== undefined) 1028 + reflectionMergePartial<Sudo>(this, message, value); 1029 + return message; 1030 + } 1031 + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Sudo): Sudo { 1032 + let message = target ?? this.create(), end = reader.pos + length; 1033 + while (reader.pos < end) { 1034 + let [fieldNo, wireType] = reader.tag(); 1035 + switch (fieldNo) { 1036 + case /* string externalID */ 1: 1037 + message.externalID = reader.string(); 1038 + break; 1039 + case /* string secret */ 2: 1040 + message.secret = reader.string(); 1041 + break; 1042 + default: 1043 + let u = options.readUnknownField; 1044 + if (u === "throw") 1045 + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); 1046 + let d = reader.skip(wireType); 1047 + if (u !== false) 1048 + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); 1049 + } 1050 + } 1051 + return message; 1052 + } 1053 + internalBinaryWrite(message: Sudo, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { 1054 + /* string externalID = 1; */ 1055 + if (message.externalID !== "") 1056 + writer.tag(1, WireType.LengthDelimited).string(message.externalID); 1057 + /* string secret = 2; */ 1058 + if (message.secret !== "") 1059 + writer.tag(2, WireType.LengthDelimited).string(message.secret); 1060 + let u = options.writeUnknownFields; 1061 + if (u !== false) 1062 + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); 1063 + return writer; 1064 + } 1065 + } 1066 + /** 1067 + * @generated MessageType for protobuf message Sudo 1068 + */ 1069 + export const Sudo = new Sudo$Type(); 1070 + // @generated message type with reflection information, may provide speed optimized methods 1071 + class Kick$Type extends MessageType<Kick> { 1072 + constructor() { 1073 + super("Kick", [ 1074 + { no: 1, name: "privileges", kind: "message", T: () => Sudo }, 1075 + { no: 2, name: "id", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } 1076 + ]); 1077 + } 1078 + create(value?: PartialMessage<Kick>): Kick { 1079 + const message = globalThis.Object.create((this.messagePrototype!)); 1080 + message.id = 0; 1081 + if (value !== undefined) 1082 + reflectionMergePartial<Kick>(this, message, value); 1083 + return message; 1084 + } 1085 + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Kick): Kick { 1086 + let message = target ?? this.create(), end = reader.pos + length; 1087 + while (reader.pos < end) { 1088 + let [fieldNo, wireType] = reader.tag(); 1089 + switch (fieldNo) { 1090 + case /* Sudo privileges */ 1: 1091 + message.privileges = Sudo.internalBinaryRead(reader, reader.uint32(), options, message.privileges); 1092 + break; 1093 + case /* uint32 id */ 2: 1094 + message.id = reader.uint32(); 1095 + break; 1096 + default: 1097 + let u = options.readUnknownField; 1098 + if (u === "throw") 1099 + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); 1100 + let d = reader.skip(wireType); 1101 + if (u !== false) 1102 + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); 1103 + } 1104 + } 1105 + return message; 1106 + } 1107 + internalBinaryWrite(message: Kick, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { 1108 + /* Sudo privileges = 1; */ 1109 + if (message.privileges) 1110 + Sudo.internalBinaryWrite(message.privileges, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); 1111 + /* uint32 id = 2; */ 1112 + if (message.id !== 0) 1113 + writer.tag(2, WireType.Varint).uint32(message.id); 1114 + let u = options.writeUnknownFields; 1115 + if (u !== false) 1116 + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); 1117 + return writer; 1118 + } 1119 + } 1120 + /** 1121 + * @generated MessageType for protobuf message Kick 1122 + */ 1123 + export const Kick = new Kick$Type(); 1124 + // @generated message type with reflection information, may provide speed optimized methods 1125 + class Hug$Type extends MessageType<Hug> { 1126 + constructor() { 1127 + super("Hug", [ 1128 + { no: 1, name: "id", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } 1129 + ]); 1130 + } 1131 + create(value?: PartialMessage<Hug>): Hug { 1132 + const message = globalThis.Object.create((this.messagePrototype!)); 1133 + message.id = 0; 1134 + if (value !== undefined) 1135 + reflectionMergePartial<Hug>(this, message, value); 1136 + return message; 1137 + } 1138 + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Hug): Hug { 1139 + let message = target ?? this.create(), end = reader.pos + length; 1140 + while (reader.pos < end) { 1141 + let [fieldNo, wireType] = reader.tag(); 1142 + switch (fieldNo) { 1143 + case /* uint32 id */ 1: 1144 + message.id = reader.uint32(); 1145 + break; 1146 + default: 1147 + let u = options.readUnknownField; 1148 + if (u === "throw") 1149 + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); 1150 + let d = reader.skip(wireType); 1151 + if (u !== false) 1152 + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); 1153 + } 1154 + } 1155 + return message; 1156 + } 1157 + internalBinaryWrite(message: Hug, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { 1158 + /* uint32 id = 1; */ 1159 + if (message.id !== 0) 1160 + writer.tag(1, WireType.Varint).uint32(message.id); 1161 + let u = options.writeUnknownFields; 1162 + if (u !== false) 1163 + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); 1164 + return writer; 1165 + } 1166 + } 1167 + /** 1168 + * @generated MessageType for protobuf message Hug 1169 + */ 1170 + export const Hug = new Hug$Type(); 1171 + // @generated message type with reflection information, may provide speed optimized methods 1172 + class Ban$Type extends MessageType<Ban> { 1173 + constructor() { 1174 + super("Ban", [ 1175 + { no: 1, name: "privileges", kind: "message", T: () => Sudo }, 1176 + { no: 2, name: "id", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } 1177 + ]); 1178 + } 1179 + create(value?: PartialMessage<Ban>): Ban { 1180 + const message = globalThis.Object.create((this.messagePrototype!)); 1181 + message.id = 0; 1182 + if (value !== undefined) 1183 + reflectionMergePartial<Ban>(this, message, value); 1184 + return message; 1185 + } 1186 + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Ban): Ban { 1187 + let message = target ?? this.create(), end = reader.pos + length; 1188 + while (reader.pos < end) { 1189 + let [fieldNo, wireType] = reader.tag(); 1190 + switch (fieldNo) { 1191 + case /* Sudo privileges */ 1: 1192 + message.privileges = Sudo.internalBinaryRead(reader, reader.uint32(), options, message.privileges); 1193 + break; 1194 + case /* uint32 id */ 2: 1195 + message.id = reader.uint32(); 1196 + break; 1197 + default: 1198 + let u = options.readUnknownField; 1199 + if (u === "throw") 1200 + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); 1201 + let d = reader.skip(wireType); 1202 + if (u !== false) 1203 + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); 1204 + } 1205 + } 1206 + return message; 1207 + } 1208 + internalBinaryWrite(message: Ban, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { 1209 + /* Sudo privileges = 1; */ 1210 + if (message.privileges) 1211 + Sudo.internalBinaryWrite(message.privileges, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); 1212 + /* uint32 id = 2; */ 1213 + if (message.id !== 0) 1214 + writer.tag(2, WireType.Varint).uint32(message.id); 1215 + let u = options.writeUnknownFields; 1216 + if (u !== false) 1217 + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); 1218 + return writer; 1219 + } 1220 + } 1221 + /** 1222 + * @generated MessageType for protobuf message Ban 1223 + */ 1224 + export const Ban = new Ban$Type(); 1225 + // @generated message type with reflection information, may provide speed optimized methods 1226 + class Unban$Type extends MessageType<Unban> { 1227 + constructor() { 1228 + super("Unban", [ 1229 + { no: 1, name: "privileges", kind: "message", T: () => Sudo }, 1230 + { no: 2, name: "id", kind: "scalar", T: 13 /*ScalarType.UINT32*/ } 1231 + ]); 1232 + } 1233 + create(value?: PartialMessage<Unban>): Unban { 1234 + const message = globalThis.Object.create((this.messagePrototype!)); 1235 + message.id = 0; 1236 + if (value !== undefined) 1237 + reflectionMergePartial<Unban>(this, message, value); 1238 + return message; 1239 + } 1240 + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Unban): Unban { 1241 + let message = target ?? this.create(), end = reader.pos + length; 1242 + while (reader.pos < end) { 1243 + let [fieldNo, wireType] = reader.tag(); 1244 + switch (fieldNo) { 1245 + case /* Sudo privileges */ 1: 1246 + message.privileges = Sudo.internalBinaryRead(reader, reader.uint32(), options, message.privileges); 1247 + break; 1248 + case /* uint32 id */ 2: 1249 + message.id = reader.uint32(); 1250 + break; 1251 + default: 1252 + let u = options.readUnknownField; 1253 + if (u === "throw") 1254 + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); 1255 + let d = reader.skip(wireType); 1256 + if (u !== false) 1257 + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); 1258 + } 1259 + } 1260 + return message; 1261 + } 1262 + internalBinaryWrite(message: Unban, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { 1263 + /* Sudo privileges = 1; */ 1264 + if (message.privileges) 1265 + Sudo.internalBinaryWrite(message.privileges, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); 1266 + /* uint32 id = 2; */ 1267 + if (message.id !== 0) 1268 + writer.tag(2, WireType.Varint).uint32(message.id); 1269 + let u = options.writeUnknownFields; 1270 + if (u !== false) 1271 + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); 1272 + return writer; 1273 + } 1274 + } 1275 + /** 1276 + * @generated MessageType for protobuf message Unban 1277 + */ 1278 + export const Unban = new Unban$Type();
+88
package-lock.json
··· 1 + { 2 + "name": "@rachel-mp4/lrcproto", 3 + "version": "1.0.0", 4 + "lockfileVersion": 3, 5 + "requires": true, 6 + "packages": { 7 + "": { 8 + "name": "@rachel-mp4/lrcproto", 9 + "version": "1.0.0", 10 + "license": "MIT", 11 + "dependencies": { 12 + "typescript": "^3.9.10" 13 + }, 14 + "devDependencies": { 15 + "@protobuf-ts/plugin": "^2.10.0" 16 + } 17 + }, 18 + "node_modules/@protobuf-ts/plugin": { 19 + "version": "2.10.0", 20 + "resolved": "https://registry.npmjs.org/@protobuf-ts/plugin/-/plugin-2.10.0.tgz", 21 + "integrity": "sha512-iMX4C4TVfMNRLn2msK0cVg5jmizjtu5FYiy8EK5Lg6EgyR9TVHeK2rzmufWKYM2Pcg1jSwC0cFcXHQnCoeFxUg==", 22 + "dev": true, 23 + "license": "Apache-2.0", 24 + "dependencies": { 25 + "@protobuf-ts/plugin-framework": "^2.10.0", 26 + "@protobuf-ts/protoc": "^2.10.0", 27 + "@protobuf-ts/runtime": "^2.10.0", 28 + "@protobuf-ts/runtime-rpc": "^2.10.0", 29 + "typescript": "^3.9" 30 + }, 31 + "bin": { 32 + "protoc-gen-dump": "bin/protoc-gen-dump", 33 + "protoc-gen-ts": "bin/protoc-gen-ts" 34 + } 35 + }, 36 + "node_modules/@protobuf-ts/plugin-framework": { 37 + "version": "2.10.0", 38 + "resolved": "https://registry.npmjs.org/@protobuf-ts/plugin-framework/-/plugin-framework-2.10.0.tgz", 39 + "integrity": "sha512-EuW9irbt+w7Ml1CaAxK6xyl7pSuWVbNy0rsChxJEthMrAVTN5EPdJ3whNWvsRBa+HwRImEl8KHNnRoq/vGOHbg==", 40 + "dev": true, 41 + "license": "(Apache-2.0 AND BSD-3-Clause)", 42 + "dependencies": { 43 + "@protobuf-ts/runtime": "^2.10.0", 44 + "typescript": "^3.9" 45 + } 46 + }, 47 + "node_modules/@protobuf-ts/protoc": { 48 + "version": "2.10.0", 49 + "resolved": "https://registry.npmjs.org/@protobuf-ts/protoc/-/protoc-2.10.0.tgz", 50 + "integrity": "sha512-S4BtGBh22+uL5E6qLVxV0QNY6tiLVB8QL7RIkvo+KYknipZfSNwubdKy5CPkrwVXzJn4s3cx7bKx1w6BxkBIPg==", 51 + "dev": true, 52 + "license": "Apache-2.0", 53 + "bin": { 54 + "protoc": "protoc.js" 55 + } 56 + }, 57 + "node_modules/@protobuf-ts/runtime": { 58 + "version": "2.10.0", 59 + "resolved": "https://registry.npmjs.org/@protobuf-ts/runtime/-/runtime-2.10.0.tgz", 60 + "integrity": "sha512-ypYwGg9Pn3W/2lZ7/HW60hONGuSdzphvOY8Dq7LeNttymDe0y3LaTUUMRpuGqOT6FfrWEMnfQbyqU8AAreo8wA==", 61 + "dev": true, 62 + "license": "(Apache-2.0 AND BSD-3-Clause)" 63 + }, 64 + "node_modules/@protobuf-ts/runtime-rpc": { 65 + "version": "2.10.0", 66 + "resolved": "https://registry.npmjs.org/@protobuf-ts/runtime-rpc/-/runtime-rpc-2.10.0.tgz", 67 + "integrity": "sha512-8CS/XPv3+pMK4v8UKhtCdvbS4h9l7aqlteKdRt0/UbIKZ8n0qHj6hX8cBhz2ngvohxCOS0N08zPr9aCLBNhW3Q==", 68 + "dev": true, 69 + "license": "Apache-2.0", 70 + "dependencies": { 71 + "@protobuf-ts/runtime": "^2.10.0" 72 + } 73 + }, 74 + "node_modules/typescript": { 75 + "version": "3.9.10", 76 + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", 77 + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", 78 + "license": "Apache-2.0", 79 + "bin": { 80 + "tsc": "bin/tsc", 81 + "tsserver": "bin/tsserver" 82 + }, 83 + "engines": { 84 + "node": ">=4.2.0" 85 + } 86 + } 87 + } 88 + }
+18
package.json
··· 1 + { 2 + "name": "@rachel-mp4/lrcproto", 3 + "version": "1.0.1", 4 + "description": "protobuf definitions for LRC", 5 + "main": "gen/ts/lrc.ts", 6 + "dependencies": { 7 + "typescript": "^3.9.10" 8 + }, 9 + "devDependencies": {"@protobuf-ts/plugin": "^2.10.0"}, 10 + "keywords": [ 11 + "lrc" 12 + ], 13 + "author": "rachel-mp4", 14 + "license": "MIT", 15 + "publishConfig": { 16 + "access": "public" 17 + } 18 + }