@fivenet-app/gen 2026.5.0 → 2026.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/codegen/perms/perms.ts +61 -39
  2. package/package.json +1 -1
  3. package/perms.ts +47 -41
  4. package/resources/accounts/accounts.ts +41 -30
  5. package/resources/audit/audit.ts +5 -1
  6. package/resources/citizens/labels/access.ts +1 -1
  7. package/resources/jobs/colleagues/activity/activity.ts +1 -1
  8. package/resources/laws/laws.ts +72 -50
  9. package/resources/permissions/attributes/attributes.ts +51 -39
  10. package/resources/permissions/permissions/permissions.ts +46 -34
  11. package/resources/sync/data/data.ts +9 -9
  12. package/resources/users/activity/activity.ts +69 -76
  13. package/services/auth/auth.ts +1 -1
  14. package/services/calendar/entries.ts +1 -1
  15. package/services/centrum/dispatches.ts +5 -5
  16. package/services/centrum/units.ts +6 -6
  17. package/services/citizens/labels.client.ts +26 -0
  18. package/services/citizens/labels.ts +283 -4
  19. package/services/completor/completor.client.ts +0 -13
  20. package/services/completor/completor.ts +2 -116
  21. package/services/documents/approval.ts +5 -5
  22. package/services/documents/categories.ts +1 -1
  23. package/services/documents/collab.ts +1 -1
  24. package/services/documents/comments.ts +4 -4
  25. package/services/documents/templates.ts +1 -1
  26. package/services/jobs/colleagues.ts +1 -1
  27. package/services/mailer/settings.ts +1 -1
  28. package/services/mailer/thread.ts +1 -1
  29. package/services/qualifications/exam.ts +5 -5
  30. package/services/settings/accounts.ts +14 -1
  31. package/services/settings/laws.client.ts +18 -5
  32. package/services/settings/laws.ts +128 -3
  33. package/services/wiki/collab.ts +1 -1
  34. package/svcs.ts +3 -1
@@ -114,12 +114,6 @@ export interface UserActivityData {
114
114
  * @generated from protobuf field: resources.users.activity.LabelsChange labels_change = 6
115
115
  */
116
116
  labelsChange: LabelsChange;
117
- } | {
118
- oneofKind: "labelChange";
119
- /**
120
- * @generated from protobuf field: resources.users.activity.LabelChange label_change = 11
121
- */
122
- labelChange: LabelChange;
123
117
  } | {
124
118
  oneofKind: "jobChange";
125
119
  /**
@@ -216,44 +210,44 @@ export interface MugshotChange {
216
210
  new?: string;
217
211
  }
218
212
  /**
219
- * @deprecated
220
- *
221
213
  * @generated from protobuf message resources.users.activity.LabelsChange
222
214
  */
223
215
  export interface LabelsChange {
224
216
  /**
225
- * @generated from protobuf field: repeated resources.citizens.labels.Label added = 1
217
+ * @deprecated
218
+ * @generated from protobuf field: repeated resources.citizens.labels.Label added = 1 [deprecated = true]
226
219
  */
227
220
  added: Label[];
228
221
  /**
229
- * @generated from protobuf field: repeated resources.citizens.labels.Label removed = 2
222
+ * @deprecated
223
+ * @generated from protobuf field: repeated resources.citizens.labels.Label removed = 2 [deprecated = true]
230
224
  */
231
225
  removed: Label[];
232
226
  /**
233
- * @generated from protobuf field: bool expired = 4
227
+ * @generated from protobuf field: repeated resources.users.activity.LabelAdded added_ids = 3
228
+ */
229
+ addedIds: LabelAdded[];
230
+ /**
231
+ * @generated from protobuf field: repeated int64 removed_ids = 4
232
+ */
233
+ removedIds: number[];
234
+ /**
235
+ * @generated from protobuf field: bool expired = 5
234
236
  */
235
237
  expired: boolean;
236
238
  }
237
239
  /**
238
- * @generated from protobuf message resources.users.activity.LabelChange
240
+ * @generated from protobuf message resources.users.activity.LabelAdded
239
241
  */
240
- export interface LabelChange {
241
- /**
242
- * @generated from protobuf field: resources.citizens.labels.Label label = 1
243
- */
244
- label?: Label;
242
+ export interface LabelAdded {
245
243
  /**
246
- * @generated from protobuf field: bool added = 2
244
+ * @generated from protobuf field: int64 id = 1
247
245
  */
248
- added: boolean;
246
+ id: number;
249
247
  /**
250
- * @generated from protobuf field: optional resources.timestamp.Timestamp expires_at = 3
248
+ * @generated from protobuf field: optional resources.timestamp.Timestamp expires_at = 2
251
249
  */
252
250
  expiresAt?: Timestamp;
253
- /**
254
- * @generated from protobuf field: bool expired = 4
255
- */
256
- expired: boolean;
257
251
  }
258
252
  /**
259
253
  * @generated from protobuf message resources.users.activity.JobChange
@@ -518,7 +512,6 @@ class UserActivityData$Type extends MessageType<UserActivityData> {
518
512
  { no: 4, name: "traffic_infraction_points_change", kind: "message", oneof: "data", T: () => TrafficInfractionPointsChange },
519
513
  { no: 5, name: "mugshot_change", kind: "message", oneof: "data", T: () => MugshotChange },
520
514
  { no: 6, name: "labels_change", kind: "message", oneof: "data", T: () => LabelsChange },
521
- { no: 11, name: "label_change", kind: "message", oneof: "data", T: () => LabelChange },
522
515
  { no: 7, name: "job_change", kind: "message", oneof: "data", T: () => JobChange },
523
516
  { no: 8, name: "document_relation", kind: "message", oneof: "data", T: () => CitizenDocumentRelation },
524
517
  { no: 9, name: "jail_change", kind: "message", oneof: "data", T: () => JailChange },
@@ -573,12 +566,6 @@ class UserActivityData$Type extends MessageType<UserActivityData> {
573
566
  labelsChange: LabelsChange.internalBinaryRead(reader, reader.uint32(), options, (message.data as any).labelsChange)
574
567
  };
575
568
  break;
576
- case /* resources.users.activity.LabelChange label_change */ 11:
577
- message.data = {
578
- oneofKind: "labelChange",
579
- labelChange: LabelChange.internalBinaryRead(reader, reader.uint32(), options, (message.data as any).labelChange)
580
- };
581
- break;
582
569
  case /* resources.users.activity.JobChange job_change */ 7:
583
570
  message.data = {
584
571
  oneofKind: "jobChange",
@@ -645,9 +632,6 @@ class UserActivityData$Type extends MessageType<UserActivityData> {
645
632
  /* resources.users.activity.FineChange fine_change = 10; */
646
633
  if (message.data.oneofKind === "fineChange")
647
634
  FineChange.internalBinaryWrite(message.data.fineChange, writer.tag(10, WireType.LengthDelimited).fork(), options).join();
648
- /* resources.users.activity.LabelChange label_change = 11; */
649
- if (message.data.oneofKind === "labelChange")
650
- LabelChange.internalBinaryWrite(message.data.labelChange, writer.tag(11, WireType.LengthDelimited).fork(), options).join();
651
635
  let u = options.writeUnknownFields;
652
636
  if (u !== false)
653
637
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -930,13 +914,17 @@ class LabelsChange$Type extends MessageType<LabelsChange> {
930
914
  super("resources.users.activity.LabelsChange", [
931
915
  { no: 1, name: "added", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => Label },
932
916
  { no: 2, name: "removed", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => Label },
933
- { no: 4, name: "expired", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }
917
+ { no: 3, name: "added_ids", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => LabelAdded },
918
+ { no: 4, name: "removed_ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
919
+ { no: 5, name: "expired", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }
934
920
  ]);
935
921
  }
936
922
  create(value?: PartialMessage<LabelsChange>): LabelsChange {
937
923
  const message = globalThis.Object.create((this.messagePrototype!));
938
924
  message.added = [];
939
925
  message.removed = [];
926
+ message.addedIds = [];
927
+ message.removedIds = [];
940
928
  message.expired = false;
941
929
  if (value !== undefined)
942
930
  reflectionMergePartial<LabelsChange>(this, message, value);
@@ -947,13 +935,23 @@ class LabelsChange$Type extends MessageType<LabelsChange> {
947
935
  while (reader.pos < end) {
948
936
  let [fieldNo, wireType] = reader.tag();
949
937
  switch (fieldNo) {
950
- case /* repeated resources.citizens.labels.Label added */ 1:
938
+ case /* repeated resources.citizens.labels.Label added = 1 [deprecated = true] */ 1:
951
939
  message.added.push(Label.internalBinaryRead(reader, reader.uint32(), options));
952
940
  break;
953
- case /* repeated resources.citizens.labels.Label removed */ 2:
941
+ case /* repeated resources.citizens.labels.Label removed = 2 [deprecated = true] */ 2:
954
942
  message.removed.push(Label.internalBinaryRead(reader, reader.uint32(), options));
955
943
  break;
956
- case /* bool expired */ 4:
944
+ case /* repeated resources.users.activity.LabelAdded added_ids */ 3:
945
+ message.addedIds.push(LabelAdded.internalBinaryRead(reader, reader.uint32(), options));
946
+ break;
947
+ case /* repeated int64 removed_ids */ 4:
948
+ if (wireType === WireType.LengthDelimited)
949
+ for (let e = reader.int32() + reader.pos; reader.pos < e;)
950
+ message.removedIds.push(reader.int64().toNumber());
951
+ else
952
+ message.removedIds.push(reader.int64().toNumber());
953
+ break;
954
+ case /* bool expired */ 5:
957
955
  message.expired = reader.bool();
958
956
  break;
959
957
  default:
@@ -968,15 +966,25 @@ class LabelsChange$Type extends MessageType<LabelsChange> {
968
966
  return message;
969
967
  }
970
968
  internalBinaryWrite(message: LabelsChange, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
971
- /* repeated resources.citizens.labels.Label added = 1; */
969
+ /* repeated resources.citizens.labels.Label added = 1 [deprecated = true]; */
972
970
  for (let i = 0; i < message.added.length; i++)
973
971
  Label.internalBinaryWrite(message.added[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
974
- /* repeated resources.citizens.labels.Label removed = 2; */
972
+ /* repeated resources.citizens.labels.Label removed = 2 [deprecated = true]; */
975
973
  for (let i = 0; i < message.removed.length; i++)
976
974
  Label.internalBinaryWrite(message.removed[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
977
- /* bool expired = 4; */
975
+ /* repeated resources.users.activity.LabelAdded added_ids = 3; */
976
+ for (let i = 0; i < message.addedIds.length; i++)
977
+ LabelAdded.internalBinaryWrite(message.addedIds[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join();
978
+ /* repeated int64 removed_ids = 4; */
979
+ if (message.removedIds.length) {
980
+ writer.tag(4, WireType.LengthDelimited).fork();
981
+ for (let i = 0; i < message.removedIds.length; i++)
982
+ writer.int64(message.removedIds[i]);
983
+ writer.join();
984
+ }
985
+ /* bool expired = 5; */
978
986
  if (message.expired !== false)
979
- writer.tag(4, WireType.Varint).bool(message.expired);
987
+ writer.tag(5, WireType.Varint).bool(message.expired);
980
988
  let u = options.writeUnknownFields;
981
989
  if (u !== false)
982
990
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -988,40 +996,31 @@ class LabelsChange$Type extends MessageType<LabelsChange> {
988
996
  */
989
997
  export const LabelsChange = new LabelsChange$Type();
990
998
  // @generated message type with reflection information, may provide speed optimized methods
991
- class LabelChange$Type extends MessageType<LabelChange> {
999
+ class LabelAdded$Type extends MessageType<LabelAdded> {
992
1000
  constructor() {
993
- super("resources.users.activity.LabelChange", [
994
- { no: 1, name: "label", kind: "message", T: () => Label },
995
- { no: 2, name: "added", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
996
- { no: 3, name: "expires_at", kind: "message", T: () => Timestamp },
997
- { no: 4, name: "expired", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }
1001
+ super("resources.users.activity.LabelAdded", [
1002
+ { no: 1, name: "id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
1003
+ { no: 2, name: "expires_at", kind: "message", T: () => Timestamp }
998
1004
  ]);
999
1005
  }
1000
- create(value?: PartialMessage<LabelChange>): LabelChange {
1006
+ create(value?: PartialMessage<LabelAdded>): LabelAdded {
1001
1007
  const message = globalThis.Object.create((this.messagePrototype!));
1002
- message.added = false;
1003
- message.expired = false;
1008
+ message.id = 0;
1004
1009
  if (value !== undefined)
1005
- reflectionMergePartial<LabelChange>(this, message, value);
1010
+ reflectionMergePartial<LabelAdded>(this, message, value);
1006
1011
  return message;
1007
1012
  }
1008
- internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LabelChange): LabelChange {
1013
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LabelAdded): LabelAdded {
1009
1014
  let message = target ?? this.create(), end = reader.pos + length;
1010
1015
  while (reader.pos < end) {
1011
1016
  let [fieldNo, wireType] = reader.tag();
1012
1017
  switch (fieldNo) {
1013
- case /* resources.citizens.labels.Label label */ 1:
1014
- message.label = Label.internalBinaryRead(reader, reader.uint32(), options, message.label);
1015
- break;
1016
- case /* bool added */ 2:
1017
- message.added = reader.bool();
1018
+ case /* int64 id */ 1:
1019
+ message.id = reader.int64().toNumber();
1018
1020
  break;
1019
- case /* optional resources.timestamp.Timestamp expires_at */ 3:
1021
+ case /* optional resources.timestamp.Timestamp expires_at */ 2:
1020
1022
  message.expiresAt = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.expiresAt);
1021
1023
  break;
1022
- case /* bool expired */ 4:
1023
- message.expired = reader.bool();
1024
- break;
1025
1024
  default:
1026
1025
  let u = options.readUnknownField;
1027
1026
  if (u === "throw")
@@ -1033,19 +1032,13 @@ class LabelChange$Type extends MessageType<LabelChange> {
1033
1032
  }
1034
1033
  return message;
1035
1034
  }
1036
- internalBinaryWrite(message: LabelChange, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
1037
- /* resources.citizens.labels.Label label = 1; */
1038
- if (message.label)
1039
- Label.internalBinaryWrite(message.label, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
1040
- /* bool added = 2; */
1041
- if (message.added !== false)
1042
- writer.tag(2, WireType.Varint).bool(message.added);
1043
- /* optional resources.timestamp.Timestamp expires_at = 3; */
1035
+ internalBinaryWrite(message: LabelAdded, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
1036
+ /* int64 id = 1; */
1037
+ if (message.id !== 0)
1038
+ writer.tag(1, WireType.Varint).int64(message.id);
1039
+ /* optional resources.timestamp.Timestamp expires_at = 2; */
1044
1040
  if (message.expiresAt)
1045
- Timestamp.internalBinaryWrite(message.expiresAt, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
1046
- /* bool expired = 4; */
1047
- if (message.expired !== false)
1048
- writer.tag(4, WireType.Varint).bool(message.expired);
1041
+ Timestamp.internalBinaryWrite(message.expiresAt, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
1049
1042
  let u = options.writeUnknownFields;
1050
1043
  if (u !== false)
1051
1044
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -1053,9 +1046,9 @@ class LabelChange$Type extends MessageType<LabelChange> {
1053
1046
  }
1054
1047
  }
1055
1048
  /**
1056
- * @generated MessageType for protobuf message resources.users.activity.LabelChange
1049
+ * @generated MessageType for protobuf message resources.users.activity.LabelAdded
1057
1050
  */
1058
- export const LabelChange = new LabelChange$Type();
1051
+ export const LabelAdded = new LabelAdded$Type();
1059
1052
  // @generated message type with reflection information, may provide speed optimized methods
1060
1053
  class JobChange$Type extends MessageType<JobChange> {
1061
1054
  constructor() {
@@ -1611,7 +1611,7 @@ export const AuthService = new ServiceType("services.auth.AuthService", [
1611
1611
  { name: "ForgotPassword", options: {}, I: ForgotPasswordRequest, O: ForgotPasswordResponse },
1612
1612
  { name: "GetCharacters", options: {}, I: GetCharactersRequest, O: GetCharactersResponse },
1613
1613
  { name: "ChooseCharacter", options: { "codegen.perms.perms": { enabled: true } }, I: ChooseCharacterRequest, O: ChooseCharacterResponse },
1614
- { name: "ImpersonateJob", options: { "codegen.perms.perms": { enabled: true, service: "settings.SettingsService", name: "UpdateRolePerms" } }, I: ImpersonateJobRequest, O: ImpersonateJobResponse },
1614
+ { name: "ImpersonateJob", options: { "codegen.perms.perms": { enabled: true, namespace: "settings", service: "SettingsService", name: "UpdateRolePerms" } }, I: ImpersonateJobRequest, O: ImpersonateJobResponse },
1615
1615
  { name: "GetAccountInfo", options: {}, I: GetAccountInfoRequest, O: GetAccountInfoResponse },
1616
1616
  { name: "DeleteSocialLogin", options: {}, I: DeleteSocialLoginRequest, O: DeleteSocialLoginResponse },
1617
1617
  { name: "SetSuperuserMode", options: {}, I: SetSuperuserModeRequest, O: SetSuperuserModeResponse }
@@ -1037,4 +1037,4 @@ export const EntriesService = new ServiceType("services.calendar.EntriesService"
1037
1037
  { name: "ShareCalendarEntry", options: { "codegen.perms.perms": { enabled: true, name: "Any" } }, I: ShareCalendarEntryRequest, O: ShareCalendarEntryResponse },
1038
1038
  { name: "ListCalendarEntryRSVP", options: { "codegen.perms.perms": { enabled: true, name: "Any" } }, I: ListCalendarEntryRSVPRequest, O: ListCalendarEntryRSVPResponse },
1039
1039
  { name: "RSVPCalendarEntry", options: { "codegen.perms.perms": { enabled: true, name: "Any" } }, I: RSVPCalendarEntryRequest, O: RSVPCalendarEntryResponse }
1040
- ], { "codegen.perms.perms_svc": { name: "calendar.CalendarService" } });
1040
+ ], { "codegen.perms.perms_svc": { namespace: "calendar", service: "CalendarService" } });
@@ -1296,10 +1296,10 @@ export const DispatchesService = new ServiceType("services.centrum.DispatchesSer
1296
1296
  { name: "UpdateDispatch", options: { "codegen.perms.perms": { enabled: true } }, I: UpdateDispatchRequest, O: UpdateDispatchResponse },
1297
1297
  { name: "DeleteDispatch", options: { "codegen.perms.perms": { enabled: true } }, I: DeleteDispatchRequest, O: DeleteDispatchResponse },
1298
1298
  { name: "ListDispatchTargetJobs", options: { "codegen.perms.perms": { enabled: true, name: "CreateDispatch" } }, I: ListDispatchTargetJobsRequest, O: ListDispatchTargetJobsResponse },
1299
- { name: "AssignDispatch", options: { "codegen.perms.perms": { enabled: true, name: "TakeControl" } }, I: AssignDispatchRequest, O: AssignDispatchResponse },
1300
- { name: "GetDispatch", options: { "codegen.perms.perms": { enabled: true, name: "Stream" } }, I: GetDispatchRequest, O: GetDispatchResponse },
1301
- { name: "ListDispatches", options: { "codegen.perms.perms": { enabled: true, name: "Stream" } }, I: ListDispatchesRequest, O: ListDispatchesResponse },
1302
- { name: "ListDispatchActivity", options: { "codegen.perms.perms": { enabled: true, name: "Stream" } }, I: ListDispatchActivityRequest, O: ListDispatchActivityResponse },
1299
+ { name: "AssignDispatch", options: { "codegen.perms.perms": { enabled: true, namespace: "centrum", service: "CentrumService", name: "TakeControl" } }, I: AssignDispatchRequest, O: AssignDispatchResponse },
1300
+ { name: "GetDispatch", options: { "codegen.perms.perms": { enabled: true, namespace: "centrum", service: "CentrumService", name: "Stream" } }, I: GetDispatchRequest, O: GetDispatchResponse },
1301
+ { name: "ListDispatches", options: { "codegen.perms.perms": { enabled: true, namespace: "centrum", service: "CentrumService", name: "Stream" } }, I: ListDispatchesRequest, O: ListDispatchesResponse },
1302
+ { name: "ListDispatchActivity", options: { "codegen.perms.perms": { enabled: true, namespace: "centrum", service: "CentrumService", name: "Stream" } }, I: ListDispatchActivityRequest, O: ListDispatchActivityResponse },
1303
1303
  { name: "TakeDispatch", options: { "codegen.perms.perms": { enabled: true } }, I: TakeDispatchRequest, O: TakeDispatchResponse },
1304
1304
  { name: "UpdateDispatchStatus", options: { "codegen.perms.perms": { enabled: true, name: "TakeDispatch" } }, I: UpdateDispatchStatusRequest, O: UpdateDispatchStatusResponse }
1305
- ], { "codegen.perms.perms_svc": { name: "centrum.CentrumService" } });
1305
+ ], { "codegen.perms.perms_svc": { order: 105, icon: "i-mdi-target-arrow" } });
@@ -866,11 +866,11 @@ export const ListUnitActivityResponse = new ListUnitActivityResponse$Type();
866
866
  * @generated ServiceType for protobuf service services.centrum.UnitsService
867
867
  */
868
868
  export const UnitsService = new ServiceType("services.centrum.UnitsService", [
869
- { name: "JoinUnit", options: { "codegen.perms.perms": { enabled: true, name: "Stream" } }, I: JoinUnitRequest, O: JoinUnitResponse },
870
- { name: "ListUnits", options: { "codegen.perms.perms": { enabled: true, name: "Stream" } }, I: ListUnitsRequest, O: ListUnitsResponse },
871
- { name: "ListUnitActivity", options: { "codegen.perms.perms": { enabled: true, name: "Stream" } }, I: ListUnitActivityRequest, O: ListUnitActivityResponse },
869
+ { name: "JoinUnit", options: { "codegen.perms.perms": { enabled: true, namespace: "centrum", service: "CentrumService", name: "Stream" } }, I: JoinUnitRequest, O: JoinUnitResponse },
870
+ { name: "ListUnits", options: { "codegen.perms.perms": { enabled: true, namespace: "centrum", service: "CentrumService", name: "Stream" } }, I: ListUnitsRequest, O: ListUnitsResponse },
871
+ { name: "ListUnitActivity", options: { "codegen.perms.perms": { enabled: true, namespace: "centrum", service: "CentrumService", name: "Stream" } }, I: ListUnitActivityRequest, O: ListUnitActivityResponse },
872
872
  { name: "CreateOrUpdateUnit", options: { "codegen.perms.perms": { enabled: true } }, I: CreateOrUpdateUnitRequest, O: CreateOrUpdateUnitResponse },
873
873
  { name: "DeleteUnit", options: { "codegen.perms.perms": { enabled: true } }, I: DeleteUnitRequest, O: DeleteUnitResponse },
874
- { name: "AssignUnit", options: { "codegen.perms.perms": { enabled: true, name: "TakeControl" } }, I: AssignUnitRequest, O: AssignUnitResponse },
875
- { name: "UpdateUnitStatus", options: { "codegen.perms.perms": { enabled: true, name: "TakeDispatch" } }, I: UpdateUnitStatusRequest, O: UpdateUnitStatusResponse }
876
- ], { "codegen.perms.perms_svc": { name: "centrum.CentrumService" } });
874
+ { name: "AssignUnit", options: { "codegen.perms.perms": { enabled: true, namespace: "centrum", service: "CentrumService", name: "TakeControl" } }, I: AssignUnitRequest, O: AssignUnitResponse },
875
+ { name: "UpdateUnitStatus", options: { "codegen.perms.perms": { enabled: true, namespace: "centrum", service: "DispatchesService", name: "TakeDispatch" } }, I: UpdateUnitStatusRequest, O: UpdateUnitStatusResponse }
876
+ ], { "codegen.perms.perms_svc": { order: 110, icon: "i-mdi-account-group" } });
@@ -5,6 +5,10 @@
5
5
  import type { RpcTransport } from "@protobuf-ts/runtime-rpc";
6
6
  import type { ServiceInfo } from "@protobuf-ts/runtime-rpc";
7
7
  import { LabelsService } from "./labels";
8
+ import type { RemoveCitizenLabelsResponse } from "./labels";
9
+ import type { RemoveCitizenLabelsRequest } from "./labels";
10
+ import type { AddCitizenLabelsResponse } from "./labels";
11
+ import type { AddCitizenLabelsRequest } from "./labels";
8
12
  import type { DeleteLabelResponse } from "./labels";
9
13
  import type { DeleteLabelRequest } from "./labels";
10
14
  import type { CreateOrUpdateLabelResponse } from "./labels";
@@ -36,6 +40,14 @@ export interface ILabelsServiceClient {
36
40
  * @generated from protobuf rpc: DeleteLabel
37
41
  */
38
42
  deleteLabel(input: DeleteLabelRequest, options?: RpcOptions): UnaryCall<DeleteLabelRequest, DeleteLabelResponse>;
43
+ /**
44
+ * @generated from protobuf rpc: AddCitizenLabels
45
+ */
46
+ addCitizenLabels(input: AddCitizenLabelsRequest, options?: RpcOptions): UnaryCall<AddCitizenLabelsRequest, AddCitizenLabelsResponse>;
47
+ /**
48
+ * @generated from protobuf rpc: RemoveCitizenLabels
49
+ */
50
+ removeCitizenLabels(input: RemoveCitizenLabelsRequest, options?: RpcOptions): UnaryCall<RemoveCitizenLabelsRequest, RemoveCitizenLabelsResponse>;
39
51
  }
40
52
  /**
41
53
  * @generated from protobuf service services.citizens.LabelsService
@@ -74,4 +86,18 @@ export class LabelsServiceClient implements ILabelsServiceClient, ServiceInfo {
74
86
  const method = this.methods[3], opt = this._transport.mergeOptions(options);
75
87
  return stackIntercept<DeleteLabelRequest, DeleteLabelResponse>("unary", this._transport, method, opt, input);
76
88
  }
89
+ /**
90
+ * @generated from protobuf rpc: AddCitizenLabels
91
+ */
92
+ addCitizenLabels(input: AddCitizenLabelsRequest, options?: RpcOptions): UnaryCall<AddCitizenLabelsRequest, AddCitizenLabelsResponse> {
93
+ const method = this.methods[4], opt = this._transport.mergeOptions(options);
94
+ return stackIntercept<AddCitizenLabelsRequest, AddCitizenLabelsResponse>("unary", this._transport, method, opt, input);
95
+ }
96
+ /**
97
+ * @generated from protobuf rpc: RemoveCitizenLabels
98
+ */
99
+ removeCitizenLabels(input: RemoveCitizenLabelsRequest, options?: RpcOptions): UnaryCall<RemoveCitizenLabelsRequest, RemoveCitizenLabelsResponse> {
100
+ const method = this.methods[5], opt = this._transport.mergeOptions(options);
101
+ return stackIntercept<RemoveCitizenLabelsRequest, RemoveCitizenLabelsResponse>("unary", this._transport, method, opt, input);
102
+ }
77
103
  }