@fivenet-app/gen 2026.8.5 → 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 (63) 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 +39 -32
  6. package/google/protobuf/struct.ts +33 -22
  7. package/google/protobuf/timestamp.ts +9 -8
  8. package/package.json +2 -2
  9. package/perms.ts +41 -13
  10. package/resources/centrum/dispatches/dispatches.ts +206 -13
  11. package/resources/centrum/units/units.ts +207 -0
  12. package/resources/cron/cron.ts +44 -3
  13. package/resources/documents/templates/templates.ts +3 -3
  14. package/resources/file/file.ts +3 -3
  15. package/resources/file/filestore.ts +26 -10
  16. package/resources/jobs/colleagues/activity/activity.ts +50 -8
  17. package/resources/jobs/colleagues/colleagues.ts +14 -1
  18. package/resources/jobs/groups/short/group_member_short.ts +129 -0
  19. package/resources/jobs/job_asset.ts +116 -0
  20. package/resources/jobs/user_selector.ts +1 -15
  21. package/resources/notifications/clientview/clientview.ts +5 -1
  22. package/resources/notifications/events/events.ts +35 -1
  23. package/resources/notifications/notifications.ts +322 -2
  24. package/resources/permissions/attributes/attributes.ts +164 -2
  25. package/resources/permissions/authorization/authorization.ts +86 -0
  26. package/resources/permissions/permissions/permissions.ts +16 -1
  27. package/resources/properties/properties.ts +1648 -0
  28. package/resources/qualifications/activity/activity.ts +328 -0
  29. package/resources/qualifications/exam/exam.ts +108 -4
  30. package/resources/qualifications/qualifications.ts +36 -2
  31. package/resources/settings/config.ts +3 -3
  32. package/resources/sync/activity/activity.ts +4 -4
  33. package/resources/sync/data/data.ts +16 -4
  34. package/resources/users/activity/activity.ts +220 -3
  35. package/resources/users/props/props.ts +13 -1
  36. package/resources/users/user.ts +13 -1
  37. package/resources/vehicles/activity/activity.ts +222 -3
  38. package/resources/vehicles/props/props.ts +13 -1
  39. package/resources/vehicles/vehicles.ts +13 -1
  40. package/services/auth/auth.ts +61 -67
  41. package/services/centrum/centrum.ts +103 -1
  42. package/services/centrum/dispatches.ts +25 -1
  43. package/services/centrum/units.ts +25 -1
  44. package/services/citizens/citizens.client.ts +49 -0
  45. package/services/citizens/citizens.ts +384 -7
  46. package/services/documents/documents.ts +1 -0
  47. package/services/documents/templates.ts +12 -1
  48. package/services/jobs/colleagues.ts +26 -1
  49. package/services/jobs/conduct.ts +1 -0
  50. package/services/jobs/groups.ts +62 -4
  51. package/services/notifications/notifications.client.ts +40 -1
  52. package/services/notifications/notifications.ts +483 -3
  53. package/services/qualifications/qualifications.client.ts +20 -7
  54. package/services/qualifications/qualifications.ts +265 -4
  55. package/services/settings/job_assets.client.ts +105 -0
  56. package/services/settings/job_assets.ts +373 -0
  57. package/services/settings/properties.client.ts +194 -0
  58. package/services/settings/properties.ts +1555 -0
  59. package/services/settings/system.ts +29 -9
  60. package/services/sync/sync.ts +115 -12
  61. package/services/vehicles/vehicles.client.ts +52 -0
  62. package/services/vehicles/vehicles.ts +385 -7
  63. package/svcs.ts +58 -0
@@ -11,6 +11,8 @@ import { UnknownFieldHandler } from "@protobuf-ts/runtime";
11
11
  import type { PartialMessage } from "@protobuf-ts/runtime";
12
12
  import { reflectionMergePartial } from "@protobuf-ts/runtime";
13
13
  import { MessageType } from "@protobuf-ts/runtime";
14
+ import { File } from "../../file/file";
15
+ import { PropertyValue } from "../../properties/properties";
14
16
  import { UserShort } from "../../users/short/user";
15
17
  import { Timestamp } from "../../timestamp/timestamp";
16
18
  /**
@@ -57,6 +59,12 @@ export interface VehicleActivity {
57
59
  * @generated from protobuf field: optional resources.vehicles.activity.VehicleActivityData data = 10
58
60
  */
59
61
  data?: VehicleActivityData;
62
+ /**
63
+ * Set for generic property activities so filtering does not depend on JSON.
64
+ *
65
+ * @generated from protobuf field: optional string key = 11
66
+ */
67
+ key?: string;
60
68
  }
61
69
  /**
62
70
  * @generated from protobuf message resources.vehicles.activity.VehicleActivityData
@@ -71,6 +79,18 @@ export interface VehicleActivityData {
71
79
  * @generated from protobuf field: resources.vehicles.activity.WantedChange wanted_change = 1
72
80
  */
73
81
  wantedChange: WantedChange;
82
+ } | {
83
+ oneofKind: "propertyChange";
84
+ /**
85
+ * @generated from protobuf field: resources.vehicles.activity.PropertyChange property_change = 2
86
+ */
87
+ propertyChange: PropertyChange;
88
+ } | {
89
+ oneofKind: "fileChange";
90
+ /**
91
+ * @generated from protobuf field: resources.vehicles.activity.FileChange file_change = 3
92
+ */
93
+ fileChange: FileChange;
74
94
  } | {
75
95
  oneofKind: undefined;
76
96
  };
@@ -104,6 +124,43 @@ export interface WantedChange {
104
124
  */
105
125
  auto: boolean;
106
126
  }
127
+ /**
128
+ * PropertyChange is used only for custom, generic properties. Managed system
129
+ * properties retain their dedicated activity types and richer payloads.
130
+ *
131
+ * @generated from protobuf message resources.vehicles.activity.PropertyChange
132
+ */
133
+ export interface PropertyChange {
134
+ /**
135
+ * @generated from protobuf field: string key = 1
136
+ */
137
+ key: string;
138
+ /**
139
+ * @generated from protobuf field: optional resources.properties.PropertyValue old_value = 2
140
+ */
141
+ oldValue?: PropertyValue;
142
+ /**
143
+ * @generated from protobuf field: optional resources.properties.PropertyValue new_value = 3
144
+ */
145
+ newValue?: PropertyValue;
146
+ }
147
+ /**
148
+ * @generated from protobuf message resources.vehicles.activity.FileChange
149
+ */
150
+ export interface FileChange {
151
+ /**
152
+ * @generated from protobuf field: bool added = 1
153
+ */
154
+ added: boolean;
155
+ /**
156
+ * @generated from protobuf field: string kind = 2
157
+ */
158
+ kind: string;
159
+ /**
160
+ * @generated from protobuf field: resources.file.File file = 3
161
+ */
162
+ file?: File;
163
+ }
107
164
  /**
108
165
  * @generated from protobuf enum resources.vehicles.activity.VehicleActivityType
109
166
  */
@@ -117,7 +174,19 @@ export enum VehicleActivityType {
117
174
  *
118
175
  * @generated from protobuf enum value: VEHICLE_ACTIVITY_TYPE_WANTED = 1;
119
176
  */
120
- WANTED = 1
177
+ WANTED = 1,
178
+ /**
179
+ * File-backed property value change.
180
+ *
181
+ * @generated from protobuf enum value: VEHICLE_ACTIVITY_TYPE_FILE = 2;
182
+ */
183
+ FILE = 2,
184
+ /**
185
+ * Generic custom property value change.
186
+ *
187
+ * @generated from protobuf enum value: VEHICLE_ACTIVITY_TYPE_PROPERTY = 3;
188
+ */
189
+ PROPERTY = 3
121
190
  }
122
191
  // @generated message type with reflection information, may provide speed optimized methods
123
192
  class VehicleActivity$Type extends MessageType<VehicleActivity> {
@@ -132,7 +201,8 @@ class VehicleActivity$Type extends MessageType<VehicleActivity> {
132
201
  { no: 7, name: "creator_job", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "20" } }, "tagger.tags": "alias:\"vehicle_activity.creator_job\"" } },
133
202
  { no: 8, name: "creator_job_label", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "50" } } } },
134
203
  { no: 9, name: "reason", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "255" } }, "codegen.sanitizer.sanitizer": { enabled: true }, "tagger.tags": "alias:\"vehicle_activity.reason\"" } },
135
- { no: 10, name: "data", kind: "message", T: () => VehicleActivityData, options: { "tagger.tags": "alias:\"vehicle_activity.data\"" } }
204
+ { no: 10, name: "data", kind: "message", T: () => VehicleActivityData, options: { "tagger.tags": "alias:\"vehicle_activity.data\"" } },
205
+ { no: 11, name: "key", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "64" } } } }
136
206
  ]);
137
207
  }
138
208
  create(value?: PartialMessage<VehicleActivity>): VehicleActivity {
@@ -180,6 +250,9 @@ class VehicleActivity$Type extends MessageType<VehicleActivity> {
180
250
  case /* optional resources.vehicles.activity.VehicleActivityData data */ 10:
181
251
  message.data = VehicleActivityData.internalBinaryRead(reader, reader.uint32(), options, message.data);
182
252
  break;
253
+ case /* optional string key */ 11:
254
+ message.key = reader.string();
255
+ break;
183
256
  default:
184
257
  let u = options.readUnknownField;
185
258
  if (u === "throw")
@@ -222,6 +295,9 @@ class VehicleActivity$Type extends MessageType<VehicleActivity> {
222
295
  /* optional resources.vehicles.activity.VehicleActivityData data = 10; */
223
296
  if (message.data)
224
297
  VehicleActivityData.internalBinaryWrite(message.data, writer.tag(10, WireType.LengthDelimited).fork(), options).join();
298
+ /* optional string key = 11; */
299
+ if (message.key !== undefined)
300
+ writer.tag(11, WireType.LengthDelimited).string(message.key);
225
301
  let u = options.writeUnknownFields;
226
302
  if (u !== false)
227
303
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -236,7 +312,9 @@ export const VehicleActivity = new VehicleActivity$Type();
236
312
  class VehicleActivityData$Type extends MessageType<VehicleActivityData> {
237
313
  constructor() {
238
314
  super("resources.vehicles.activity.VehicleActivityData", [
239
- { no: 1, name: "wanted_change", kind: "message", oneof: "data", T: () => WantedChange }
315
+ { no: 1, name: "wanted_change", kind: "message", oneof: "data", T: () => WantedChange },
316
+ { no: 2, name: "property_change", kind: "message", oneof: "data", T: () => PropertyChange },
317
+ { no: 3, name: "file_change", kind: "message", oneof: "data", T: () => FileChange }
240
318
  ], { "codegen.dbscanner.dbscanner": { enabled: true } });
241
319
  }
242
320
  create(value?: PartialMessage<VehicleActivityData>): VehicleActivityData {
@@ -257,6 +335,18 @@ class VehicleActivityData$Type extends MessageType<VehicleActivityData> {
257
335
  wantedChange: WantedChange.internalBinaryRead(reader, reader.uint32(), options, (message.data as any).wantedChange)
258
336
  };
259
337
  break;
338
+ case /* resources.vehicles.activity.PropertyChange property_change */ 2:
339
+ message.data = {
340
+ oneofKind: "propertyChange",
341
+ propertyChange: PropertyChange.internalBinaryRead(reader, reader.uint32(), options, (message.data as any).propertyChange)
342
+ };
343
+ break;
344
+ case /* resources.vehicles.activity.FileChange file_change */ 3:
345
+ message.data = {
346
+ oneofKind: "fileChange",
347
+ fileChange: FileChange.internalBinaryRead(reader, reader.uint32(), options, (message.data as any).fileChange)
348
+ };
349
+ break;
260
350
  default:
261
351
  let u = options.readUnknownField;
262
352
  if (u === "throw")
@@ -272,6 +362,12 @@ class VehicleActivityData$Type extends MessageType<VehicleActivityData> {
272
362
  /* resources.vehicles.activity.WantedChange wanted_change = 1; */
273
363
  if (message.data.oneofKind === "wantedChange")
274
364
  WantedChange.internalBinaryWrite(message.data.wantedChange, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
365
+ /* resources.vehicles.activity.PropertyChange property_change = 2; */
366
+ if (message.data.oneofKind === "propertyChange")
367
+ PropertyChange.internalBinaryWrite(message.data.propertyChange, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
368
+ /* resources.vehicles.activity.FileChange file_change = 3; */
369
+ if (message.data.oneofKind === "fileChange")
370
+ FileChange.internalBinaryWrite(message.data.fileChange, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
275
371
  let u = options.writeUnknownFields;
276
372
  if (u !== false)
277
373
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -365,3 +461,126 @@ class WantedChange$Type extends MessageType<WantedChange> {
365
461
  * @generated MessageType for protobuf message resources.vehicles.activity.WantedChange
366
462
  */
367
463
  export const WantedChange = new WantedChange$Type();
464
+ // @generated message type with reflection information, may provide speed optimized methods
465
+ class PropertyChange$Type extends MessageType<PropertyChange> {
466
+ constructor() {
467
+ super("resources.vehicles.activity.PropertyChange", [
468
+ { no: 1, name: "key", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "64" } } } },
469
+ { no: 2, name: "old_value", kind: "message", T: () => PropertyValue },
470
+ { no: 3, name: "new_value", kind: "message", T: () => PropertyValue }
471
+ ]);
472
+ }
473
+ create(value?: PartialMessage<PropertyChange>): PropertyChange {
474
+ const message = globalThis.Object.create((this.messagePrototype!));
475
+ message.key = "";
476
+ if (value !== undefined)
477
+ reflectionMergePartial<PropertyChange>(this, message, value);
478
+ return message;
479
+ }
480
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PropertyChange): PropertyChange {
481
+ let message = target ?? this.create(), end = reader.pos + length;
482
+ while (reader.pos < end) {
483
+ let [fieldNo, wireType] = reader.tag();
484
+ switch (fieldNo) {
485
+ case /* string key */ 1:
486
+ message.key = reader.string();
487
+ break;
488
+ case /* optional resources.properties.PropertyValue old_value */ 2:
489
+ message.oldValue = PropertyValue.internalBinaryRead(reader, reader.uint32(), options, message.oldValue);
490
+ break;
491
+ case /* optional resources.properties.PropertyValue new_value */ 3:
492
+ message.newValue = PropertyValue.internalBinaryRead(reader, reader.uint32(), options, message.newValue);
493
+ break;
494
+ default:
495
+ let u = options.readUnknownField;
496
+ if (u === "throw")
497
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
498
+ let d = reader.skip(wireType);
499
+ if (u !== false)
500
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
501
+ }
502
+ }
503
+ return message;
504
+ }
505
+ internalBinaryWrite(message: PropertyChange, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
506
+ /* string key = 1; */
507
+ if (message.key !== "")
508
+ writer.tag(1, WireType.LengthDelimited).string(message.key);
509
+ /* optional resources.properties.PropertyValue old_value = 2; */
510
+ if (message.oldValue)
511
+ PropertyValue.internalBinaryWrite(message.oldValue, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
512
+ /* optional resources.properties.PropertyValue new_value = 3; */
513
+ if (message.newValue)
514
+ PropertyValue.internalBinaryWrite(message.newValue, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
515
+ let u = options.writeUnknownFields;
516
+ if (u !== false)
517
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
518
+ return writer;
519
+ }
520
+ }
521
+ /**
522
+ * @generated MessageType for protobuf message resources.vehicles.activity.PropertyChange
523
+ */
524
+ export const PropertyChange = new PropertyChange$Type();
525
+ // @generated message type with reflection information, may provide speed optimized methods
526
+ class FileChange$Type extends MessageType<FileChange> {
527
+ constructor() {
528
+ super("resources.vehicles.activity.FileChange", [
529
+ { no: 1, name: "added", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
530
+ { no: 2, name: "kind", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "32" } } } },
531
+ { no: 3, name: "file", kind: "message", T: () => File, options: { "buf.validate.field": { required: true } } }
532
+ ]);
533
+ }
534
+ create(value?: PartialMessage<FileChange>): FileChange {
535
+ const message = globalThis.Object.create((this.messagePrototype!));
536
+ message.added = false;
537
+ message.kind = "";
538
+ if (value !== undefined)
539
+ reflectionMergePartial<FileChange>(this, message, value);
540
+ return message;
541
+ }
542
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FileChange): FileChange {
543
+ let message = target ?? this.create(), end = reader.pos + length;
544
+ while (reader.pos < end) {
545
+ let [fieldNo, wireType] = reader.tag();
546
+ switch (fieldNo) {
547
+ case /* bool added */ 1:
548
+ message.added = reader.bool();
549
+ break;
550
+ case /* string kind */ 2:
551
+ message.kind = reader.string();
552
+ break;
553
+ case /* resources.file.File file */ 3:
554
+ message.file = File.internalBinaryRead(reader, reader.uint32(), options, message.file);
555
+ break;
556
+ default:
557
+ let u = options.readUnknownField;
558
+ if (u === "throw")
559
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
560
+ let d = reader.skip(wireType);
561
+ if (u !== false)
562
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
563
+ }
564
+ }
565
+ return message;
566
+ }
567
+ internalBinaryWrite(message: FileChange, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
568
+ /* bool added = 1; */
569
+ if (message.added !== false)
570
+ writer.tag(1, WireType.Varint).bool(message.added);
571
+ /* string kind = 2; */
572
+ if (message.kind !== "")
573
+ writer.tag(2, WireType.LengthDelimited).string(message.kind);
574
+ /* resources.file.File file = 3; */
575
+ if (message.file)
576
+ File.internalBinaryWrite(message.file, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
577
+ let u = options.writeUnknownFields;
578
+ if (u !== false)
579
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
580
+ return writer;
581
+ }
582
+ }
583
+ /**
584
+ * @generated MessageType for protobuf message resources.vehicles.activity.FileChange
585
+ */
586
+ export const FileChange = new FileChange$Type();
@@ -11,6 +11,7 @@ import { UnknownFieldHandler } from "@protobuf-ts/runtime";
11
11
  import type { PartialMessage } from "@protobuf-ts/runtime";
12
12
  import { reflectionMergePartial } from "@protobuf-ts/runtime";
13
13
  import { MessageType } from "@protobuf-ts/runtime";
14
+ import { Properties } from "../../properties/properties";
14
15
  import { Timestamp } from "../../timestamp/timestamp";
15
16
  /**
16
17
  * @generated from protobuf message resources.vehicles.props.VehicleProps
@@ -40,6 +41,10 @@ export interface VehicleProps {
40
41
  * @generated from protobuf field: optional resources.timestamp.Timestamp wanted_till = 6
41
42
  */
42
43
  wantedTill?: Timestamp;
44
+ /**
45
+ * @generated from protobuf field: optional resources.properties.Properties properties = 7
46
+ */
47
+ properties?: Properties;
43
48
  }
44
49
  // @generated message type with reflection information, may provide speed optimized methods
45
50
  class VehicleProps$Type extends MessageType<VehicleProps> {
@@ -50,7 +55,8 @@ class VehicleProps$Type extends MessageType<VehicleProps> {
50
55
  { no: 3, name: "wanted", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ },
51
56
  { no: 4, name: "wanted_reason", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "255" } } } },
52
57
  { no: 5, name: "wanted_at", kind: "message", T: () => Timestamp },
53
- { no: 6, name: "wanted_till", kind: "message", T: () => Timestamp }
58
+ { no: 6, name: "wanted_till", kind: "message", T: () => Timestamp },
59
+ { no: 7, name: "properties", kind: "message", T: () => Properties }
54
60
  ]);
55
61
  }
56
62
  create(value?: PartialMessage<VehicleProps>): VehicleProps {
@@ -83,6 +89,9 @@ class VehicleProps$Type extends MessageType<VehicleProps> {
83
89
  case /* optional resources.timestamp.Timestamp wanted_till */ 6:
84
90
  message.wantedTill = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.wantedTill);
85
91
  break;
92
+ case /* optional resources.properties.Properties properties */ 7:
93
+ message.properties = Properties.internalBinaryRead(reader, reader.uint32(), options, message.properties);
94
+ break;
86
95
  default:
87
96
  let u = options.readUnknownField;
88
97
  if (u === "throw")
@@ -113,6 +122,9 @@ class VehicleProps$Type extends MessageType<VehicleProps> {
113
122
  /* optional resources.timestamp.Timestamp wanted_till = 6; */
114
123
  if (message.wantedTill)
115
124
  Timestamp.internalBinaryWrite(message.wantedTill, writer.tag(6, WireType.LengthDelimited).fork(), options).join();
125
+ /* optional resources.properties.Properties properties = 7; */
126
+ if (message.properties)
127
+ Properties.internalBinaryWrite(message.properties, writer.tag(7, WireType.LengthDelimited).fork(), options).join();
116
128
  let u = options.writeUnknownFields;
117
129
  if (u !== false)
118
130
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -11,6 +11,7 @@ import { UnknownFieldHandler } from "@protobuf-ts/runtime";
11
11
  import type { PartialMessage } from "@protobuf-ts/runtime";
12
12
  import { reflectionMergePartial } from "@protobuf-ts/runtime";
13
13
  import { MessageType } from "@protobuf-ts/runtime";
14
+ import { Properties } from "../properties/properties";
14
15
  import { VehicleProps } from "./props/props";
15
16
  import { UserShort } from "../users/short/user";
16
17
  import { Timestamp } from "../timestamp/timestamp";
@@ -58,6 +59,10 @@ export interface Vehicle {
58
59
  * @generated from protobuf field: optional resources.vehicles.props.VehicleProps props = 9
59
60
  */
60
61
  props?: VehicleProps;
62
+ /**
63
+ * @generated from protobuf field: optional resources.properties.Properties properties = 11
64
+ */
65
+ properties?: Properties;
61
66
  }
62
67
  // @generated message type with reflection information, may provide speed optimized methods
63
68
  class Vehicle$Type extends MessageType<Vehicle> {
@@ -72,7 +77,8 @@ class Vehicle$Type extends MessageType<Vehicle> {
72
77
  { no: 5, name: "owner", kind: "message", T: () => UserShort },
73
78
  { no: 7, name: "job", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "20" } } } },
74
79
  { no: 8, name: "job_label", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "50" } } } },
75
- { no: 9, name: "props", kind: "message", T: () => VehicleProps }
80
+ { no: 9, name: "props", kind: "message", T: () => VehicleProps },
81
+ { no: 11, name: "properties", kind: "message", T: () => Properties }
76
82
  ]);
77
83
  }
78
84
  create(value?: PartialMessage<Vehicle>): Vehicle {
@@ -118,6 +124,9 @@ class Vehicle$Type extends MessageType<Vehicle> {
118
124
  case /* optional resources.vehicles.props.VehicleProps props */ 9:
119
125
  message.props = VehicleProps.internalBinaryRead(reader, reader.uint32(), options, message.props);
120
126
  break;
127
+ case /* optional resources.properties.Properties properties */ 11:
128
+ message.properties = Properties.internalBinaryRead(reader, reader.uint32(), options, message.properties);
129
+ break;
121
130
  default:
122
131
  let u = options.readUnknownField;
123
132
  if (u === "throw")
@@ -160,6 +169,9 @@ class Vehicle$Type extends MessageType<Vehicle> {
160
169
  /* optional resources.timestamp.Timestamp updated_at = 10; */
161
170
  if (message.updatedAt)
162
171
  Timestamp.internalBinaryWrite(message.updatedAt, writer.tag(10, WireType.LengthDelimited).fork(), options).join();
172
+ /* optional resources.properties.Properties properties = 11; */
173
+ if (message.properties)
174
+ Properties.internalBinaryWrite(message.properties, writer.tag(11, WireType.LengthDelimited).fork(), options).join();
163
175
  let u = options.writeUnknownFields;
164
176
  if (u !== false)
165
177
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);