@fivenet-app/gen 2025.9.1 → 2026.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/README.md +1 -1
  2. package/clients.ts +36 -0
  3. package/codegen/perms/perms.ts +186 -15
  4. package/codegen/sanitizer/sanitizer.ts +34 -1
  5. package/package.json +2 -2
  6. package/perms.ts +140 -8
  7. package/resources/accounts/accounts.ts +98 -31
  8. package/resources/accounts/{oauth2.ts → oauth2/oauth2.ts} +20 -20
  9. package/resources/audit/audit.ts +156 -38
  10. package/resources/calendar/{access.ts → access/access.ts} +30 -30
  11. package/resources/calendar/calendar.ts +17 -477
  12. package/resources/calendar/entries/entries.ts +474 -0
  13. package/resources/centrum/{access.ts → access/access.ts} +22 -22
  14. package/resources/centrum/{dispatchers.ts → dispatchers/dispatchers.ts} +14 -14
  15. package/resources/centrum/{dispatches.ts → dispatches/dispatches.ts} +151 -185
  16. package/resources/centrum/joblist.ts +136 -0
  17. package/resources/centrum/{settings.ts → settings/settings.ts} +70 -70
  18. package/resources/centrum/{units_access.ts → units/access/access.ts} +30 -30
  19. package/resources/centrum/{units.ts → units/units.ts} +131 -51
  20. package/resources/citizens/labels/labels.ts +526 -0
  21. package/resources/{users → citizens/licenses}/licenses.ts +17 -17
  22. package/resources/clientconfig/clientconfig.ts +126 -258
  23. package/resources/collab/collab.ts +4 -16
  24. package/resources/common/content/content.ts +108 -85
  25. package/resources/common/content/diff_activity.ts +267 -0
  26. package/resources/common/i18n.ts +2 -2
  27. package/resources/{common/cron → cron}/cron.ts +43 -43
  28. package/resources/documents/{access.ts → access/access.ts} +29 -52
  29. package/resources/documents/{activity.ts → activity/activity.ts} +171 -123
  30. package/resources/documents/approval/approval.ts +945 -0
  31. package/resources/documents/{category.ts → category/category.ts} +7 -7
  32. package/resources/documents/{comment.ts → comment/comment.ts} +10 -10
  33. package/resources/documents/data/data.ts +303 -0
  34. package/resources/documents/documents.ts +282 -667
  35. package/resources/{common/uuid.ts → documents/forms/forms.ts} +20 -20
  36. package/resources/documents/{pins.ts → pins/pins.ts} +5 -5
  37. package/resources/documents/references/references.ts +187 -0
  38. package/resources/documents/relations/relations.ts +184 -0
  39. package/resources/documents/{requests.ts → requests/requests.ts} +18 -18
  40. package/resources/documents/stamps/stamp.ts +355 -0
  41. package/resources/documents/{templates.ts → templates/templates.ts} +426 -84
  42. package/resources/documents/{workflow.ts → workflow/workflow.ts} +264 -26
  43. package/resources/file/filestore.ts +1 -1
  44. package/resources/{common/grpcws → grpcws}/grpcws.ts +52 -52
  45. package/resources/jobs/{activity.ts → colleagues/activity/activity.ts} +54 -54
  46. package/resources/jobs/{colleagues.ts → colleagues/colleagues.ts} +17 -28
  47. package/resources/jobs/{conduct.ts → conduct/conduct.ts} +70 -45
  48. package/resources/jobs/{labels.ts → labels/labels.ts} +34 -23
  49. package/resources/jobs/{job_props.ts → props/props.ts} +26 -38
  50. package/resources/jobs/{job_settings.ts → settings/settings.ts} +53 -53
  51. package/resources/jobs/{timeclock.ts → timeclock/timeclock.ts} +17 -17
  52. package/resources/livemap/{heatmap.ts → heatmap/heatmap.ts} +4 -4
  53. package/resources/livemap/{marker_marker.ts → markers/marker_marker.ts} +35 -35
  54. package/resources/livemap/{user_marker.ts → markers/user_marker.ts} +115 -36
  55. package/resources/mailer/{access.ts → access/access.ts} +67 -67
  56. package/resources/mailer/{email.ts → emails/email.ts} +19 -19
  57. package/resources/mailer/{events.ts → events/events.ts} +24 -24
  58. package/resources/mailer/{message.ts → messages/message.ts} +29 -29
  59. package/resources/mailer/{settings.ts → settings/settings.ts} +14 -13
  60. package/resources/mailer/{template.ts → templates/template.ts} +15 -15
  61. package/resources/mailer/{thread.ts → threads/thread.ts} +29 -29
  62. package/resources/notifications/{client_view.ts → clientview/clientview.ts} +22 -22
  63. package/resources/notifications/{events.ts → events/events.ts} +20 -20
  64. package/resources/notifications/notifications.ts +4 -4
  65. package/resources/permissions/{attributes.ts → attributes/attributes.ts} +42 -42
  66. package/resources/permissions/{events.ts → events/events.ts} +7 -7
  67. package/resources/permissions/{permissions.ts → permissions/permissions.ts} +30 -19
  68. package/resources/qualifications/{access.ts → access/access.ts} +19 -19
  69. package/resources/qualifications/{exam.ts → exam/exam.ts} +269 -141
  70. package/resources/qualifications/qualifications.ts +51 -179
  71. package/resources/settings/banner.ts +3 -3
  72. package/resources/settings/config.ts +527 -25
  73. package/resources/{documents/state.ts → settings/data.ts} +41 -20
  74. package/resources/settings/perms.ts +14 -14
  75. package/resources/stats/stats.ts +379 -0
  76. package/resources/sync/{activity.ts → activity/activity.ts} +104 -25
  77. package/resources/sync/{data.ts → data/data.ts} +405 -59
  78. package/resources/userinfo/{user_info.ts → userinfo.ts} +71 -93
  79. package/resources/users/{activity.ts → activity/activity.ts} +242 -101
  80. package/resources/users/{props.ts → props/props.ts} +91 -69
  81. package/resources/users/short/user.ts +184 -0
  82. package/resources/users/{users.ts → user.ts} +266 -195
  83. package/resources/vehicles/{activity.ts → activity/activity.ts} +20 -20
  84. package/resources/vehicles/{props.ts → props/props.ts} +28 -6
  85. package/resources/vehicles/vehicles.ts +20 -8
  86. package/resources/wiki/{access.ts → access/access.ts} +30 -30
  87. package/resources/wiki/{activity.ts → activity/activity.ts} +104 -70
  88. package/resources/wiki/page.ts +39 -15
  89. package/services/auth/auth.client.ts +23 -10
  90. package/services/auth/auth.ts +445 -262
  91. package/services/calendar/calendar.ts +56 -34
  92. package/services/centrum/centrum.ts +127 -127
  93. package/services/citizens/citizens.client.ts +0 -13
  94. package/services/citizens/citizens.ts +44 -134
  95. package/services/citizens/labels.client.ts +77 -0
  96. package/services/citizens/labels.ts +455 -0
  97. package/services/completor/completor.ts +36 -16
  98. package/services/documents/approval.client.ts +188 -0
  99. package/services/documents/approval.ts +1776 -0
  100. package/services/documents/documents.ts +164 -186
  101. package/services/documents/forms.client.ts +51 -0
  102. package/services/documents/forms.ts +232 -0
  103. package/services/documents/stamps.client.ts +77 -0
  104. package/services/documents/stamps.ts +481 -0
  105. package/services/documents/stats.client.ts +38 -0
  106. package/services/documents/stats.ts +245 -0
  107. package/services/jobs/conduct.client.ts +30 -3
  108. package/services/jobs/conduct.ts +159 -33
  109. package/services/jobs/jobs.ts +43 -43
  110. package/services/jobs/stats.client.ts +38 -0
  111. package/services/jobs/stats.ts +207 -0
  112. package/services/jobs/timeclock.ts +39 -39
  113. package/services/livemap/livemap.ts +18 -18
  114. package/services/mailer/mailer.ts +78 -78
  115. package/services/notifications/notifications.ts +35 -35
  116. package/services/qualifications/qualifications.ts +81 -46
  117. package/services/settings/accounts.client.ts +23 -10
  118. package/services/settings/accounts.ts +191 -30
  119. package/services/settings/cron.client.ts +13 -0
  120. package/services/settings/cron.ts +118 -5
  121. package/services/settings/laws.ts +1 -1
  122. package/services/settings/settings.ts +73 -52
  123. package/services/settings/system.client.ts +13 -0
  124. package/services/settings/system.ts +115 -15
  125. package/services/stats/stats.client.ts +7 -7
  126. package/services/stats/stats.ts +24 -24
  127. package/services/sync/sync.client.ts +271 -37
  128. package/services/sync/sync.ts +1525 -421
  129. package/services/vehicles/vehicles.ts +8 -8
  130. package/services/wiki/wiki.ts +8 -8
  131. package/svcs.ts +100 -6
  132. package/resources/centrum/attributes.ts +0 -183
  133. package/resources/documents/signoff.ts +0 -55
  134. package/resources/users/labels.ts +0 -160
@@ -1,5 +1,5 @@
1
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/category.proto" (package "resources.documents", syntax proto3)
2
+ // @generated from protobuf file "resources/documents/category/category.proto" (package "resources.documents.category", syntax proto3)
3
3
  // tslint:disable
4
4
  // @ts-nocheck
5
5
  import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
@@ -11,9 +11,9 @@ 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 { Timestamp } from "../timestamp/timestamp";
14
+ import { Timestamp } from "../../timestamp/timestamp";
15
15
  /**
16
- * @generated from protobuf message resources.documents.Category
16
+ * @generated from protobuf message resources.documents.category.Category
17
17
  */
18
18
  export interface Category {
19
19
  /**
@@ -52,15 +52,15 @@ export interface Category {
52
52
  // @generated message type with reflection information, may provide speed optimized methods
53
53
  class Category$Type extends MessageType<Category> {
54
54
  constructor() {
55
- super("resources.documents.Category", [
55
+ super("resources.documents.category.Category", [
56
56
  { no: 1, name: "id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
57
57
  { no: 2, name: "created_at", kind: "message", T: () => Timestamp },
58
58
  { no: 3, name: "deleted_at", kind: "message", T: () => Timestamp },
59
59
  { no: 4, name: "name", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "3", maxLen: "128" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
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
- { 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, method: "StripTags" } } },
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, method: "StripTags" } } }
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" } }, "codegen.sanitizer.sanitizer": { enabled: true, stripHtmlTags: true } } }
64
64
  ]);
65
65
  }
66
66
  create(value?: PartialMessage<Category>): Category {
@@ -143,6 +143,6 @@ class Category$Type extends MessageType<Category> {
143
143
  }
144
144
  }
145
145
  /**
146
- * @generated MessageType for protobuf message resources.documents.Category
146
+ * @generated MessageType for protobuf message resources.documents.category.Category
147
147
  */
148
148
  export const Category = new Category$Type();
@@ -1,5 +1,5 @@
1
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/comment.proto" (package "resources.documents", syntax proto3)
2
+ // @generated from protobuf file "resources/documents/comment/comment.proto" (package "resources.documents.comment", syntax proto3)
3
3
  // tslint:disable
4
4
  // @ts-nocheck
5
5
  import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
@@ -11,11 +11,11 @@ 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 { UserShort } from "../users/users";
15
- import { Content } from "../common/content/content";
16
- import { Timestamp } from "../timestamp/timestamp";
14
+ import { UserShort } from "../../users/short/user";
15
+ import { Content } from "../../common/content/content";
16
+ import { Timestamp } from "../../timestamp/timestamp";
17
17
  /**
18
- * @generated from protobuf message resources.documents.Comment
18
+ * @generated from protobuf message resources.documents.comment.Comment
19
19
  */
20
20
  export interface Comment {
21
21
  /**
@@ -47,7 +47,7 @@ export interface Comment {
47
47
  */
48
48
  creatorId?: number;
49
49
  /**
50
- * @generated from protobuf field: optional resources.users.UserShort creator = 8
50
+ * @generated from protobuf field: optional resources.users.short.UserShort creator = 8
51
51
  */
52
52
  creator?: UserShort;
53
53
  /**
@@ -58,7 +58,7 @@ export interface Comment {
58
58
  // @generated message type with reflection information, may provide speed optimized methods
59
59
  class Comment$Type extends MessageType<Comment> {
60
60
  constructor() {
61
- super("resources.documents.Comment", [
61
+ super("resources.documents.comment.Comment", [
62
62
  { no: 1, name: "id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/, options: { "tagger.tags": "alias:\"id\"" } },
63
63
  { no: 2, name: "created_at", kind: "message", T: () => Timestamp },
64
64
  { no: 3, name: "updated_at", kind: "message", T: () => Timestamp },
@@ -105,7 +105,7 @@ class Comment$Type extends MessageType<Comment> {
105
105
  case /* optional int32 creator_id */ 7:
106
106
  message.creatorId = reader.int32();
107
107
  break;
108
- case /* optional resources.users.UserShort creator */ 8:
108
+ case /* optional resources.users.short.UserShort creator */ 8:
109
109
  message.creator = UserShort.internalBinaryRead(reader, reader.uint32(), options, message.creator);
110
110
  break;
111
111
  case /* string creator_job */ 9:
@@ -144,7 +144,7 @@ class Comment$Type extends MessageType<Comment> {
144
144
  /* optional int32 creator_id = 7; */
145
145
  if (message.creatorId !== undefined)
146
146
  writer.tag(7, WireType.Varint).int32(message.creatorId);
147
- /* optional resources.users.UserShort creator = 8; */
147
+ /* optional resources.users.short.UserShort creator = 8; */
148
148
  if (message.creator)
149
149
  UserShort.internalBinaryWrite(message.creator, writer.tag(8, WireType.LengthDelimited).fork(), options).join();
150
150
  /* string creator_job = 9; */
@@ -157,6 +157,6 @@ class Comment$Type extends MessageType<Comment> {
157
157
  }
158
158
  }
159
159
  /**
160
- * @generated MessageType for protobuf message resources.documents.Comment
160
+ * @generated MessageType for protobuf message resources.documents.comment.Comment
161
161
  */
162
162
  export const Comment = new Comment$Type();
@@ -0,0 +1,303 @@
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/data/data.proto" (package "resources.documents.data", 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
+ /**
15
+ * @generated from protobuf message resources.documents.data.DocumentData
16
+ */
17
+ export interface DocumentData {
18
+ /**
19
+ * @generated from protobuf field: optional resources.documents.data.PenaltyCalculatorData penalty_calculator = 2
20
+ */
21
+ penaltyCalculator?: PenaltyCalculatorData;
22
+ }
23
+ /**
24
+ * @generated from protobuf message resources.documents.data.PenaltyCalculatorData
25
+ */
26
+ export interface PenaltyCalculatorData {
27
+ /**
28
+ * @generated from protobuf field: int32 reduction = 1
29
+ */
30
+ reduction: number;
31
+ /**
32
+ * @generated from protobuf field: repeated resources.documents.data.SelectedPenalty selected = 2
33
+ */
34
+ selected: SelectedPenalty[];
35
+ /**
36
+ * @generated from protobuf field: optional resources.documents.data.PenaltyCalculatorTotal total = 3
37
+ */
38
+ total?: PenaltyCalculatorTotal;
39
+ }
40
+ /**
41
+ * @generated from protobuf message resources.documents.data.SelectedPenalty
42
+ */
43
+ export interface SelectedPenalty {
44
+ /**
45
+ * @generated from protobuf field: int64 law_id = 1
46
+ */
47
+ lawId: number;
48
+ /**
49
+ * @generated from protobuf field: uint32 count = 2
50
+ */
51
+ count: number;
52
+ }
53
+ /**
54
+ * @generated from protobuf message resources.documents.data.PenaltyCalculatorTotal
55
+ */
56
+ export interface PenaltyCalculatorTotal {
57
+ /**
58
+ * @generated from protobuf field: optional uint32 count = 1
59
+ */
60
+ count?: number;
61
+ /**
62
+ * @generated from protobuf field: optional uint32 fine = 8
63
+ */
64
+ fine?: number;
65
+ /**
66
+ * @generated from protobuf field: optional uint32 detention_time = 9
67
+ */
68
+ detentionTime?: number;
69
+ /**
70
+ * @generated from protobuf field: optional uint32 stvo_points = 10
71
+ */
72
+ stvoPoints?: number;
73
+ }
74
+ // @generated message type with reflection information, may provide speed optimized methods
75
+ class DocumentData$Type extends MessageType<DocumentData> {
76
+ constructor() {
77
+ super("resources.documents.data.DocumentData", [
78
+ { no: 2, name: "penalty_calculator", kind: "message", T: () => PenaltyCalculatorData }
79
+ ], { "codegen.dbscanner.dbscanner": { enabled: true } });
80
+ }
81
+ create(value?: PartialMessage<DocumentData>): DocumentData {
82
+ const message = globalThis.Object.create((this.messagePrototype!));
83
+ if (value !== undefined)
84
+ reflectionMergePartial<DocumentData>(this, message, value);
85
+ return message;
86
+ }
87
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DocumentData): DocumentData {
88
+ let message = target ?? this.create(), end = reader.pos + length;
89
+ while (reader.pos < end) {
90
+ let [fieldNo, wireType] = reader.tag();
91
+ switch (fieldNo) {
92
+ case /* optional resources.documents.data.PenaltyCalculatorData penalty_calculator */ 2:
93
+ message.penaltyCalculator = PenaltyCalculatorData.internalBinaryRead(reader, reader.uint32(), options, message.penaltyCalculator);
94
+ break;
95
+ default:
96
+ let u = options.readUnknownField;
97
+ if (u === "throw")
98
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
99
+ let d = reader.skip(wireType);
100
+ if (u !== false)
101
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
102
+ }
103
+ }
104
+ return message;
105
+ }
106
+ internalBinaryWrite(message: DocumentData, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
107
+ /* optional resources.documents.data.PenaltyCalculatorData penalty_calculator = 2; */
108
+ if (message.penaltyCalculator)
109
+ PenaltyCalculatorData.internalBinaryWrite(message.penaltyCalculator, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
110
+ let u = options.writeUnknownFields;
111
+ if (u !== false)
112
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
113
+ return writer;
114
+ }
115
+ }
116
+ /**
117
+ * @generated MessageType for protobuf message resources.documents.data.DocumentData
118
+ */
119
+ export const DocumentData = new DocumentData$Type();
120
+ // @generated message type with reflection information, may provide speed optimized methods
121
+ class PenaltyCalculatorData$Type extends MessageType<PenaltyCalculatorData> {
122
+ constructor() {
123
+ super("resources.documents.data.PenaltyCalculatorData", [
124
+ { no: 1, name: "reduction", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { lt: 100, gte: 0 } } } },
125
+ { no: 2, name: "selected", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => SelectedPenalty, options: { "buf.validate.field": { repeated: { maxItems: "30" } } } },
126
+ { no: 3, name: "total", kind: "message", T: () => PenaltyCalculatorTotal }
127
+ ]);
128
+ }
129
+ create(value?: PartialMessage<PenaltyCalculatorData>): PenaltyCalculatorData {
130
+ const message = globalThis.Object.create((this.messagePrototype!));
131
+ message.reduction = 0;
132
+ message.selected = [];
133
+ if (value !== undefined)
134
+ reflectionMergePartial<PenaltyCalculatorData>(this, message, value);
135
+ return message;
136
+ }
137
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PenaltyCalculatorData): PenaltyCalculatorData {
138
+ let message = target ?? this.create(), end = reader.pos + length;
139
+ while (reader.pos < end) {
140
+ let [fieldNo, wireType] = reader.tag();
141
+ switch (fieldNo) {
142
+ case /* int32 reduction */ 1:
143
+ message.reduction = reader.int32();
144
+ break;
145
+ case /* repeated resources.documents.data.SelectedPenalty selected */ 2:
146
+ message.selected.push(SelectedPenalty.internalBinaryRead(reader, reader.uint32(), options));
147
+ break;
148
+ case /* optional resources.documents.data.PenaltyCalculatorTotal total */ 3:
149
+ message.total = PenaltyCalculatorTotal.internalBinaryRead(reader, reader.uint32(), options, message.total);
150
+ break;
151
+ default:
152
+ let u = options.readUnknownField;
153
+ if (u === "throw")
154
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
155
+ let d = reader.skip(wireType);
156
+ if (u !== false)
157
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
158
+ }
159
+ }
160
+ return message;
161
+ }
162
+ internalBinaryWrite(message: PenaltyCalculatorData, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
163
+ /* int32 reduction = 1; */
164
+ if (message.reduction !== 0)
165
+ writer.tag(1, WireType.Varint).int32(message.reduction);
166
+ /* repeated resources.documents.data.SelectedPenalty selected = 2; */
167
+ for (let i = 0; i < message.selected.length; i++)
168
+ SelectedPenalty.internalBinaryWrite(message.selected[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
169
+ /* optional resources.documents.data.PenaltyCalculatorTotal total = 3; */
170
+ if (message.total)
171
+ PenaltyCalculatorTotal.internalBinaryWrite(message.total, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
172
+ let u = options.writeUnknownFields;
173
+ if (u !== false)
174
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
175
+ return writer;
176
+ }
177
+ }
178
+ /**
179
+ * @generated MessageType for protobuf message resources.documents.data.PenaltyCalculatorData
180
+ */
181
+ export const PenaltyCalculatorData = new PenaltyCalculatorData$Type();
182
+ // @generated message type with reflection information, may provide speed optimized methods
183
+ class SelectedPenalty$Type extends MessageType<SelectedPenalty> {
184
+ constructor() {
185
+ super("resources.documents.data.SelectedPenalty", [
186
+ { no: 1, name: "law_id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/, options: { "buf.validate.field": { int64: { gt: "0" } } } },
187
+ { no: 2, name: "count", kind: "scalar", T: 13 /*ScalarType.UINT32*/, options: { "buf.validate.field": { uint32: { lt: 100, gt: 0 } } } }
188
+ ]);
189
+ }
190
+ create(value?: PartialMessage<SelectedPenalty>): SelectedPenalty {
191
+ const message = globalThis.Object.create((this.messagePrototype!));
192
+ message.lawId = 0;
193
+ message.count = 0;
194
+ if (value !== undefined)
195
+ reflectionMergePartial<SelectedPenalty>(this, message, value);
196
+ return message;
197
+ }
198
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SelectedPenalty): SelectedPenalty {
199
+ let message = target ?? this.create(), end = reader.pos + length;
200
+ while (reader.pos < end) {
201
+ let [fieldNo, wireType] = reader.tag();
202
+ switch (fieldNo) {
203
+ case /* int64 law_id */ 1:
204
+ message.lawId = reader.int64().toNumber();
205
+ break;
206
+ case /* uint32 count */ 2:
207
+ message.count = reader.uint32();
208
+ break;
209
+ default:
210
+ let u = options.readUnknownField;
211
+ if (u === "throw")
212
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
213
+ let d = reader.skip(wireType);
214
+ if (u !== false)
215
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
216
+ }
217
+ }
218
+ return message;
219
+ }
220
+ internalBinaryWrite(message: SelectedPenalty, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
221
+ /* int64 law_id = 1; */
222
+ if (message.lawId !== 0)
223
+ writer.tag(1, WireType.Varint).int64(message.lawId);
224
+ /* uint32 count = 2; */
225
+ if (message.count !== 0)
226
+ writer.tag(2, WireType.Varint).uint32(message.count);
227
+ let u = options.writeUnknownFields;
228
+ if (u !== false)
229
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
230
+ return writer;
231
+ }
232
+ }
233
+ /**
234
+ * @generated MessageType for protobuf message resources.documents.data.SelectedPenalty
235
+ */
236
+ export const SelectedPenalty = new SelectedPenalty$Type();
237
+ // @generated message type with reflection information, may provide speed optimized methods
238
+ class PenaltyCalculatorTotal$Type extends MessageType<PenaltyCalculatorTotal> {
239
+ constructor() {
240
+ super("resources.documents.data.PenaltyCalculatorTotal", [
241
+ { no: 1, name: "count", kind: "scalar", opt: true, T: 13 /*ScalarType.UINT32*/, options: { "buf.validate.field": { uint32: { lt: 1000, gte: 0 } } } },
242
+ { no: 8, name: "fine", kind: "scalar", opt: true, T: 13 /*ScalarType.UINT32*/, options: { "buf.validate.field": { uint32: { lt: 10000000, gte: 0 } } } },
243
+ { no: 9, name: "detention_time", kind: "scalar", opt: true, T: 13 /*ScalarType.UINT32*/, options: { "buf.validate.field": { uint32: { lt: 10000, gte: 0 } } } },
244
+ { no: 10, name: "stvo_points", kind: "scalar", opt: true, T: 13 /*ScalarType.UINT32*/, options: { "buf.validate.field": { uint32: { lt: 1000, gte: 0 } } } }
245
+ ]);
246
+ }
247
+ create(value?: PartialMessage<PenaltyCalculatorTotal>): PenaltyCalculatorTotal {
248
+ const message = globalThis.Object.create((this.messagePrototype!));
249
+ if (value !== undefined)
250
+ reflectionMergePartial<PenaltyCalculatorTotal>(this, message, value);
251
+ return message;
252
+ }
253
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PenaltyCalculatorTotal): PenaltyCalculatorTotal {
254
+ let message = target ?? this.create(), end = reader.pos + length;
255
+ while (reader.pos < end) {
256
+ let [fieldNo, wireType] = reader.tag();
257
+ switch (fieldNo) {
258
+ case /* optional uint32 count */ 1:
259
+ message.count = reader.uint32();
260
+ break;
261
+ case /* optional uint32 fine */ 8:
262
+ message.fine = reader.uint32();
263
+ break;
264
+ case /* optional uint32 detention_time */ 9:
265
+ message.detentionTime = reader.uint32();
266
+ break;
267
+ case /* optional uint32 stvo_points */ 10:
268
+ message.stvoPoints = reader.uint32();
269
+ break;
270
+ default:
271
+ let u = options.readUnknownField;
272
+ if (u === "throw")
273
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
274
+ let d = reader.skip(wireType);
275
+ if (u !== false)
276
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
277
+ }
278
+ }
279
+ return message;
280
+ }
281
+ internalBinaryWrite(message: PenaltyCalculatorTotal, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
282
+ /* optional uint32 count = 1; */
283
+ if (message.count !== undefined)
284
+ writer.tag(1, WireType.Varint).uint32(message.count);
285
+ /* optional uint32 fine = 8; */
286
+ if (message.fine !== undefined)
287
+ writer.tag(8, WireType.Varint).uint32(message.fine);
288
+ /* optional uint32 detention_time = 9; */
289
+ if (message.detentionTime !== undefined)
290
+ writer.tag(9, WireType.Varint).uint32(message.detentionTime);
291
+ /* optional uint32 stvo_points = 10; */
292
+ if (message.stvoPoints !== undefined)
293
+ writer.tag(10, WireType.Varint).uint32(message.stvoPoints);
294
+ let u = options.writeUnknownFields;
295
+ if (u !== false)
296
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
297
+ return writer;
298
+ }
299
+ }
300
+ /**
301
+ * @generated MessageType for protobuf message resources.documents.data.PenaltyCalculatorTotal
302
+ */
303
+ export const PenaltyCalculatorTotal = new PenaltyCalculatorTotal$Type();