@fivenet-app/gen 2026.3.0 → 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 (37) hide show
  1. package/clients.ts +6 -6
  2. package/codegen/perms/perms.ts +93 -1
  3. package/package.json +1 -1
  4. package/perms.ts +6 -5
  5. package/resources/centrum/settings/settings.ts +1 -1
  6. package/resources/centrum/units/units.ts +1 -1
  7. package/resources/citizens/labels/labels.ts +526 -0
  8. package/resources/{users → citizens}/licenses/licenses.ts +17 -17
  9. package/resources/clientconfig/clientconfig.ts +32 -289
  10. package/resources/cron/cron.ts +2 -2
  11. package/resources/documents/access/access.ts +0 -23
  12. package/resources/documents/category/category.ts +1 -1
  13. package/resources/documents/templates/templates.ts +2 -2
  14. package/resources/jobs/labels/labels.ts +16 -5
  15. package/resources/livemap/markers/marker_marker.ts +1 -1
  16. package/resources/settings/banner.ts +1 -1
  17. package/resources/settings/config.ts +16 -14
  18. package/resources/sync/data/data.ts +9 -9
  19. package/resources/users/activity/activity.ts +132 -12
  20. package/resources/users/props/props.ts +4 -4
  21. package/resources/users/user.ts +4 -4
  22. package/services/citizens/citizens.client.ts +0 -13
  23. package/services/citizens/citizens.ts +1 -115
  24. package/services/citizens/labels.client.ts +77 -0
  25. package/services/citizens/labels.ts +455 -0
  26. package/services/completor/completor.ts +5 -5
  27. package/services/documents/documents.ts +1 -1
  28. package/services/qualifications/qualifications.ts +1 -1
  29. package/services/settings/cron.client.ts +13 -0
  30. package/services/settings/cron.ts +114 -1
  31. package/services/sync/sync.client.ts +271 -37
  32. package/services/sync/sync.ts +1438 -381
  33. package/svcs.ts +29 -27
  34. package/resources/sync/data/v2/data.ts +0 -220
  35. package/resources/users/labels/labels.ts +0 -160
  36. package/services/sync/v2/sync.client.ts +0 -331
  37. package/services/sync/v2/sync.ts +0 -1766
@@ -13,8 +13,11 @@ import { reflectionMergePartial } from "@protobuf-ts/runtime";
13
13
  import { MessageType } from "@protobuf-ts/runtime";
14
14
  import { BannerMessage } from "../settings/banner";
15
15
  import { Duration } from "../../google/protobuf/duration";
16
+ import { Livemap } from "../settings/config";
16
17
  import { Data } from "../settings/data";
17
18
  import { QuickButtons } from "../settings/config";
19
+ import { Display } from "../settings/config";
20
+ import { Website } from "../settings/config";
18
21
  /**
19
22
  * @generated from protobuf message resources.clientconfig.ClientConfig
20
23
  */
@@ -36,7 +39,7 @@ export interface ClientConfig {
36
39
  */
37
40
  discord?: Discord;
38
41
  /**
39
- * @generated from protobuf field: resources.clientconfig.Website website = 5
42
+ * @generated from protobuf field: resources.settings.Website website = 5
40
43
  */
41
44
  website?: Website;
42
45
  /**
@@ -52,7 +55,7 @@ export interface ClientConfig {
52
55
  */
53
56
  system?: System;
54
57
  /**
55
- * @generated from protobuf field: resources.clientconfig.Display display = 9
58
+ * @generated from protobuf field: resources.settings.Display display = 9
56
59
  */
57
60
  display?: Display;
58
61
  /**
@@ -111,32 +114,6 @@ export interface Discord {
111
114
  */
112
115
  botEnabled: boolean;
113
116
  }
114
- /**
115
- * @generated from protobuf message resources.clientconfig.Website
116
- */
117
- export interface Website {
118
- /**
119
- * @generated from protobuf field: resources.clientconfig.Links links = 1
120
- */
121
- links?: Links;
122
- /**
123
- * @generated from protobuf field: bool stats_page = 2
124
- */
125
- statsPage: boolean;
126
- }
127
- /**
128
- * @generated from protobuf message resources.clientconfig.Links
129
- */
130
- export interface Links {
131
- /**
132
- * @generated from protobuf field: optional string imprint = 1
133
- */
134
- imprint?: string;
135
- /**
136
- * @generated from protobuf field: optional string privacy_policy = 2
137
- */
138
- privacyPolicy?: string;
139
- }
140
117
  /**
141
118
  * @generated from protobuf message resources.clientconfig.FeatureGates
142
119
  */
@@ -155,7 +132,7 @@ export interface Game {
155
132
  */
156
133
  startJobGrade: number;
157
134
  /**
158
- * @generated from protobuf field: resources.clientconfig.Livemap livemap = 3
135
+ * @generated from protobuf field: resources.settings.Livemap livemap = 3
159
136
  */
160
137
  livemap?: Livemap;
161
138
  /**
@@ -175,15 +152,6 @@ export interface Game {
175
152
  */
176
153
  maxWantedDurationVehicle?: Duration;
177
154
  }
178
- /**
179
- * @generated from protobuf message resources.clientconfig.Livemap
180
- */
181
- export interface Livemap {
182
- /**
183
- * @generated from protobuf field: bool enable_cayo_perico = 1
184
- */
185
- enableCayoPerico: boolean;
186
- }
187
155
  /**
188
156
  * @generated from protobuf message resources.clientconfig.System
189
157
  */
@@ -220,35 +188,18 @@ export interface OTLPFrontend {
220
188
  [key: string]: string;
221
189
  };
222
190
  }
223
- /**
224
- * @generated from protobuf message resources.clientconfig.Display
225
- */
226
- export interface Display {
227
- /**
228
- * IETF BCP 47 language tag (e.g. "en-US", "de-DE")
229
- *
230
- * @generated from protobuf field: optional string intl_locale = 1
231
- */
232
- intlLocale?: string;
233
- /**
234
- * ISO 4217 currency code (e.g. "USD", "EUR")
235
- *
236
- * @generated from protobuf field: string currency_name = 2
237
- */
238
- currencyName: string;
239
- }
240
191
  // @generated message type with reflection information, may provide speed optimized methods
241
192
  class ClientConfig$Type extends MessageType<ClientConfig> {
242
193
  constructor() {
243
194
  super("resources.clientconfig.ClientConfig", [
244
- { no: 1, name: "version", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
195
+ { no: 1, name: "version", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "tagger.tags": "json:\"version\"" } },
245
196
  { no: 2, name: "default_locale", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "tagger.tags": "json:\"defaultLocale\"" } },
246
- { no: 3, name: "auth", kind: "message", T: () => Auth },
247
- { no: 4, name: "discord", kind: "message", T: () => Discord },
248
- { no: 5, name: "website", kind: "message", T: () => Website },
197
+ { no: 3, name: "auth", kind: "message", T: () => Auth, options: { "tagger.tags": "json:\"auth\"" } },
198
+ { no: 4, name: "discord", kind: "message", T: () => Discord, options: { "tagger.tags": "json:\"discord\"" } },
199
+ { no: 5, name: "website", kind: "message", T: () => Website, options: { "tagger.tags": "json:\"website\"" } },
249
200
  { no: 6, name: "feature_gates", kind: "message", T: () => FeatureGates, options: { "tagger.tags": "json:\"featureGates\"" } },
250
- { no: 7, name: "game", kind: "message", T: () => Game },
251
- { no: 8, name: "system", kind: "message", T: () => System },
201
+ { no: 7, name: "game", kind: "message", T: () => Game, options: { "tagger.tags": "json:\"game\"" } },
202
+ { no: 8, name: "system", kind: "message", T: () => System, options: { "tagger.tags": "json:\"system\"" } },
252
203
  { no: 9, name: "display", kind: "message", T: () => Display, options: { "tagger.tags": "json:\"display\"" } },
253
204
  { no: 11, name: "quick_buttons", kind: "message", T: () => QuickButtons, options: { "tagger.tags": "json:\"quickButtons\"" } },
254
205
  { no: 12, name: "data", kind: "message", T: () => Data, options: { "tagger.tags": "json:\"data\"" } }
@@ -279,7 +230,7 @@ class ClientConfig$Type extends MessageType<ClientConfig> {
279
230
  case /* resources.clientconfig.Discord discord */ 4:
280
231
  message.discord = Discord.internalBinaryRead(reader, reader.uint32(), options, message.discord);
281
232
  break;
282
- case /* resources.clientconfig.Website website */ 5:
233
+ case /* resources.settings.Website website */ 5:
283
234
  message.website = Website.internalBinaryRead(reader, reader.uint32(), options, message.website);
284
235
  break;
285
236
  case /* resources.clientconfig.FeatureGates feature_gates */ 6:
@@ -291,7 +242,7 @@ class ClientConfig$Type extends MessageType<ClientConfig> {
291
242
  case /* resources.clientconfig.System system */ 8:
292
243
  message.system = System.internalBinaryRead(reader, reader.uint32(), options, message.system);
293
244
  break;
294
- case /* resources.clientconfig.Display display */ 9:
245
+ case /* resources.settings.Display display */ 9:
295
246
  message.display = Display.internalBinaryRead(reader, reader.uint32(), options, message.display);
296
247
  break;
297
248
  case /* resources.settings.QuickButtons quick_buttons */ 11:
@@ -324,7 +275,7 @@ class ClientConfig$Type extends MessageType<ClientConfig> {
324
275
  /* resources.clientconfig.Discord discord = 4; */
325
276
  if (message.discord)
326
277
  Discord.internalBinaryWrite(message.discord, writer.tag(4, WireType.LengthDelimited).fork(), options).join();
327
- /* resources.clientconfig.Website website = 5; */
278
+ /* resources.settings.Website website = 5; */
328
279
  if (message.website)
329
280
  Website.internalBinaryWrite(message.website, writer.tag(5, WireType.LengthDelimited).fork(), options).join();
330
281
  /* resources.clientconfig.FeatureGates feature_gates = 6; */
@@ -336,7 +287,7 @@ class ClientConfig$Type extends MessageType<ClientConfig> {
336
287
  /* resources.clientconfig.System system = 8; */
337
288
  if (message.system)
338
289
  System.internalBinaryWrite(message.system, writer.tag(8, WireType.LengthDelimited).fork(), options).join();
339
- /* resources.clientconfig.Display display = 9; */
290
+ /* resources.settings.Display display = 9; */
340
291
  if (message.display)
341
292
  Display.internalBinaryWrite(message.display, writer.tag(9, WireType.LengthDelimited).fork(), options).join();
342
293
  /* resources.settings.QuickButtons quick_buttons = 11; */
@@ -422,10 +373,10 @@ export const Auth = new Auth$Type();
422
373
  class ProviderConfig$Type extends MessageType<ProviderConfig> {
423
374
  constructor() {
424
375
  super("resources.clientconfig.ProviderConfig", [
425
- { no: 1, name: "name", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
426
- { no: 2, name: "label", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
427
- { no: 3, name: "icon", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
428
- { no: 4, name: "homepage", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
376
+ { no: 1, name: "name", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "tagger.tags": "json:\"name\"" } },
377
+ { no: 2, name: "label", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "tagger.tags": "json:\"label\"" } },
378
+ { no: 3, name: "icon", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "tagger.tags": "json:\"icon,omitempty\"" } },
379
+ { no: 4, name: "homepage", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "tagger.tags": "json:\"homepage\"" } }
429
380
  ]);
430
381
  }
431
382
  create(value?: PartialMessage<ProviderConfig>): ProviderConfig {
@@ -536,113 +487,6 @@ class Discord$Type extends MessageType<Discord> {
536
487
  */
537
488
  export const Discord = new Discord$Type();
538
489
  // @generated message type with reflection information, may provide speed optimized methods
539
- class Website$Type extends MessageType<Website> {
540
- constructor() {
541
- super("resources.clientconfig.Website", [
542
- { no: 1, name: "links", kind: "message", T: () => Links },
543
- { no: 2, name: "stats_page", kind: "scalar", T: 8 /*ScalarType.BOOL*/, options: { "tagger.tags": "json:\"statsPage\"" } }
544
- ]);
545
- }
546
- create(value?: PartialMessage<Website>): Website {
547
- const message = globalThis.Object.create((this.messagePrototype!));
548
- message.statsPage = false;
549
- if (value !== undefined)
550
- reflectionMergePartial<Website>(this, message, value);
551
- return message;
552
- }
553
- internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Website): Website {
554
- let message = target ?? this.create(), end = reader.pos + length;
555
- while (reader.pos < end) {
556
- let [fieldNo, wireType] = reader.tag();
557
- switch (fieldNo) {
558
- case /* resources.clientconfig.Links links */ 1:
559
- message.links = Links.internalBinaryRead(reader, reader.uint32(), options, message.links);
560
- break;
561
- case /* bool stats_page */ 2:
562
- message.statsPage = reader.bool();
563
- break;
564
- default:
565
- let u = options.readUnknownField;
566
- if (u === "throw")
567
- throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
568
- let d = reader.skip(wireType);
569
- if (u !== false)
570
- (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
571
- }
572
- }
573
- return message;
574
- }
575
- internalBinaryWrite(message: Website, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
576
- /* resources.clientconfig.Links links = 1; */
577
- if (message.links)
578
- Links.internalBinaryWrite(message.links, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
579
- /* bool stats_page = 2; */
580
- if (message.statsPage !== false)
581
- writer.tag(2, WireType.Varint).bool(message.statsPage);
582
- let u = options.writeUnknownFields;
583
- if (u !== false)
584
- (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
585
- return writer;
586
- }
587
- }
588
- /**
589
- * @generated MessageType for protobuf message resources.clientconfig.Website
590
- */
591
- export const Website = new Website$Type();
592
- // @generated message type with reflection information, may provide speed optimized methods
593
- class Links$Type extends MessageType<Links> {
594
- constructor() {
595
- super("resources.clientconfig.Links", [
596
- { no: 1, name: "imprint", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
597
- { no: 2, name: "privacy_policy", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "tagger.tags": "json:\"privacyPolicy\"" } }
598
- ]);
599
- }
600
- create(value?: PartialMessage<Links>): Links {
601
- const message = globalThis.Object.create((this.messagePrototype!));
602
- if (value !== undefined)
603
- reflectionMergePartial<Links>(this, message, value);
604
- return message;
605
- }
606
- internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Links): Links {
607
- let message = target ?? this.create(), end = reader.pos + length;
608
- while (reader.pos < end) {
609
- let [fieldNo, wireType] = reader.tag();
610
- switch (fieldNo) {
611
- case /* optional string imprint */ 1:
612
- message.imprint = reader.string();
613
- break;
614
- case /* optional string privacy_policy */ 2:
615
- message.privacyPolicy = reader.string();
616
- break;
617
- default:
618
- let u = options.readUnknownField;
619
- if (u === "throw")
620
- throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
621
- let d = reader.skip(wireType);
622
- if (u !== false)
623
- (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
624
- }
625
- }
626
- return message;
627
- }
628
- internalBinaryWrite(message: Links, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
629
- /* optional string imprint = 1; */
630
- if (message.imprint !== undefined)
631
- writer.tag(1, WireType.LengthDelimited).string(message.imprint);
632
- /* optional string privacy_policy = 2; */
633
- if (message.privacyPolicy !== undefined)
634
- writer.tag(2, WireType.LengthDelimited).string(message.privacyPolicy);
635
- let u = options.writeUnknownFields;
636
- if (u !== false)
637
- (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
638
- return writer;
639
- }
640
- }
641
- /**
642
- * @generated MessageType for protobuf message resources.clientconfig.Links
643
- */
644
- export const Links = new Links$Type();
645
- // @generated message type with reflection information, may provide speed optimized methods
646
490
  class FeatureGates$Type extends MessageType<FeatureGates> {
647
491
  constructor() {
648
492
  super("resources.clientconfig.FeatureGates", []);
@@ -686,11 +530,11 @@ class Game$Type extends MessageType<Game> {
686
530
  super("resources.clientconfig.Game", [
687
531
  { no: 1, name: "unemployed_job_name", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "tagger.tags": "json:\"unemployedJobName\"" } },
688
532
  { no: 2, name: "start_job_grade", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "tagger.tags": "json:\"startJobGrade\"" } },
689
- { no: 3, name: "livemap", kind: "message", T: () => Livemap },
690
- { no: 4, name: "max_wanted_duration_user_enabled", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
691
- { no: 5, name: "max_wanted_duration_user", kind: "message", T: () => Duration },
692
- { no: 6, name: "max_wanted_duration_vehicle_enabled", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
693
- { no: 7, name: "max_wanted_duration_vehicle", kind: "message", T: () => Duration }
533
+ { no: 3, name: "livemap", kind: "message", T: () => Livemap, options: { "tagger.tags": "json:\"livemap\"" } },
534
+ { no: 4, name: "max_wanted_duration_user_enabled", kind: "scalar", T: 8 /*ScalarType.BOOL*/, options: { "tagger.tags": "json:\"maxWantedDurationUserEnabled\"" } },
535
+ { no: 5, name: "max_wanted_duration_user", kind: "message", T: () => Duration, options: { "buf.validate.field": { duration: { lte: { seconds: "315360000" }, gte: { seconds: "86400" } } }, "tagger.tags": "json:\"maxWantedDurationUser,omitempty\"" } },
536
+ { no: 6, name: "max_wanted_duration_vehicle_enabled", kind: "scalar", T: 8 /*ScalarType.BOOL*/, options: { "tagger.tags": "json:\"maxWantedDurationVehicleEnabled\"" } },
537
+ { no: 7, name: "max_wanted_duration_vehicle", kind: "message", T: () => Duration, options: { "buf.validate.field": { duration: { lte: { seconds: "315360000" }, gte: { seconds: "86400" } } }, "tagger.tags": "json:\"maxWantedDurationVehicle,omitempty\"" } }
694
538
  ]);
695
539
  }
696
540
  create(value?: PartialMessage<Game>): Game {
@@ -714,7 +558,7 @@ class Game$Type extends MessageType<Game> {
714
558
  case /* int32 start_job_grade */ 2:
715
559
  message.startJobGrade = reader.int32();
716
560
  break;
717
- case /* resources.clientconfig.Livemap livemap */ 3:
561
+ case /* resources.settings.Livemap livemap */ 3:
718
562
  message.livemap = Livemap.internalBinaryRead(reader, reader.uint32(), options, message.livemap);
719
563
  break;
720
564
  case /* bool max_wanted_duration_user_enabled */ 4:
@@ -747,7 +591,7 @@ class Game$Type extends MessageType<Game> {
747
591
  /* int32 start_job_grade = 2; */
748
592
  if (message.startJobGrade !== 0)
749
593
  writer.tag(2, WireType.Varint).int32(message.startJobGrade);
750
- /* resources.clientconfig.Livemap livemap = 3; */
594
+ /* resources.settings.Livemap livemap = 3; */
751
595
  if (message.livemap)
752
596
  Livemap.internalBinaryWrite(message.livemap, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
753
597
  /* bool max_wanted_duration_user_enabled = 4; */
@@ -773,59 +617,12 @@ class Game$Type extends MessageType<Game> {
773
617
  */
774
618
  export const Game = new Game$Type();
775
619
  // @generated message type with reflection information, may provide speed optimized methods
776
- class Livemap$Type extends MessageType<Livemap> {
777
- constructor() {
778
- super("resources.clientconfig.Livemap", [
779
- { no: 1, name: "enable_cayo_perico", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }
780
- ]);
781
- }
782
- create(value?: PartialMessage<Livemap>): Livemap {
783
- const message = globalThis.Object.create((this.messagePrototype!));
784
- message.enableCayoPerico = false;
785
- if (value !== undefined)
786
- reflectionMergePartial<Livemap>(this, message, value);
787
- return message;
788
- }
789
- internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Livemap): Livemap {
790
- let message = target ?? this.create(), end = reader.pos + length;
791
- while (reader.pos < end) {
792
- let [fieldNo, wireType] = reader.tag();
793
- switch (fieldNo) {
794
- case /* bool enable_cayo_perico */ 1:
795
- message.enableCayoPerico = reader.bool();
796
- break;
797
- default:
798
- let u = options.readUnknownField;
799
- if (u === "throw")
800
- throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
801
- let d = reader.skip(wireType);
802
- if (u !== false)
803
- (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
804
- }
805
- }
806
- return message;
807
- }
808
- internalBinaryWrite(message: Livemap, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
809
- /* bool enable_cayo_perico = 1; */
810
- if (message.enableCayoPerico !== false)
811
- writer.tag(1, WireType.Varint).bool(message.enableCayoPerico);
812
- let u = options.writeUnknownFields;
813
- if (u !== false)
814
- (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
815
- return writer;
816
- }
817
- }
818
- /**
819
- * @generated MessageType for protobuf message resources.clientconfig.Livemap
820
- */
821
- export const Livemap = new Livemap$Type();
822
- // @generated message type with reflection information, may provide speed optimized methods
823
620
  class System$Type extends MessageType<System> {
824
621
  constructor() {
825
622
  super("resources.clientconfig.System", [
826
623
  { no: 1, name: "banner_message_enabled", kind: "scalar", T: 8 /*ScalarType.BOOL*/, options: { "tagger.tags": "json:\"bannerMessageEnabled\"" } },
827
- { no: 2, name: "banner_message", kind: "message", T: () => BannerMessage, options: { "tagger.tags": "json:\"bannerMessages\"" } },
828
- { no: 3, name: "otlp", kind: "message", T: () => OTLPFrontend }
624
+ { no: 2, name: "banner_message", kind: "message", T: () => BannerMessage, options: { "tagger.tags": "json:\"bannerMessage,omitempty\"" } },
625
+ { no: 3, name: "otlp", kind: "message", T: () => OTLPFrontend, options: { "tagger.tags": "json:\"otlp\"" } }
829
626
  ]);
830
627
  }
831
628
  create(value?: PartialMessage<System>): System {
@@ -884,9 +681,9 @@ export const System = new System$Type();
884
681
  class OTLPFrontend$Type extends MessageType<OTLPFrontend> {
885
682
  constructor() {
886
683
  super("resources.clientconfig.OTLPFrontend", [
887
- { no: 1, name: "enabled", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
888
- { no: 2, name: "url", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
889
- { no: 3, name: "headers", kind: "map", K: 9 /*ScalarType.STRING*/, V: { kind: "scalar", T: 9 /*ScalarType.STRING*/ } }
684
+ { no: 1, name: "enabled", kind: "scalar", T: 8 /*ScalarType.BOOL*/, options: { "tagger.tags": "json:\"enabled\"" } },
685
+ { no: 2, name: "url", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "tagger.tags": "json:\"url\"" } },
686
+ { no: 3, name: "headers", kind: "map", K: 9 /*ScalarType.STRING*/, V: { kind: "scalar", T: 9 /*ScalarType.STRING*/ }, options: { "tagger.tags": "json:\"headers\"" } }
890
687
  ]);
891
688
  }
892
689
  create(value?: PartialMessage<OTLPFrontend>): OTLPFrontend {
@@ -959,57 +756,3 @@ class OTLPFrontend$Type extends MessageType<OTLPFrontend> {
959
756
  * @generated MessageType for protobuf message resources.clientconfig.OTLPFrontend
960
757
  */
961
758
  export const OTLPFrontend = new OTLPFrontend$Type();
962
- // @generated message type with reflection information, may provide speed optimized methods
963
- class Display$Type extends MessageType<Display> {
964
- constructor() {
965
- super("resources.clientconfig.Display", [
966
- { no: 1, name: "intl_locale", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "tagger.tags": "json:\"intlLocale\"" } },
967
- { no: 2, name: "currency_name", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "tagger.tags": "json:\"currencyName\"" } }
968
- ]);
969
- }
970
- create(value?: PartialMessage<Display>): Display {
971
- const message = globalThis.Object.create((this.messagePrototype!));
972
- message.currencyName = "";
973
- if (value !== undefined)
974
- reflectionMergePartial<Display>(this, message, value);
975
- return message;
976
- }
977
- internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Display): Display {
978
- let message = target ?? this.create(), end = reader.pos + length;
979
- while (reader.pos < end) {
980
- let [fieldNo, wireType] = reader.tag();
981
- switch (fieldNo) {
982
- case /* optional string intl_locale */ 1:
983
- message.intlLocale = reader.string();
984
- break;
985
- case /* string currency_name */ 2:
986
- message.currencyName = reader.string();
987
- break;
988
- default:
989
- let u = options.readUnknownField;
990
- if (u === "throw")
991
- throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
992
- let d = reader.skip(wireType);
993
- if (u !== false)
994
- (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
995
- }
996
- }
997
- return message;
998
- }
999
- internalBinaryWrite(message: Display, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
1000
- /* optional string intl_locale = 1; */
1001
- if (message.intlLocale !== undefined)
1002
- writer.tag(1, WireType.LengthDelimited).string(message.intlLocale);
1003
- /* string currency_name = 2; */
1004
- if (message.currencyName !== "")
1005
- writer.tag(2, WireType.LengthDelimited).string(message.currencyName);
1006
- let u = options.writeUnknownFields;
1007
- if (u !== false)
1008
- (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
1009
- return writer;
1010
- }
1011
- }
1012
- /**
1013
- * @generated MessageType for protobuf message resources.clientconfig.Display
1014
- */
1015
- export const Display = new Display$Type();
@@ -213,7 +213,7 @@ class Cronjob$Type extends MessageType<Cronjob> {
213
213
  { no: 4, name: "next_schedule_time", kind: "message", T: () => Timestamp },
214
214
  { no: 5, name: "last_attempt_time", kind: "message", T: () => Timestamp },
215
215
  { no: 6, name: "started_time", kind: "message", T: () => Timestamp },
216
- { no: 7, name: "timeout", kind: "message", T: () => Duration },
216
+ { no: 7, name: "timeout", kind: "message", T: () => Duration, options: { "buf.validate.field": { duration: { lte: { seconds: "1800" }, gte: {} } } } },
217
217
  { no: 8, name: "data", kind: "message", T: () => CronjobData },
218
218
  { no: 9, name: "last_completed_event", kind: "message", T: () => CronjobCompletedEvent }
219
219
  ]);
@@ -469,7 +469,7 @@ class CronjobCompletedEvent$Type extends MessageType<CronjobCompletedEvent> {
469
469
  { no: 2, name: "success", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
470
470
  { no: 7, name: "cancelled", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
471
471
  { no: 3, name: "end_date", kind: "message", T: () => Timestamp },
472
- { no: 4, name: "elapsed", kind: "message", T: () => Duration },
472
+ { no: 4, name: "elapsed", kind: "message", T: () => Duration, options: { "buf.validate.field": { duration: { gte: {} } } } },
473
473
  { no: 5, name: "data", kind: "message", T: () => CronjobData },
474
474
  { no: 6, name: "node_name", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
475
475
  { no: 8, name: "error_message", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ }
@@ -12,7 +12,6 @@ import type { PartialMessage } from "@protobuf-ts/runtime";
12
12
  import { reflectionMergePartial } from "@protobuf-ts/runtime";
13
13
  import { MessageType } from "@protobuf-ts/runtime";
14
14
  import { UserShort } from "../../users/short/user";
15
- import { Timestamp } from "../../timestamp/timestamp";
16
15
  /**
17
16
  * @generated from protobuf message resources.documents.access.DocumentAccess
18
17
  */
@@ -34,10 +33,6 @@ export interface DocumentJobAccess {
34
33
  * @generated from protobuf field: int64 id = 1
35
34
  */
36
35
  id: number;
37
- /**
38
- * @generated from protobuf field: optional resources.timestamp.Timestamp created_at = 2
39
- */
40
- createdAt?: Timestamp;
41
36
  /**
42
37
  * @generated from protobuf field: int64 target_id = 3
43
38
  */
@@ -75,10 +70,6 @@ export interface DocumentUserAccess {
75
70
  * @generated from protobuf field: int64 id = 1
76
71
  */
77
72
  id: number;
78
- /**
79
- * @generated from protobuf field: optional resources.timestamp.Timestamp created_at = 2
80
- */
81
- createdAt?: Timestamp;
82
73
  /**
83
74
  * @generated from protobuf field: int64 target_id = 3
84
75
  */
@@ -193,7 +184,6 @@ class DocumentJobAccess$Type extends MessageType<DocumentJobAccess> {
193
184
  constructor() {
194
185
  super("resources.documents.access.DocumentJobAccess", [
195
186
  { no: 1, name: "id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
196
- { no: 2, name: "created_at", kind: "message", T: () => Timestamp },
197
187
  { no: 3, name: "target_id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
198
188
  { no: 4, name: "job", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "20" } } } },
199
189
  { no: 5, name: "job_label", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "50" } } } },
@@ -222,9 +212,6 @@ class DocumentJobAccess$Type extends MessageType<DocumentJobAccess> {
222
212
  case /* int64 id */ 1:
223
213
  message.id = reader.int64().toNumber();
224
214
  break;
225
- case /* optional resources.timestamp.Timestamp created_at */ 2:
226
- message.createdAt = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.createdAt);
227
- break;
228
215
  case /* int64 target_id */ 3:
229
216
  message.targetId = reader.int64().toNumber();
230
217
  break;
@@ -261,9 +248,6 @@ class DocumentJobAccess$Type extends MessageType<DocumentJobAccess> {
261
248
  /* int64 id = 1; */
262
249
  if (message.id !== 0)
263
250
  writer.tag(1, WireType.Varint).int64(message.id);
264
- /* optional resources.timestamp.Timestamp created_at = 2; */
265
- if (message.createdAt)
266
- Timestamp.internalBinaryWrite(message.createdAt, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
267
251
  /* int64 target_id = 3; */
268
252
  if (message.targetId !== 0)
269
253
  writer.tag(3, WireType.Varint).int64(message.targetId);
@@ -300,7 +284,6 @@ class DocumentUserAccess$Type extends MessageType<DocumentUserAccess> {
300
284
  constructor() {
301
285
  super("resources.documents.access.DocumentUserAccess", [
302
286
  { no: 1, name: "id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
303
- { no: 2, name: "created_at", kind: "message", T: () => Timestamp },
304
287
  { no: 3, name: "target_id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
305
288
  { no: 4, name: "user_id", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gt: 0 } } } },
306
289
  { no: 5, name: "user", kind: "message", T: () => UserShort },
@@ -326,9 +309,6 @@ class DocumentUserAccess$Type extends MessageType<DocumentUserAccess> {
326
309
  case /* int64 id */ 1:
327
310
  message.id = reader.int64().toNumber();
328
311
  break;
329
- case /* optional resources.timestamp.Timestamp created_at */ 2:
330
- message.createdAt = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.createdAt);
331
- break;
332
312
  case /* int64 target_id */ 3:
333
313
  message.targetId = reader.int64().toNumber();
334
314
  break;
@@ -359,9 +339,6 @@ class DocumentUserAccess$Type extends MessageType<DocumentUserAccess> {
359
339
  /* int64 id = 1; */
360
340
  if (message.id !== 0)
361
341
  writer.tag(1, WireType.Varint).int64(message.id);
362
- /* optional resources.timestamp.Timestamp created_at = 2; */
363
- if (message.createdAt)
364
- Timestamp.internalBinaryWrite(message.createdAt, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
365
342
  /* int64 target_id = 3; */
366
343
  if (message.targetId !== 0)
367
344
  writer.tag(3, WireType.Varint).int64(message.targetId);
@@ -60,7 +60,7 @@ class Category$Type extends MessageType<Category> {
60
60
  { no: 5, name: "description", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "255" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
61
61
  { no: 6, name: "job", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "20" } } } },
62
62
  { no: 7, 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 } } },
63
- { no: 8, name: "icon", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "128", suffix: "Icon" } }, "codegen.sanitizer.sanitizer": { enabled: true, stripHtmlTags: true } } }
63
+ { no: 8, name: "icon", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "128" } }, "codegen.sanitizer.sanitizer": { enabled: true, stripHtmlTags: true } } }
64
64
  ]);
65
65
  }
66
66
  create(value?: PartialMessage<Category>): Category {
@@ -369,7 +369,7 @@ class Template$Type extends MessageType<Template> {
369
369
  { no: 6, name: "title", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "3" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
370
370
  { no: 7, name: "description", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "255" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
371
371
  { no: 8, 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 } } },
372
- { no: 9, name: "icon", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "128", suffix: "Icon" } }, "codegen.sanitizer.sanitizer": { enabled: true, stripHtmlTags: true } } },
372
+ { no: 9, name: "icon", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "128" } }, "codegen.sanitizer.sanitizer": { enabled: true, stripHtmlTags: true } } },
373
373
  { no: 10, name: "content_title", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "3", maxBytes: "10240" } }, "codegen.sanitizer.sanitizer": { enabled: true, method: "SanitizeAndUnescape" }, "tagger.tags": "alias:\"content_title\"" } },
374
374
  { no: 11, name: "content", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "0", maxBytes: "2000000" } }, "codegen.sanitizer.sanitizer": { enabled: true, method: "SanitizeAndUnescape" }, "tagger.tags": "alias:\"content\"" } },
375
375
  { no: 12, name: "state", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "512" } }, "tagger.tags": "alias:\"state\"" } },
@@ -550,7 +550,7 @@ class TemplateShort$Type extends MessageType<TemplateShort> {
550
550
  { no: 6, name: "title", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "3" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
551
551
  { no: 7, name: "description", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "255" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
552
552
  { no: 8, 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 } } },
553
- { no: 9, name: "icon", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "128", suffix: "Icon" } }, "codegen.sanitizer.sanitizer": { enabled: true, stripHtmlTags: true } } },
553
+ { no: 9, name: "icon", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "128" } }, "codegen.sanitizer.sanitizer": { enabled: true, stripHtmlTags: true } } },
554
554
  { no: 10, name: "schema", kind: "message", T: () => TemplateSchema, options: { "tagger.tags": "alias:\"schema\"" } },
555
555
  { no: 11, name: "creator_job", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "20" } } } },
556
556
  { no: 12, name: "creator_job_label", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "50" } } } },
@@ -46,7 +46,11 @@ export interface Label {
46
46
  */
47
47
  color: string;
48
48
  /**
49
- * @generated from protobuf field: int32 order = 6
49
+ * @generated from protobuf field: optional string icon = 6
50
+ */
51
+ icon?: string;
52
+ /**
53
+ * @generated from protobuf field: int32 order = 7
50
54
  */
51
55
  order: number;
52
56
  }
@@ -119,7 +123,8 @@ class Label$Type extends MessageType<Label> {
119
123
  { no: 3, name: "deleted_at", kind: "message", T: () => Timestamp },
120
124
  { no: 4, name: "name", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "48" } } } },
121
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 } } },
122
- { no: 6, name: "order", kind: "scalar", T: 5 /*ScalarType.INT32*/ }
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*/ }
123
128
  ]);
124
129
  }
125
130
  create(value?: PartialMessage<Label>): Label {
@@ -152,7 +157,10 @@ class Label$Type extends MessageType<Label> {
152
157
  case /* string color */ 5:
153
158
  message.color = reader.string();
154
159
  break;
155
- case /* int32 order */ 6:
160
+ case /* optional string icon */ 6:
161
+ message.icon = reader.string();
162
+ break;
163
+ case /* int32 order */ 7:
156
164
  message.order = reader.int32();
157
165
  break;
158
166
  default:
@@ -182,9 +190,12 @@ class Label$Type extends MessageType<Label> {
182
190
  /* string color = 5; */
183
191
  if (message.color !== "")
184
192
  writer.tag(5, WireType.LengthDelimited).string(message.color);
185
- /* int32 order = 6; */
193
+ /* optional string icon = 6; */
194
+ if (message.icon !== undefined)
195
+ writer.tag(6, WireType.LengthDelimited).string(message.icon);
196
+ /* int32 order = 7; */
186
197
  if (message.order !== 0)
187
- writer.tag(6, WireType.Varint).int32(message.order);
198
+ writer.tag(7, WireType.Varint).int32(message.order);
188
199
  let u = options.writeUnknownFields;
189
200
  if (u !== false)
190
201
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);