@fivenet-app/gen 2026.5.1 → 2026.7.0

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 (74) hide show
  1. package/clients.ts +6 -0
  2. package/codegen/perms/perms.ts +14 -2
  3. package/codegen/sanitizer/sanitizer.ts +6 -0
  4. package/google/protobuf/descriptor.ts +11 -3
  5. package/google/protobuf/timestamp.ts +7 -6
  6. package/package.json +1 -1
  7. package/perms.ts +343 -3
  8. package/resources/access/access.ts +481 -0
  9. package/resources/calendar/access/access.ts +0 -330
  10. package/resources/calendar/calendar.ts +307 -25
  11. package/resources/calendar/entries/entries.ts +204 -11
  12. package/resources/centrum/units/access/access.ts +0 -373
  13. package/resources/centrum/units/units.ts +20 -8
  14. package/resources/citizens/labels/access.ts +0 -191
  15. package/resources/citizens/labels/labels.ts +20 -8
  16. package/resources/common/content/diff_activity.ts +1 -1
  17. package/resources/cron/cron.ts +1 -1
  18. package/resources/documents/access/access.ts +0 -329
  19. package/resources/documents/activity/activity.ts +49 -45
  20. package/resources/documents/documents.ts +1 -1
  21. package/resources/documents/requests/requests.ts +1 -1
  22. package/resources/documents/stamps/stamp.ts +40 -210
  23. package/resources/documents/templates/templates.ts +158 -318
  24. package/resources/jobs/colleagues/activity/activity.ts +1 -1
  25. package/resources/jobs/conduct/conduct.ts +2 -2
  26. package/resources/jobs/jobs.ts +22 -0
  27. package/resources/jobs/labels/labels.ts +9 -9
  28. package/resources/laws/laws.ts +24 -0
  29. package/resources/livemap/markers/marker_marker.ts +311 -4
  30. package/resources/mailer/access/access.ts +0 -457
  31. package/resources/mailer/emails/email.ts +4 -4
  32. package/resources/notifications/events/events.ts +18 -1
  33. package/resources/qualifications/access/access.ts +0 -248
  34. package/resources/qualifications/qualifications.ts +9 -9
  35. package/resources/settings/config.ts +53 -5
  36. package/resources/settings/data.ts +1 -1
  37. package/resources/stats/stats.ts +32 -20
  38. package/resources/sync/data/data.ts +13 -1
  39. package/resources/userinfo/userinfo.ts +202 -51
  40. package/resources/users/activity/activity.ts +1 -1
  41. package/resources/wiki/access/access.ts +0 -330
  42. package/resources/wiki/activity/activity.ts +45 -45
  43. package/resources/wiki/page.ts +9 -9
  44. package/services/calendar/calendar.ts +1 -1
  45. package/services/calendar/entries.ts +12 -1
  46. package/services/centrum/dispatches.ts +27 -7
  47. package/services/centrum/units.client.ts +15 -2
  48. package/services/centrum/units.ts +231 -123
  49. package/services/citizens/citizens.ts +1 -1
  50. package/services/citizens/labels.client.ts +7 -20
  51. package/services/citizens/labels.ts +35 -183
  52. package/services/documents/approval.ts +15 -4
  53. package/services/documents/collab.ts +1 -1
  54. package/services/documents/documents.ts +38 -38
  55. package/services/documents/stats.ts +14 -2
  56. package/services/filestore/filestore.ts +4 -4
  57. package/services/jobs/colleagues.ts +3 -3
  58. package/services/jobs/conduct.ts +2 -2
  59. package/services/jobs/groups.client.ts +22 -0
  60. package/services/jobs/groups.ts +9 -0
  61. package/services/jobs/timeclock.ts +2 -2
  62. package/services/mailer/thread.ts +2 -2
  63. package/services/qualifications/qualifications.ts +52 -34
  64. package/services/settings/accounts.ts +5 -5
  65. package/services/settings/config.ts +2 -2
  66. package/services/settings/cron.ts +2 -2
  67. package/services/settings/laws.client.ts +28 -2
  68. package/services/settings/laws.ts +229 -1
  69. package/services/settings/system.ts +6 -6
  70. package/services/sync/sync.client.ts +42 -14
  71. package/services/sync/sync.ts +162 -13
  72. package/services/wiki/wiki.client.ts +15 -2
  73. package/services/wiki/wiki.ts +122 -0
  74. package/svcs.ts +18 -2
@@ -39,6 +39,10 @@ export interface GetStatsRequest {
39
39
  * @generated from protobuf field: resources.stats.StatsCategory category = 4
40
40
  */
41
41
  category: StatsCategory;
42
+ /**
43
+ * @generated from protobuf field: repeated string jobs = 5
44
+ */
45
+ jobs: string[];
42
46
  }
43
47
  /**
44
48
  * @generated from protobuf message services.documents.GetStatsResponse
@@ -80,13 +84,15 @@ class GetStatsRequest$Type extends MessageType<GetStatsRequest> {
80
84
  { no: 1, name: "start", kind: "message", T: () => Timestamp },
81
85
  { no: 2, name: "end", kind: "message", T: () => Timestamp },
82
86
  { no: 3, name: "period", kind: "enum", T: () => ["resources.stats.StatsPeriod", StatsPeriod, "STATS_PERIOD_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
83
- { no: 4, name: "category", kind: "enum", T: () => ["resources.stats.StatsCategory", StatsCategory, "STATS_CATEGORY_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } }
87
+ { no: 4, name: "category", kind: "enum", T: () => ["resources.stats.StatsCategory", StatsCategory, "STATS_CATEGORY_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
88
+ { no: 5, name: "jobs", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { repeated: { maxItems: "15", items: { string: { maxLen: "40" } } } } } }
84
89
  ]);
85
90
  }
86
91
  create(value?: PartialMessage<GetStatsRequest>): GetStatsRequest {
87
92
  const message = globalThis.Object.create((this.messagePrototype!));
88
93
  message.period = 0;
89
94
  message.category = 0;
95
+ message.jobs = [];
90
96
  if (value !== undefined)
91
97
  reflectionMergePartial<GetStatsRequest>(this, message, value);
92
98
  return message;
@@ -108,6 +114,9 @@ class GetStatsRequest$Type extends MessageType<GetStatsRequest> {
108
114
  case /* resources.stats.StatsCategory category */ 4:
109
115
  message.category = reader.int32();
110
116
  break;
117
+ case /* repeated string jobs */ 5:
118
+ message.jobs.push(reader.string());
119
+ break;
111
120
  default:
112
121
  let u = options.readUnknownField;
113
122
  if (u === "throw")
@@ -132,6 +141,9 @@ class GetStatsRequest$Type extends MessageType<GetStatsRequest> {
132
141
  /* resources.stats.StatsCategory category = 4; */
133
142
  if (message.category !== 0)
134
143
  writer.tag(4, WireType.Varint).int32(message.category);
144
+ /* repeated string jobs = 5; */
145
+ for (let i = 0; i < message.jobs.length; i++)
146
+ writer.tag(5, WireType.LengthDelimited).string(message.jobs[i]);
135
147
  let u = options.writeUnknownFields;
136
148
  if (u !== false)
137
149
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -241,5 +253,5 @@ export const GetStatsResponse = new GetStatsResponse$Type();
241
253
  * @generated ServiceType for protobuf service services.documents.StatsService
242
254
  */
243
255
  export const StatsService = new ServiceType("services.documents.StatsService", [
244
- { name: "GetStats", options: { "codegen.perms.perms": { enabled: true, attrs: [{ key: "Categories", type: "ATTRIBUTE_TYPE_STRING_LIST", validStringList: ["PenaltyCalculator"] }] } }, I: GetStatsRequest, O: GetStatsResponse }
256
+ { name: "GetStats", options: { "codegen.perms.perms": { enabled: true, attrs: [{ key: "Categories", type: "ATTRIBUTE_TYPE_STRING_LIST", validStringList: ["PenaltyCalculator"] }, { key: "Jobs", type: "ATTRIBUTE_TYPE_JOB_LIST" }] } }, I: GetStatsRequest, O: GetStatsResponse }
245
257
  ], { "codegen.perms.perms_svc": { order: 58, icon: "i-mdi-graph-box-multiple-outline" } });
@@ -255,8 +255,8 @@ export const DeleteFileByPathResponse = new DeleteFileByPathResponse$Type();
255
255
  * @generated ServiceType for protobuf service services.filestore.FilestoreService
256
256
  */
257
257
  export const FilestoreService = new ServiceType("services.filestore.FilestoreService", [
258
- { name: "Upload", clientStreaming: true, options: { "codegen.perms.perms": { enabled: true, name: "Superuser" } }, I: UploadFileRequest, O: UploadFileResponse },
259
- { name: "ListFiles", options: { "codegen.perms.perms": { enabled: true, name: "Superuser" } }, I: ListFilesRequest, O: ListFilesResponse },
260
- { name: "DeleteFile", options: { "codegen.perms.perms": { enabled: true, name: "Superuser" } }, I: DeleteFileRequest, O: DeleteFileResponse },
261
- { name: "DeleteFileByPath", options: { "codegen.perms.perms": { enabled: true, name: "Superuser" } }, I: DeleteFileByPathRequest, O: DeleteFileByPathResponse }
258
+ { name: "Upload", clientStreaming: true, options: { "codegen.perms.perms": { enabled: true, name: "ConfigAdmin" } }, I: UploadFileRequest, O: UploadFileResponse },
259
+ { name: "ListFiles", options: { "codegen.perms.perms": { enabled: true, name: "ConfigAdmin" } }, I: ListFilesRequest, O: ListFilesResponse },
260
+ { name: "DeleteFile", options: { "codegen.perms.perms": { enabled: true, name: "ConfigAdmin" } }, I: DeleteFileRequest, O: DeleteFileResponse },
261
+ { name: "DeleteFileByPath", options: { "codegen.perms.perms": { enabled: true, name: "ConfigAdmin" } }, I: DeleteFileByPathRequest, O: DeleteFileByPathResponse }
262
262
  ]);
@@ -234,10 +234,10 @@ class ListColleaguesRequest$Type extends MessageType<ListColleaguesRequest> {
234
234
  { no: 1, name: "pagination", kind: "message", T: () => PaginationRequest, options: { "buf.validate.field": { required: true } } },
235
235
  { no: 2, name: "sort", kind: "message", T: () => Sort },
236
236
  { no: 3, name: "search", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "64" } } } },
237
- { no: 4, name: "user_ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { repeated: { items: { int32: { gte: 0 } } } } } },
237
+ { no: 4, name: "user_ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { repeated: { maxItems: "10", items: { int32: { gte: 0 } } } } } },
238
238
  { no: 5, name: "user_only", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ },
239
239
  { no: 6, name: "absent", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ },
240
- { no: 7, name: "label_ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
240
+ { no: 7, name: "label_ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/, options: { "buf.validate.field": { repeated: { maxItems: "10" } } } },
241
241
  { no: 8, name: "name_prefix", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "12" } } } },
242
242
  { no: 9, name: "name_suffix", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "12" } } } }
243
243
  ]);
@@ -593,7 +593,7 @@ class ListColleagueActivityRequest$Type extends MessageType<ListColleagueActivit
593
593
  { no: 1, name: "pagination", kind: "message", T: () => PaginationRequest, options: { "buf.validate.field": { required: true } } },
594
594
  { no: 2, name: "sort", kind: "message", T: () => Sort },
595
595
  { no: 3, name: "user_ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 5 /*ScalarType.INT32*/ },
596
- { no: 4, name: "activity_types", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["resources.jobs.colleagues.activity.ColleagueActivityType", ColleagueActivityType, "COLLEAGUE_ACTIVITY_TYPE_"], options: { "buf.validate.field": { repeated: { maxItems: "10" } } } }
596
+ { no: 4, name: "activity_types", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["resources.jobs.colleagues.activity.ColleagueActivityType", ColleagueActivityType, "COLLEAGUE_ACTIVITY_TYPE_"], options: { "buf.validate.field": { repeated: { maxItems: "10", items: { enum: { definedOnly: true } } } } } }
597
597
  ]);
598
598
  }
599
599
  create(value?: PartialMessage<ListColleagueActivityRequest>): ListColleagueActivityRequest {
@@ -143,7 +143,7 @@ class ListConductEntriesRequest$Type extends MessageType<ListConductEntriesReque
143
143
  super("services.jobs.ListConductEntriesRequest", [
144
144
  { no: 1, name: "pagination", kind: "message", T: () => PaginationRequest, options: { "buf.validate.field": { required: true } } },
145
145
  { no: 2, name: "sort", kind: "message", T: () => Sort },
146
- { no: 3, name: "types", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["resources.jobs.conduct.ConductType", ConductType, "CONDUCT_TYPE_"] },
146
+ { no: 3, name: "types", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["resources.jobs.conduct.ConductType", ConductType, "CONDUCT_TYPE_"], options: { "buf.validate.field": { repeated: { items: { enum: { definedOnly: true } } } } } },
147
147
  { no: 4, name: "show_expired", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ },
148
148
  { no: 5, name: "show_drafts", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ },
149
149
  { no: 6, name: "user_ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 5 /*ScalarType.INT32*/ },
@@ -678,4 +678,4 @@ export const ConductService = new ServiceType("services.jobs.ConductService", [
678
678
  { name: "UpdateConductEntry", options: { "codegen.perms.perms": { enabled: true } }, I: UpdateConductEntryRequest, O: UpdateConductEntryResponse },
679
679
  { name: "DeleteConductEntry", options: { "codegen.perms.perms": { enabled: true } }, I: DeleteConductEntryRequest, O: DeleteConductEntryResponse },
680
680
  { name: "UploadFile", clientStreaming: true, options: { "codegen.perms.perms": { enabled: true, names: ["CreateConductEntry", "UpdateConductEntry"] } }, I: UploadFileRequest, O: UploadFileResponse }
681
- ], { "codegen.perms.perms_svc": { order: 67, icon: "i-mdi-list-status" } });
681
+ ], { "codegen.perms.perms_svc": { order: 65, icon: "i-mdi-list-status" } });
@@ -0,0 +1,22 @@
1
+ // @generated by protobuf-ts 2.11.1 with parameter force_server_none,long_type_number,optimize_speed,ts_nocheck
2
+ // @generated from protobuf file "services/jobs/groups.proto" (package "services.jobs", syntax proto3)
3
+ // tslint:disable
4
+ // @ts-nocheck
5
+ import type { RpcTransport } from "@protobuf-ts/runtime-rpc";
6
+ import type { ServiceInfo } from "@protobuf-ts/runtime-rpc";
7
+ import { GroupsService } from "./groups";
8
+ /**
9
+ * @generated from protobuf service services.jobs.GroupsService
10
+ */
11
+ export interface IGroupsServiceClient {
12
+ }
13
+ /**
14
+ * @generated from protobuf service services.jobs.GroupsService
15
+ */
16
+ export class GroupsServiceClient implements IGroupsServiceClient, ServiceInfo {
17
+ typeName = GroupsService.typeName;
18
+ methods = GroupsService.methods;
19
+ options = GroupsService.options;
20
+ constructor(private readonly _transport: RpcTransport) {
21
+ }
22
+ }
@@ -0,0 +1,9 @@
1
+ // @generated by protobuf-ts 2.11.1 with parameter force_server_none,long_type_number,optimize_speed,ts_nocheck
2
+ // @generated from protobuf file "services/jobs/groups.proto" (package "services.jobs", syntax proto3)
3
+ // tslint:disable
4
+ // @ts-nocheck
5
+ import { ServiceType } from "@protobuf-ts/runtime-rpc";
6
+ /**
7
+ * @generated ServiceType for protobuf service services.jobs.GroupsService
8
+ */
9
+ export const GroupsService = new ServiceType("services.jobs.GroupsService", [], { "codegen.perms.perms_svc": { order: 66, icon: "i-mdi-account-group-outline" } });
@@ -212,8 +212,8 @@ class ListTimeclockRequest$Type extends MessageType<ListTimeclockRequest> {
212
212
  super("services.jobs.ListTimeclockRequest", [
213
213
  { no: 1, name: "pagination", kind: "message", T: () => PaginationRequest, options: { "buf.validate.field": { required: true } } },
214
214
  { no: 2, name: "sort", kind: "message", T: () => Sort },
215
- { no: 3, name: "user_mode", kind: "enum", T: () => ["resources.jobs.timeclock.TimeclockViewMode", TimeclockViewMode, "TIMECLOCK_VIEW_MODE_"] },
216
- { no: 4, name: "mode", kind: "enum", T: () => ["resources.jobs.timeclock.TimeclockMode", TimeclockMode, "TIMECLOCK_MODE_"] },
215
+ { no: 3, name: "user_mode", kind: "enum", T: () => ["resources.jobs.timeclock.TimeclockViewMode", TimeclockViewMode, "TIMECLOCK_VIEW_MODE_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
216
+ { no: 4, name: "mode", kind: "enum", T: () => ["resources.jobs.timeclock.TimeclockMode", TimeclockMode, "TIMECLOCK_MODE_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
217
217
  { no: 5, name: "date", kind: "message", T: () => DateRange },
218
218
  { no: 6, name: "per_day", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
219
219
  { no: 7, name: "user_ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { repeated: { maxItems: "15" } } } }
@@ -1333,11 +1333,11 @@ export const ThreadService = new ServiceType("services.mailer.ThreadService", [
1333
1333
  { name: "ListThreads", options: { "codegen.perms.perms": { enabled: true, name: "ListEmails" } }, I: ListThreadsRequest, O: ListThreadsResponse },
1334
1334
  { name: "GetThread", options: { "codegen.perms.perms": { enabled: true, name: "ListEmails" } }, I: GetThreadRequest, O: GetThreadResponse },
1335
1335
  { name: "CreateThread", options: { "codegen.perms.perms": { enabled: true, name: "ListEmails" } }, I: CreateThreadRequest, O: CreateThreadResponse },
1336
- { name: "DeleteThread", options: { "codegen.perms.perms": { enabled: true, name: "Superuser" } }, I: DeleteThreadRequest, O: DeleteThreadResponse },
1336
+ { name: "DeleteThread", options: { "codegen.perms.perms": { enabled: true, name: "JobAdmin" } }, I: DeleteThreadRequest, O: DeleteThreadResponse },
1337
1337
  { name: "GetThreadState", options: { "codegen.perms.perms": { enabled: true, name: "ListEmails" } }, I: GetThreadStateRequest, O: GetThreadStateResponse },
1338
1338
  { name: "SetThreadState", options: { "codegen.perms.perms": { enabled: true, name: "ListEmails" } }, I: SetThreadStateRequest, O: SetThreadStateResponse },
1339
1339
  { name: "SearchThreads", options: { "codegen.perms.perms": { enabled: true, name: "ListEmails" } }, I: SearchThreadsRequest, O: SearchThreadsResponse },
1340
1340
  { name: "ListThreadMessages", options: { "codegen.perms.perms": { enabled: true, name: "ListEmails" } }, I: ListThreadMessagesRequest, O: ListThreadMessagesResponse },
1341
1341
  { name: "PostMessage", options: { "codegen.perms.perms": { enabled: true, name: "ListEmails" } }, I: PostMessageRequest, O: PostMessageResponse },
1342
- { name: "DeleteMessage", options: { "codegen.perms.perms": { enabled: true, name: "Superuser" } }, I: DeleteMessageRequest, O: DeleteMessageResponse }
1342
+ { name: "DeleteMessage", options: { "codegen.perms.perms": { enabled: true, name: "JobAdmin" } }, I: DeleteMessageRequest, O: DeleteMessageResponse }
1343
1343
  ], { "codegen.perms.perms_svc": { namespace: "mailer", service: "MailerService" } });
@@ -19,7 +19,7 @@ import { QualificationResult } from "../../resources/qualifications/qualificatio
19
19
  import { ResultStatus } from "../../resources/qualifications/qualifications";
20
20
  import { QualificationRequest } from "../../resources/qualifications/qualifications";
21
21
  import { RequestStatus } from "../../resources/qualifications/qualifications";
22
- import { QualificationAccess } from "../../resources/qualifications/access/access";
22
+ import { Access } from "../../resources/access/access";
23
23
  import { ContentType } from "../../resources/common/content/content";
24
24
  import { Qualification } from "../../resources/qualifications/qualifications";
25
25
  import { PaginationResponse } from "../../resources/common/database/database";
@@ -149,9 +149,9 @@ export interface GetQualificationAccessRequest {
149
149
  */
150
150
  export interface GetQualificationAccessResponse {
151
151
  /**
152
- * @generated from protobuf field: resources.qualifications.access.QualificationAccess access = 1
152
+ * @generated from protobuf field: resources.access.Access access = 1
153
153
  */
154
- access?: QualificationAccess;
154
+ access?: Access;
155
155
  }
156
156
  /**
157
157
  * @generated from protobuf message services.qualifications.SetQualificationAccessRequest
@@ -162,9 +162,9 @@ export interface SetQualificationAccessRequest {
162
162
  */
163
163
  qualificationId: number;
164
164
  /**
165
- * @generated from protobuf field: resources.qualifications.access.QualificationAccess access = 2
165
+ * @generated from protobuf field: resources.access.Access access = 2
166
166
  */
167
- access?: QualificationAccess;
167
+ access?: Access;
168
168
  }
169
169
  /**
170
170
  * @generated from protobuf message services.qualifications.SetQualificationAccessResponse
@@ -196,9 +196,9 @@ export interface ListQualificationRequestsRequest {
196
196
  */
197
197
  status: RequestStatus[];
198
198
  /**
199
- * @generated from protobuf field: optional int32 user_id = 5
199
+ * @generated from protobuf field: repeated int32 user_ids = 5
200
200
  */
201
- userId?: number;
201
+ userIds: number[];
202
202
  }
203
203
  /**
204
204
  * @generated from protobuf message services.qualifications.ListQualificationRequestsResponse
@@ -274,9 +274,9 @@ export interface ListQualificationsResultsRequest {
274
274
  */
275
275
  status: ResultStatus[];
276
276
  /**
277
- * @generated from protobuf field: optional int32 user_id = 5
277
+ * @generated from protobuf field: repeated int32 user_ids = 5
278
278
  */
279
- userId?: number;
279
+ userIds: number[];
280
280
  }
281
281
  /**
282
282
  * @generated from protobuf message services.qualifications.ListQualificationsResultsResponse
@@ -871,7 +871,7 @@ export const GetQualificationAccessRequest = new GetQualificationAccessRequest$T
871
871
  class GetQualificationAccessResponse$Type extends MessageType<GetQualificationAccessResponse> {
872
872
  constructor() {
873
873
  super("services.qualifications.GetQualificationAccessResponse", [
874
- { no: 1, name: "access", kind: "message", T: () => QualificationAccess, options: { "buf.validate.field": { required: true } } }
874
+ { no: 1, name: "access", kind: "message", T: () => Access, options: { "buf.validate.field": { required: true } } }
875
875
  ]);
876
876
  }
877
877
  create(value?: PartialMessage<GetQualificationAccessResponse>): GetQualificationAccessResponse {
@@ -885,8 +885,8 @@ class GetQualificationAccessResponse$Type extends MessageType<GetQualificationAc
885
885
  while (reader.pos < end) {
886
886
  let [fieldNo, wireType] = reader.tag();
887
887
  switch (fieldNo) {
888
- case /* resources.qualifications.access.QualificationAccess access */ 1:
889
- message.access = QualificationAccess.internalBinaryRead(reader, reader.uint32(), options, message.access);
888
+ case /* resources.access.Access access */ 1:
889
+ message.access = Access.internalBinaryRead(reader, reader.uint32(), options, message.access);
890
890
  break;
891
891
  default:
892
892
  let u = options.readUnknownField;
@@ -900,9 +900,9 @@ class GetQualificationAccessResponse$Type extends MessageType<GetQualificationAc
900
900
  return message;
901
901
  }
902
902
  internalBinaryWrite(message: GetQualificationAccessResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
903
- /* resources.qualifications.access.QualificationAccess access = 1; */
903
+ /* resources.access.Access access = 1; */
904
904
  if (message.access)
905
- QualificationAccess.internalBinaryWrite(message.access, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
905
+ Access.internalBinaryWrite(message.access, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
906
906
  let u = options.writeUnknownFields;
907
907
  if (u !== false)
908
908
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -918,7 +918,7 @@ class SetQualificationAccessRequest$Type extends MessageType<SetQualificationAcc
918
918
  constructor() {
919
919
  super("services.qualifications.SetQualificationAccessRequest", [
920
920
  { no: 1, name: "qualification_id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
921
- { no: 2, name: "access", kind: "message", T: () => QualificationAccess, options: { "buf.validate.field": { required: true } } }
921
+ { no: 2, name: "access", kind: "message", T: () => Access, options: { "buf.validate.field": { required: true } } }
922
922
  ]);
923
923
  }
924
924
  create(value?: PartialMessage<SetQualificationAccessRequest>): SetQualificationAccessRequest {
@@ -936,8 +936,8 @@ class SetQualificationAccessRequest$Type extends MessageType<SetQualificationAcc
936
936
  case /* int64 qualification_id */ 1:
937
937
  message.qualificationId = reader.int64().toNumber();
938
938
  break;
939
- case /* resources.qualifications.access.QualificationAccess access */ 2:
940
- message.access = QualificationAccess.internalBinaryRead(reader, reader.uint32(), options, message.access);
939
+ case /* resources.access.Access access */ 2:
940
+ message.access = Access.internalBinaryRead(reader, reader.uint32(), options, message.access);
941
941
  break;
942
942
  default:
943
943
  let u = options.readUnknownField;
@@ -954,9 +954,9 @@ class SetQualificationAccessRequest$Type extends MessageType<SetQualificationAcc
954
954
  /* int64 qualification_id = 1; */
955
955
  if (message.qualificationId !== 0)
956
956
  writer.tag(1, WireType.Varint).int64(message.qualificationId);
957
- /* resources.qualifications.access.QualificationAccess access = 2; */
957
+ /* resources.access.Access access = 2; */
958
958
  if (message.access)
959
- QualificationAccess.internalBinaryWrite(message.access, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
959
+ Access.internalBinaryWrite(message.access, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
960
960
  let u = options.writeUnknownFields;
961
961
  if (u !== false)
962
962
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -1012,13 +1012,14 @@ class ListQualificationRequestsRequest$Type extends MessageType<ListQualificatio
1012
1012
  { no: 1, name: "pagination", kind: "message", T: () => PaginationRequest, options: { "buf.validate.field": { required: true } } },
1013
1013
  { no: 2, name: "sort", kind: "message", T: () => Sort },
1014
1014
  { no: 3, name: "qualification_id", kind: "scalar", opt: true, T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
1015
- { no: 4, name: "status", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["resources.qualifications.RequestStatus", RequestStatus, "REQUEST_STATUS_"] },
1016
- { no: 5, name: "user_id", kind: "scalar", opt: true, T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gte: 0 } } } }
1015
+ { no: 4, name: "status", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["resources.qualifications.RequestStatus", RequestStatus, "REQUEST_STATUS_"], options: { "buf.validate.field": { repeated: { items: { enum: { definedOnly: true } } } } } },
1016
+ { no: 5, name: "user_ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { repeated: { maxItems: "5", items: { int32: { gt: 0 } } } } } }
1017
1017
  ]);
1018
1018
  }
1019
1019
  create(value?: PartialMessage<ListQualificationRequestsRequest>): ListQualificationRequestsRequest {
1020
1020
  const message = globalThis.Object.create((this.messagePrototype!));
1021
1021
  message.status = [];
1022
+ message.userIds = [];
1022
1023
  if (value !== undefined)
1023
1024
  reflectionMergePartial<ListQualificationRequestsRequest>(this, message, value);
1024
1025
  return message;
@@ -1044,8 +1045,12 @@ class ListQualificationRequestsRequest$Type extends MessageType<ListQualificatio
1044
1045
  else
1045
1046
  message.status.push(reader.int32());
1046
1047
  break;
1047
- case /* optional int32 user_id */ 5:
1048
- message.userId = reader.int32();
1048
+ case /* repeated int32 user_ids */ 5:
1049
+ if (wireType === WireType.LengthDelimited)
1050
+ for (let e = reader.int32() + reader.pos; reader.pos < e;)
1051
+ message.userIds.push(reader.int32());
1052
+ else
1053
+ message.userIds.push(reader.int32());
1049
1054
  break;
1050
1055
  default:
1051
1056
  let u = options.readUnknownField;
@@ -1075,9 +1080,13 @@ class ListQualificationRequestsRequest$Type extends MessageType<ListQualificatio
1075
1080
  writer.int32(message.status[i]);
1076
1081
  writer.join();
1077
1082
  }
1078
- /* optional int32 user_id = 5; */
1079
- if (message.userId !== undefined)
1080
- writer.tag(5, WireType.Varint).int32(message.userId);
1083
+ /* repeated int32 user_ids = 5; */
1084
+ if (message.userIds.length) {
1085
+ writer.tag(5, WireType.LengthDelimited).fork();
1086
+ for (let i = 0; i < message.userIds.length; i++)
1087
+ writer.int32(message.userIds[i]);
1088
+ writer.join();
1089
+ }
1081
1090
  let u = options.writeUnknownFields;
1082
1091
  if (u !== false)
1083
1092
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -1239,7 +1248,7 @@ class DeleteQualificationReqRequest$Type extends MessageType<DeleteQualification
1239
1248
  constructor() {
1240
1249
  super("services.qualifications.DeleteQualificationReqRequest", [
1241
1250
  { no: 1, name: "qualification_id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
1242
- { no: 2, name: "user_id", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gte: 0 } } } }
1251
+ { no: 2, name: "user_id", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gt: 0 } } } }
1243
1252
  ]);
1244
1253
  }
1245
1254
  create(value?: PartialMessage<DeleteQualificationReqRequest>): DeleteQualificationReqRequest {
@@ -1334,13 +1343,14 @@ class ListQualificationsResultsRequest$Type extends MessageType<ListQualificatio
1334
1343
  { no: 1, name: "pagination", kind: "message", T: () => PaginationRequest, options: { "buf.validate.field": { required: true } } },
1335
1344
  { no: 2, name: "sort", kind: "message", T: () => Sort },
1336
1345
  { no: 3, name: "qualification_id", kind: "scalar", opt: true, T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
1337
- { no: 4, name: "status", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["resources.qualifications.ResultStatus", ResultStatus, "RESULT_STATUS_"] },
1338
- { no: 5, name: "user_id", kind: "scalar", opt: true, T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gte: 0 } } } }
1346
+ { no: 4, name: "status", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["resources.qualifications.ResultStatus", ResultStatus, "RESULT_STATUS_"], options: { "buf.validate.field": { repeated: { items: { enum: { definedOnly: true } } } } } },
1347
+ { no: 5, name: "user_ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { repeated: { maxItems: "5", items: { int32: { gt: 0 } } } } } }
1339
1348
  ]);
1340
1349
  }
1341
1350
  create(value?: PartialMessage<ListQualificationsResultsRequest>): ListQualificationsResultsRequest {
1342
1351
  const message = globalThis.Object.create((this.messagePrototype!));
1343
1352
  message.status = [];
1353
+ message.userIds = [];
1344
1354
  if (value !== undefined)
1345
1355
  reflectionMergePartial<ListQualificationsResultsRequest>(this, message, value);
1346
1356
  return message;
@@ -1366,8 +1376,12 @@ class ListQualificationsResultsRequest$Type extends MessageType<ListQualificatio
1366
1376
  else
1367
1377
  message.status.push(reader.int32());
1368
1378
  break;
1369
- case /* optional int32 user_id */ 5:
1370
- message.userId = reader.int32();
1379
+ case /* repeated int32 user_ids */ 5:
1380
+ if (wireType === WireType.LengthDelimited)
1381
+ for (let e = reader.int32() + reader.pos; reader.pos < e;)
1382
+ message.userIds.push(reader.int32());
1383
+ else
1384
+ message.userIds.push(reader.int32());
1371
1385
  break;
1372
1386
  default:
1373
1387
  let u = options.readUnknownField;
@@ -1397,9 +1411,13 @@ class ListQualificationsResultsRequest$Type extends MessageType<ListQualificatio
1397
1411
  writer.int32(message.status[i]);
1398
1412
  writer.join();
1399
1413
  }
1400
- /* optional int32 user_id = 5; */
1401
- if (message.userId !== undefined)
1402
- writer.tag(5, WireType.Varint).int32(message.userId);
1414
+ /* repeated int32 user_ids = 5; */
1415
+ if (message.userIds.length) {
1416
+ writer.tag(5, WireType.LengthDelimited).fork();
1417
+ for (let i = 0; i < message.userIds.length; i++)
1418
+ writer.int32(message.userIds[i]);
1419
+ writer.join();
1420
+ }
1403
1421
  let u = options.writeUnknownFields;
1404
1422
  if (u !== false)
1405
1423
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -715,9 +715,9 @@ export const DeleteAccountResponse = new DeleteAccountResponse$Type();
715
715
  * @generated ServiceType for protobuf service services.settings.AccountsService
716
716
  */
717
717
  export const AccountsService = new ServiceType("services.settings.AccountsService", [
718
- { name: "ListAccounts", options: { "codegen.perms.perms": { enabled: true, name: "Superuser" } }, I: ListAccountsRequest, O: ListAccountsResponse },
719
- { name: "CreateAccount", options: { "codegen.perms.perms": { enabled: true, name: "Superuser" } }, I: CreateAccountRequest, O: CreateAccountResponse },
720
- { name: "UpdateAccount", options: { "codegen.perms.perms": { enabled: true, name: "Superuser" } }, I: UpdateAccountRequest, O: UpdateAccountResponse },
721
- { name: "DisconnectSocialLogin", options: { "codegen.perms.perms": { enabled: true, name: "Superuser" } }, I: DisconnectSocialLoginRequest, O: DisconnectSocialLoginResponse },
722
- { name: "DeleteAccount", options: { "codegen.perms.perms": { enabled: true, name: "Superuser" } }, I: DeleteAccountRequest, O: DeleteAccountResponse }
718
+ { name: "ListAccounts", options: { "codegen.perms.perms": { enabled: true, name: "ConfigAdmin" } }, I: ListAccountsRequest, O: ListAccountsResponse },
719
+ { name: "CreateAccount", options: { "codegen.perms.perms": { enabled: true, name: "ConfigAdmin" } }, I: CreateAccountRequest, O: CreateAccountResponse },
720
+ { name: "UpdateAccount", options: { "codegen.perms.perms": { enabled: true, name: "ConfigAdmin" } }, I: UpdateAccountRequest, O: UpdateAccountResponse },
721
+ { name: "DisconnectSocialLogin", options: { "codegen.perms.perms": { enabled: true, name: "ConfigAdmin" } }, I: DisconnectSocialLoginRequest, O: DisconnectSocialLoginResponse },
722
+ { name: "DeleteAccount", options: { "codegen.perms.perms": { enabled: true, name: "ConfigAdmin" } }, I: DeleteAccountRequest, O: DeleteAccountResponse }
723
723
  ]);
@@ -225,6 +225,6 @@ export const UpdateAppConfigResponse = new UpdateAppConfigResponse$Type();
225
225
  * @generated ServiceType for protobuf service services.settings.ConfigService
226
226
  */
227
227
  export const ConfigService = new ServiceType("services.settings.ConfigService", [
228
- { name: "GetAppConfig", options: { "codegen.perms.perms": { enabled: true, name: "Superuser" } }, I: GetAppConfigRequest, O: GetAppConfigResponse },
229
- { name: "UpdateAppConfig", options: { "codegen.perms.perms": { enabled: true, name: "Superuser" } }, I: UpdateAppConfigRequest, O: UpdateAppConfigResponse }
228
+ { name: "GetAppConfig", options: { "codegen.perms.perms": { enabled: true, name: "ConfigAdmin" } }, I: GetAppConfigRequest, O: GetAppConfigResponse },
229
+ { name: "UpdateAppConfig", options: { "codegen.perms.perms": { enabled: true, name: "ConfigAdmin" } }, I: UpdateAppConfigRequest, O: UpdateAppConfigResponse }
230
230
  ]);
@@ -228,6 +228,6 @@ export const RunCronjobResponse = new RunCronjobResponse$Type();
228
228
  * @generated ServiceType for protobuf service services.settings.CronService
229
229
  */
230
230
  export const CronService = new ServiceType("services.settings.CronService", [
231
- { name: "ListCronjobs", options: { "codegen.perms.perms": { enabled: true, name: "Superuser" } }, I: ListCronjobsRequest, O: ListCronjobsResponse },
232
- { name: "RunCronjob", options: { "codegen.perms.perms": { enabled: true, name: "Superuser" } }, I: RunCronjobRequest, O: RunCronjobResponse }
231
+ { name: "ListCronjobs", options: { "codegen.perms.perms": { enabled: true, name: "ConfigAdmin" } }, I: ListCronjobsRequest, O: ListCronjobsResponse },
232
+ { name: "RunCronjob", options: { "codegen.perms.perms": { enabled: true, name: "ConfigAdmin" } }, I: RunCronjobRequest, O: RunCronjobResponse }
233
233
  ]);
@@ -5,10 +5,14 @@
5
5
  import type { RpcTransport } from "@protobuf-ts/runtime-rpc";
6
6
  import type { ServiceInfo } from "@protobuf-ts/runtime-rpc";
7
7
  import { LawsService } from "./laws";
8
+ import type { ReorderLawsResponse } from "./laws";
9
+ import type { ReorderLawsRequest } from "./laws";
8
10
  import type { DeleteLawResponse } from "./laws";
9
11
  import type { DeleteLawRequest } from "./laws";
10
12
  import type { CreateOrUpdateLawResponse } from "./laws";
11
13
  import type { CreateOrUpdateLawRequest } from "./laws";
14
+ import type { ReorderLawBooksResponse } from "./laws";
15
+ import type { ReorderLawBooksRequest } from "./laws";
12
16
  import type { DeleteLawBookResponse } from "./laws";
13
17
  import type { DeleteLawBookRequest } from "./laws";
14
18
  import type { CreateOrUpdateLawBookResponse } from "./laws";
@@ -34,6 +38,10 @@ export interface ILawsServiceClient {
34
38
  * @generated from protobuf rpc: DeleteLawBook
35
39
  */
36
40
  deleteLawBook(input: DeleteLawBookRequest, options?: RpcOptions): UnaryCall<DeleteLawBookRequest, DeleteLawBookResponse>;
41
+ /**
42
+ * @generated from protobuf rpc: ReorderLawBooks
43
+ */
44
+ reorderLawBooks(input: ReorderLawBooksRequest, options?: RpcOptions): UnaryCall<ReorderLawBooksRequest, ReorderLawBooksResponse>;
37
45
  /**
38
46
  * @generated from protobuf rpc: CreateOrUpdateLaw
39
47
  */
@@ -42,6 +50,10 @@ export interface ILawsServiceClient {
42
50
  * @generated from protobuf rpc: DeleteLaw
43
51
  */
44
52
  deleteLaw(input: DeleteLawRequest, options?: RpcOptions): UnaryCall<DeleteLawRequest, DeleteLawResponse>;
53
+ /**
54
+ * @generated from protobuf rpc: ReorderLaws
55
+ */
56
+ reorderLaws(input: ReorderLawsRequest, options?: RpcOptions): UnaryCall<ReorderLawsRequest, ReorderLawsResponse>;
45
57
  }
46
58
  /**
47
59
  * @generated from protobuf service services.settings.LawsService
@@ -73,18 +85,32 @@ export class LawsServiceClient implements ILawsServiceClient, ServiceInfo {
73
85
  const method = this.methods[2], opt = this._transport.mergeOptions(options);
74
86
  return stackIntercept<DeleteLawBookRequest, DeleteLawBookResponse>("unary", this._transport, method, opt, input);
75
87
  }
88
+ /**
89
+ * @generated from protobuf rpc: ReorderLawBooks
90
+ */
91
+ reorderLawBooks(input: ReorderLawBooksRequest, options?: RpcOptions): UnaryCall<ReorderLawBooksRequest, ReorderLawBooksResponse> {
92
+ const method = this.methods[3], opt = this._transport.mergeOptions(options);
93
+ return stackIntercept<ReorderLawBooksRequest, ReorderLawBooksResponse>("unary", this._transport, method, opt, input);
94
+ }
76
95
  /**
77
96
  * @generated from protobuf rpc: CreateOrUpdateLaw
78
97
  */
79
98
  createOrUpdateLaw(input: CreateOrUpdateLawRequest, options?: RpcOptions): UnaryCall<CreateOrUpdateLawRequest, CreateOrUpdateLawResponse> {
80
- const method = this.methods[3], opt = this._transport.mergeOptions(options);
99
+ const method = this.methods[4], opt = this._transport.mergeOptions(options);
81
100
  return stackIntercept<CreateOrUpdateLawRequest, CreateOrUpdateLawResponse>("unary", this._transport, method, opt, input);
82
101
  }
83
102
  /**
84
103
  * @generated from protobuf rpc: DeleteLaw
85
104
  */
86
105
  deleteLaw(input: DeleteLawRequest, options?: RpcOptions): UnaryCall<DeleteLawRequest, DeleteLawResponse> {
87
- const method = this.methods[4], opt = this._transport.mergeOptions(options);
106
+ const method = this.methods[5], opt = this._transport.mergeOptions(options);
88
107
  return stackIntercept<DeleteLawRequest, DeleteLawResponse>("unary", this._transport, method, opt, input);
89
108
  }
109
+ /**
110
+ * @generated from protobuf rpc: ReorderLaws
111
+ */
112
+ reorderLaws(input: ReorderLawsRequest, options?: RpcOptions): UnaryCall<ReorderLawsRequest, ReorderLawsResponse> {
113
+ const method = this.methods[6], opt = this._transport.mergeOptions(options);
114
+ return stackIntercept<ReorderLawsRequest, ReorderLawsResponse>("unary", this._transport, method, opt, input);
115
+ }
90
116
  }