chore: adding protobuf ts as dev dependency

This commit is contained in:
Chubby Granny Chaser
2025-05-10 17:46:17 +01:00
parent 216f813771
commit 74d93da9b3
3 changed files with 291 additions and 201 deletions

View File

@@ -38,7 +38,6 @@
"@hookform/resolvers": "^3.9.1", "@hookform/resolvers": "^3.9.1",
"@monaco-editor/react": "^4.6.0", "@monaco-editor/react": "^4.6.0",
"@primer/octicons-react": "^19.9.0", "@primer/octicons-react": "^19.9.0",
"@protobuf-ts/plugin": "^2.10.0",
"@radix-ui/react-dropdown-menu": "^2.1.2", "@radix-ui/react-dropdown-menu": "^2.1.2",
"@reduxjs/toolkit": "^2.2.3", "@reduxjs/toolkit": "^2.2.3",
"@sentry/react": "^8.47.0", "@sentry/react": "^8.47.0",
@@ -88,6 +87,7 @@
"@electron-toolkit/eslint-config-prettier": "^2.0.0", "@electron-toolkit/eslint-config-prettier": "^2.0.0",
"@electron-toolkit/eslint-config-ts": "^2.0.0", "@electron-toolkit/eslint-config-ts": "^2.0.0",
"@electron-toolkit/tsconfig": "^1.0.1", "@electron-toolkit/tsconfig": "^1.0.1",
"@protobuf-ts/plugin": "^2.10.0",
"@swc/core": "^1.4.16", "@swc/core": "^1.4.16",
"@types/auto-launch": "^5.0.5", "@types/auto-launch": "^5.0.5",
"@types/color": "^3.0.6", "@types/color": "^3.0.6",

View File

@@ -1,31 +1,11 @@
import { registerEvent } from "../register-event"; import { registerEvent } from "../register-event";
import { HydraApi, WindowManager } from "@main/services"; import { HydraApi, WindowManager } from "@main/services";
import { publishNewFriendRequestNotification } from "@main/services/notifications";
import { UserNotLoggedInError } from "@shared"; import { UserNotLoggedInError } from "@shared";
import type { FriendRequestSync } from "@types"; import type { FriendRequestSync } from "@types";
interface SyncState {
friendRequestCount: number | null;
tick: number;
}
const syncState: SyncState = {
friendRequestCount: null,
tick: 0,
};
export const syncFriendRequests = async () => { export const syncFriendRequests = async () => {
return HydraApi.get<FriendRequestSync>(`/profile/friend-requests/sync`) return HydraApi.get<FriendRequestSync>(`/profile/friend-requests/sync`)
.then((res) => { .then((res) => {
if (
syncState.friendRequestCount != null &&
syncState.friendRequestCount < res.friendRequestCount
) {
publishNewFriendRequestNotification();
}
syncState.friendRequestCount = res.friendRequestCount;
WindowManager.mainWindow?.webContents.send( WindowManager.mainWindow?.webContents.send(
"on-sync-friend-requests", "on-sync-friend-requests",
res res

View File

@@ -47,19 +47,22 @@ export interface Envelope {
/** /**
* @generated from protobuf oneof: payload * @generated from protobuf oneof: payload
*/ */
payload: { payload:
| {
oneofKind: "friendRequest"; oneofKind: "friendRequest";
/** /**
* @generated from protobuf field: FriendRequest friend_request = 1; * @generated from protobuf field: FriendRequest friend_request = 1;
*/ */
friendRequest: FriendRequest; friendRequest: FriendRequest;
} | { }
| {
oneofKind: "friendGameSession"; oneofKind: "friendGameSession";
/** /**
* @generated from protobuf field: FriendGameSession friend_game_session = 2; * @generated from protobuf field: FriendGameSession friend_game_session = 2;
*/ */
friendGameSession: FriendGameSession; friendGameSession: FriendGameSession;
} | { }
| {
oneofKind: undefined; oneofKind: undefined;
}; };
} }
@@ -67,19 +70,36 @@ export interface Envelope {
class FriendRequest$Type extends MessageType<FriendRequest> { class FriendRequest$Type extends MessageType<FriendRequest> {
constructor() { constructor() {
super("FriendRequest", [ super("FriendRequest", [
{ no: 1, name: "friend_request_count", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, {
{ no: 2, name: "sender_id", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ } no: 1,
name: "friend_request_count",
kind: "scalar",
T: 5 /*ScalarType.INT32*/,
},
{
no: 2,
name: "sender_id",
kind: "scalar",
opt: true,
T: 9 /*ScalarType.STRING*/,
},
]); ]);
} }
create(value?: PartialMessage<FriendRequest>): FriendRequest { create(value?: PartialMessage<FriendRequest>): FriendRequest {
const message = globalThis.Object.create((this.messagePrototype!)); const message = globalThis.Object.create(this.messagePrototype!);
message.friendRequestCount = 0; message.friendRequestCount = 0;
if (value !== undefined) if (value !== undefined)
reflectionMergePartial<FriendRequest>(this, message, value); reflectionMergePartial<FriendRequest>(this, message, value);
return message; return message;
} }
internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FriendRequest): FriendRequest { internalBinaryRead(
let message = target ?? this.create(), end = reader.pos + length; reader: IBinaryReader,
length: number,
options: BinaryReadOptions,
target?: FriendRequest
): FriendRequest {
let message = target ?? this.create(),
end = reader.pos + length;
while (reader.pos < end) { while (reader.pos < end) {
let [fieldNo, wireType] = reader.tag(); let [fieldNo, wireType] = reader.tag();
switch (fieldNo) { switch (fieldNo) {
@@ -92,15 +112,27 @@ class FriendRequest$Type extends MessageType<FriendRequest> {
default: default:
let u = options.readUnknownField; let u = options.readUnknownField;
if (u === "throw") if (u === "throw")
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); throw new globalThis.Error(
`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`
);
let d = reader.skip(wireType); let d = reader.skip(wireType);
if (u !== false) if (u !== false)
(u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); (u === true ? UnknownFieldHandler.onRead : u)(
this.typeName,
message,
fieldNo,
wireType,
d
);
} }
} }
return message; return message;
} }
internalBinaryWrite(message: FriendRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { internalBinaryWrite(
message: FriendRequest,
writer: IBinaryWriter,
options: BinaryWriteOptions
): IBinaryWriter {
/* int32 friend_request_count = 1; */ /* int32 friend_request_count = 1; */
if (message.friendRequestCount !== 0) if (message.friendRequestCount !== 0)
writer.tag(1, WireType.Varint).int32(message.friendRequestCount); writer.tag(1, WireType.Varint).int32(message.friendRequestCount);
@@ -109,7 +141,11 @@ class FriendRequest$Type extends MessageType<FriendRequest> {
writer.tag(2, WireType.LengthDelimited).string(message.senderId); writer.tag(2, WireType.LengthDelimited).string(message.senderId);
let u = options.writeUnknownFields; let u = options.writeUnknownFields;
if (u !== false) if (u !== false)
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); (u == true ? UnknownFieldHandler.onWrite : u)(
this.typeName,
message,
writer
);
return writer; return writer;
} }
} }
@@ -123,11 +159,11 @@ class FriendGameSession$Type extends MessageType<FriendGameSession> {
super("FriendGameSession", [ super("FriendGameSession", [
{ no: 1, name: "object_id", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, { no: 1, name: "object_id", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
{ no: 2, name: "shop", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, { no: 2, name: "shop", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
{ no: 3, name: "friend_id", kind: "scalar", T: 9 /*ScalarType.STRING*/ } { no: 3, name: "friend_id", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
]); ]);
} }
create(value?: PartialMessage<FriendGameSession>): FriendGameSession { create(value?: PartialMessage<FriendGameSession>): FriendGameSession {
const message = globalThis.Object.create((this.messagePrototype!)); const message = globalThis.Object.create(this.messagePrototype!);
message.objectId = ""; message.objectId = "";
message.shop = ""; message.shop = "";
message.friendId = ""; message.friendId = "";
@@ -135,8 +171,14 @@ class FriendGameSession$Type extends MessageType<FriendGameSession> {
reflectionMergePartial<FriendGameSession>(this, message, value); reflectionMergePartial<FriendGameSession>(this, message, value);
return message; return message;
} }
internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FriendGameSession): FriendGameSession { internalBinaryRead(
let message = target ?? this.create(), end = reader.pos + length; reader: IBinaryReader,
length: number,
options: BinaryReadOptions,
target?: FriendGameSession
): FriendGameSession {
let message = target ?? this.create(),
end = reader.pos + length;
while (reader.pos < end) { while (reader.pos < end) {
let [fieldNo, wireType] = reader.tag(); let [fieldNo, wireType] = reader.tag();
switch (fieldNo) { switch (fieldNo) {
@@ -152,15 +194,27 @@ class FriendGameSession$Type extends MessageType<FriendGameSession> {
default: default:
let u = options.readUnknownField; let u = options.readUnknownField;
if (u === "throw") if (u === "throw")
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); throw new globalThis.Error(
`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`
);
let d = reader.skip(wireType); let d = reader.skip(wireType);
if (u !== false) if (u !== false)
(u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); (u === true ? UnknownFieldHandler.onRead : u)(
this.typeName,
message,
fieldNo,
wireType,
d
);
} }
} }
return message; return message;
} }
internalBinaryWrite(message: FriendGameSession, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { internalBinaryWrite(
message: FriendGameSession,
writer: IBinaryWriter,
options: BinaryWriteOptions
): IBinaryWriter {
/* string object_id = 1; */ /* string object_id = 1; */
if (message.objectId !== "") if (message.objectId !== "")
writer.tag(1, WireType.LengthDelimited).string(message.objectId); writer.tag(1, WireType.LengthDelimited).string(message.objectId);
@@ -172,7 +226,11 @@ class FriendGameSession$Type extends MessageType<FriendGameSession> {
writer.tag(3, WireType.LengthDelimited).string(message.friendId); writer.tag(3, WireType.LengthDelimited).string(message.friendId);
let u = options.writeUnknownFields; let u = options.writeUnknownFields;
if (u !== false) if (u !== false)
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); (u == true ? UnknownFieldHandler.onWrite : u)(
this.typeName,
message,
writer
);
return writer; return writer;
} }
} }
@@ -184,55 +242,107 @@ export const FriendGameSession = new FriendGameSession$Type();
class Envelope$Type extends MessageType<Envelope> { class Envelope$Type extends MessageType<Envelope> {
constructor() { constructor() {
super("Envelope", [ super("Envelope", [
{ no: 1, name: "friend_request", kind: "message", oneof: "payload", T: () => FriendRequest }, {
{ no: 2, name: "friend_game_session", kind: "message", oneof: "payload", T: () => FriendGameSession } no: 1,
name: "friend_request",
kind: "message",
oneof: "payload",
T: () => FriendRequest,
},
{
no: 2,
name: "friend_game_session",
kind: "message",
oneof: "payload",
T: () => FriendGameSession,
},
]); ]);
} }
create(value?: PartialMessage<Envelope>): Envelope { create(value?: PartialMessage<Envelope>): Envelope {
const message = globalThis.Object.create((this.messagePrototype!)); const message = globalThis.Object.create(this.messagePrototype!);
message.payload = { oneofKind: undefined }; message.payload = { oneofKind: undefined };
if (value !== undefined) if (value !== undefined)
reflectionMergePartial<Envelope>(this, message, value); reflectionMergePartial<Envelope>(this, message, value);
return message; return message;
} }
internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Envelope): Envelope { internalBinaryRead(
let message = target ?? this.create(), end = reader.pos + length; reader: IBinaryReader,
length: number,
options: BinaryReadOptions,
target?: Envelope
): Envelope {
let message = target ?? this.create(),
end = reader.pos + length;
while (reader.pos < end) { while (reader.pos < end) {
let [fieldNo, wireType] = reader.tag(); let [fieldNo, wireType] = reader.tag();
switch (fieldNo) { switch (fieldNo) {
case /* FriendRequest friend_request */ 1: case /* FriendRequest friend_request */ 1:
message.payload = { message.payload = {
oneofKind: "friendRequest", oneofKind: "friendRequest",
friendRequest: FriendRequest.internalBinaryRead(reader, reader.uint32(), options, (message.payload as any).friendRequest) friendRequest: FriendRequest.internalBinaryRead(
reader,
reader.uint32(),
options,
(message.payload as any).friendRequest
),
}; };
break; break;
case /* FriendGameSession friend_game_session */ 2: case /* FriendGameSession friend_game_session */ 2:
message.payload = { message.payload = {
oneofKind: "friendGameSession", oneofKind: "friendGameSession",
friendGameSession: FriendGameSession.internalBinaryRead(reader, reader.uint32(), options, (message.payload as any).friendGameSession) friendGameSession: FriendGameSession.internalBinaryRead(
reader,
reader.uint32(),
options,
(message.payload as any).friendGameSession
),
}; };
break; break;
default: default:
let u = options.readUnknownField; let u = options.readUnknownField;
if (u === "throw") if (u === "throw")
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); throw new globalThis.Error(
`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`
);
let d = reader.skip(wireType); let d = reader.skip(wireType);
if (u !== false) if (u !== false)
(u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); (u === true ? UnknownFieldHandler.onRead : u)(
this.typeName,
message,
fieldNo,
wireType,
d
);
} }
} }
return message; return message;
} }
internalBinaryWrite(message: Envelope, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { internalBinaryWrite(
message: Envelope,
writer: IBinaryWriter,
options: BinaryWriteOptions
): IBinaryWriter {
/* FriendRequest friend_request = 1; */ /* FriendRequest friend_request = 1; */
if (message.payload.oneofKind === "friendRequest") if (message.payload.oneofKind === "friendRequest")
FriendRequest.internalBinaryWrite(message.payload.friendRequest, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); FriendRequest.internalBinaryWrite(
message.payload.friendRequest,
writer.tag(1, WireType.LengthDelimited).fork(),
options
).join();
/* FriendGameSession friend_game_session = 2; */ /* FriendGameSession friend_game_session = 2; */
if (message.payload.oneofKind === "friendGameSession") if (message.payload.oneofKind === "friendGameSession")
FriendGameSession.internalBinaryWrite(message.payload.friendGameSession, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); FriendGameSession.internalBinaryWrite(
message.payload.friendGameSession,
writer.tag(2, WireType.LengthDelimited).fork(),
options
).join();
let u = options.writeUnknownFields; let u = options.writeUnknownFields;
if (u !== false) if (u !== false)
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); (u == true ? UnknownFieldHandler.onWrite : u)(
this.typeName,
message,
writer
);
return writer; return writer;
} }
} }