@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
@@ -12,6 +12,7 @@ import { UnknownFieldHandler } from "@protobuf-ts/runtime";
12
12
  import type { PartialMessage } from "@protobuf-ts/runtime";
13
13
  import { reflectionMergePartial } from "@protobuf-ts/runtime";
14
14
  import { MessageType } from "@protobuf-ts/runtime";
15
+ import { Timestamp } from "../../resources/timestamp/timestamp";
15
16
  import { UserShort } from "../../resources/users/short/user";
16
17
  import { Account } from "../../resources/accounts/accounts";
17
18
  import { PaginationResponse } from "../../resources/common/database/database";
@@ -154,6 +155,10 @@ export interface DeleteAccountRequest {
154
155
  * @generated from protobuf message services.settings.DeleteAccountResponse
155
156
  */
156
157
  export interface DeleteAccountResponse {
158
+ /**
159
+ * @generated from protobuf field: optional resources.timestamp.Timestamp deleted_at = 1
160
+ */
161
+ deletedAt?: Timestamp;
157
162
  }
158
163
  // @generated message type with reflection information, may provide speed optimized methods
159
164
  class ListAccountsRequest$Type extends MessageType<ListAccountsRequest> {
@@ -663,7 +668,9 @@ export const DeleteAccountRequest = new DeleteAccountRequest$Type();
663
668
  // @generated message type with reflection information, may provide speed optimized methods
664
669
  class DeleteAccountResponse$Type extends MessageType<DeleteAccountResponse> {
665
670
  constructor() {
666
- super("services.settings.DeleteAccountResponse", []);
671
+ super("services.settings.DeleteAccountResponse", [
672
+ { no: 1, name: "deleted_at", kind: "message", T: () => Timestamp }
673
+ ]);
667
674
  }
668
675
  create(value?: PartialMessage<DeleteAccountResponse>): DeleteAccountResponse {
669
676
  const message = globalThis.Object.create((this.messagePrototype!));
@@ -676,6 +683,9 @@ class DeleteAccountResponse$Type extends MessageType<DeleteAccountResponse> {
676
683
  while (reader.pos < end) {
677
684
  let [fieldNo, wireType] = reader.tag();
678
685
  switch (fieldNo) {
686
+ case /* optional resources.timestamp.Timestamp deleted_at */ 1:
687
+ message.deletedAt = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.deletedAt);
688
+ break;
679
689
  default:
680
690
  let u = options.readUnknownField;
681
691
  if (u === "throw")
@@ -688,6 +698,9 @@ class DeleteAccountResponse$Type extends MessageType<DeleteAccountResponse> {
688
698
  return message;
689
699
  }
690
700
  internalBinaryWrite(message: DeleteAccountResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
701
+ /* optional resources.timestamp.Timestamp deleted_at = 1; */
702
+ if (message.deletedAt)
703
+ Timestamp.internalBinaryWrite(message.deletedAt, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
691
704
  let u = options.writeUnknownFields;
692
705
  if (u !== false)
693
706
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -11,15 +11,21 @@ import type { CreateOrUpdateLawResponse } from "./laws";
11
11
  import type { CreateOrUpdateLawRequest } from "./laws";
12
12
  import type { DeleteLawBookResponse } from "./laws";
13
13
  import type { DeleteLawBookRequest } from "./laws";
14
- import { stackIntercept } from "@protobuf-ts/runtime-rpc";
15
14
  import type { CreateOrUpdateLawBookResponse } from "./laws";
16
15
  import type { CreateOrUpdateLawBookRequest } from "./laws";
16
+ import { stackIntercept } from "@protobuf-ts/runtime-rpc";
17
+ import type { ListLawBooksResponse } from "./laws";
18
+ import type { ListLawBooksRequest } from "./laws";
17
19
  import type { UnaryCall } from "@protobuf-ts/runtime-rpc";
18
20
  import type { RpcOptions } from "@protobuf-ts/runtime-rpc";
19
21
  /**
20
22
  * @generated from protobuf service services.settings.LawsService
21
23
  */
22
24
  export interface ILawsServiceClient {
25
+ /**
26
+ * @generated from protobuf rpc: ListLawBooks
27
+ */
28
+ listLawBooks(input: ListLawBooksRequest, options?: RpcOptions): UnaryCall<ListLawBooksRequest, ListLawBooksResponse>;
23
29
  /**
24
30
  * @generated from protobuf rpc: CreateOrUpdateLawBook
25
31
  */
@@ -46,32 +52,39 @@ export class LawsServiceClient implements ILawsServiceClient, ServiceInfo {
46
52
  options = LawsService.options;
47
53
  constructor(private readonly _transport: RpcTransport) {
48
54
  }
55
+ /**
56
+ * @generated from protobuf rpc: ListLawBooks
57
+ */
58
+ listLawBooks(input: ListLawBooksRequest, options?: RpcOptions): UnaryCall<ListLawBooksRequest, ListLawBooksResponse> {
59
+ const method = this.methods[0], opt = this._transport.mergeOptions(options);
60
+ return stackIntercept<ListLawBooksRequest, ListLawBooksResponse>("unary", this._transport, method, opt, input);
61
+ }
49
62
  /**
50
63
  * @generated from protobuf rpc: CreateOrUpdateLawBook
51
64
  */
52
65
  createOrUpdateLawBook(input: CreateOrUpdateLawBookRequest, options?: RpcOptions): UnaryCall<CreateOrUpdateLawBookRequest, CreateOrUpdateLawBookResponse> {
53
- const method = this.methods[0], opt = this._transport.mergeOptions(options);
66
+ const method = this.methods[1], opt = this._transport.mergeOptions(options);
54
67
  return stackIntercept<CreateOrUpdateLawBookRequest, CreateOrUpdateLawBookResponse>("unary", this._transport, method, opt, input);
55
68
  }
56
69
  /**
57
70
  * @generated from protobuf rpc: DeleteLawBook
58
71
  */
59
72
  deleteLawBook(input: DeleteLawBookRequest, options?: RpcOptions): UnaryCall<DeleteLawBookRequest, DeleteLawBookResponse> {
60
- const method = this.methods[1], opt = this._transport.mergeOptions(options);
73
+ const method = this.methods[2], opt = this._transport.mergeOptions(options);
61
74
  return stackIntercept<DeleteLawBookRequest, DeleteLawBookResponse>("unary", this._transport, method, opt, input);
62
75
  }
63
76
  /**
64
77
  * @generated from protobuf rpc: CreateOrUpdateLaw
65
78
  */
66
79
  createOrUpdateLaw(input: CreateOrUpdateLawRequest, options?: RpcOptions): UnaryCall<CreateOrUpdateLawRequest, CreateOrUpdateLawResponse> {
67
- const method = this.methods[2], opt = this._transport.mergeOptions(options);
80
+ const method = this.methods[3], opt = this._transport.mergeOptions(options);
68
81
  return stackIntercept<CreateOrUpdateLawRequest, CreateOrUpdateLawResponse>("unary", this._transport, method, opt, input);
69
82
  }
70
83
  /**
71
84
  * @generated from protobuf rpc: DeleteLaw
72
85
  */
73
86
  deleteLaw(input: DeleteLawRequest, options?: RpcOptions): UnaryCall<DeleteLawRequest, DeleteLawResponse> {
74
- const method = this.methods[3], opt = this._transport.mergeOptions(options);
87
+ const method = this.methods[4], opt = this._transport.mergeOptions(options);
75
88
  return stackIntercept<DeleteLawRequest, DeleteLawResponse>("unary", this._transport, method, opt, input);
76
89
  }
77
90
  }
@@ -3,9 +3,9 @@
3
3
  // tslint:disable
4
4
  // @ts-nocheck
5
5
  import { ServiceType } from "@protobuf-ts/runtime-rpc";
6
+ import { WireType } from "@protobuf-ts/runtime";
6
7
  import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
7
8
  import type { IBinaryWriter } from "@protobuf-ts/runtime";
8
- import { WireType } from "@protobuf-ts/runtime";
9
9
  import type { BinaryReadOptions } from "@protobuf-ts/runtime";
10
10
  import type { IBinaryReader } from "@protobuf-ts/runtime";
11
11
  import { UnknownFieldHandler } from "@protobuf-ts/runtime";
@@ -13,7 +13,22 @@ import type { PartialMessage } from "@protobuf-ts/runtime";
13
13
  import { reflectionMergePartial } from "@protobuf-ts/runtime";
14
14
  import { MessageType } from "@protobuf-ts/runtime";
15
15
  import { Law } from "../../resources/laws/laws";
16
+ import { Timestamp } from "../../resources/timestamp/timestamp";
16
17
  import { LawBook } from "../../resources/laws/laws";
18
+ /**
19
+ * @generated from protobuf message services.settings.ListLawBooksRequest
20
+ */
21
+ export interface ListLawBooksRequest {
22
+ }
23
+ /**
24
+ * @generated from protobuf message services.settings.ListLawBooksResponse
25
+ */
26
+ export interface ListLawBooksResponse {
27
+ /**
28
+ * @generated from protobuf field: repeated resources.laws.LawBook books = 1
29
+ */
30
+ books: LawBook[];
31
+ }
17
32
  /**
18
33
  * @generated from protobuf message services.settings.CreateOrUpdateLawBookRequest
19
34
  */
@@ -45,6 +60,10 @@ export interface DeleteLawBookRequest {
45
60
  * @generated from protobuf message services.settings.DeleteLawBookResponse
46
61
  */
47
62
  export interface DeleteLawBookResponse {
63
+ /**
64
+ * @generated from protobuf field: optional resources.timestamp.Timestamp deleted_at = 1
65
+ */
66
+ deletedAt?: Timestamp;
48
67
  }
49
68
  /**
50
69
  * @generated from protobuf message services.settings.CreateOrUpdateLawRequest
@@ -77,7 +96,96 @@ export interface DeleteLawRequest {
77
96
  * @generated from protobuf message services.settings.DeleteLawResponse
78
97
  */
79
98
  export interface DeleteLawResponse {
99
+ /**
100
+ * @generated from protobuf field: optional resources.timestamp.Timestamp deleted_at = 1
101
+ */
102
+ deletedAt?: Timestamp;
103
+ }
104
+ // @generated message type with reflection information, may provide speed optimized methods
105
+ class ListLawBooksRequest$Type extends MessageType<ListLawBooksRequest> {
106
+ constructor() {
107
+ super("services.settings.ListLawBooksRequest", []);
108
+ }
109
+ create(value?: PartialMessage<ListLawBooksRequest>): ListLawBooksRequest {
110
+ const message = globalThis.Object.create((this.messagePrototype!));
111
+ if (value !== undefined)
112
+ reflectionMergePartial<ListLawBooksRequest>(this, message, value);
113
+ return message;
114
+ }
115
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListLawBooksRequest): ListLawBooksRequest {
116
+ let message = target ?? this.create(), end = reader.pos + length;
117
+ while (reader.pos < end) {
118
+ let [fieldNo, wireType] = reader.tag();
119
+ switch (fieldNo) {
120
+ default:
121
+ let u = options.readUnknownField;
122
+ if (u === "throw")
123
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
124
+ let d = reader.skip(wireType);
125
+ if (u !== false)
126
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
127
+ }
128
+ }
129
+ return message;
130
+ }
131
+ internalBinaryWrite(message: ListLawBooksRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
132
+ let u = options.writeUnknownFields;
133
+ if (u !== false)
134
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
135
+ return writer;
136
+ }
137
+ }
138
+ /**
139
+ * @generated MessageType for protobuf message services.settings.ListLawBooksRequest
140
+ */
141
+ export const ListLawBooksRequest = new ListLawBooksRequest$Type();
142
+ // @generated message type with reflection information, may provide speed optimized methods
143
+ class ListLawBooksResponse$Type extends MessageType<ListLawBooksResponse> {
144
+ constructor() {
145
+ super("services.settings.ListLawBooksResponse", [
146
+ { no: 1, name: "books", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => LawBook }
147
+ ]);
148
+ }
149
+ create(value?: PartialMessage<ListLawBooksResponse>): ListLawBooksResponse {
150
+ const message = globalThis.Object.create((this.messagePrototype!));
151
+ message.books = [];
152
+ if (value !== undefined)
153
+ reflectionMergePartial<ListLawBooksResponse>(this, message, value);
154
+ return message;
155
+ }
156
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListLawBooksResponse): ListLawBooksResponse {
157
+ let message = target ?? this.create(), end = reader.pos + length;
158
+ while (reader.pos < end) {
159
+ let [fieldNo, wireType] = reader.tag();
160
+ switch (fieldNo) {
161
+ case /* repeated resources.laws.LawBook books */ 1:
162
+ message.books.push(LawBook.internalBinaryRead(reader, reader.uint32(), options));
163
+ break;
164
+ default:
165
+ let u = options.readUnknownField;
166
+ if (u === "throw")
167
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
168
+ let d = reader.skip(wireType);
169
+ if (u !== false)
170
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
171
+ }
172
+ }
173
+ return message;
174
+ }
175
+ internalBinaryWrite(message: ListLawBooksResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
176
+ /* repeated resources.laws.LawBook books = 1; */
177
+ for (let i = 0; i < message.books.length; i++)
178
+ LawBook.internalBinaryWrite(message.books[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
179
+ let u = options.writeUnknownFields;
180
+ if (u !== false)
181
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
182
+ return writer;
183
+ }
80
184
  }
185
+ /**
186
+ * @generated MessageType for protobuf message services.settings.ListLawBooksResponse
187
+ */
188
+ export const ListLawBooksResponse = new ListLawBooksResponse$Type();
81
189
  // @generated message type with reflection information, may provide speed optimized methods
82
190
  class CreateOrUpdateLawBookRequest$Type extends MessageType<CreateOrUpdateLawBookRequest> {
83
191
  constructor() {
@@ -220,7 +328,9 @@ export const DeleteLawBookRequest = new DeleteLawBookRequest$Type();
220
328
  // @generated message type with reflection information, may provide speed optimized methods
221
329
  class DeleteLawBookResponse$Type extends MessageType<DeleteLawBookResponse> {
222
330
  constructor() {
223
- super("services.settings.DeleteLawBookResponse", []);
331
+ super("services.settings.DeleteLawBookResponse", [
332
+ { no: 1, name: "deleted_at", kind: "message", T: () => Timestamp }
333
+ ]);
224
334
  }
225
335
  create(value?: PartialMessage<DeleteLawBookResponse>): DeleteLawBookResponse {
226
336
  const message = globalThis.Object.create((this.messagePrototype!));
@@ -233,6 +343,9 @@ class DeleteLawBookResponse$Type extends MessageType<DeleteLawBookResponse> {
233
343
  while (reader.pos < end) {
234
344
  let [fieldNo, wireType] = reader.tag();
235
345
  switch (fieldNo) {
346
+ case /* optional resources.timestamp.Timestamp deleted_at */ 1:
347
+ message.deletedAt = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.deletedAt);
348
+ break;
236
349
  default:
237
350
  let u = options.readUnknownField;
238
351
  if (u === "throw")
@@ -245,6 +358,9 @@ class DeleteLawBookResponse$Type extends MessageType<DeleteLawBookResponse> {
245
358
  return message;
246
359
  }
247
360
  internalBinaryWrite(message: DeleteLawBookResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
361
+ /* optional resources.timestamp.Timestamp deleted_at = 1; */
362
+ if (message.deletedAt)
363
+ Timestamp.internalBinaryWrite(message.deletedAt, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
248
364
  let u = options.writeUnknownFields;
249
365
  if (u !== false)
250
366
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -397,7 +513,9 @@ export const DeleteLawRequest = new DeleteLawRequest$Type();
397
513
  // @generated message type with reflection information, may provide speed optimized methods
398
514
  class DeleteLawResponse$Type extends MessageType<DeleteLawResponse> {
399
515
  constructor() {
400
- super("services.settings.DeleteLawResponse", []);
516
+ super("services.settings.DeleteLawResponse", [
517
+ { no: 1, name: "deleted_at", kind: "message", T: () => Timestamp }
518
+ ]);
401
519
  }
402
520
  create(value?: PartialMessage<DeleteLawResponse>): DeleteLawResponse {
403
521
  const message = globalThis.Object.create((this.messagePrototype!));
@@ -410,6 +528,9 @@ class DeleteLawResponse$Type extends MessageType<DeleteLawResponse> {
410
528
  while (reader.pos < end) {
411
529
  let [fieldNo, wireType] = reader.tag();
412
530
  switch (fieldNo) {
531
+ case /* optional resources.timestamp.Timestamp deleted_at */ 1:
532
+ message.deletedAt = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.deletedAt);
533
+ break;
413
534
  default:
414
535
  let u = options.readUnknownField;
415
536
  if (u === "throw")
@@ -422,6 +543,9 @@ class DeleteLawResponse$Type extends MessageType<DeleteLawResponse> {
422
543
  return message;
423
544
  }
424
545
  internalBinaryWrite(message: DeleteLawResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
546
+ /* optional resources.timestamp.Timestamp deleted_at = 1; */
547
+ if (message.deletedAt)
548
+ Timestamp.internalBinaryWrite(message.deletedAt, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
425
549
  let u = options.writeUnknownFields;
426
550
  if (u !== false)
427
551
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -436,6 +560,7 @@ export const DeleteLawResponse = new DeleteLawResponse$Type();
436
560
  * @generated ServiceType for protobuf service services.settings.LawsService
437
561
  */
438
562
  export const LawsService = new ServiceType("services.settings.LawsService", [
563
+ { name: "ListLawBooks", options: { "codegen.perms.perms": { enabled: true, name: "CreateOrUpdateLawBook" } }, I: ListLawBooksRequest, O: ListLawBooksResponse },
439
564
  { name: "CreateOrUpdateLawBook", options: { "codegen.perms.perms": { enabled: true } }, I: CreateOrUpdateLawBookRequest, O: CreateOrUpdateLawBookResponse },
440
565
  { name: "DeleteLawBook", options: { "codegen.perms.perms": { enabled: true } }, I: DeleteLawBookRequest, O: DeleteLawBookResponse },
441
566
  { name: "CreateOrUpdateLaw", options: { "codegen.perms.perms": { enabled: true, name: "CreateOrUpdateLawBook" } }, I: CreateOrUpdateLawRequest, O: CreateOrUpdateLawResponse },
@@ -9,5 +9,5 @@ import { ServiceType } from "@protobuf-ts/runtime-rpc";
9
9
  * @generated ServiceType for protobuf service services.wiki.CollabService
10
10
  */
11
11
  export const CollabService = new ServiceType("services.wiki.CollabService", [
12
- { name: "JoinRoom", serverStreaming: true, clientStreaming: true, options: { "codegen.perms.perms": { enabled: true, service: "wiki.WikiService", name: "UpdatePage" } }, I: ClientPacket, O: ServerPacket }
12
+ { name: "JoinRoom", serverStreaming: true, clientStreaming: true, options: { "codegen.perms.perms": { enabled: true, service: "WikiService", name: "UpdatePage" } }, I: ClientPacket, O: ServerPacket }
13
13
  ]);
package/svcs.ts CHANGED
@@ -292,11 +292,12 @@ export const grpcMethods = [
292
292
  'citizens.LabelsService/GetLabel',
293
293
  'citizens.LabelsService/CreateOrUpdateLabel',
294
294
  'citizens.LabelsService/DeleteLabel',
295
+ 'citizens.LabelsService/AddCitizenLabels',
296
+ 'citizens.LabelsService/RemoveCitizenLabels',
295
297
  'completor.CompletorService/CompleteCitizens',
296
298
  'completor.CompletorService/CompleteJobs',
297
299
  'completor.CompletorService/CompleteDocumentCategories',
298
300
  'completor.CompletorService/ListLawBooks',
299
- 'completor.CompletorService/CompleteCitizenLabels',
300
301
  'documents.ApprovalService/ListApprovalTasksInbox',
301
302
  'documents.ApprovalService/ListApprovalPolicies',
302
303
  'documents.ApprovalService/UpsertApprovalPolicy',
@@ -429,6 +430,7 @@ export const grpcMethods = [
429
430
  'settings.ConfigService/UpdateAppConfig',
430
431
  'settings.CronService/ListCronjobs',
431
432
  'settings.CronService/RunCronjob',
433
+ 'settings.LawsService/ListLawBooks',
432
434
  'settings.LawsService/CreateOrUpdateLawBook',
433
435
  'settings.LawsService/DeleteLawBook',
434
436
  'settings.LawsService/CreateOrUpdateLaw',