@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
@@ -198,7 +198,7 @@ class ColleagueActivity$Type extends MessageType<ColleagueActivity> {
198
198
  { no: 6, name: "source_user", kind: "message", T: () => Colleague, options: { "tagger.tags": "alias:\"source_user\"" } },
199
199
  { no: 7, name: "target_user_id", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gte: 0 } } } },
200
200
  { no: 8, name: "target_user", kind: "message", T: () => Colleague, options: { "tagger.tags": "alias:\"target_user\"" } },
201
- { no: 9, name: "activity_type", kind: "enum", T: () => ["resources.jobs.colleagues.activity.ColleagueActivityType", ColleagueActivityType, "COLLEAGUE_ACTIVITY_TYPE_"] },
201
+ { no: 9, name: "activity_type", kind: "enum", T: () => ["resources.jobs.colleagues.activity.ColleagueActivityType", ColleagueActivityType, "COLLEAGUE_ACTIVITY_TYPE_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
202
202
  { no: 10, name: "reason", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "255" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
203
203
  { no: 11, name: "data", kind: "message", T: () => ColleagueActivityData }
204
204
  ]);
@@ -121,9 +121,9 @@ class ConductEntry$Type extends MessageType<ConductEntry> {
121
121
  { no: 6, name: "type", kind: "enum", T: () => ["resources.jobs.conduct.ConductType", ConductType, "CONDUCT_TYPE_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
122
122
  { no: 7, name: "draft", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
123
123
  { no: 8, name: "message", kind: "message", T: () => Content },
124
- { no: 9, name: "files", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => File, options: { "tagger.tags": "alias:\"files\"" } },
124
+ { no: 9, name: "files", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => File, options: { "buf.validate.field": { repeated: { maxItems: "5" } }, "tagger.tags": "alias:\"files\"" } },
125
125
  { no: 10, name: "expires_at", kind: "message", T: () => Timestamp },
126
- { no: 11, name: "target_user_id", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gt: 0 } } } },
126
+ { no: 11, name: "target_user_id", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gte: 0 } } } },
127
127
  { no: 12, name: "target_user", kind: "message", T: () => Colleague, options: { "tagger.tags": "alias:\"target_user\"" } },
128
128
  { no: 13, name: "creator_id", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gt: 0 } } } },
129
129
  { no: 14, name: "creator", kind: "message", T: () => Colleague, options: { "tagger.tags": "alias:\"creator\"" } }
@@ -15,6 +15,10 @@ import { MessageType } from "@protobuf-ts/runtime";
15
15
  * @generated from protobuf message resources.jobs.Job
16
16
  */
17
17
  export interface Job {
18
+ /**
19
+ * @generated from protobuf field: optional int64 id = 4
20
+ */
21
+ id?: number;
18
22
  /**
19
23
  * @generated from protobuf field: string name = 1
20
24
  */
@@ -32,6 +36,10 @@ export interface Job {
32
36
  * @generated from protobuf message resources.jobs.JobGrade
33
37
  */
34
38
  export interface JobGrade {
39
+ /**
40
+ * @generated from protobuf field: optional int64 job_id = 4
41
+ */
42
+ jobId?: number;
35
43
  /**
36
44
  * @generated from protobuf field: optional string job_name = 1
37
45
  */
@@ -49,6 +57,7 @@ export interface JobGrade {
49
57
  class Job$Type extends MessageType<Job> {
50
58
  constructor() {
51
59
  super("resources.jobs.Job", [
60
+ { no: 4, name: "id", kind: "scalar", opt: true, T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/, options: { "buf.validate.field": { int64: { gt: "0" } } } },
52
61
  { no: 1, name: "name", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "50" } }, "tagger.tags": "sql:\"primary_key\" alias:\"name\"" } },
53
62
  { no: 2, name: "label", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "50" } } } },
54
63
  { no: 3, name: "grades", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => JobGrade }
@@ -68,6 +77,9 @@ class Job$Type extends MessageType<Job> {
68
77
  while (reader.pos < end) {
69
78
  let [fieldNo, wireType] = reader.tag();
70
79
  switch (fieldNo) {
80
+ case /* optional int64 id */ 4:
81
+ message.id = reader.int64().toNumber();
82
+ break;
71
83
  case /* string name */ 1:
72
84
  message.name = reader.string();
73
85
  break;
@@ -98,6 +110,9 @@ class Job$Type extends MessageType<Job> {
98
110
  /* repeated resources.jobs.JobGrade grades = 3; */
99
111
  for (let i = 0; i < message.grades.length; i++)
100
112
  JobGrade.internalBinaryWrite(message.grades[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join();
113
+ /* optional int64 id = 4; */
114
+ if (message.id !== undefined)
115
+ writer.tag(4, WireType.Varint).int64(message.id);
101
116
  let u = options.writeUnknownFields;
102
117
  if (u !== false)
103
118
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -112,6 +127,7 @@ export const Job = new Job$Type();
112
127
  class JobGrade$Type extends MessageType<JobGrade> {
113
128
  constructor() {
114
129
  super("resources.jobs.JobGrade", [
130
+ { no: 4, name: "job_id", kind: "scalar", opt: true, T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/, options: { "buf.validate.field": { int64: { gt: "0" } } } },
115
131
  { no: 1, name: "job_name", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "50" } } } },
116
132
  { no: 2, name: "grade", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gte: 0 } } } },
117
133
  { no: 3, name: "label", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "50" } } } }
@@ -130,6 +146,9 @@ class JobGrade$Type extends MessageType<JobGrade> {
130
146
  while (reader.pos < end) {
131
147
  let [fieldNo, wireType] = reader.tag();
132
148
  switch (fieldNo) {
149
+ case /* optional int64 job_id */ 4:
150
+ message.jobId = reader.int64().toNumber();
151
+ break;
133
152
  case /* optional string job_name */ 1:
134
153
  message.jobName = reader.string();
135
154
  break;
@@ -160,6 +179,9 @@ class JobGrade$Type extends MessageType<JobGrade> {
160
179
  /* string label = 3; */
161
180
  if (message.label !== "")
162
181
  writer.tag(3, WireType.LengthDelimited).string(message.label);
182
+ /* optional int64 job_id = 4; */
183
+ if (message.jobId !== undefined)
184
+ writer.tag(4, WireType.Varint).int64(message.jobId);
163
185
  let u = options.writeUnknownFields;
164
186
  if (u !== false)
165
187
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -50,9 +50,9 @@ export interface Label {
50
50
  */
51
51
  icon?: string;
52
52
  /**
53
- * @generated from protobuf field: int32 order = 7
53
+ * @generated from protobuf field: int32 sort_order = 7
54
54
  */
55
- order: number;
55
+ sortOrder: number;
56
56
  }
57
57
  /**
58
58
  * @generated from protobuf message resources.jobs.labels.LabelCount
@@ -124,7 +124,7 @@ class Label$Type extends MessageType<Label> {
124
124
  { no: 4, name: "name", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "48" } } } },
125
125
  { no: 5, name: "color", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { len: "7", pattern: "^#[A-Fa-f0-9]{6}$" } }, "codegen.sanitizer.sanitizer": { enabled: true, stripHtmlTags: true } } },
126
126
  { no: 6, name: "icon", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "128" } }, "codegen.sanitizer.sanitizer": { enabled: true, stripHtmlTags: true } } },
127
- { no: 7, name: "order", kind: "scalar", T: 5 /*ScalarType.INT32*/ }
127
+ { no: 7, name: "sort_order", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gte: 0 } } } }
128
128
  ]);
129
129
  }
130
130
  create(value?: PartialMessage<Label>): Label {
@@ -132,7 +132,7 @@ class Label$Type extends MessageType<Label> {
132
132
  message.id = 0;
133
133
  message.name = "";
134
134
  message.color = "";
135
- message.order = 0;
135
+ message.sortOrder = 0;
136
136
  if (value !== undefined)
137
137
  reflectionMergePartial<Label>(this, message, value);
138
138
  return message;
@@ -160,8 +160,8 @@ class Label$Type extends MessageType<Label> {
160
160
  case /* optional string icon */ 6:
161
161
  message.icon = reader.string();
162
162
  break;
163
- case /* int32 order */ 7:
164
- message.order = reader.int32();
163
+ case /* int32 sort_order */ 7:
164
+ message.sortOrder = reader.int32();
165
165
  break;
166
166
  default:
167
167
  let u = options.readUnknownField;
@@ -193,9 +193,9 @@ class Label$Type extends MessageType<Label> {
193
193
  /* optional string icon = 6; */
194
194
  if (message.icon !== undefined)
195
195
  writer.tag(6, WireType.LengthDelimited).string(message.icon);
196
- /* int32 order = 7; */
197
- if (message.order !== 0)
198
- writer.tag(7, WireType.Varint).int32(message.order);
196
+ /* int32 sort_order = 7; */
197
+ if (message.sortOrder !== 0)
198
+ writer.tag(7, WireType.Varint).int32(message.sortOrder);
199
199
  let u = options.writeUnknownFields;
200
200
  if (u !== false)
201
201
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -32,6 +32,10 @@ export interface LawBook {
32
32
  * @generated from protobuf field: optional resources.timestamp.Timestamp deleted_at = 4
33
33
  */
34
34
  deletedAt?: Timestamp;
35
+ /**
36
+ * @generated from protobuf field: int32 sort_order = 8
37
+ */
38
+ sortOrder: number;
35
39
  /**
36
40
  * @generated from protobuf field: string name = 5
37
41
  */
@@ -69,6 +73,10 @@ export interface Law {
69
73
  * @generated from protobuf field: int64 lawbook_id = 5
70
74
  */
71
75
  lawbookId: number;
76
+ /**
77
+ * @generated from protobuf field: int32 sort_order = 12
78
+ */
79
+ sortOrder: number;
72
80
  /**
73
81
  * @generated from protobuf field: string name = 6
74
82
  */
@@ -102,6 +110,7 @@ class LawBook$Type extends MessageType<LawBook> {
102
110
  { no: 2, name: "created_at", kind: "message", T: () => Timestamp },
103
111
  { no: 3, name: "updated_at", kind: "message", T: () => Timestamp },
104
112
  { no: 4, name: "deleted_at", kind: "message", T: () => Timestamp },
113
+ { no: 8, name: "sort_order", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gte: 0 } } } },
105
114
  { no: 5, name: "name", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "3", maxLen: "128" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
106
115
  { no: 6, name: "description", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "255" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
107
116
  { no: 7, name: "laws", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => Law }
@@ -110,6 +119,7 @@ class LawBook$Type extends MessageType<LawBook> {
110
119
  create(value?: PartialMessage<LawBook>): LawBook {
111
120
  const message = globalThis.Object.create((this.messagePrototype!));
112
121
  message.id = 0;
122
+ message.sortOrder = 0;
113
123
  message.name = "";
114
124
  message.laws = [];
115
125
  if (value !== undefined)
@@ -133,6 +143,9 @@ class LawBook$Type extends MessageType<LawBook> {
133
143
  case /* optional resources.timestamp.Timestamp deleted_at */ 4:
134
144
  message.deletedAt = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.deletedAt);
135
145
  break;
146
+ case /* int32 sort_order */ 8:
147
+ message.sortOrder = reader.int32();
148
+ break;
136
149
  case /* string name */ 5:
137
150
  message.name = reader.string();
138
151
  break;
@@ -175,6 +188,9 @@ class LawBook$Type extends MessageType<LawBook> {
175
188
  /* repeated resources.laws.Law laws = 7; */
176
189
  for (let i = 0; i < message.laws.length; i++)
177
190
  Law.internalBinaryWrite(message.laws[i], writer.tag(7, WireType.LengthDelimited).fork(), options).join();
191
+ /* int32 sort_order = 8; */
192
+ if (message.sortOrder !== 0)
193
+ writer.tag(8, WireType.Varint).int32(message.sortOrder);
178
194
  let u = options.writeUnknownFields;
179
195
  if (u !== false)
180
196
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -194,6 +210,7 @@ class Law$Type extends MessageType<Law> {
194
210
  { no: 3, name: "updated_at", kind: "message", T: () => Timestamp },
195
211
  { no: 4, name: "deleted_at", kind: "message", T: () => Timestamp },
196
212
  { no: 5, name: "lawbook_id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
213
+ { no: 12, name: "sort_order", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gte: 0 } } } },
197
214
  { no: 6, name: "name", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "3", maxLen: "128" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
198
215
  { no: 7, name: "description", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "1024" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
199
216
  { no: 8, name: "hint", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "512" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
@@ -206,6 +223,7 @@ class Law$Type extends MessageType<Law> {
206
223
  const message = globalThis.Object.create((this.messagePrototype!));
207
224
  message.id = 0;
208
225
  message.lawbookId = 0;
226
+ message.sortOrder = 0;
209
227
  message.name = "";
210
228
  if (value !== undefined)
211
229
  reflectionMergePartial<Law>(this, message, value);
@@ -231,6 +249,9 @@ class Law$Type extends MessageType<Law> {
231
249
  case /* int64 lawbook_id */ 5:
232
250
  message.lawbookId = reader.int64().toNumber();
233
251
  break;
252
+ case /* int32 sort_order */ 12:
253
+ message.sortOrder = reader.int32();
254
+ break;
234
255
  case /* string name */ 6:
235
256
  message.name = reader.string();
236
257
  break;
@@ -294,6 +315,9 @@ class Law$Type extends MessageType<Law> {
294
315
  /* optional uint32 stvo_points = 11; */
295
316
  if (message.stvoPoints !== undefined)
296
317
  writer.tag(11, WireType.Varint).uint32(message.stvoPoints);
318
+ /* int32 sort_order = 12; */
319
+ if (message.sortOrder !== 0)
320
+ writer.tag(12, WireType.Varint).int32(message.sortOrder);
297
321
  let u = options.writeUnknownFields;
298
322
  if (u !== false)
299
323
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);