@fivenet-app/gen 2026.8.0 → 2026.10.2

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 (83) hide show
  1. package/LICENSE +201 -0
  2. package/clients.ts +12 -0
  3. package/codegen/perms/perms.ts +331 -2
  4. package/google/protobuf/any.ts +47 -103
  5. package/google/protobuf/descriptor.ts +28 -29
  6. package/google/protobuf/struct.ts +33 -22
  7. package/google/protobuf/timestamp.ts +3 -3
  8. package/package.json +2 -2
  9. package/perms.ts +58 -17
  10. package/resources/calendar/calendar.ts +11 -0
  11. package/resources/calendar/entries/entries.ts +23 -0
  12. package/resources/centrum/dispatches/dispatches.ts +214 -21
  13. package/resources/centrum/units/units.ts +212 -5
  14. package/resources/citizens/labels/access.ts +10 -6
  15. package/resources/cron/cron.ts +44 -3
  16. package/resources/dbsync/state.ts +192 -0
  17. package/resources/documents/stamps/access.ts +25 -0
  18. package/resources/documents/stamps/stamp.ts +0 -21
  19. package/resources/documents/templates/templates.ts +63 -61
  20. package/resources/documents/workflow/workflow.ts +61 -1
  21. package/resources/file/file.ts +3 -3
  22. package/resources/file/filestore.ts +26 -10
  23. package/resources/jobs/colleagues/activity/activity.ts +50 -8
  24. package/resources/jobs/colleagues/colleagues.ts +14 -1
  25. package/resources/jobs/groups/access/access.ts +29 -0
  26. package/resources/jobs/groups/activity.ts +332 -0
  27. package/resources/jobs/groups/group.ts +1666 -0
  28. package/resources/jobs/groups/short/group_member_short.ts +129 -0
  29. package/resources/jobs/job_asset.ts +116 -0
  30. package/resources/jobs/user_selector.ts +170 -0
  31. package/resources/notifications/clientview/clientview.ts +5 -1
  32. package/resources/notifications/events/events.ts +35 -1
  33. package/resources/notifications/notifications.ts +322 -2
  34. package/resources/permissions/attributes/attributes.ts +164 -2
  35. package/resources/permissions/authorization/authorization.ts +86 -0
  36. package/resources/permissions/permissions/permissions.ts +16 -1
  37. package/resources/properties/properties.ts +1648 -0
  38. package/resources/qualifications/activity/activity.ts +328 -0
  39. package/resources/qualifications/exam/exam.ts +108 -4
  40. package/resources/qualifications/qualifications.ts +36 -2
  41. package/resources/settings/config.ts +3 -3
  42. package/resources/settings/status.ts +197 -105
  43. package/resources/sync/activity/activity.ts +4 -4
  44. package/resources/sync/data/data.ts +16 -4
  45. package/resources/users/activity/activity.ts +220 -3
  46. package/resources/users/props/props.ts +13 -1
  47. package/resources/users/user.ts +13 -1
  48. package/resources/vehicles/activity/activity.ts +222 -3
  49. package/resources/vehicles/props/props.ts +13 -1
  50. package/resources/vehicles/vehicles.ts +13 -1
  51. package/services/auth/auth.ts +61 -67
  52. package/services/calendar/calendar.ts +1 -1
  53. package/services/calendar/entries.ts +3 -3
  54. package/services/centrum/centrum.ts +103 -1
  55. package/services/centrum/dispatches.ts +25 -1
  56. package/services/centrum/units.ts +28 -4
  57. package/services/citizens/citizens.client.ts +49 -0
  58. package/services/citizens/citizens.ts +384 -7
  59. package/services/completor/completor.ts +2 -2
  60. package/services/documents/approval.ts +2 -2
  61. package/services/documents/documents.ts +10 -9
  62. package/services/documents/templates.ts +24 -13
  63. package/services/jobs/colleagues.client.ts +34 -8
  64. package/services/jobs/colleagues.ts +289 -75
  65. package/services/jobs/conduct.ts +12 -19
  66. package/services/jobs/groups.client.ts +311 -0
  67. package/services/jobs/groups.ts +3654 -1
  68. package/services/jobs/timeclock.ts +30 -27
  69. package/services/notifications/notifications.client.ts +40 -1
  70. package/services/notifications/notifications.ts +483 -3
  71. package/services/qualifications/qualifications.client.ts +20 -7
  72. package/services/qualifications/qualifications.ts +291 -8
  73. package/services/settings/job_assets.client.ts +105 -0
  74. package/services/settings/job_assets.ts +373 -0
  75. package/services/settings/properties.client.ts +194 -0
  76. package/services/settings/properties.ts +1555 -0
  77. package/services/settings/settings.ts +1 -1
  78. package/services/settings/system.ts +29 -9
  79. package/services/sync/sync.client.ts +69 -33
  80. package/services/sync/sync.ts +557 -18
  81. package/services/vehicles/vehicles.client.ts +52 -0
  82. package/services/vehicles/vehicles.ts +386 -8
  83. package/svcs.ts +87 -1
@@ -76,6 +76,12 @@ export interface Cronjob {
76
76
  * @generated from protobuf field: optional resources.cron.CronjobCompletedEvent last_completed_event = 9
77
77
  */
78
78
  lastCompletedEvent?: CronjobCompletedEvent;
79
+ /**
80
+ * ID of the currently claimed run
81
+ *
82
+ * @generated from protobuf field: string run_id = 10
83
+ */
84
+ runId: string;
79
85
  }
80
86
  /**
81
87
  * @generated from protobuf message resources.cron.CronjobData
@@ -126,6 +132,18 @@ export interface CronjobCompletedEvent {
126
132
  * @generated from protobuf field: string name = 1
127
133
  */
128
134
  name: string;
135
+ /**
136
+ * Unique ID of the execution this event belongs to
137
+ *
138
+ * @generated from protobuf field: string run_id = 9
139
+ */
140
+ runId: string;
141
+ /**
142
+ * Start time of the execution this event belongs to
143
+ *
144
+ * @generated from protobuf field: optional resources.timestamp.Timestamp started_time = 10
145
+ */
146
+ startedTime?: Timestamp;
129
147
  /**
130
148
  * Cronjob execution success status
131
149
  *
@@ -181,7 +199,7 @@ export interface GenericCronData {
181
199
  };
182
200
  }
183
201
  /**
184
- * States of Cronjbo
202
+ * States of Cronjob
185
203
  *
186
204
  * @generated from protobuf enum resources.cron.CronjobState
187
205
  */
@@ -213,9 +231,10 @@ class Cronjob$Type extends MessageType<Cronjob> {
213
231
  { no: 4, name: "next_schedule_time", kind: "message", T: () => Timestamp },
214
232
  { no: 5, name: "last_attempt_time", kind: "message", T: () => Timestamp },
215
233
  { no: 6, name: "started_time", kind: "message", T: () => Timestamp },
216
- { no: 7, name: "timeout", kind: "message", T: () => Duration, options: { "buf.validate.field": { duration: { lte: { seconds: "1800" }, gte: {} } } } },
234
+ { no: 7, name: "timeout", kind: "message", T: () => Duration, options: { "buf.validate.field": { duration: { lte: { seconds: "1800" }, gt: {} } } } },
217
235
  { no: 8, name: "data", kind: "message", T: () => CronjobData },
218
- { no: 9, name: "last_completed_event", kind: "message", T: () => CronjobCompletedEvent }
236
+ { no: 9, name: "last_completed_event", kind: "message", T: () => CronjobCompletedEvent },
237
+ { no: 10, name: "run_id", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
219
238
  ]);
220
239
  }
221
240
  create(value?: PartialMessage<Cronjob>): Cronjob {
@@ -223,6 +242,7 @@ class Cronjob$Type extends MessageType<Cronjob> {
223
242
  message.name = "";
224
243
  message.schedule = "";
225
244
  message.state = 0;
245
+ message.runId = "";
226
246
  if (value !== undefined)
227
247
  reflectionMergePartial<Cronjob>(this, message, value);
228
248
  return message;
@@ -259,6 +279,9 @@ class Cronjob$Type extends MessageType<Cronjob> {
259
279
  case /* optional resources.cron.CronjobCompletedEvent last_completed_event */ 9:
260
280
  message.lastCompletedEvent = CronjobCompletedEvent.internalBinaryRead(reader, reader.uint32(), options, message.lastCompletedEvent);
261
281
  break;
282
+ case /* string run_id */ 10:
283
+ message.runId = reader.string();
284
+ break;
262
285
  default:
263
286
  let u = options.readUnknownField;
264
287
  if (u === "throw")
@@ -298,6 +321,9 @@ class Cronjob$Type extends MessageType<Cronjob> {
298
321
  /* optional resources.cron.CronjobCompletedEvent last_completed_event = 9; */
299
322
  if (message.lastCompletedEvent)
300
323
  CronjobCompletedEvent.internalBinaryWrite(message.lastCompletedEvent, writer.tag(9, WireType.LengthDelimited).fork(), options).join();
324
+ /* string run_id = 10; */
325
+ if (message.runId !== "")
326
+ writer.tag(10, WireType.LengthDelimited).string(message.runId);
301
327
  let u = options.writeUnknownFields;
302
328
  if (u !== false)
303
329
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -466,6 +492,8 @@ class CronjobCompletedEvent$Type extends MessageType<CronjobCompletedEvent> {
466
492
  constructor() {
467
493
  super("resources.cron.CronjobCompletedEvent", [
468
494
  { no: 1, name: "name", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
495
+ { no: 9, name: "run_id", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
496
+ { no: 10, name: "started_time", kind: "message", T: () => Timestamp },
469
497
  { no: 2, name: "success", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
470
498
  { no: 7, name: "cancelled", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
471
499
  { no: 3, name: "end_date", kind: "message", T: () => Timestamp },
@@ -478,6 +506,7 @@ class CronjobCompletedEvent$Type extends MessageType<CronjobCompletedEvent> {
478
506
  create(value?: PartialMessage<CronjobCompletedEvent>): CronjobCompletedEvent {
479
507
  const message = globalThis.Object.create((this.messagePrototype!));
480
508
  message.name = "";
509
+ message.runId = "";
481
510
  message.success = false;
482
511
  message.cancelled = false;
483
512
  message.nodeName = "";
@@ -493,6 +522,12 @@ class CronjobCompletedEvent$Type extends MessageType<CronjobCompletedEvent> {
493
522
  case /* string name */ 1:
494
523
  message.name = reader.string();
495
524
  break;
525
+ case /* string run_id */ 9:
526
+ message.runId = reader.string();
527
+ break;
528
+ case /* optional resources.timestamp.Timestamp started_time */ 10:
529
+ message.startedTime = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.startedTime);
530
+ break;
496
531
  case /* bool success */ 2:
497
532
  message.success = reader.bool();
498
533
  break;
@@ -550,6 +585,12 @@ class CronjobCompletedEvent$Type extends MessageType<CronjobCompletedEvent> {
550
585
  /* optional string error_message = 8; */
551
586
  if (message.errorMessage !== undefined)
552
587
  writer.tag(8, WireType.LengthDelimited).string(message.errorMessage);
588
+ /* string run_id = 9; */
589
+ if (message.runId !== "")
590
+ writer.tag(9, WireType.LengthDelimited).string(message.runId);
591
+ /* optional resources.timestamp.Timestamp started_time = 10; */
592
+ if (message.startedTime)
593
+ Timestamp.internalBinaryWrite(message.startedTime, writer.tag(10, WireType.LengthDelimited).fork(), options).join();
553
594
  let u = options.writeUnknownFields;
554
595
  if (u !== false)
555
596
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -0,0 +1,192 @@
1
+ // @generated by protobuf-ts 2.11.1 with parameter force_server_none,long_type_number,optimize_speed,ts_nocheck
2
+ // @generated from protobuf file "resources/dbsync/state.proto" (package "resources.dbsync", syntax proto3)
3
+ // tslint:disable
4
+ // @ts-nocheck
5
+ import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
6
+ import type { IBinaryWriter } from "@protobuf-ts/runtime";
7
+ import { WireType } from "@protobuf-ts/runtime";
8
+ import type { BinaryReadOptions } from "@protobuf-ts/runtime";
9
+ import type { IBinaryReader } from "@protobuf-ts/runtime";
10
+ import { UnknownFieldHandler } from "@protobuf-ts/runtime";
11
+ import type { PartialMessage } from "@protobuf-ts/runtime";
12
+ import { reflectionMergePartial } from "@protobuf-ts/runtime";
13
+ import { MessageType } from "@protobuf-ts/runtime";
14
+ import { Timestamp } from "../timestamp/timestamp";
15
+ /**
16
+ * @generated from protobuf message resources.dbsync.DBSyncCheckpoint
17
+ */
18
+ export interface DBSyncCheckpoint {
19
+ /**
20
+ * @generated from protobuf field: optional resources.timestamp.Timestamp last_check = 1
21
+ */
22
+ lastCheck?: Timestamp;
23
+ /**
24
+ * @generated from protobuf field: optional string last_id = 2
25
+ */
26
+ lastId?: string;
27
+ }
28
+ /**
29
+ * @generated from protobuf message resources.dbsync.DBSyncTableSyncState
30
+ */
31
+ export interface DBSyncTableSyncState {
32
+ /**
33
+ * @generated from protobuf field: string table = 1
34
+ */
35
+ table: string;
36
+ /**
37
+ * @generated from protobuf field: optional resources.dbsync.DBSyncCheckpoint checkpoint = 2
38
+ */
39
+ checkpoint?: DBSyncCheckpoint;
40
+ /**
41
+ * @generated from protobuf field: optional resources.timestamp.Timestamp last_synced_at = 3
42
+ */
43
+ lastSyncedAt?: Timestamp;
44
+ /**
45
+ * @generated from protobuf field: optional resources.timestamp.Timestamp last_attempt_at = 4
46
+ */
47
+ lastAttemptAt?: Timestamp;
48
+ /**
49
+ * @generated from protobuf field: optional string last_error = 5
50
+ */
51
+ lastError?: string;
52
+ /**
53
+ * @generated from protobuf field: bool enabled = 6
54
+ */
55
+ enabled: boolean;
56
+ }
57
+ // @generated message type with reflection information, may provide speed optimized methods
58
+ class DBSyncCheckpoint$Type extends MessageType<DBSyncCheckpoint> {
59
+ constructor() {
60
+ super("resources.dbsync.DBSyncCheckpoint", [
61
+ { no: 1, name: "last_check", kind: "message", T: () => Timestamp },
62
+ { no: 2, name: "last_id", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "128" } } } }
63
+ ]);
64
+ }
65
+ create(value?: PartialMessage<DBSyncCheckpoint>): DBSyncCheckpoint {
66
+ const message = globalThis.Object.create((this.messagePrototype!));
67
+ if (value !== undefined)
68
+ reflectionMergePartial<DBSyncCheckpoint>(this, message, value);
69
+ return message;
70
+ }
71
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DBSyncCheckpoint): DBSyncCheckpoint {
72
+ let message = target ?? this.create(), end = reader.pos + length;
73
+ while (reader.pos < end) {
74
+ let [fieldNo, wireType] = reader.tag();
75
+ switch (fieldNo) {
76
+ case /* optional resources.timestamp.Timestamp last_check */ 1:
77
+ message.lastCheck = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.lastCheck);
78
+ break;
79
+ case /* optional string last_id */ 2:
80
+ message.lastId = reader.string();
81
+ break;
82
+ default:
83
+ let u = options.readUnknownField;
84
+ if (u === "throw")
85
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
86
+ let d = reader.skip(wireType);
87
+ if (u !== false)
88
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
89
+ }
90
+ }
91
+ return message;
92
+ }
93
+ internalBinaryWrite(message: DBSyncCheckpoint, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
94
+ /* optional resources.timestamp.Timestamp last_check = 1; */
95
+ if (message.lastCheck)
96
+ Timestamp.internalBinaryWrite(message.lastCheck, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
97
+ /* optional string last_id = 2; */
98
+ if (message.lastId !== undefined)
99
+ writer.tag(2, WireType.LengthDelimited).string(message.lastId);
100
+ let u = options.writeUnknownFields;
101
+ if (u !== false)
102
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
103
+ return writer;
104
+ }
105
+ }
106
+ /**
107
+ * @generated MessageType for protobuf message resources.dbsync.DBSyncCheckpoint
108
+ */
109
+ export const DBSyncCheckpoint = new DBSyncCheckpoint$Type();
110
+ // @generated message type with reflection information, may provide speed optimized methods
111
+ class DBSyncTableSyncState$Type extends MessageType<DBSyncTableSyncState> {
112
+ constructor() {
113
+ super("resources.dbsync.DBSyncTableSyncState", [
114
+ { no: 1, name: "table", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "64" } } } },
115
+ { no: 2, name: "checkpoint", kind: "message", T: () => DBSyncCheckpoint },
116
+ { no: 3, name: "last_synced_at", kind: "message", T: () => Timestamp },
117
+ { no: 4, name: "last_attempt_at", kind: "message", T: () => Timestamp },
118
+ { no: 5, name: "last_error", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "256" } } } },
119
+ { no: 6, name: "enabled", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }
120
+ ]);
121
+ }
122
+ create(value?: PartialMessage<DBSyncTableSyncState>): DBSyncTableSyncState {
123
+ const message = globalThis.Object.create((this.messagePrototype!));
124
+ message.table = "";
125
+ message.enabled = false;
126
+ if (value !== undefined)
127
+ reflectionMergePartial<DBSyncTableSyncState>(this, message, value);
128
+ return message;
129
+ }
130
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DBSyncTableSyncState): DBSyncTableSyncState {
131
+ let message = target ?? this.create(), end = reader.pos + length;
132
+ while (reader.pos < end) {
133
+ let [fieldNo, wireType] = reader.tag();
134
+ switch (fieldNo) {
135
+ case /* string table */ 1:
136
+ message.table = reader.string();
137
+ break;
138
+ case /* optional resources.dbsync.DBSyncCheckpoint checkpoint */ 2:
139
+ message.checkpoint = DBSyncCheckpoint.internalBinaryRead(reader, reader.uint32(), options, message.checkpoint);
140
+ break;
141
+ case /* optional resources.timestamp.Timestamp last_synced_at */ 3:
142
+ message.lastSyncedAt = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.lastSyncedAt);
143
+ break;
144
+ case /* optional resources.timestamp.Timestamp last_attempt_at */ 4:
145
+ message.lastAttemptAt = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.lastAttemptAt);
146
+ break;
147
+ case /* optional string last_error */ 5:
148
+ message.lastError = reader.string();
149
+ break;
150
+ case /* bool enabled */ 6:
151
+ message.enabled = reader.bool();
152
+ break;
153
+ default:
154
+ let u = options.readUnknownField;
155
+ if (u === "throw")
156
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
157
+ let d = reader.skip(wireType);
158
+ if (u !== false)
159
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
160
+ }
161
+ }
162
+ return message;
163
+ }
164
+ internalBinaryWrite(message: DBSyncTableSyncState, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
165
+ /* string table = 1; */
166
+ if (message.table !== "")
167
+ writer.tag(1, WireType.LengthDelimited).string(message.table);
168
+ /* optional resources.dbsync.DBSyncCheckpoint checkpoint = 2; */
169
+ if (message.checkpoint)
170
+ DBSyncCheckpoint.internalBinaryWrite(message.checkpoint, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
171
+ /* optional resources.timestamp.Timestamp last_synced_at = 3; */
172
+ if (message.lastSyncedAt)
173
+ Timestamp.internalBinaryWrite(message.lastSyncedAt, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
174
+ /* optional resources.timestamp.Timestamp last_attempt_at = 4; */
175
+ if (message.lastAttemptAt)
176
+ Timestamp.internalBinaryWrite(message.lastAttemptAt, writer.tag(4, WireType.LengthDelimited).fork(), options).join();
177
+ /* optional string last_error = 5; */
178
+ if (message.lastError !== undefined)
179
+ writer.tag(5, WireType.LengthDelimited).string(message.lastError);
180
+ /* bool enabled = 6; */
181
+ if (message.enabled !== false)
182
+ writer.tag(6, WireType.Varint).bool(message.enabled);
183
+ let u = options.writeUnknownFields;
184
+ if (u !== false)
185
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
186
+ return writer;
187
+ }
188
+ }
189
+ /**
190
+ * @generated MessageType for protobuf message resources.dbsync.DBSyncTableSyncState
191
+ */
192
+ export const DBSyncTableSyncState = new DBSyncTableSyncState$Type();
@@ -0,0 +1,25 @@
1
+ // @generated by protobuf-ts 2.11.1 with parameter force_server_none,long_type_number,optimize_speed,ts_nocheck
2
+ // @generated from protobuf file "resources/documents/stamps/access.proto" (package "resources.documents.stamps", syntax proto3)
3
+ // tslint:disable
4
+ // @ts-nocheck
5
+ /**
6
+ * @generated from protobuf enum resources.documents.stamps.AccessLevel
7
+ */
8
+ export enum AccessLevel {
9
+ /**
10
+ * @generated from protobuf enum value: ACCESS_LEVEL_UNSPECIFIED = 0;
11
+ */
12
+ UNSPECIFIED = 0,
13
+ /**
14
+ * @generated from protobuf enum value: ACCESS_LEVEL_BLOCKED = 1;
15
+ */
16
+ BLOCKED = 1,
17
+ /**
18
+ * @generated from protobuf enum value: ACCESS_LEVEL_USE = 2;
19
+ */
20
+ USE = 2,
21
+ /**
22
+ * @generated from protobuf enum value: ACCESS_LEVEL_MANAGE = 3;
23
+ */
24
+ MANAGE = 3
25
+ }
@@ -56,27 +56,6 @@ export interface Stamp {
56
56
  */
57
57
  access?: Access;
58
58
  }
59
- /**
60
- * @generated from protobuf enum resources.documents.stamps.StampAccessLevel
61
- */
62
- export enum StampAccessLevel {
63
- /**
64
- * @generated from protobuf enum value: STAMP_ACCESS_LEVEL_UNSPECIFIED = 0;
65
- */
66
- UNSPECIFIED = 0,
67
- /**
68
- * @generated from protobuf enum value: STAMP_ACCESS_LEVEL_BLOCKED = 1;
69
- */
70
- BLOCKED = 1,
71
- /**
72
- * @generated from protobuf enum value: STAMP_ACCESS_LEVEL_USE = 2;
73
- */
74
- USE = 2,
75
- /**
76
- * @generated from protobuf enum value: STAMP_ACCESS_LEVEL_MANAGE = 3;
77
- */
78
- MANAGE = 3
79
- }
80
59
  // @generated message type with reflection information, may provide speed optimized methods
81
60
  class Stamp$Type extends MessageType<Stamp> {
82
61
  constructor() {
@@ -13,10 +13,6 @@ import { reflectionMergePartial } from "@protobuf-ts/runtime";
13
13
  import { MessageType } from "@protobuf-ts/runtime";
14
14
  import { OnEditBehavior } from "../approval/approval";
15
15
  import { ApprovalRuleKind } from "../approval/approval";
16
- import { Vehicle } from "../../vehicles/vehicles";
17
- import { UserShort } from "../../users/short/user";
18
- import { DocumentShort } from "../documents";
19
- import { User } from "../../users/user";
20
16
  import { Workflow } from "../workflow/workflow";
21
17
  import { Access } from "../../access/access";
22
18
  import { JobAccess } from "../../access/access";
@@ -191,9 +187,9 @@ export interface TemplateRequirements {
191
187
  */
192
188
  export interface ObjectSpecs {
193
189
  /**
194
- * @generated from protobuf field: optional bool required = 1
190
+ * @generated from protobuf field: bool required = 1
195
191
  */
196
- required?: boolean;
192
+ required: boolean;
197
193
  /**
198
194
  * @generated from protobuf field: optional int32 min = 2
199
195
  */
@@ -204,25 +200,21 @@ export interface ObjectSpecs {
204
200
  max?: number;
205
201
  }
206
202
  /**
207
- * @generated from protobuf message resources.documents.templates.TemplateData
203
+ * @generated from protobuf message resources.documents.templates.TemplateSelection
208
204
  */
209
- export interface TemplateData {
205
+ export interface TemplateSelection {
210
206
  /**
211
- * @generated from protobuf field: resources.users.User active_char = 1
207
+ * @generated from protobuf field: repeated int32 user_ids = 1
212
208
  */
213
- activeChar?: User;
209
+ userIds: number[];
214
210
  /**
215
- * @generated from protobuf field: repeated resources.documents.DocumentShort documents = 2
211
+ * @generated from protobuf field: repeated int64 document_ids = 2
216
212
  */
217
- documents: DocumentShort[];
213
+ documentIds: number[];
218
214
  /**
219
- * @generated from protobuf field: repeated resources.users.short.UserShort users = 3
215
+ * @generated from protobuf field: repeated string plates = 3
220
216
  */
221
- users: UserShort[];
222
- /**
223
- * @generated from protobuf field: repeated resources.vehicles.Vehicle vehicles = 4
224
- */
225
- vehicles: Vehicle[];
217
+ plates: string[];
226
218
  }
227
219
  /**
228
220
  * @generated from protobuf message resources.documents.templates.TemplateApproval
@@ -326,9 +318,9 @@ class Template$Type extends MessageType<Template> {
326
318
  { no: 8, name: "description", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "255" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
327
319
  { no: 9, name: "color", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "3", maxLen: "7" } }, "codegen.sanitizer.sanitizer": { enabled: true, stripHtmlTags: true } } },
328
320
  { no: 10, name: "icon", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "128" } }, "codegen.sanitizer.sanitizer": { enabled: true, stripHtmlTags: true } } },
329
- { no: 11, name: "content_title", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "3", maxBytes: "10240" } }, "codegen.sanitizer.sanitizer": { enabled: true }, "tagger.tags": "alias:\"content_title\"" } },
330
- { no: 12, name: "content", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "0", maxBytes: "2000000" } }, "codegen.sanitizer.sanitizer": { enabled: true }, "tagger.tags": "alias:\"content\"" } },
331
- { no: 13, name: "state", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "512" } }, "tagger.tags": "alias:\"state\"" } },
321
+ { no: 11, name: "content_title", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxBytes: "10240" } }, "codegen.sanitizer.sanitizer": { enabled: true, stripHtmlTags: true }, "tagger.tags": "alias:\"content_title\"" } },
322
+ { no: 12, name: "content", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "0", maxBytes: "2000000" } }, "codegen.sanitizer.sanitizer": { enabled: true, method: "Sanitize" }, "tagger.tags": "alias:\"content\"" } },
323
+ { no: 13, name: "state", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "512" } }, "codegen.sanitizer.sanitizer": { enabled: true, stripHtmlTags: true }, "tagger.tags": "alias:\"state\"" } },
332
324
  { no: 14, name: "schema", kind: "message", T: () => TemplateSchema, options: { "tagger.tags": "alias:\"schema\"" } },
333
325
  { no: 15, name: "creator_job", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "20" } } } },
334
326
  { no: 16, name: "creator_job_label", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "50" } } } },
@@ -737,13 +729,14 @@ export const TemplateRequirements = new TemplateRequirements$Type();
737
729
  class ObjectSpecs$Type extends MessageType<ObjectSpecs> {
738
730
  constructor() {
739
731
  super("resources.documents.templates.ObjectSpecs", [
740
- { no: 1, name: "required", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ },
732
+ { no: 1, name: "required", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
741
733
  { no: 2, name: "min", kind: "scalar", opt: true, T: 5 /*ScalarType.INT32*/ },
742
734
  { no: 3, name: "max", kind: "scalar", opt: true, T: 5 /*ScalarType.INT32*/ }
743
735
  ]);
744
736
  }
745
737
  create(value?: PartialMessage<ObjectSpecs>): ObjectSpecs {
746
738
  const message = globalThis.Object.create((this.messagePrototype!));
739
+ message.required = false;
747
740
  if (value !== undefined)
748
741
  reflectionMergePartial<ObjectSpecs>(this, message, value);
749
742
  return message;
@@ -753,7 +746,7 @@ class ObjectSpecs$Type extends MessageType<ObjectSpecs> {
753
746
  while (reader.pos < end) {
754
747
  let [fieldNo, wireType] = reader.tag();
755
748
  switch (fieldNo) {
756
- case /* optional bool required */ 1:
749
+ case /* bool required */ 1:
757
750
  message.required = reader.bool();
758
751
  break;
759
752
  case /* optional int32 min */ 2:
@@ -774,8 +767,8 @@ class ObjectSpecs$Type extends MessageType<ObjectSpecs> {
774
767
  return message;
775
768
  }
776
769
  internalBinaryWrite(message: ObjectSpecs, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
777
- /* optional bool required = 1; */
778
- if (message.required !== undefined)
770
+ /* bool required = 1; */
771
+ if (message.required !== false)
779
772
  writer.tag(1, WireType.Varint).bool(message.required);
780
773
  /* optional int32 min = 2; */
781
774
  if (message.min !== undefined)
@@ -794,40 +787,44 @@ class ObjectSpecs$Type extends MessageType<ObjectSpecs> {
794
787
  */
795
788
  export const ObjectSpecs = new ObjectSpecs$Type();
796
789
  // @generated message type with reflection information, may provide speed optimized methods
797
- class TemplateData$Type extends MessageType<TemplateData> {
790
+ class TemplateSelection$Type extends MessageType<TemplateSelection> {
798
791
  constructor() {
799
- super("resources.documents.templates.TemplateData", [
800
- { no: 1, name: "active_char", kind: "message", T: () => User, options: { "buf.validate.field": { required: true } } },
801
- { no: 2, name: "documents", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => DocumentShort, options: { "buf.validate.field": { repeated: { maxItems: "12" } } } },
802
- { no: 3, name: "users", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => UserShort, options: { "buf.validate.field": { repeated: { maxItems: "12" } } } },
803
- { no: 4, name: "vehicles", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => Vehicle, options: { "buf.validate.field": { repeated: { maxItems: "12" } } } }
792
+ super("resources.documents.templates.TemplateSelection", [
793
+ { no: 1, name: "user_ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { repeated: { maxItems: "12", items: { int32: { gt: 0 } } } } } },
794
+ { no: 2, name: "document_ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/, options: { "buf.validate.field": { repeated: { maxItems: "12", items: { int64: { gt: "0" } } } } } },
795
+ { no: 3, name: "plates", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { repeated: { maxItems: "12", items: { string: { minLen: "1", maxLen: "32" } } } } } }
804
796
  ]);
805
797
  }
806
- create(value?: PartialMessage<TemplateData>): TemplateData {
798
+ create(value?: PartialMessage<TemplateSelection>): TemplateSelection {
807
799
  const message = globalThis.Object.create((this.messagePrototype!));
808
- message.documents = [];
809
- message.users = [];
810
- message.vehicles = [];
800
+ message.userIds = [];
801
+ message.documentIds = [];
802
+ message.plates = [];
811
803
  if (value !== undefined)
812
- reflectionMergePartial<TemplateData>(this, message, value);
804
+ reflectionMergePartial<TemplateSelection>(this, message, value);
813
805
  return message;
814
806
  }
815
- internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TemplateData): TemplateData {
807
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TemplateSelection): TemplateSelection {
816
808
  let message = target ?? this.create(), end = reader.pos + length;
817
809
  while (reader.pos < end) {
818
810
  let [fieldNo, wireType] = reader.tag();
819
811
  switch (fieldNo) {
820
- case /* resources.users.User active_char */ 1:
821
- message.activeChar = User.internalBinaryRead(reader, reader.uint32(), options, message.activeChar);
822
- break;
823
- case /* repeated resources.documents.DocumentShort documents */ 2:
824
- message.documents.push(DocumentShort.internalBinaryRead(reader, reader.uint32(), options));
812
+ case /* repeated int32 user_ids */ 1:
813
+ if (wireType === WireType.LengthDelimited)
814
+ for (let e = reader.int32() + reader.pos; reader.pos < e;)
815
+ message.userIds.push(reader.int32());
816
+ else
817
+ message.userIds.push(reader.int32());
825
818
  break;
826
- case /* repeated resources.users.short.UserShort users */ 3:
827
- message.users.push(UserShort.internalBinaryRead(reader, reader.uint32(), options));
819
+ case /* repeated int64 document_ids */ 2:
820
+ if (wireType === WireType.LengthDelimited)
821
+ for (let e = reader.int32() + reader.pos; reader.pos < e;)
822
+ message.documentIds.push(reader.int64().toNumber());
823
+ else
824
+ message.documentIds.push(reader.int64().toNumber());
828
825
  break;
829
- case /* repeated resources.vehicles.Vehicle vehicles */ 4:
830
- message.vehicles.push(Vehicle.internalBinaryRead(reader, reader.uint32(), options));
826
+ case /* repeated string plates */ 3:
827
+ message.plates.push(reader.string());
831
828
  break;
832
829
  default:
833
830
  let u = options.readUnknownField;
@@ -840,19 +837,24 @@ class TemplateData$Type extends MessageType<TemplateData> {
840
837
  }
841
838
  return message;
842
839
  }
843
- internalBinaryWrite(message: TemplateData, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
844
- /* resources.users.User active_char = 1; */
845
- if (message.activeChar)
846
- User.internalBinaryWrite(message.activeChar, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
847
- /* repeated resources.documents.DocumentShort documents = 2; */
848
- for (let i = 0; i < message.documents.length; i++)
849
- DocumentShort.internalBinaryWrite(message.documents[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
850
- /* repeated resources.users.short.UserShort users = 3; */
851
- for (let i = 0; i < message.users.length; i++)
852
- UserShort.internalBinaryWrite(message.users[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join();
853
- /* repeated resources.vehicles.Vehicle vehicles = 4; */
854
- for (let i = 0; i < message.vehicles.length; i++)
855
- Vehicle.internalBinaryWrite(message.vehicles[i], writer.tag(4, WireType.LengthDelimited).fork(), options).join();
840
+ internalBinaryWrite(message: TemplateSelection, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
841
+ /* repeated int32 user_ids = 1; */
842
+ if (message.userIds.length) {
843
+ writer.tag(1, WireType.LengthDelimited).fork();
844
+ for (let i = 0; i < message.userIds.length; i++)
845
+ writer.int32(message.userIds[i]);
846
+ writer.join();
847
+ }
848
+ /* repeated int64 document_ids = 2; */
849
+ if (message.documentIds.length) {
850
+ writer.tag(2, WireType.LengthDelimited).fork();
851
+ for (let i = 0; i < message.documentIds.length; i++)
852
+ writer.int64(message.documentIds[i]);
853
+ writer.join();
854
+ }
855
+ /* repeated string plates = 3; */
856
+ for (let i = 0; i < message.plates.length; i++)
857
+ writer.tag(3, WireType.LengthDelimited).string(message.plates[i]);
856
858
  let u = options.writeUnknownFields;
857
859
  if (u !== false)
858
860
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -860,9 +862,9 @@ class TemplateData$Type extends MessageType<TemplateData> {
860
862
  }
861
863
  }
862
864
  /**
863
- * @generated MessageType for protobuf message resources.documents.templates.TemplateData
865
+ * @generated MessageType for protobuf message resources.documents.templates.TemplateSelection
864
866
  */
865
- export const TemplateData = new TemplateData$Type();
867
+ export const TemplateSelection = new TemplateSelection$Type();
866
868
  // @generated message type with reflection information, may provide speed optimized methods
867
869
  class TemplateApproval$Type extends MessageType<TemplateApproval> {
868
870
  constructor() {