@fivenet-app/gen 2026.5.0 → 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 (87) hide show
  1. package/clients.ts +6 -0
  2. package/codegen/perms/perms.ts +74 -40
  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 +387 -41
  8. package/resources/access/access.ts +481 -0
  9. package/resources/accounts/accounts.ts +41 -30
  10. package/resources/audit/audit.ts +5 -1
  11. package/resources/calendar/access/access.ts +0 -330
  12. package/resources/calendar/calendar.ts +307 -25
  13. package/resources/calendar/entries/entries.ts +204 -11
  14. package/resources/centrum/units/access/access.ts +0 -373
  15. package/resources/centrum/units/units.ts +20 -8
  16. package/resources/citizens/labels/access.ts +0 -191
  17. package/resources/citizens/labels/labels.ts +20 -8
  18. package/resources/common/content/diff_activity.ts +1 -1
  19. package/resources/cron/cron.ts +1 -1
  20. package/resources/documents/access/access.ts +0 -329
  21. package/resources/documents/activity/activity.ts +49 -45
  22. package/resources/documents/documents.ts +1 -1
  23. package/resources/documents/requests/requests.ts +1 -1
  24. package/resources/documents/stamps/stamp.ts +40 -210
  25. package/resources/documents/templates/templates.ts +158 -318
  26. package/resources/jobs/colleagues/activity/activity.ts +2 -2
  27. package/resources/jobs/conduct/conduct.ts +2 -2
  28. package/resources/jobs/jobs.ts +22 -0
  29. package/resources/jobs/labels/labels.ts +9 -9
  30. package/resources/laws/laws.ts +96 -50
  31. package/resources/livemap/markers/marker_marker.ts +311 -4
  32. package/resources/mailer/access/access.ts +0 -457
  33. package/resources/mailer/emails/email.ts +4 -4
  34. package/resources/notifications/events/events.ts +18 -1
  35. package/resources/permissions/attributes/attributes.ts +51 -39
  36. package/resources/permissions/permissions/permissions.ts +46 -34
  37. package/resources/qualifications/access/access.ts +0 -248
  38. package/resources/qualifications/qualifications.ts +9 -9
  39. package/resources/settings/config.ts +53 -5
  40. package/resources/settings/data.ts +1 -1
  41. package/resources/stats/stats.ts +32 -20
  42. package/resources/sync/data/data.ts +22 -10
  43. package/resources/userinfo/userinfo.ts +202 -51
  44. package/resources/users/activity/activity.ts +70 -77
  45. package/resources/wiki/access/access.ts +0 -330
  46. package/resources/wiki/activity/activity.ts +45 -45
  47. package/resources/wiki/page.ts +9 -9
  48. package/services/auth/auth.ts +1 -1
  49. package/services/calendar/calendar.ts +1 -1
  50. package/services/calendar/entries.ts +13 -2
  51. package/services/centrum/dispatches.ts +32 -12
  52. package/services/centrum/units.client.ts +15 -2
  53. package/services/centrum/units.ts +237 -129
  54. package/services/citizens/citizens.ts +1 -1
  55. package/services/citizens/labels.client.ts +13 -0
  56. package/services/citizens/labels.ts +135 -4
  57. package/services/completor/completor.client.ts +0 -13
  58. package/services/completor/completor.ts +2 -116
  59. package/services/documents/approval.ts +20 -9
  60. package/services/documents/categories.ts +1 -1
  61. package/services/documents/collab.ts +1 -1
  62. package/services/documents/comments.ts +4 -4
  63. package/services/documents/documents.ts +38 -38
  64. package/services/documents/stats.ts +14 -2
  65. package/services/documents/templates.ts +1 -1
  66. package/services/filestore/filestore.ts +4 -4
  67. package/services/jobs/colleagues.ts +4 -4
  68. package/services/jobs/conduct.ts +2 -2
  69. package/services/jobs/groups.client.ts +22 -0
  70. package/services/jobs/groups.ts +9 -0
  71. package/services/jobs/timeclock.ts +2 -2
  72. package/services/mailer/settings.ts +1 -1
  73. package/services/mailer/thread.ts +3 -3
  74. package/services/qualifications/exam.ts +5 -5
  75. package/services/qualifications/qualifications.ts +52 -34
  76. package/services/settings/accounts.ts +19 -6
  77. package/services/settings/config.ts +2 -2
  78. package/services/settings/cron.ts +2 -2
  79. package/services/settings/laws.client.ts +44 -5
  80. package/services/settings/laws.ts +357 -4
  81. package/services/settings/system.ts +6 -6
  82. package/services/sync/sync.client.ts +42 -14
  83. package/services/sync/sync.ts +162 -13
  84. package/services/wiki/collab.ts +1 -1
  85. package/services/wiki/wiki.client.ts +15 -2
  86. package/services/wiki/wiki.ts +122 -0
  87. package/svcs.ts +19 -1
@@ -15,6 +15,31 @@ import { UserShort } from "../../users/short/user";
15
15
  import { Content } from "../../common/content/content";
16
16
  import { Calendar } from "../calendar";
17
17
  import { Timestamp } from "../../timestamp/timestamp";
18
+ /**
19
+ * @generated from protobuf message resources.calendar.entries.CalendarEntryOccurrence
20
+ */
21
+ export interface CalendarEntryOccurrence {
22
+ /**
23
+ * @generated from protobuf field: string key = 1
24
+ */
25
+ key: string;
26
+ /**
27
+ * @generated from protobuf field: resources.calendar.entries.CalendarEntryOccurrenceKind kind = 2
28
+ */
29
+ kind: CalendarEntryOccurrenceKind;
30
+ /**
31
+ * @generated from protobuf field: optional int64 source_entry_id = 3
32
+ */
33
+ sourceEntryId?: number;
34
+ /**
35
+ * @generated from protobuf field: optional int32 source_user_id = 4
36
+ */
37
+ sourceUserId?: number;
38
+ /**
39
+ * @generated from protobuf field: bool all_day = 5
40
+ */
41
+ allDay: boolean;
42
+ }
18
43
  /**
19
44
  * @generated from protobuf message resources.calendar.entries.CalendarEntry
20
45
  */
@@ -91,15 +116,27 @@ export interface CalendarEntry {
91
116
  * @generated from protobuf field: optional resources.calendar.entries.CalendarEntryRSVP rsvp = 18
92
117
  */
93
118
  rsvp?: CalendarEntryRSVP;
119
+ /**
120
+ * @generated from protobuf field: optional resources.calendar.entries.CalendarEntryOccurrence occurrence = 19
121
+ */
122
+ occurrence?: CalendarEntryOccurrence;
123
+ /**
124
+ * @generated from protobuf field: optional resources.timestamp.Timestamp recurring_until = 20
125
+ */
126
+ recurringUntil?: Timestamp;
127
+ /**
128
+ * @generated from protobuf field: int32 recurrence_version = 21
129
+ */
130
+ recurrenceVersion: number;
94
131
  }
95
132
  /**
96
133
  * @generated from protobuf message resources.calendar.entries.CalendarEntryRecurring
97
134
  */
98
135
  export interface CalendarEntryRecurring {
99
136
  /**
100
- * @generated from protobuf field: string every = 1
137
+ * @generated from protobuf field: resources.calendar.entries.CalendarEntryRecurringEvery every = 1
101
138
  */
102
- every: string;
139
+ every: CalendarEntryRecurringEvery;
103
140
  /**
104
141
  * @generated from protobuf field: int32 count = 2
105
142
  */
@@ -133,6 +170,56 @@ export interface CalendarEntryRSVP {
133
170
  * @generated from protobuf field: resources.calendar.entries.RsvpResponses response = 5
134
171
  */
135
172
  response: RsvpResponses;
173
+ /**
174
+ * @generated from protobuf field: optional string occurrence_key = 6
175
+ */
176
+ occurrenceKey?: string;
177
+ }
178
+ /**
179
+ * @generated from protobuf enum resources.calendar.entries.CalendarEntryOccurrenceKind
180
+ */
181
+ export enum CalendarEntryOccurrenceKind {
182
+ /**
183
+ * @generated from protobuf enum value: CALENDAR_ENTRY_OCCURRENCE_KIND_UNSPECIFIED = 0;
184
+ */
185
+ UNSPECIFIED = 0,
186
+ /**
187
+ * @generated from protobuf enum value: CALENDAR_ENTRY_OCCURRENCE_KIND_MANUAL = 1;
188
+ */
189
+ MANUAL = 1,
190
+ /**
191
+ * @generated from protobuf enum value: CALENDAR_ENTRY_OCCURRENCE_KIND_RECURRING = 2;
192
+ */
193
+ RECURRING = 2,
194
+ /**
195
+ * @generated from protobuf enum value: CALENDAR_ENTRY_OCCURRENCE_KIND_BIRTHDAY = 3;
196
+ */
197
+ BIRTHDAY = 3
198
+ }
199
+ /**
200
+ * @generated from protobuf enum resources.calendar.entries.CalendarEntryRecurringEvery
201
+ */
202
+ export enum CalendarEntryRecurringEvery {
203
+ /**
204
+ * @generated from protobuf enum value: CALENDAR_ENTRY_RECURRING_EVERY_UNSPECIFIED = 0;
205
+ */
206
+ UNSPECIFIED = 0,
207
+ /**
208
+ * @generated from protobuf enum value: CALENDAR_ENTRY_RECURRING_EVERY_DAY = 1;
209
+ */
210
+ DAY = 1,
211
+ /**
212
+ * @generated from protobuf enum value: CALENDAR_ENTRY_RECURRING_EVERY_WEEK = 2;
213
+ */
214
+ WEEK = 2,
215
+ /**
216
+ * @generated from protobuf enum value: CALENDAR_ENTRY_RECURRING_EVERY_MONTH = 3;
217
+ */
218
+ MONTH = 3,
219
+ /**
220
+ * @generated from protobuf enum value: CALENDAR_ENTRY_RECURRING_EVERY_YEAR = 4;
221
+ */
222
+ YEAR = 4
136
223
  }
137
224
  /**
138
225
  * @generated from protobuf enum resources.calendar.entries.RsvpResponses
@@ -164,6 +251,83 @@ export enum RsvpResponses {
164
251
  YES = 5
165
252
  }
166
253
  // @generated message type with reflection information, may provide speed optimized methods
254
+ class CalendarEntryOccurrence$Type extends MessageType<CalendarEntryOccurrence> {
255
+ constructor() {
256
+ super("resources.calendar.entries.CalendarEntryOccurrence", [
257
+ { no: 1, name: "key", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "128" } } } },
258
+ { no: 2, name: "kind", kind: "enum", T: () => ["resources.calendar.entries.CalendarEntryOccurrenceKind", CalendarEntryOccurrenceKind, "CALENDAR_ENTRY_OCCURRENCE_KIND_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
259
+ { no: 3, name: "source_entry_id", kind: "scalar", opt: true, T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
260
+ { no: 4, name: "source_user_id", kind: "scalar", opt: true, T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gte: 0 } } } },
261
+ { no: 5, name: "all_day", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }
262
+ ]);
263
+ }
264
+ create(value?: PartialMessage<CalendarEntryOccurrence>): CalendarEntryOccurrence {
265
+ const message = globalThis.Object.create((this.messagePrototype!));
266
+ message.key = "";
267
+ message.kind = 0;
268
+ message.allDay = false;
269
+ if (value !== undefined)
270
+ reflectionMergePartial<CalendarEntryOccurrence>(this, message, value);
271
+ return message;
272
+ }
273
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CalendarEntryOccurrence): CalendarEntryOccurrence {
274
+ let message = target ?? this.create(), end = reader.pos + length;
275
+ while (reader.pos < end) {
276
+ let [fieldNo, wireType] = reader.tag();
277
+ switch (fieldNo) {
278
+ case /* string key */ 1:
279
+ message.key = reader.string();
280
+ break;
281
+ case /* resources.calendar.entries.CalendarEntryOccurrenceKind kind */ 2:
282
+ message.kind = reader.int32();
283
+ break;
284
+ case /* optional int64 source_entry_id */ 3:
285
+ message.sourceEntryId = reader.int64().toNumber();
286
+ break;
287
+ case /* optional int32 source_user_id */ 4:
288
+ message.sourceUserId = reader.int32();
289
+ break;
290
+ case /* bool all_day */ 5:
291
+ message.allDay = reader.bool();
292
+ break;
293
+ default:
294
+ let u = options.readUnknownField;
295
+ if (u === "throw")
296
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
297
+ let d = reader.skip(wireType);
298
+ if (u !== false)
299
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
300
+ }
301
+ }
302
+ return message;
303
+ }
304
+ internalBinaryWrite(message: CalendarEntryOccurrence, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
305
+ /* string key = 1; */
306
+ if (message.key !== "")
307
+ writer.tag(1, WireType.LengthDelimited).string(message.key);
308
+ /* resources.calendar.entries.CalendarEntryOccurrenceKind kind = 2; */
309
+ if (message.kind !== 0)
310
+ writer.tag(2, WireType.Varint).int32(message.kind);
311
+ /* optional int64 source_entry_id = 3; */
312
+ if (message.sourceEntryId !== undefined)
313
+ writer.tag(3, WireType.Varint).int64(message.sourceEntryId);
314
+ /* optional int32 source_user_id = 4; */
315
+ if (message.sourceUserId !== undefined)
316
+ writer.tag(4, WireType.Varint).int32(message.sourceUserId);
317
+ /* bool all_day = 5; */
318
+ if (message.allDay !== false)
319
+ writer.tag(5, WireType.Varint).bool(message.allDay);
320
+ let u = options.writeUnknownFields;
321
+ if (u !== false)
322
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
323
+ return writer;
324
+ }
325
+ }
326
+ /**
327
+ * @generated MessageType for protobuf message resources.calendar.entries.CalendarEntryOccurrence
328
+ */
329
+ export const CalendarEntryOccurrence = new CalendarEntryOccurrence$Type();
330
+ // @generated message type with reflection information, may provide speed optimized methods
167
331
  class CalendarEntry$Type extends MessageType<CalendarEntry> {
168
332
  constructor() {
169
333
  super("resources.calendar.entries.CalendarEntry", [
@@ -184,7 +348,10 @@ class CalendarEntry$Type extends MessageType<CalendarEntry> {
184
348
  { no: 15, name: "creator", kind: "message", T: () => UserShort, options: { "tagger.tags": "alias:\"creator\"" } },
185
349
  { no: 16, name: "creator_job", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "20" } } } },
186
350
  { no: 17, name: "recurring", kind: "message", T: () => CalendarEntryRecurring },
187
- { no: 18, name: "rsvp", kind: "message", T: () => CalendarEntryRSVP }
351
+ { no: 18, name: "rsvp", kind: "message", T: () => CalendarEntryRSVP },
352
+ { no: 19, name: "occurrence", kind: "message", T: () => CalendarEntryOccurrence },
353
+ { no: 20, name: "recurring_until", kind: "message", T: () => Timestamp },
354
+ { no: 21, name: "recurrence_version", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gt: 0 } } } }
188
355
  ]);
189
356
  }
190
357
  create(value?: PartialMessage<CalendarEntry>): CalendarEntry {
@@ -194,6 +361,7 @@ class CalendarEntry$Type extends MessageType<CalendarEntry> {
194
361
  message.title = "";
195
362
  message.closed = false;
196
363
  message.creatorJob = "";
364
+ message.recurrenceVersion = 0;
197
365
  if (value !== undefined)
198
366
  reflectionMergePartial<CalendarEntry>(this, message, value);
199
367
  return message;
@@ -257,6 +425,15 @@ class CalendarEntry$Type extends MessageType<CalendarEntry> {
257
425
  case /* optional resources.calendar.entries.CalendarEntryRSVP rsvp */ 18:
258
426
  message.rsvp = CalendarEntryRSVP.internalBinaryRead(reader, reader.uint32(), options, message.rsvp);
259
427
  break;
428
+ case /* optional resources.calendar.entries.CalendarEntryOccurrence occurrence */ 19:
429
+ message.occurrence = CalendarEntryOccurrence.internalBinaryRead(reader, reader.uint32(), options, message.occurrence);
430
+ break;
431
+ case /* optional resources.timestamp.Timestamp recurring_until */ 20:
432
+ message.recurringUntil = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.recurringUntil);
433
+ break;
434
+ case /* int32 recurrence_version */ 21:
435
+ message.recurrenceVersion = reader.int32();
436
+ break;
260
437
  default:
261
438
  let u = options.readUnknownField;
262
439
  if (u === "throw")
@@ -323,6 +500,15 @@ class CalendarEntry$Type extends MessageType<CalendarEntry> {
323
500
  /* optional resources.calendar.entries.CalendarEntryRSVP rsvp = 18; */
324
501
  if (message.rsvp)
325
502
  CalendarEntryRSVP.internalBinaryWrite(message.rsvp, writer.tag(18, WireType.LengthDelimited).fork(), options).join();
503
+ /* optional resources.calendar.entries.CalendarEntryOccurrence occurrence = 19; */
504
+ if (message.occurrence)
505
+ CalendarEntryOccurrence.internalBinaryWrite(message.occurrence, writer.tag(19, WireType.LengthDelimited).fork(), options).join();
506
+ /* optional resources.timestamp.Timestamp recurring_until = 20; */
507
+ if (message.recurringUntil)
508
+ Timestamp.internalBinaryWrite(message.recurringUntil, writer.tag(20, WireType.LengthDelimited).fork(), options).join();
509
+ /* int32 recurrence_version = 21; */
510
+ if (message.recurrenceVersion !== 0)
511
+ writer.tag(21, WireType.Varint).int32(message.recurrenceVersion);
326
512
  let u = options.writeUnknownFields;
327
513
  if (u !== false)
328
514
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -337,14 +523,14 @@ export const CalendarEntry = new CalendarEntry$Type();
337
523
  class CalendarEntryRecurring$Type extends MessageType<CalendarEntryRecurring> {
338
524
  constructor() {
339
525
  super("resources.calendar.entries.CalendarEntryRecurring", [
340
- { no: 1, name: "every", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
526
+ { no: 1, name: "every", kind: "enum", T: () => ["resources.calendar.entries.CalendarEntryRecurringEvery", CalendarEntryRecurringEvery, "CALENDAR_ENTRY_RECURRING_EVERY_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
341
527
  { no: 2, name: "count", kind: "scalar", T: 5 /*ScalarType.INT32*/ },
342
528
  { no: 3, name: "until", kind: "message", T: () => Timestamp }
343
529
  ], { "codegen.dbscanner.dbscanner": { enabled: true } });
344
530
  }
345
531
  create(value?: PartialMessage<CalendarEntryRecurring>): CalendarEntryRecurring {
346
532
  const message = globalThis.Object.create((this.messagePrototype!));
347
- message.every = "";
533
+ message.every = 0;
348
534
  message.count = 0;
349
535
  if (value !== undefined)
350
536
  reflectionMergePartial<CalendarEntryRecurring>(this, message, value);
@@ -355,8 +541,8 @@ class CalendarEntryRecurring$Type extends MessageType<CalendarEntryRecurring> {
355
541
  while (reader.pos < end) {
356
542
  let [fieldNo, wireType] = reader.tag();
357
543
  switch (fieldNo) {
358
- case /* string every */ 1:
359
- message.every = reader.string();
544
+ case /* resources.calendar.entries.CalendarEntryRecurringEvery every */ 1:
545
+ message.every = reader.int32();
360
546
  break;
361
547
  case /* int32 count */ 2:
362
548
  message.count = reader.int32();
@@ -376,9 +562,9 @@ class CalendarEntryRecurring$Type extends MessageType<CalendarEntryRecurring> {
376
562
  return message;
377
563
  }
378
564
  internalBinaryWrite(message: CalendarEntryRecurring, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
379
- /* string every = 1; */
380
- if (message.every !== "")
381
- writer.tag(1, WireType.LengthDelimited).string(message.every);
565
+ /* resources.calendar.entries.CalendarEntryRecurringEvery every = 1; */
566
+ if (message.every !== 0)
567
+ writer.tag(1, WireType.Varint).int32(message.every);
382
568
  /* int32 count = 2; */
383
569
  if (message.count !== 0)
384
570
  writer.tag(2, WireType.Varint).int32(message.count);
@@ -403,7 +589,8 @@ class CalendarEntryRSVP$Type extends MessageType<CalendarEntryRSVP> {
403
589
  { no: 2, name: "created_at", kind: "message", T: () => Timestamp },
404
590
  { no: 3, name: "user_id", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gt: 0 } } } },
405
591
  { no: 4, name: "user", kind: "message", T: () => UserShort },
406
- { no: 5, name: "response", kind: "enum", T: () => ["resources.calendar.entries.RsvpResponses", RsvpResponses, "RSVP_RESPONSES_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } }
592
+ { no: 5, name: "response", kind: "enum", T: () => ["resources.calendar.entries.RsvpResponses", RsvpResponses, "RSVP_RESPONSES_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
593
+ { no: 6, name: "occurrence_key", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "128" } } } }
407
594
  ]);
408
595
  }
409
596
  create(value?: PartialMessage<CalendarEntryRSVP>): CalendarEntryRSVP {
@@ -435,6 +622,9 @@ class CalendarEntryRSVP$Type extends MessageType<CalendarEntryRSVP> {
435
622
  case /* resources.calendar.entries.RsvpResponses response */ 5:
436
623
  message.response = reader.int32();
437
624
  break;
625
+ case /* optional string occurrence_key */ 6:
626
+ message.occurrenceKey = reader.string();
627
+ break;
438
628
  default:
439
629
  let u = options.readUnknownField;
440
630
  if (u === "throw")
@@ -462,6 +652,9 @@ class CalendarEntryRSVP$Type extends MessageType<CalendarEntryRSVP> {
462
652
  /* resources.calendar.entries.RsvpResponses response = 5; */
463
653
  if (message.response !== 0)
464
654
  writer.tag(5, WireType.Varint).int32(message.response);
655
+ /* optional string occurrence_key = 6; */
656
+ if (message.occurrenceKey !== undefined)
657
+ writer.tag(6, WireType.LengthDelimited).string(message.occurrenceKey);
465
658
  let u = options.writeUnknownFields;
466
659
  if (u !== false)
467
660
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);