@fivenet-app/gen 2025.9.1 → 2026.4.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 (134) hide show
  1. package/README.md +1 -1
  2. package/clients.ts +36 -0
  3. package/codegen/perms/perms.ts +186 -15
  4. package/codegen/sanitizer/sanitizer.ts +34 -1
  5. package/package.json +2 -2
  6. package/perms.ts +140 -8
  7. package/resources/accounts/accounts.ts +98 -31
  8. package/resources/accounts/{oauth2.ts → oauth2/oauth2.ts} +20 -20
  9. package/resources/audit/audit.ts +156 -38
  10. package/resources/calendar/{access.ts → access/access.ts} +30 -30
  11. package/resources/calendar/calendar.ts +17 -477
  12. package/resources/calendar/entries/entries.ts +474 -0
  13. package/resources/centrum/{access.ts → access/access.ts} +22 -22
  14. package/resources/centrum/{dispatchers.ts → dispatchers/dispatchers.ts} +14 -14
  15. package/resources/centrum/{dispatches.ts → dispatches/dispatches.ts} +151 -185
  16. package/resources/centrum/joblist.ts +136 -0
  17. package/resources/centrum/{settings.ts → settings/settings.ts} +70 -70
  18. package/resources/centrum/{units_access.ts → units/access/access.ts} +30 -30
  19. package/resources/centrum/{units.ts → units/units.ts} +131 -51
  20. package/resources/citizens/labels/labels.ts +526 -0
  21. package/resources/{users → citizens/licenses}/licenses.ts +17 -17
  22. package/resources/clientconfig/clientconfig.ts +126 -258
  23. package/resources/collab/collab.ts +4 -16
  24. package/resources/common/content/content.ts +108 -85
  25. package/resources/common/content/diff_activity.ts +267 -0
  26. package/resources/common/i18n.ts +2 -2
  27. package/resources/{common/cron → cron}/cron.ts +43 -43
  28. package/resources/documents/{access.ts → access/access.ts} +29 -52
  29. package/resources/documents/{activity.ts → activity/activity.ts} +171 -123
  30. package/resources/documents/approval/approval.ts +945 -0
  31. package/resources/documents/{category.ts → category/category.ts} +7 -7
  32. package/resources/documents/{comment.ts → comment/comment.ts} +10 -10
  33. package/resources/documents/data/data.ts +303 -0
  34. package/resources/documents/documents.ts +282 -667
  35. package/resources/{common/uuid.ts → documents/forms/forms.ts} +20 -20
  36. package/resources/documents/{pins.ts → pins/pins.ts} +5 -5
  37. package/resources/documents/references/references.ts +187 -0
  38. package/resources/documents/relations/relations.ts +184 -0
  39. package/resources/documents/{requests.ts → requests/requests.ts} +18 -18
  40. package/resources/documents/stamps/stamp.ts +355 -0
  41. package/resources/documents/{templates.ts → templates/templates.ts} +426 -84
  42. package/resources/documents/{workflow.ts → workflow/workflow.ts} +264 -26
  43. package/resources/file/filestore.ts +1 -1
  44. package/resources/{common/grpcws → grpcws}/grpcws.ts +52 -52
  45. package/resources/jobs/{activity.ts → colleagues/activity/activity.ts} +54 -54
  46. package/resources/jobs/{colleagues.ts → colleagues/colleagues.ts} +17 -28
  47. package/resources/jobs/{conduct.ts → conduct/conduct.ts} +70 -45
  48. package/resources/jobs/{labels.ts → labels/labels.ts} +34 -23
  49. package/resources/jobs/{job_props.ts → props/props.ts} +26 -38
  50. package/resources/jobs/{job_settings.ts → settings/settings.ts} +53 -53
  51. package/resources/jobs/{timeclock.ts → timeclock/timeclock.ts} +17 -17
  52. package/resources/livemap/{heatmap.ts → heatmap/heatmap.ts} +4 -4
  53. package/resources/livemap/{marker_marker.ts → markers/marker_marker.ts} +35 -35
  54. package/resources/livemap/{user_marker.ts → markers/user_marker.ts} +115 -36
  55. package/resources/mailer/{access.ts → access/access.ts} +67 -67
  56. package/resources/mailer/{email.ts → emails/email.ts} +19 -19
  57. package/resources/mailer/{events.ts → events/events.ts} +24 -24
  58. package/resources/mailer/{message.ts → messages/message.ts} +29 -29
  59. package/resources/mailer/{settings.ts → settings/settings.ts} +14 -13
  60. package/resources/mailer/{template.ts → templates/template.ts} +15 -15
  61. package/resources/mailer/{thread.ts → threads/thread.ts} +29 -29
  62. package/resources/notifications/{client_view.ts → clientview/clientview.ts} +22 -22
  63. package/resources/notifications/{events.ts → events/events.ts} +20 -20
  64. package/resources/notifications/notifications.ts +4 -4
  65. package/resources/permissions/{attributes.ts → attributes/attributes.ts} +42 -42
  66. package/resources/permissions/{events.ts → events/events.ts} +7 -7
  67. package/resources/permissions/{permissions.ts → permissions/permissions.ts} +30 -19
  68. package/resources/qualifications/{access.ts → access/access.ts} +19 -19
  69. package/resources/qualifications/{exam.ts → exam/exam.ts} +269 -141
  70. package/resources/qualifications/qualifications.ts +51 -179
  71. package/resources/settings/banner.ts +3 -3
  72. package/resources/settings/config.ts +527 -25
  73. package/resources/{documents/state.ts → settings/data.ts} +41 -20
  74. package/resources/settings/perms.ts +14 -14
  75. package/resources/stats/stats.ts +379 -0
  76. package/resources/sync/{activity.ts → activity/activity.ts} +104 -25
  77. package/resources/sync/{data.ts → data/data.ts} +405 -59
  78. package/resources/userinfo/{user_info.ts → userinfo.ts} +71 -93
  79. package/resources/users/{activity.ts → activity/activity.ts} +242 -101
  80. package/resources/users/{props.ts → props/props.ts} +91 -69
  81. package/resources/users/short/user.ts +184 -0
  82. package/resources/users/{users.ts → user.ts} +266 -195
  83. package/resources/vehicles/{activity.ts → activity/activity.ts} +20 -20
  84. package/resources/vehicles/{props.ts → props/props.ts} +28 -6
  85. package/resources/vehicles/vehicles.ts +20 -8
  86. package/resources/wiki/{access.ts → access/access.ts} +30 -30
  87. package/resources/wiki/{activity.ts → activity/activity.ts} +104 -70
  88. package/resources/wiki/page.ts +39 -15
  89. package/services/auth/auth.client.ts +23 -10
  90. package/services/auth/auth.ts +445 -262
  91. package/services/calendar/calendar.ts +56 -34
  92. package/services/centrum/centrum.ts +127 -127
  93. package/services/citizens/citizens.client.ts +0 -13
  94. package/services/citizens/citizens.ts +44 -134
  95. package/services/citizens/labels.client.ts +77 -0
  96. package/services/citizens/labels.ts +455 -0
  97. package/services/completor/completor.ts +36 -16
  98. package/services/documents/approval.client.ts +188 -0
  99. package/services/documents/approval.ts +1776 -0
  100. package/services/documents/documents.ts +164 -186
  101. package/services/documents/forms.client.ts +51 -0
  102. package/services/documents/forms.ts +232 -0
  103. package/services/documents/stamps.client.ts +77 -0
  104. package/services/documents/stamps.ts +481 -0
  105. package/services/documents/stats.client.ts +38 -0
  106. package/services/documents/stats.ts +245 -0
  107. package/services/jobs/conduct.client.ts +30 -3
  108. package/services/jobs/conduct.ts +159 -33
  109. package/services/jobs/jobs.ts +43 -43
  110. package/services/jobs/stats.client.ts +38 -0
  111. package/services/jobs/stats.ts +207 -0
  112. package/services/jobs/timeclock.ts +39 -39
  113. package/services/livemap/livemap.ts +18 -18
  114. package/services/mailer/mailer.ts +78 -78
  115. package/services/notifications/notifications.ts +35 -35
  116. package/services/qualifications/qualifications.ts +81 -46
  117. package/services/settings/accounts.client.ts +23 -10
  118. package/services/settings/accounts.ts +191 -30
  119. package/services/settings/cron.client.ts +13 -0
  120. package/services/settings/cron.ts +118 -5
  121. package/services/settings/laws.ts +1 -1
  122. package/services/settings/settings.ts +73 -52
  123. package/services/settings/system.client.ts +13 -0
  124. package/services/settings/system.ts +115 -15
  125. package/services/stats/stats.client.ts +7 -7
  126. package/services/stats/stats.ts +24 -24
  127. package/services/sync/sync.client.ts +271 -37
  128. package/services/sync/sync.ts +1525 -421
  129. package/services/vehicles/vehicles.ts +8 -8
  130. package/services/wiki/wiki.ts +8 -8
  131. package/svcs.ts +100 -6
  132. package/resources/centrum/attributes.ts +0 -183
  133. package/resources/documents/signoff.ts +0 -55
  134. package/resources/users/labels.ts +0 -160
@@ -2,6 +2,8 @@
2
2
  // @generated from protobuf file "services/jobs/conduct.proto" (package "services.jobs", syntax proto3)
3
3
  // tslint:disable
4
4
  // @ts-nocheck
5
+ import { UploadFileResponse } from "../../resources/file/filestore";
6
+ import { UploadFileRequest } from "../../resources/file/filestore";
5
7
  import { ServiceType } from "@protobuf-ts/runtime-rpc";
6
8
  import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
7
9
  import type { IBinaryWriter } from "@protobuf-ts/runtime";
@@ -12,9 +14,9 @@ import { WireType } from "@protobuf-ts/runtime";
12
14
  import type { PartialMessage } from "@protobuf-ts/runtime";
13
15
  import { reflectionMergePartial } from "@protobuf-ts/runtime";
14
16
  import { MessageType } from "@protobuf-ts/runtime";
15
- import { ConductEntry } from "../../resources/jobs/conduct";
17
+ import { ConductEntry } from "../../resources/jobs/conduct/conduct";
16
18
  import { PaginationResponse } from "../../resources/common/database/database";
17
- import { ConductType } from "../../resources/jobs/conduct";
19
+ import { ConductType } from "../../resources/jobs/conduct/conduct";
18
20
  import { Sort } from "../../resources/common/database/database";
19
21
  import { PaginationRequest } from "../../resources/common/database/database";
20
22
  // Conduct Register
@@ -34,7 +36,7 @@ export interface ListConductEntriesRequest {
34
36
  /**
35
37
  * Search params
36
38
  *
37
- * @generated from protobuf field: repeated resources.jobs.ConductType types = 3
39
+ * @generated from protobuf field: repeated resources.jobs.conduct.ConductType types = 3
38
40
  */
39
41
  types: ConductType[];
40
42
  /**
@@ -42,11 +44,15 @@ export interface ListConductEntriesRequest {
42
44
  */
43
45
  showExpired?: boolean;
44
46
  /**
45
- * @generated from protobuf field: repeated int32 user_ids = 5
47
+ * @generated from protobuf field: optional bool show_drafts = 5
48
+ */
49
+ showDrafts?: boolean;
50
+ /**
51
+ * @generated from protobuf field: repeated int32 user_ids = 6
46
52
  */
47
53
  userIds: number[];
48
54
  /**
49
- * @generated from protobuf field: repeated int64 ids = 6
55
+ * @generated from protobuf field: repeated int64 ids = 7
50
56
  */
51
57
  ids: number[];
52
58
  }
@@ -59,16 +65,34 @@ export interface ListConductEntriesResponse {
59
65
  */
60
66
  pagination?: PaginationResponse;
61
67
  /**
62
- * @generated from protobuf field: repeated resources.jobs.ConductEntry entries = 2
68
+ * @generated from protobuf field: repeated resources.jobs.conduct.ConductEntry entries = 2
63
69
  */
64
70
  entries: ConductEntry[];
65
71
  }
72
+ /**
73
+ * @generated from protobuf message services.jobs.GetConductEntryRequest
74
+ */
75
+ export interface GetConductEntryRequest {
76
+ /**
77
+ * @generated from protobuf field: int64 id = 1
78
+ */
79
+ id: number;
80
+ }
81
+ /**
82
+ * @generated from protobuf message services.jobs.GetConductEntryResponse
83
+ */
84
+ export interface GetConductEntryResponse {
85
+ /**
86
+ * @generated from protobuf field: resources.jobs.conduct.ConductEntry entry = 1
87
+ */
88
+ entry?: ConductEntry;
89
+ }
66
90
  /**
67
91
  * @generated from protobuf message services.jobs.CreateConductEntryRequest
68
92
  */
69
93
  export interface CreateConductEntryRequest {
70
94
  /**
71
- * @generated from protobuf field: resources.jobs.ConductEntry entry = 1
95
+ * @generated from protobuf field: resources.jobs.conduct.ConductEntry entry = 1
72
96
  */
73
97
  entry?: ConductEntry;
74
98
  }
@@ -77,7 +101,7 @@ export interface CreateConductEntryRequest {
77
101
  */
78
102
  export interface CreateConductEntryResponse {
79
103
  /**
80
- * @generated from protobuf field: resources.jobs.ConductEntry entry = 1
104
+ * @generated from protobuf field: resources.jobs.conduct.ConductEntry entry = 1
81
105
  */
82
106
  entry?: ConductEntry;
83
107
  }
@@ -86,7 +110,7 @@ export interface CreateConductEntryResponse {
86
110
  */
87
111
  export interface UpdateConductEntryRequest {
88
112
  /**
89
- * @generated from protobuf field: resources.jobs.ConductEntry entry = 1
113
+ * @generated from protobuf field: resources.jobs.conduct.ConductEntry entry = 1
90
114
  */
91
115
  entry?: ConductEntry;
92
116
  }
@@ -95,7 +119,7 @@ export interface UpdateConductEntryRequest {
95
119
  */
96
120
  export interface UpdateConductEntryResponse {
97
121
  /**
98
- * @generated from protobuf field: resources.jobs.ConductEntry entry = 1
122
+ * @generated from protobuf field: resources.jobs.conduct.ConductEntry entry = 1
99
123
  */
100
124
  entry?: ConductEntry;
101
125
  }
@@ -119,10 +143,11 @@ class ListConductEntriesRequest$Type extends MessageType<ListConductEntriesReque
119
143
  super("services.jobs.ListConductEntriesRequest", [
120
144
  { no: 1, name: "pagination", kind: "message", T: () => PaginationRequest, options: { "buf.validate.field": { required: true } } },
121
145
  { no: 2, name: "sort", kind: "message", T: () => Sort },
122
- { no: 3, name: "types", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["resources.jobs.ConductType", ConductType, "CONDUCT_TYPE_"] },
146
+ { no: 3, name: "types", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["resources.jobs.conduct.ConductType", ConductType, "CONDUCT_TYPE_"] },
123
147
  { no: 4, name: "show_expired", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ },
124
- { no: 5, name: "user_ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 5 /*ScalarType.INT32*/ },
125
- { no: 6, name: "ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }
148
+ { no: 5, name: "show_drafts", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ },
149
+ { no: 6, name: "user_ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 5 /*ScalarType.INT32*/ },
150
+ { no: 7, name: "ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }
126
151
  ]);
127
152
  }
128
153
  create(value?: PartialMessage<ListConductEntriesRequest>): ListConductEntriesRequest {
@@ -145,7 +170,7 @@ class ListConductEntriesRequest$Type extends MessageType<ListConductEntriesReque
145
170
  case /* optional resources.common.database.Sort sort */ 2:
146
171
  message.sort = Sort.internalBinaryRead(reader, reader.uint32(), options, message.sort);
147
172
  break;
148
- case /* repeated resources.jobs.ConductType types */ 3:
173
+ case /* repeated resources.jobs.conduct.ConductType types */ 3:
149
174
  if (wireType === WireType.LengthDelimited)
150
175
  for (let e = reader.int32() + reader.pos; reader.pos < e;)
151
176
  message.types.push(reader.int32());
@@ -155,14 +180,17 @@ class ListConductEntriesRequest$Type extends MessageType<ListConductEntriesReque
155
180
  case /* optional bool show_expired */ 4:
156
181
  message.showExpired = reader.bool();
157
182
  break;
158
- case /* repeated int32 user_ids */ 5:
183
+ case /* optional bool show_drafts */ 5:
184
+ message.showDrafts = reader.bool();
185
+ break;
186
+ case /* repeated int32 user_ids */ 6:
159
187
  if (wireType === WireType.LengthDelimited)
160
188
  for (let e = reader.int32() + reader.pos; reader.pos < e;)
161
189
  message.userIds.push(reader.int32());
162
190
  else
163
191
  message.userIds.push(reader.int32());
164
192
  break;
165
- case /* repeated int64 ids */ 6:
193
+ case /* repeated int64 ids */ 7:
166
194
  if (wireType === WireType.LengthDelimited)
167
195
  for (let e = reader.int32() + reader.pos; reader.pos < e;)
168
196
  message.ids.push(reader.int64().toNumber());
@@ -187,7 +215,7 @@ class ListConductEntriesRequest$Type extends MessageType<ListConductEntriesReque
187
215
  /* optional resources.common.database.Sort sort = 2; */
188
216
  if (message.sort)
189
217
  Sort.internalBinaryWrite(message.sort, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
190
- /* repeated resources.jobs.ConductType types = 3; */
218
+ /* repeated resources.jobs.conduct.ConductType types = 3; */
191
219
  if (message.types.length) {
192
220
  writer.tag(3, WireType.LengthDelimited).fork();
193
221
  for (let i = 0; i < message.types.length; i++)
@@ -197,16 +225,19 @@ class ListConductEntriesRequest$Type extends MessageType<ListConductEntriesReque
197
225
  /* optional bool show_expired = 4; */
198
226
  if (message.showExpired !== undefined)
199
227
  writer.tag(4, WireType.Varint).bool(message.showExpired);
200
- /* repeated int32 user_ids = 5; */
228
+ /* optional bool show_drafts = 5; */
229
+ if (message.showDrafts !== undefined)
230
+ writer.tag(5, WireType.Varint).bool(message.showDrafts);
231
+ /* repeated int32 user_ids = 6; */
201
232
  if (message.userIds.length) {
202
- writer.tag(5, WireType.LengthDelimited).fork();
233
+ writer.tag(6, WireType.LengthDelimited).fork();
203
234
  for (let i = 0; i < message.userIds.length; i++)
204
235
  writer.int32(message.userIds[i]);
205
236
  writer.join();
206
237
  }
207
- /* repeated int64 ids = 6; */
238
+ /* repeated int64 ids = 7; */
208
239
  if (message.ids.length) {
209
- writer.tag(6, WireType.LengthDelimited).fork();
240
+ writer.tag(7, WireType.LengthDelimited).fork();
210
241
  for (let i = 0; i < message.ids.length; i++)
211
242
  writer.int64(message.ids[i]);
212
243
  writer.join();
@@ -244,7 +275,7 @@ class ListConductEntriesResponse$Type extends MessageType<ListConductEntriesResp
244
275
  case /* resources.common.database.PaginationResponse pagination */ 1:
245
276
  message.pagination = PaginationResponse.internalBinaryRead(reader, reader.uint32(), options, message.pagination);
246
277
  break;
247
- case /* repeated resources.jobs.ConductEntry entries */ 2:
278
+ case /* repeated resources.jobs.conduct.ConductEntry entries */ 2:
248
279
  message.entries.push(ConductEntry.internalBinaryRead(reader, reader.uint32(), options));
249
280
  break;
250
281
  default:
@@ -262,7 +293,7 @@ class ListConductEntriesResponse$Type extends MessageType<ListConductEntriesResp
262
293
  /* resources.common.database.PaginationResponse pagination = 1; */
263
294
  if (message.pagination)
264
295
  PaginationResponse.internalBinaryWrite(message.pagination, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
265
- /* repeated resources.jobs.ConductEntry entries = 2; */
296
+ /* repeated resources.jobs.conduct.ConductEntry entries = 2; */
266
297
  for (let i = 0; i < message.entries.length; i++)
267
298
  ConductEntry.internalBinaryWrite(message.entries[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
268
299
  let u = options.writeUnknownFields;
@@ -276,6 +307,99 @@ class ListConductEntriesResponse$Type extends MessageType<ListConductEntriesResp
276
307
  */
277
308
  export const ListConductEntriesResponse = new ListConductEntriesResponse$Type();
278
309
  // @generated message type with reflection information, may provide speed optimized methods
310
+ class GetConductEntryRequest$Type extends MessageType<GetConductEntryRequest> {
311
+ constructor() {
312
+ super("services.jobs.GetConductEntryRequest", [
313
+ { no: 1, name: "id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/, options: { "buf.validate.field": { required: true } } }
314
+ ]);
315
+ }
316
+ create(value?: PartialMessage<GetConductEntryRequest>): GetConductEntryRequest {
317
+ const message = globalThis.Object.create((this.messagePrototype!));
318
+ message.id = 0;
319
+ if (value !== undefined)
320
+ reflectionMergePartial<GetConductEntryRequest>(this, message, value);
321
+ return message;
322
+ }
323
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetConductEntryRequest): GetConductEntryRequest {
324
+ let message = target ?? this.create(), end = reader.pos + length;
325
+ while (reader.pos < end) {
326
+ let [fieldNo, wireType] = reader.tag();
327
+ switch (fieldNo) {
328
+ case /* int64 id */ 1:
329
+ message.id = reader.int64().toNumber();
330
+ break;
331
+ default:
332
+ let u = options.readUnknownField;
333
+ if (u === "throw")
334
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
335
+ let d = reader.skip(wireType);
336
+ if (u !== false)
337
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
338
+ }
339
+ }
340
+ return message;
341
+ }
342
+ internalBinaryWrite(message: GetConductEntryRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
343
+ /* int64 id = 1; */
344
+ if (message.id !== 0)
345
+ writer.tag(1, WireType.Varint).int64(message.id);
346
+ let u = options.writeUnknownFields;
347
+ if (u !== false)
348
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
349
+ return writer;
350
+ }
351
+ }
352
+ /**
353
+ * @generated MessageType for protobuf message services.jobs.GetConductEntryRequest
354
+ */
355
+ export const GetConductEntryRequest = new GetConductEntryRequest$Type();
356
+ // @generated message type with reflection information, may provide speed optimized methods
357
+ class GetConductEntryResponse$Type extends MessageType<GetConductEntryResponse> {
358
+ constructor() {
359
+ super("services.jobs.GetConductEntryResponse", [
360
+ { no: 1, name: "entry", kind: "message", T: () => ConductEntry, options: { "buf.validate.field": { required: true } } }
361
+ ]);
362
+ }
363
+ create(value?: PartialMessage<GetConductEntryResponse>): GetConductEntryResponse {
364
+ const message = globalThis.Object.create((this.messagePrototype!));
365
+ if (value !== undefined)
366
+ reflectionMergePartial<GetConductEntryResponse>(this, message, value);
367
+ return message;
368
+ }
369
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetConductEntryResponse): GetConductEntryResponse {
370
+ let message = target ?? this.create(), end = reader.pos + length;
371
+ while (reader.pos < end) {
372
+ let [fieldNo, wireType] = reader.tag();
373
+ switch (fieldNo) {
374
+ case /* resources.jobs.conduct.ConductEntry entry */ 1:
375
+ message.entry = ConductEntry.internalBinaryRead(reader, reader.uint32(), options, message.entry);
376
+ break;
377
+ default:
378
+ let u = options.readUnknownField;
379
+ if (u === "throw")
380
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
381
+ let d = reader.skip(wireType);
382
+ if (u !== false)
383
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
384
+ }
385
+ }
386
+ return message;
387
+ }
388
+ internalBinaryWrite(message: GetConductEntryResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
389
+ /* resources.jobs.conduct.ConductEntry entry = 1; */
390
+ if (message.entry)
391
+ ConductEntry.internalBinaryWrite(message.entry, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
392
+ let u = options.writeUnknownFields;
393
+ if (u !== false)
394
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
395
+ return writer;
396
+ }
397
+ }
398
+ /**
399
+ * @generated MessageType for protobuf message services.jobs.GetConductEntryResponse
400
+ */
401
+ export const GetConductEntryResponse = new GetConductEntryResponse$Type();
402
+ // @generated message type with reflection information, may provide speed optimized methods
279
403
  class CreateConductEntryRequest$Type extends MessageType<CreateConductEntryRequest> {
280
404
  constructor() {
281
405
  super("services.jobs.CreateConductEntryRequest", [
@@ -293,7 +417,7 @@ class CreateConductEntryRequest$Type extends MessageType<CreateConductEntryReque
293
417
  while (reader.pos < end) {
294
418
  let [fieldNo, wireType] = reader.tag();
295
419
  switch (fieldNo) {
296
- case /* resources.jobs.ConductEntry entry */ 1:
420
+ case /* resources.jobs.conduct.ConductEntry entry */ 1:
297
421
  message.entry = ConductEntry.internalBinaryRead(reader, reader.uint32(), options, message.entry);
298
422
  break;
299
423
  default:
@@ -308,7 +432,7 @@ class CreateConductEntryRequest$Type extends MessageType<CreateConductEntryReque
308
432
  return message;
309
433
  }
310
434
  internalBinaryWrite(message: CreateConductEntryRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
311
- /* resources.jobs.ConductEntry entry = 1; */
435
+ /* resources.jobs.conduct.ConductEntry entry = 1; */
312
436
  if (message.entry)
313
437
  ConductEntry.internalBinaryWrite(message.entry, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
314
438
  let u = options.writeUnknownFields;
@@ -339,7 +463,7 @@ class CreateConductEntryResponse$Type extends MessageType<CreateConductEntryResp
339
463
  while (reader.pos < end) {
340
464
  let [fieldNo, wireType] = reader.tag();
341
465
  switch (fieldNo) {
342
- case /* resources.jobs.ConductEntry entry */ 1:
466
+ case /* resources.jobs.conduct.ConductEntry entry */ 1:
343
467
  message.entry = ConductEntry.internalBinaryRead(reader, reader.uint32(), options, message.entry);
344
468
  break;
345
469
  default:
@@ -354,7 +478,7 @@ class CreateConductEntryResponse$Type extends MessageType<CreateConductEntryResp
354
478
  return message;
355
479
  }
356
480
  internalBinaryWrite(message: CreateConductEntryResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
357
- /* resources.jobs.ConductEntry entry = 1; */
481
+ /* resources.jobs.conduct.ConductEntry entry = 1; */
358
482
  if (message.entry)
359
483
  ConductEntry.internalBinaryWrite(message.entry, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
360
484
  let u = options.writeUnknownFields;
@@ -385,7 +509,7 @@ class UpdateConductEntryRequest$Type extends MessageType<UpdateConductEntryReque
385
509
  while (reader.pos < end) {
386
510
  let [fieldNo, wireType] = reader.tag();
387
511
  switch (fieldNo) {
388
- case /* resources.jobs.ConductEntry entry */ 1:
512
+ case /* resources.jobs.conduct.ConductEntry entry */ 1:
389
513
  message.entry = ConductEntry.internalBinaryRead(reader, reader.uint32(), options, message.entry);
390
514
  break;
391
515
  default:
@@ -400,7 +524,7 @@ class UpdateConductEntryRequest$Type extends MessageType<UpdateConductEntryReque
400
524
  return message;
401
525
  }
402
526
  internalBinaryWrite(message: UpdateConductEntryRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
403
- /* resources.jobs.ConductEntry entry = 1; */
527
+ /* resources.jobs.conduct.ConductEntry entry = 1; */
404
528
  if (message.entry)
405
529
  ConductEntry.internalBinaryWrite(message.entry, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
406
530
  let u = options.writeUnknownFields;
@@ -431,7 +555,7 @@ class UpdateConductEntryResponse$Type extends MessageType<UpdateConductEntryResp
431
555
  while (reader.pos < end) {
432
556
  let [fieldNo, wireType] = reader.tag();
433
557
  switch (fieldNo) {
434
- case /* resources.jobs.ConductEntry entry */ 1:
558
+ case /* resources.jobs.conduct.ConductEntry entry */ 1:
435
559
  message.entry = ConductEntry.internalBinaryRead(reader, reader.uint32(), options, message.entry);
436
560
  break;
437
561
  default:
@@ -446,7 +570,7 @@ class UpdateConductEntryResponse$Type extends MessageType<UpdateConductEntryResp
446
570
  return message;
447
571
  }
448
572
  internalBinaryWrite(message: UpdateConductEntryResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
449
- /* resources.jobs.ConductEntry entry = 1; */
573
+ /* resources.jobs.conduct.ConductEntry entry = 1; */
450
574
  if (message.entry)
451
575
  ConductEntry.internalBinaryWrite(message.entry, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
452
576
  let u = options.writeUnknownFields;
@@ -549,7 +673,9 @@ export const DeleteConductEntryResponse = new DeleteConductEntryResponse$Type();
549
673
  */
550
674
  export const ConductService = new ServiceType("services.jobs.ConductService", [
551
675
  { name: "ListConductEntries", options: { "codegen.perms.perms": { enabled: true, attrs: [{ key: "Access", type: "ATTRIBUTE_TYPE_STRING_LIST", validStringList: ["Own", "All"] }] } }, I: ListConductEntriesRequest, O: ListConductEntriesResponse },
676
+ { name: "GetConductEntry", options: { "codegen.perms.perms": { enabled: true, name: "ListConductEntries" } }, I: GetConductEntryRequest, O: GetConductEntryResponse },
552
677
  { name: "CreateConductEntry", options: { "codegen.perms.perms": { enabled: true } }, I: CreateConductEntryRequest, O: CreateConductEntryResponse },
553
678
  { name: "UpdateConductEntry", options: { "codegen.perms.perms": { enabled: true } }, I: UpdateConductEntryRequest, O: UpdateConductEntryResponse },
554
- { name: "DeleteConductEntry", options: { "codegen.perms.perms": { enabled: true } }, I: DeleteConductEntryRequest, O: DeleteConductEntryResponse }
555
- ]);
679
+ { name: "DeleteConductEntry", options: { "codegen.perms.perms": { enabled: true } }, I: DeleteConductEntryRequest, O: DeleteConductEntryResponse },
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" } });