@fivenet-app/gen 2025.5.2 → 2025.9.1

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 (169) hide show
  1. package/buf/validate/validate.ts +11301 -0
  2. package/clients.ts +157 -154
  3. package/codegen/dbscanner/dbscanner.ts +91 -0
  4. package/codegen/perms/perms.ts +208 -0
  5. package/codegen/sanitizer/sanitizer.ts +80 -0
  6. package/google/protobuf/any.ts +4 -3
  7. package/google/protobuf/descriptor.ts +393 -239
  8. package/google/protobuf/duration.ts +4 -3
  9. package/google/protobuf/struct.ts +485 -0
  10. package/google/protobuf/timestamp.ts +4 -3
  11. package/package.json +3 -3
  12. package/perms.ts +85 -159
  13. package/resources/accounts/accounts.ts +26 -25
  14. package/resources/accounts/oauth2.ts +30 -29
  15. package/resources/audit/audit.ts +36 -35
  16. package/resources/calendar/access.ts +49 -48
  17. package/resources/calendar/calendar.ts +122 -126
  18. package/resources/centrum/access.ts +345 -0
  19. package/resources/centrum/attributes.ts +8 -11
  20. package/resources/centrum/dispatchers.ts +149 -0
  21. package/resources/centrum/dispatches.ts +252 -115
  22. package/resources/centrum/settings.ts +384 -34
  23. package/resources/centrum/units.ts +112 -92
  24. package/resources/centrum/units_access.ts +54 -55
  25. package/resources/clientconfig/clientconfig.ts +890 -0
  26. package/resources/collab/collab.ts +817 -0
  27. package/resources/common/content/content.ts +113 -30
  28. package/resources/common/cron/cron.ts +43 -31
  29. package/resources/common/database/database.ts +92 -35
  30. package/resources/common/error.ts +17 -16
  31. package/resources/common/grpcws/grpcws.ts +24 -23
  32. package/resources/common/i18n.ts +20 -24
  33. package/resources/common/id_mapping.ts +69 -0
  34. package/resources/common/tests/objects.ts +4 -3
  35. package/resources/common/uuid.ts +4 -3
  36. package/resources/discord/discord.ts +209 -0
  37. package/resources/documents/access.ts +52 -53
  38. package/resources/documents/activity.ts +235 -58
  39. package/resources/documents/category.ts +20 -27
  40. package/resources/documents/comment.ts +26 -25
  41. package/resources/documents/documents.ts +335 -262
  42. package/resources/documents/pins.ts +127 -0
  43. package/resources/documents/requests.ts +31 -30
  44. package/resources/documents/signoff.ts +55 -0
  45. package/resources/documents/state.ts +69 -0
  46. package/resources/documents/templates.ts +119 -136
  47. package/resources/documents/workflow.ts +35 -24
  48. package/resources/file/file.ts +152 -0
  49. package/{services/settings → resources/file}/filestore.ts +179 -165
  50. package/resources/file/meta.ts +148 -0
  51. package/resources/jobs/activity.ts +39 -42
  52. package/resources/jobs/colleagues.ts +67 -60
  53. package/resources/jobs/conduct.ts +29 -30
  54. package/resources/jobs/job_props.ts +46 -48
  55. package/resources/jobs/job_settings.ts +45 -52
  56. package/resources/jobs/jobs.ts +14 -13
  57. package/resources/jobs/labels.ts +21 -22
  58. package/resources/jobs/timeclock.ts +26 -25
  59. package/resources/laws/laws.ts +40 -49
  60. package/resources/livemap/coords.ts +81 -0
  61. package/resources/livemap/heatmap.ts +93 -0
  62. package/resources/livemap/{livemap.ts → marker_marker.ts} +43 -310
  63. package/resources/livemap/user_marker.ts +298 -0
  64. package/resources/mailer/access.ts +75 -74
  65. package/resources/mailer/email.ts +24 -27
  66. package/resources/mailer/events.ts +25 -24
  67. package/resources/mailer/message.ts +45 -50
  68. package/resources/mailer/settings.ts +12 -15
  69. package/resources/mailer/template.ts +25 -28
  70. package/resources/mailer/thread.ts +70 -71
  71. package/resources/notifications/client_view.ts +239 -0
  72. package/resources/notifications/events.ts +50 -101
  73. package/resources/notifications/notifications.ts +52 -57
  74. package/resources/permissions/attributes.ts +63 -206
  75. package/resources/permissions/events.ts +149 -0
  76. package/resources/permissions/permissions.ts +103 -34
  77. package/resources/qualifications/access.ts +27 -26
  78. package/resources/qualifications/exam.ts +188 -126
  79. package/resources/qualifications/qualifications.ts +370 -303
  80. package/resources/settings/banner.ts +14 -21
  81. package/resources/settings/config.ts +163 -79
  82. package/resources/settings/perms.ts +151 -0
  83. package/resources/settings/status.ts +533 -0
  84. package/resources/stats/stats.ts +3 -2
  85. package/resources/sync/activity.ts +24 -23
  86. package/resources/sync/data.ts +94 -26
  87. package/resources/timestamp/timestamp.ts +3 -2
  88. package/resources/{centrum/user_unit.ts → tracker/mapping.ts} +44 -44
  89. package/resources/userinfo/user_info.ts +464 -0
  90. package/resources/users/activity.ts +80 -85
  91. package/resources/users/labels.ts +18 -21
  92. package/resources/users/licenses.ts +9 -8
  93. package/resources/users/props.ts +61 -51
  94. package/resources/users/users.ts +100 -78
  95. package/resources/vehicles/activity.ts +231 -0
  96. package/resources/vehicles/props.ts +103 -0
  97. package/resources/vehicles/vehicles.ts +28 -15
  98. package/resources/wiki/access.ts +49 -48
  99. package/resources/wiki/activity.ts +133 -51
  100. package/resources/wiki/page.ts +134 -87
  101. package/services/auth/auth.client.ts +24 -27
  102. package/services/auth/auth.ts +222 -195
  103. package/services/calendar/calendar.client.ts +32 -91
  104. package/services/calendar/calendar.ts +110 -109
  105. package/services/centrum/centrum.client.ts +97 -137
  106. package/services/centrum/centrum.ts +701 -298
  107. package/services/citizens/citizens.client.ts +70 -39
  108. package/services/citizens/citizens.ts +183 -93
  109. package/services/completor/completor.client.ts +16 -35
  110. package/services/completor/completor.ts +65 -44
  111. package/services/documents/collab.client.ts +46 -0
  112. package/services/documents/collab.ts +13 -0
  113. package/services/documents/documents.client.ts +88 -217
  114. package/services/documents/documents.ts +490 -508
  115. package/services/filestore/filestore.client.ts +86 -0
  116. package/services/filestore/filestore.ts +262 -0
  117. package/services/jobs/conduct.client.ts +10 -25
  118. package/services/jobs/conduct.ts +36 -35
  119. package/services/jobs/jobs.client.ts +22 -61
  120. package/services/jobs/jobs.ts +108 -91
  121. package/services/jobs/timeclock.client.ts +8 -19
  122. package/services/jobs/timeclock.ts +47 -46
  123. package/services/livemap/livemap.client.ts +8 -19
  124. package/services/livemap/livemap.ts +290 -119
  125. package/services/mailer/mailer.client.ts +44 -127
  126. package/services/mailer/mailer.ts +213 -216
  127. package/services/notifications/notifications.client.ts +65 -0
  128. package/services/{notificator/notificator.ts → notifications/notifications.ts} +117 -74
  129. package/services/qualifications/qualifications.client.ts +46 -91
  130. package/services/qualifications/qualifications.ts +181 -175
  131. package/services/settings/accounts.client.ts +10 -25
  132. package/services/settings/accounts.ts +64 -41
  133. package/services/settings/config.client.ts +6 -13
  134. package/services/settings/config.ts +8 -7
  135. package/services/settings/cron.client.ts +4 -7
  136. package/services/settings/cron.ts +4 -3
  137. package/services/settings/laws.client.ts +10 -25
  138. package/services/settings/laws.ts +29 -28
  139. package/services/settings/settings.client.ts +57 -103
  140. package/services/settings/settings.ts +190 -607
  141. package/services/settings/system.client.ts +90 -0
  142. package/services/settings/system.ts +618 -0
  143. package/services/stats/stats.client.ts +4 -3
  144. package/services/stats/stats.ts +4 -3
  145. package/services/sync/sync.client.ts +16 -15
  146. package/services/sync/sync.ts +82 -52
  147. package/services/vehicles/vehicles.client.ts +17 -7
  148. package/services/vehicles/vehicles.ts +169 -24
  149. package/services/wiki/collab.client.ts +46 -0
  150. package/services/wiki/collab.ts +13 -0
  151. package/services/wiki/wiki.client.ts +28 -37
  152. package/services/wiki/wiki.ts +93 -63
  153. package/svcs.ts +79 -103
  154. package/resources/centrum/disponents.ts +0 -81
  155. package/resources/filestore/file.ts +0 -204
  156. package/resources/internet/access.ts +0 -358
  157. package/resources/internet/ads.ts +0 -257
  158. package/resources/internet/domain.ts +0 -328
  159. package/resources/internet/page.ts +0 -428
  160. package/resources/internet/search.ts +0 -128
  161. package/resources/livemap/tracker.ts +0 -81
  162. package/services/internet/ads.client.ts +0 -41
  163. package/services/internet/ads.ts +0 -145
  164. package/services/internet/domain.client.ts +0 -109
  165. package/services/internet/domain.ts +0 -658
  166. package/services/internet/internet.client.ts +0 -58
  167. package/services/internet/internet.ts +0 -268
  168. package/services/notificator/notificator.client.ts +0 -76
  169. package/services/settings/filestore.client.ts +0 -75
@@ -1,5 +1,6 @@
1
- // @generated by protobuf-ts 2.10.0 with parameter optimize_speed,long_type_number,force_server_none
1
+ // @generated by protobuf-ts 2.11.1 with parameter force_server_none,long_type_number,optimize_speed,ts_nocheck
2
2
  // @generated from protobuf file "resources/settings/banner.proto" (package "resources.settings", syntax proto3)
3
+ // tslint:disable
3
4
  // @ts-nocheck
4
5
  import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
5
6
  import type { IBinaryWriter } from "@protobuf-ts/runtime";
@@ -16,35 +17,27 @@ import { Timestamp } from "../timestamp/timestamp";
16
17
  */
17
18
  export interface BannerMessage {
18
19
  /**
19
- * @sanitize: method=StripTags
20
- *
21
- * @generated from protobuf field: string id = 1;
20
+ * @generated from protobuf field: string id = 1
22
21
  */
23
22
  id: string;
24
23
  /**
25
- * @sanitize: method
26
- *
27
- * @generated from protobuf field: string title = 2;
24
+ * @generated from protobuf field: string title = 2
28
25
  */
29
26
  title: string;
30
27
  /**
31
- * @sanitize: method=StripTags
32
- *
33
- * @generated from protobuf field: optional string icon = 3;
28
+ * @generated from protobuf field: optional string icon = 3
34
29
  */
35
30
  icon?: string;
36
31
  /**
37
- * @sanitize: method=StripTags
38
- *
39
- * @generated from protobuf field: optional string color = 4;
32
+ * @generated from protobuf field: optional string color = 4
40
33
  */
41
34
  color?: string;
42
35
  /**
43
- * @generated from protobuf field: resources.timestamp.Timestamp created_at = 5;
36
+ * @generated from protobuf field: resources.timestamp.Timestamp created_at = 5
44
37
  */
45
38
  createdAt?: Timestamp;
46
39
  /**
47
- * @generated from protobuf field: optional resources.timestamp.Timestamp expires_at = 6;
40
+ * @generated from protobuf field: optional resources.timestamp.Timestamp expires_at = 6
48
41
  */
49
42
  expiresAt?: Timestamp;
50
43
  }
@@ -52,12 +45,12 @@ export interface BannerMessage {
52
45
  class BannerMessage$Type extends MessageType<BannerMessage> {
53
46
  constructor() {
54
47
  super("resources.settings.BannerMessage", [
55
- { no: 1, name: "id", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxLen: "64" } } } },
56
- { no: 2, name: "title", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "3", maxLen: "512" } } } },
57
- { no: 3, name: "icon", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxLen: "128" } } } },
58
- { no: 4, name: "color", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxLen: "12" } } } },
59
- { no: 5, name: "created_at", kind: "message", T: () => Timestamp },
60
- { no: 6, name: "expires_at", kind: "message", T: () => Timestamp }
48
+ { no: 1, name: "id", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "64" } }, "codegen.sanitizer.sanitizer": { enabled: true, method: "StripTags" } } },
49
+ { no: 2, name: "title", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { ignore: "IGNORE_IF_ZERO_VALUE", string: { minLen: "3", maxLen: "512" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
50
+ { no: 3, 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" } } },
51
+ { no: 4, name: "color", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "12" } }, "codegen.sanitizer.sanitizer": { enabled: true, method: "StripTags" } } },
52
+ { no: 5, name: "created_at", kind: "message", T: () => Timestamp, options: { "tagger.tags": "json:\"createdAt\"" } },
53
+ { no: 6, name: "expires_at", kind: "message", T: () => Timestamp, options: { "tagger.tags": "json:\"expiresAt\"" } }
61
54
  ]);
62
55
  }
63
56
  create(value?: PartialMessage<BannerMessage>): BannerMessage {
@@ -1,5 +1,6 @@
1
- // @generated by protobuf-ts 2.10.0 with parameter optimize_speed,long_type_number,force_server_none
1
+ // @generated by protobuf-ts 2.11.1 with parameter force_server_none,long_type_number,optimize_speed,ts_nocheck
2
2
  // @generated from protobuf file "resources/settings/config.proto" (package "resources.settings", syntax proto3)
3
+ // tslint:disable
3
4
  // @ts-nocheck
4
5
  import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
5
6
  import type { IBinaryWriter } from "@protobuf-ts/runtime";
@@ -13,58 +14,60 @@ import { MessageType } from "@protobuf-ts/runtime";
13
14
  import { BannerMessage } from "./banner";
14
15
  import { Duration } from "../../google/protobuf/duration";
15
16
  /**
16
- * @dbscanner: json,partial
17
- *
18
17
  * @generated from protobuf message resources.settings.AppConfig
19
18
  */
20
19
  export interface AppConfig {
21
20
  /**
22
- * @generated from protobuf field: optional string version = 1;
21
+ * @generated from protobuf field: optional string version = 1
23
22
  */
24
23
  version?: string;
25
24
  /**
26
- * @generated from protobuf field: string default_locale = 8;
25
+ * @generated from protobuf field: string default_locale = 8
27
26
  */
28
27
  defaultLocale: string;
29
28
  /**
30
- * @generated from protobuf field: resources.settings.Auth auth = 2;
29
+ * @generated from protobuf field: resources.settings.Auth auth = 2
31
30
  */
32
31
  auth?: Auth;
33
32
  /**
34
- * @generated from protobuf field: resources.settings.Perms perms = 3;
33
+ * @generated from protobuf field: resources.settings.Perms perms = 3
35
34
  */
36
35
  perms?: Perms;
37
36
  /**
38
- * @generated from protobuf field: resources.settings.Website website = 4;
37
+ * @generated from protobuf field: resources.settings.Website website = 4
39
38
  */
40
39
  website?: Website;
41
40
  /**
42
- * @generated from protobuf field: resources.settings.JobInfo job_info = 5;
41
+ * @generated from protobuf field: resources.settings.JobInfo job_info = 5
43
42
  */
44
43
  jobInfo?: JobInfo;
45
44
  /**
46
- * @generated from protobuf field: resources.settings.UserTracker user_tracker = 6;
45
+ * @generated from protobuf field: resources.settings.UserTracker user_tracker = 6
47
46
  */
48
47
  userTracker?: UserTracker;
49
48
  /**
50
- * @generated from protobuf field: resources.settings.Discord discord = 7;
49
+ * @generated from protobuf field: resources.settings.Discord discord = 7
51
50
  */
52
51
  discord?: Discord;
53
52
  /**
54
- * @generated from protobuf field: resources.settings.System system = 9;
53
+ * @generated from protobuf field: resources.settings.System system = 9
55
54
  */
56
55
  system?: System;
56
+ /**
57
+ * @generated from protobuf field: resources.settings.Display display = 10
58
+ */
59
+ display?: Display;
57
60
  }
58
61
  /**
59
62
  * @generated from protobuf message resources.settings.Auth
60
63
  */
61
64
  export interface Auth {
62
65
  /**
63
- * @generated from protobuf field: bool signup_enabled = 1;
66
+ * @generated from protobuf field: bool signup_enabled = 1
64
67
  */
65
68
  signupEnabled: boolean;
66
69
  /**
67
- * @generated from protobuf field: bool last_char_lock = 2;
70
+ * @generated from protobuf field: bool last_char_lock = 2
68
71
  */
69
72
  lastCharLock: boolean;
70
73
  }
@@ -73,7 +76,7 @@ export interface Auth {
73
76
  */
74
77
  export interface Perms {
75
78
  /**
76
- * @generated from protobuf field: repeated resources.settings.Perm default = 1;
79
+ * @generated from protobuf field: repeated resources.settings.Perm default = 1
77
80
  */
78
81
  default: Perm[];
79
82
  }
@@ -82,15 +85,11 @@ export interface Perms {
82
85
  */
83
86
  export interface Perm {
84
87
  /**
85
- * @sanitize: method=StripTags
86
- *
87
- * @generated from protobuf field: string category = 1;
88
+ * @generated from protobuf field: string category = 1
88
89
  */
89
90
  category: string;
90
91
  /**
91
- * @sanitize: method=StripTags
92
- *
93
- * @generated from protobuf field: string name = 2;
92
+ * @generated from protobuf field: string name = 2
94
93
  */
95
94
  name: string;
96
95
  }
@@ -99,11 +98,11 @@ export interface Perm {
99
98
  */
100
99
  export interface Website {
101
100
  /**
102
- * @generated from protobuf field: resources.settings.Links links = 1;
101
+ * @generated from protobuf field: resources.settings.Links links = 1
103
102
  */
104
103
  links?: Links;
105
104
  /**
106
- * @generated from protobuf field: bool stats_page = 2;
105
+ * @generated from protobuf field: bool stats_page = 2
107
106
  */
108
107
  statsPage: boolean;
109
108
  }
@@ -112,15 +111,11 @@ export interface Website {
112
111
  */
113
112
  export interface Links {
114
113
  /**
115
- * @sanitize: method=StripTags
116
- *
117
- * @generated from protobuf field: optional string privacy_policy = 1;
114
+ * @generated from protobuf field: optional string privacy_policy = 1
118
115
  */
119
116
  privacyPolicy?: string;
120
117
  /**
121
- * @sanitize: method=StripTags
122
- *
123
- * @generated from protobuf field: optional string imprint = 2;
118
+ * @generated from protobuf field: optional string imprint = 2
124
119
  */
125
120
  imprint?: string;
126
121
  }
@@ -129,19 +124,15 @@ export interface Links {
129
124
  */
130
125
  export interface JobInfo {
131
126
  /**
132
- * @generated from protobuf field: resources.settings.UnemployedJob unemployed_job = 1;
127
+ * @generated from protobuf field: resources.settings.UnemployedJob unemployed_job = 1
133
128
  */
134
129
  unemployedJob?: UnemployedJob;
135
130
  /**
136
- * @sanitize: method=StripTags
137
- *
138
- * @generated from protobuf field: repeated string public_jobs = 2;
131
+ * @generated from protobuf field: repeated string public_jobs = 2
139
132
  */
140
133
  publicJobs: string[];
141
134
  /**
142
- * @sanitize: method=StripTags
143
- *
144
- * @generated from protobuf field: repeated string hidden_jobs = 3;
135
+ * @generated from protobuf field: repeated string hidden_jobs = 3
145
136
  */
146
137
  hiddenJobs: string[];
147
138
  }
@@ -150,11 +141,11 @@ export interface JobInfo {
150
141
  */
151
142
  export interface UnemployedJob {
152
143
  /**
153
- * @generated from protobuf field: string name = 1;
144
+ * @generated from protobuf field: string name = 1
154
145
  */
155
146
  name: string;
156
147
  /**
157
- * @generated from protobuf field: int32 grade = 2;
148
+ * @generated from protobuf field: int32 grade = 2
158
149
  */
159
150
  grade: number;
160
151
  }
@@ -163,11 +154,11 @@ export interface UnemployedJob {
163
154
  */
164
155
  export interface UserTracker {
165
156
  /**
166
- * @generated from protobuf field: google.protobuf.Duration refresh_time = 1;
157
+ * @generated from protobuf field: google.protobuf.Duration refresh_time = 1
167
158
  */
168
159
  refreshTime?: Duration;
169
160
  /**
170
- * @generated from protobuf field: google.protobuf.Duration db_refresh_time = 2;
161
+ * @generated from protobuf field: google.protobuf.Duration db_refresh_time = 2
171
162
  */
172
163
  dbRefreshTime?: Duration;
173
164
  }
@@ -176,48 +167,48 @@ export interface UserTracker {
176
167
  */
177
168
  export interface Discord {
178
169
  /**
179
- * @generated from protobuf field: bool enabled = 1;
170
+ * @generated from protobuf field: bool enabled = 1
180
171
  */
181
172
  enabled: boolean;
182
173
  /**
183
- * @generated from protobuf field: google.protobuf.Duration sync_interval = 2;
174
+ * @generated from protobuf field: google.protobuf.Duration sync_interval = 2
184
175
  */
185
176
  syncInterval?: Duration;
186
177
  /**
187
- * @sanitize: method=StripTags
188
- *
189
- * @generated from protobuf field: optional string invite_url = 3;
178
+ * @generated from protobuf field: optional string invite_url = 3
190
179
  */
191
180
  inviteUrl?: string;
192
181
  /**
193
- * @sanitize: method=StripTags
194
- *
195
- * @generated from protobuf field: repeated string ignored_jobs = 4;
182
+ * @generated from protobuf field: repeated string ignored_jobs = 4
196
183
  */
197
184
  ignoredJobs: string[];
198
185
  /**
199
- * @generated from protobuf field: optional resources.settings.DiscordBotPresence bot_presence = 5;
186
+ * @generated from protobuf field: optional resources.settings.DiscordBotPresence bot_presence = 5
200
187
  */
201
188
  botPresence?: DiscordBotPresence;
189
+ /**
190
+ * @generated from protobuf field: optional string bot_id = 6
191
+ */
192
+ botId?: string;
193
+ /**
194
+ * @generated from protobuf field: int64 bot_permissions = 7
195
+ */
196
+ botPermissions: number;
202
197
  }
203
198
  /**
204
199
  * @generated from protobuf message resources.settings.DiscordBotPresence
205
200
  */
206
201
  export interface DiscordBotPresence {
207
202
  /**
208
- * @generated from protobuf field: resources.settings.DiscordBotPresenceType type = 1;
203
+ * @generated from protobuf field: resources.settings.DiscordBotPresenceType type = 1
209
204
  */
210
205
  type: DiscordBotPresenceType;
211
206
  /**
212
- * @sanitize: method=StripTags
213
- *
214
- * @generated from protobuf field: optional string status = 2;
207
+ * @generated from protobuf field: optional string status = 2
215
208
  */
216
209
  status?: string;
217
210
  /**
218
- * @sanitize: method=StripTags
219
- *
220
- * @generated from protobuf field: optional string url = 3;
211
+ * @generated from protobuf field: optional string url = 3
221
212
  */
222
213
  url?: string;
223
214
  }
@@ -226,14 +217,31 @@ export interface DiscordBotPresence {
226
217
  */
227
218
  export interface System {
228
219
  /**
229
- * @generated from protobuf field: bool banner_message_enabled = 1;
220
+ * @generated from protobuf field: bool banner_message_enabled = 1
230
221
  */
231
222
  bannerMessageEnabled: boolean;
232
223
  /**
233
- * @generated from protobuf field: resources.settings.BannerMessage banner_message = 2;
224
+ * @generated from protobuf field: resources.settings.BannerMessage banner_message = 2
234
225
  */
235
226
  bannerMessage?: BannerMessage;
236
227
  }
228
+ /**
229
+ * @generated from protobuf message resources.settings.Display
230
+ */
231
+ export interface Display {
232
+ /**
233
+ * IETF BCP 47 language tag (e.g. "en-US", "de-DE")
234
+ *
235
+ * @generated from protobuf field: optional string intl_locale = 1
236
+ */
237
+ intlLocale?: string;
238
+ /**
239
+ * ISO 4217 currency code (e.g. "USD", "EUR")
240
+ *
241
+ * @generated from protobuf field: string currency_name = 2
242
+ */
243
+ currencyName: string;
244
+ }
237
245
  /**
238
246
  * @generated from protobuf enum resources.settings.DiscordBotPresenceType
239
247
  */
@@ -264,15 +272,16 @@ class AppConfig$Type extends MessageType<AppConfig> {
264
272
  constructor() {
265
273
  super("resources.settings.AppConfig", [
266
274
  { no: 1, name: "version", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
267
- { no: 8, name: "default_locale", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxLen: "20" } } } },
275
+ { no: 8, name: "default_locale", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "20" } } } },
268
276
  { no: 2, name: "auth", kind: "message", T: () => Auth },
269
277
  { no: 3, name: "perms", kind: "message", T: () => Perms },
270
278
  { no: 4, name: "website", kind: "message", T: () => Website },
271
279
  { no: 5, name: "job_info", kind: "message", T: () => JobInfo },
272
280
  { no: 6, name: "user_tracker", kind: "message", T: () => UserTracker },
273
281
  { no: 7, name: "discord", kind: "message", T: () => Discord },
274
- { no: 9, name: "system", kind: "message", T: () => System }
275
- ]);
282
+ { no: 9, name: "system", kind: "message", T: () => System },
283
+ { no: 10, name: "display", kind: "message", T: () => Display }
284
+ ], { "codegen.dbscanner.dbscanner": { enabled: true, partial: true } });
276
285
  }
277
286
  create(value?: PartialMessage<AppConfig>): AppConfig {
278
287
  const message = globalThis.Object.create((this.messagePrototype!));
@@ -313,6 +322,9 @@ class AppConfig$Type extends MessageType<AppConfig> {
313
322
  case /* resources.settings.System system */ 9:
314
323
  message.system = System.internalBinaryRead(reader, reader.uint32(), options, message.system);
315
324
  break;
325
+ case /* resources.settings.Display display */ 10:
326
+ message.display = Display.internalBinaryRead(reader, reader.uint32(), options, message.display);
327
+ break;
316
328
  default:
317
329
  let u = options.readUnknownField;
318
330
  if (u === "throw")
@@ -352,6 +364,9 @@ class AppConfig$Type extends MessageType<AppConfig> {
352
364
  /* resources.settings.System system = 9; */
353
365
  if (message.system)
354
366
  System.internalBinaryWrite(message.system, writer.tag(9, WireType.LengthDelimited).fork(), options).join();
367
+ /* resources.settings.Display display = 10; */
368
+ if (message.display)
369
+ Display.internalBinaryWrite(message.display, writer.tag(10, WireType.LengthDelimited).fork(), options).join();
355
370
  let u = options.writeUnknownFields;
356
371
  if (u !== false)
357
372
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -421,7 +436,7 @@ export const Auth = new Auth$Type();
421
436
  class Perms$Type extends MessageType<Perms> {
422
437
  constructor() {
423
438
  super("resources.settings.Perms", [
424
- { no: 1, name: "default", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => Perm, options: { "validate.rules": { repeated: { maxItems: "100" } } } }
439
+ { no: 1, name: "default", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => Perm, options: { "buf.validate.field": { repeated: { maxItems: "100" } } } }
425
440
  ]);
426
441
  }
427
442
  create(value?: PartialMessage<Perms>): Perms {
@@ -468,8 +483,8 @@ export const Perms = new Perms$Type();
468
483
  class Perm$Type extends MessageType<Perm> {
469
484
  constructor() {
470
485
  super("resources.settings.Perm", [
471
- { no: 1, name: "category", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxLen: "128" } } } },
472
- { no: 2, name: "name", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxLen: "255" } } } }
486
+ { no: 1, name: "category", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "128" } }, "codegen.sanitizer.sanitizer": { enabled: true, method: "StripTags" } } },
487
+ { no: 2, name: "name", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "255" } }, "codegen.sanitizer.sanitizer": { enabled: true, method: "StripTags" } } }
473
488
  ]);
474
489
  }
475
490
  create(value?: PartialMessage<Perm>): Perm {
@@ -577,8 +592,8 @@ export const Website = new Website$Type();
577
592
  class Links$Type extends MessageType<Links> {
578
593
  constructor() {
579
594
  super("resources.settings.Links", [
580
- { no: 1, name: "privacy_policy", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxLen: "255" } } } },
581
- { no: 2, name: "imprint", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxLen: "255" } } } }
595
+ { no: 1, name: "privacy_policy", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "255" } }, "codegen.sanitizer.sanitizer": { enabled: true, method: "StripTags" } } },
596
+ { no: 2, name: "imprint", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "255" } }, "codegen.sanitizer.sanitizer": { enabled: true, method: "StripTags" } } }
582
597
  ]);
583
598
  }
584
599
  create(value?: PartialMessage<Links>): Links {
@@ -630,9 +645,9 @@ export const Links = new Links$Type();
630
645
  class JobInfo$Type extends MessageType<JobInfo> {
631
646
  constructor() {
632
647
  super("resources.settings.JobInfo", [
633
- { no: 1, name: "unemployed_job", kind: "message", T: () => UnemployedJob, options: { "validate.rules": { message: { required: true } } } },
634
- { no: 2, name: "public_jobs", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { repeated: { maxItems: "100" } } } },
635
- { no: 3, name: "hidden_jobs", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { repeated: { maxItems: "100" } } } }
648
+ { no: 1, name: "unemployed_job", kind: "message", T: () => UnemployedJob, options: { "buf.validate.field": { required: true } } },
649
+ { no: 2, name: "public_jobs", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { repeated: { maxItems: "100" } }, "codegen.sanitizer.sanitizer": { enabled: true, method: "StripTags" } } },
650
+ { no: 3, name: "hidden_jobs", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { repeated: { maxItems: "100" } }, "codegen.sanitizer.sanitizer": { enabled: true, method: "StripTags" } } }
636
651
  ]);
637
652
  }
638
653
  create(value?: PartialMessage<JobInfo>): JobInfo {
@@ -692,8 +707,8 @@ export const JobInfo = new JobInfo$Type();
692
707
  class UnemployedJob$Type extends MessageType<UnemployedJob> {
693
708
  constructor() {
694
709
  super("resources.settings.UnemployedJob", [
695
- { no: 1, name: "name", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxLen: "20" } } } },
696
- { no: 2, name: "grade", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "validate.rules": { int32: { gte: 0 } } } }
710
+ { no: 1, name: "name", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "20" } } } },
711
+ { no: 2, name: "grade", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gte: 0 } } } }
697
712
  ]);
698
713
  }
699
714
  create(value?: PartialMessage<UnemployedJob>): UnemployedJob {
@@ -747,8 +762,8 @@ export const UnemployedJob = new UnemployedJob$Type();
747
762
  class UserTracker$Type extends MessageType<UserTracker> {
748
763
  constructor() {
749
764
  super("resources.settings.UserTracker", [
750
- { no: 1, name: "refresh_time", kind: "message", T: () => Duration, options: { "validate.rules": { duration: { required: true, lt: { seconds: "60" }, gte: { nanos: 500000000 } } } } },
751
- { no: 2, name: "db_refresh_time", kind: "message", T: () => Duration, options: { "validate.rules": { duration: { required: true, lt: { seconds: "60" }, gte: { nanos: 500000000 } } } } }
765
+ { no: 1, name: "refresh_time", kind: "message", T: () => Duration, options: { "buf.validate.field": { required: true, duration: { lt: { seconds: "60" }, gte: { nanos: 500000000 } } } } },
766
+ { no: 2, name: "db_refresh_time", kind: "message", T: () => Duration, options: { "buf.validate.field": { required: true, duration: { lt: { seconds: "60" }, gte: { nanos: 500000000 } } } } }
752
767
  ]);
753
768
  }
754
769
  create(value?: PartialMessage<UserTracker>): UserTracker {
@@ -801,16 +816,19 @@ class Discord$Type extends MessageType<Discord> {
801
816
  constructor() {
802
817
  super("resources.settings.Discord", [
803
818
  { no: 1, name: "enabled", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
804
- { no: 2, name: "sync_interval", kind: "message", T: () => Duration, options: { "validate.rules": { duration: { required: true, lt: { seconds: "180000000" }, gte: { seconds: "60" } } } } },
805
- { no: 3, name: "invite_url", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxLen: "255" } } } },
806
- { no: 4, name: "ignored_jobs", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { repeated: { maxItems: "100" } } } },
807
- { no: 5, name: "bot_presence", kind: "message", T: () => DiscordBotPresence }
819
+ { no: 2, name: "sync_interval", kind: "message", T: () => Duration, options: { "buf.validate.field": { required: true, duration: { lt: { seconds: "180000000" }, gte: { seconds: "60" } } } } },
820
+ { no: 3, name: "invite_url", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "255" } }, "codegen.sanitizer.sanitizer": { enabled: true, method: "StripTags" } } },
821
+ { no: 4, name: "ignored_jobs", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { repeated: { maxItems: "100" } }, "codegen.sanitizer.sanitizer": { enabled: true, method: "StripTags" } } },
822
+ { no: 5, name: "bot_presence", kind: "message", T: () => DiscordBotPresence },
823
+ { no: 6, name: "bot_id", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "255" } }, "codegen.sanitizer.sanitizer": { enabled: true, method: "StripTags" } } },
824
+ { no: 7, name: "bot_permissions", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }
808
825
  ]);
809
826
  }
810
827
  create(value?: PartialMessage<Discord>): Discord {
811
828
  const message = globalThis.Object.create((this.messagePrototype!));
812
829
  message.enabled = false;
813
830
  message.ignoredJobs = [];
831
+ message.botPermissions = 0;
814
832
  if (value !== undefined)
815
833
  reflectionMergePartial<Discord>(this, message, value);
816
834
  return message;
@@ -835,6 +853,12 @@ class Discord$Type extends MessageType<Discord> {
835
853
  case /* optional resources.settings.DiscordBotPresence bot_presence */ 5:
836
854
  message.botPresence = DiscordBotPresence.internalBinaryRead(reader, reader.uint32(), options, message.botPresence);
837
855
  break;
856
+ case /* optional string bot_id */ 6:
857
+ message.botId = reader.string();
858
+ break;
859
+ case /* int64 bot_permissions */ 7:
860
+ message.botPermissions = reader.int64().toNumber();
861
+ break;
838
862
  default:
839
863
  let u = options.readUnknownField;
840
864
  if (u === "throw")
@@ -862,6 +886,12 @@ class Discord$Type extends MessageType<Discord> {
862
886
  /* optional resources.settings.DiscordBotPresence bot_presence = 5; */
863
887
  if (message.botPresence)
864
888
  DiscordBotPresence.internalBinaryWrite(message.botPresence, writer.tag(5, WireType.LengthDelimited).fork(), options).join();
889
+ /* optional string bot_id = 6; */
890
+ if (message.botId !== undefined)
891
+ writer.tag(6, WireType.LengthDelimited).string(message.botId);
892
+ /* int64 bot_permissions = 7; */
893
+ if (message.botPermissions !== 0)
894
+ writer.tag(7, WireType.Varint).int64(message.botPermissions);
865
895
  let u = options.writeUnknownFields;
866
896
  if (u !== false)
867
897
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -877,8 +907,8 @@ class DiscordBotPresence$Type extends MessageType<DiscordBotPresence> {
877
907
  constructor() {
878
908
  super("resources.settings.DiscordBotPresence", [
879
909
  { no: 1, name: "type", kind: "enum", T: () => ["resources.settings.DiscordBotPresenceType", DiscordBotPresenceType, "DISCORD_BOT_PRESENCE_TYPE_"] },
880
- { no: 2, name: "status", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
881
- { no: 3, name: "url", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ }
910
+ { no: 2, name: "status", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "codegen.sanitizer.sanitizer": { enabled: true, method: "StripTags" } } },
911
+ { no: 3, name: "url", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "codegen.sanitizer.sanitizer": { enabled: true, method: "StripTags" } } }
882
912
  ]);
883
913
  }
884
914
  create(value?: PartialMessage<DiscordBotPresence>): DiscordBotPresence {
@@ -987,3 +1017,57 @@ class System$Type extends MessageType<System> {
987
1017
  * @generated MessageType for protobuf message resources.settings.System
988
1018
  */
989
1019
  export const System = new System$Type();
1020
+ // @generated message type with reflection information, may provide speed optimized methods
1021
+ class Display$Type extends MessageType<Display> {
1022
+ constructor() {
1023
+ super("resources.settings.Display", [
1024
+ { no: 1, name: "intl_locale", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "32" } }, "codegen.sanitizer.sanitizer": { enabled: true, method: "StripTags" } } },
1025
+ { no: 2, name: "currency_name", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { len: "3" } }, "codegen.sanitizer.sanitizer": { enabled: true, method: "StripTags" } } }
1026
+ ]);
1027
+ }
1028
+ create(value?: PartialMessage<Display>): Display {
1029
+ const message = globalThis.Object.create((this.messagePrototype!));
1030
+ message.currencyName = "";
1031
+ if (value !== undefined)
1032
+ reflectionMergePartial<Display>(this, message, value);
1033
+ return message;
1034
+ }
1035
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Display): Display {
1036
+ let message = target ?? this.create(), end = reader.pos + length;
1037
+ while (reader.pos < end) {
1038
+ let [fieldNo, wireType] = reader.tag();
1039
+ switch (fieldNo) {
1040
+ case /* optional string intl_locale */ 1:
1041
+ message.intlLocale = reader.string();
1042
+ break;
1043
+ case /* string currency_name */ 2:
1044
+ message.currencyName = reader.string();
1045
+ break;
1046
+ default:
1047
+ let u = options.readUnknownField;
1048
+ if (u === "throw")
1049
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
1050
+ let d = reader.skip(wireType);
1051
+ if (u !== false)
1052
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
1053
+ }
1054
+ }
1055
+ return message;
1056
+ }
1057
+ internalBinaryWrite(message: Display, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
1058
+ /* optional string intl_locale = 1; */
1059
+ if (message.intlLocale !== undefined)
1060
+ writer.tag(1, WireType.LengthDelimited).string(message.intlLocale);
1061
+ /* string currency_name = 2; */
1062
+ if (message.currencyName !== "")
1063
+ writer.tag(2, WireType.LengthDelimited).string(message.currencyName);
1064
+ let u = options.writeUnknownFields;
1065
+ if (u !== false)
1066
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
1067
+ return writer;
1068
+ }
1069
+ }
1070
+ /**
1071
+ * @generated MessageType for protobuf message resources.settings.Display
1072
+ */
1073
+ export const Display = new Display$Type();