@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
@@ -0,0 +1,136 @@
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/centrum/joblist.proto" (package "resources.centrum", 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.centrum.JobList
16
+ */
17
+ export interface JobList {
18
+ /**
19
+ * @generated from protobuf field: repeated resources.centrum.JobListEntry jobs = 1
20
+ */
21
+ jobs: JobListEntry[];
22
+ }
23
+ /**
24
+ * @generated from protobuf message resources.centrum.JobListEntry
25
+ */
26
+ export interface JobListEntry {
27
+ /**
28
+ * @generated from protobuf field: string name = 1
29
+ */
30
+ name: string;
31
+ /**
32
+ * @generated from protobuf field: optional string label = 2
33
+ */
34
+ label?: string;
35
+ }
36
+ // @generated message type with reflection information, may provide speed optimized methods
37
+ class JobList$Type extends MessageType<JobList> {
38
+ constructor() {
39
+ super("resources.centrum.JobList", [
40
+ { no: 1, name: "jobs", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => JobListEntry, options: { "buf.validate.field": { repeated: { maxItems: "10" } } } }
41
+ ]);
42
+ }
43
+ create(value?: PartialMessage<JobList>): JobList {
44
+ const message = globalThis.Object.create((this.messagePrototype!));
45
+ message.jobs = [];
46
+ if (value !== undefined)
47
+ reflectionMergePartial<JobList>(this, message, value);
48
+ return message;
49
+ }
50
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: JobList): JobList {
51
+ let message = target ?? this.create(), end = reader.pos + length;
52
+ while (reader.pos < end) {
53
+ let [fieldNo, wireType] = reader.tag();
54
+ switch (fieldNo) {
55
+ case /* repeated resources.centrum.JobListEntry jobs */ 1:
56
+ message.jobs.push(JobListEntry.internalBinaryRead(reader, reader.uint32(), options));
57
+ break;
58
+ default:
59
+ let u = options.readUnknownField;
60
+ if (u === "throw")
61
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
62
+ let d = reader.skip(wireType);
63
+ if (u !== false)
64
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
65
+ }
66
+ }
67
+ return message;
68
+ }
69
+ internalBinaryWrite(message: JobList, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
70
+ /* repeated resources.centrum.JobListEntry jobs = 1; */
71
+ for (let i = 0; i < message.jobs.length; i++)
72
+ JobListEntry.internalBinaryWrite(message.jobs[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
73
+ let u = options.writeUnknownFields;
74
+ if (u !== false)
75
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
76
+ return writer;
77
+ }
78
+ }
79
+ /**
80
+ * @generated MessageType for protobuf message resources.centrum.JobList
81
+ */
82
+ export const JobList = new JobList$Type();
83
+ // @generated message type with reflection information, may provide speed optimized methods
84
+ class JobListEntry$Type extends MessageType<JobListEntry> {
85
+ constructor() {
86
+ super("resources.centrum.JobListEntry", [
87
+ { no: 1, name: "name", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "20" } } } },
88
+ { no: 2, name: "label", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ }
89
+ ]);
90
+ }
91
+ create(value?: PartialMessage<JobListEntry>): JobListEntry {
92
+ const message = globalThis.Object.create((this.messagePrototype!));
93
+ message.name = "";
94
+ if (value !== undefined)
95
+ reflectionMergePartial<JobListEntry>(this, message, value);
96
+ return message;
97
+ }
98
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: JobListEntry): JobListEntry {
99
+ let message = target ?? this.create(), end = reader.pos + length;
100
+ while (reader.pos < end) {
101
+ let [fieldNo, wireType] = reader.tag();
102
+ switch (fieldNo) {
103
+ case /* string name */ 1:
104
+ message.name = reader.string();
105
+ break;
106
+ case /* optional string label */ 2:
107
+ message.label = reader.string();
108
+ break;
109
+ default:
110
+ let u = options.readUnknownField;
111
+ if (u === "throw")
112
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
113
+ let d = reader.skip(wireType);
114
+ if (u !== false)
115
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
116
+ }
117
+ }
118
+ return message;
119
+ }
120
+ internalBinaryWrite(message: JobListEntry, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
121
+ /* string name = 1; */
122
+ if (message.name !== "")
123
+ writer.tag(1, WireType.LengthDelimited).string(message.name);
124
+ /* optional string label = 2; */
125
+ if (message.label !== undefined)
126
+ writer.tag(2, WireType.LengthDelimited).string(message.label);
127
+ let u = options.writeUnknownFields;
128
+ if (u !== false)
129
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
130
+ return writer;
131
+ }
132
+ }
133
+ /**
134
+ * @generated MessageType for protobuf message resources.centrum.JobListEntry
135
+ */
136
+ export const JobListEntry = new JobListEntry$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/centrum/settings.proto" (package "resources.centrum", syntax proto3)
2
+ // @generated from protobuf file "resources/centrum/settings/settings.proto" (package "resources.centrum.settings", 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 { CentrumAccessLevel } from "./access";
15
- import { Duration } from "../../google/protobuf/duration";
16
- import { CentrumAccess } from "./access";
14
+ import { CentrumAccessLevel } from "../access/access";
15
+ import { Duration } from "../../../google/protobuf/duration";
16
+ import { CentrumAccess } from "../access/access";
17
17
  /**
18
- * @generated from protobuf message resources.centrum.Settings
18
+ * @generated from protobuf message resources.centrum.settings.Settings
19
19
  */
20
20
  export interface Settings {
21
21
  /**
@@ -27,7 +27,7 @@ export interface Settings {
27
27
  */
28
28
  enabled: boolean;
29
29
  /**
30
- * @generated from protobuf field: resources.centrum.CentrumType type = 3
30
+ * @generated from protobuf field: resources.centrum.settings.CentrumType type = 3
31
31
  */
32
32
  type: CentrumType;
33
33
  /**
@@ -35,40 +35,40 @@ export interface Settings {
35
35
  */
36
36
  public: boolean;
37
37
  /**
38
- * @generated from protobuf field: resources.centrum.CentrumMode mode = 8
38
+ * @generated from protobuf field: resources.centrum.settings.CentrumMode mode = 8
39
39
  */
40
40
  mode: CentrumMode;
41
41
  /**
42
- * @generated from protobuf field: resources.centrum.CentrumMode fallback_mode = 4
42
+ * @generated from protobuf field: resources.centrum.settings.CentrumMode fallback_mode = 4
43
43
  */
44
44
  fallbackMode: CentrumMode;
45
45
  /**
46
- * @generated from protobuf field: optional resources.centrum.PredefinedStatus predefined_status = 5
46
+ * @generated from protobuf field: optional resources.centrum.settings.PredefinedStatus predefined_status = 5
47
47
  */
48
48
  predefinedStatus?: PredefinedStatus;
49
49
  /**
50
- * @generated from protobuf field: resources.centrum.Timings timings = 6
50
+ * @generated from protobuf field: resources.centrum.settings.Timings timings = 6
51
51
  */
52
52
  timings?: Timings;
53
53
  /**
54
- * @generated from protobuf field: resources.centrum.Configuration configuration = 10
54
+ * @generated from protobuf field: resources.centrum.settings.Configuration configuration = 10
55
55
  */
56
56
  configuration?: Configuration;
57
57
  /**
58
- * @generated from protobuf field: optional resources.centrum.CentrumAccess access = 7
58
+ * @generated from protobuf field: optional resources.centrum.access.CentrumAccess access = 7
59
59
  */
60
60
  access?: CentrumAccess;
61
61
  /**
62
- * @generated from protobuf field: optional resources.centrum.CentrumAccess offered_access = 12
62
+ * @generated from protobuf field: optional resources.centrum.access.CentrumAccess offered_access = 12
63
63
  */
64
64
  offeredAccess?: CentrumAccess;
65
65
  /**
66
- * @generated from protobuf field: optional resources.centrum.EffectiveAccess effective_access = 11
66
+ * @generated from protobuf field: optional resources.centrum.settings.EffectiveAccess effective_access = 11
67
67
  */
68
68
  effectiveAccess?: EffectiveAccess;
69
69
  }
70
70
  /**
71
- * @generated from protobuf message resources.centrum.PredefinedStatus
71
+ * @generated from protobuf message resources.centrum.settings.PredefinedStatus
72
72
  */
73
73
  export interface PredefinedStatus {
74
74
  /**
@@ -81,7 +81,7 @@ export interface PredefinedStatus {
81
81
  dispatchStatus: string[];
82
82
  }
83
83
  /**
84
- * @generated from protobuf message resources.centrum.Timings
84
+ * @generated from protobuf message resources.centrum.settings.Timings
85
85
  */
86
86
  export interface Timings {
87
87
  /**
@@ -98,7 +98,7 @@ export interface Timings {
98
98
  requireUnitReminderSeconds: number;
99
99
  }
100
100
  /**
101
- * @generated from protobuf message resources.centrum.Configuration
101
+ * @generated from protobuf message resources.centrum.settings.Configuration
102
102
  */
103
103
  export interface Configuration {
104
104
  /**
@@ -115,25 +115,25 @@ export interface Configuration {
115
115
  deduplicationDuration?: Duration;
116
116
  }
117
117
  /**
118
- * @generated from protobuf message resources.centrum.EffectiveAccess
118
+ * @generated from protobuf message resources.centrum.settings.EffectiveAccess
119
119
  */
120
120
  export interface EffectiveAccess {
121
121
  /**
122
- * @generated from protobuf field: resources.centrum.EffectiveDispatchAccess dispatches = 1
122
+ * @generated from protobuf field: resources.centrum.settings.EffectiveDispatchAccess dispatches = 1
123
123
  */
124
124
  dispatches?: EffectiveDispatchAccess;
125
125
  }
126
126
  /**
127
- * @generated from protobuf message resources.centrum.EffectiveDispatchAccess
127
+ * @generated from protobuf message resources.centrum.settings.EffectiveDispatchAccess
128
128
  */
129
129
  export interface EffectiveDispatchAccess {
130
130
  /**
131
- * @generated from protobuf field: repeated resources.centrum.JobAccessEntry jobs = 1
131
+ * @generated from protobuf field: repeated resources.centrum.settings.JobAccessEntry jobs = 1
132
132
  */
133
133
  jobs: JobAccessEntry[];
134
134
  }
135
135
  /**
136
- * @generated from protobuf message resources.centrum.JobAccessEntry
136
+ * @generated from protobuf message resources.centrum.settings.JobAccessEntry
137
137
  */
138
138
  export interface JobAccessEntry {
139
139
  /**
@@ -145,12 +145,12 @@ export interface JobAccessEntry {
145
145
  */
146
146
  jobLabel?: string;
147
147
  /**
148
- * @generated from protobuf field: resources.centrum.CentrumAccessLevel access = 3
148
+ * @generated from protobuf field: resources.centrum.access.CentrumAccessLevel access = 3
149
149
  */
150
150
  access: CentrumAccessLevel;
151
151
  }
152
152
  /**
153
- * @generated from protobuf enum resources.centrum.CentrumType
153
+ * @generated from protobuf enum resources.centrum.settings.CentrumType
154
154
  */
155
155
  export enum CentrumType {
156
156
  /**
@@ -167,7 +167,7 @@ export enum CentrumType {
167
167
  DELIVERY = 2
168
168
  }
169
169
  /**
170
- * @generated from protobuf enum resources.centrum.CentrumMode
170
+ * @generated from protobuf enum resources.centrum.settings.CentrumMode
171
171
  */
172
172
  export enum CentrumMode {
173
173
  /**
@@ -194,13 +194,13 @@ export enum CentrumMode {
194
194
  // @generated message type with reflection information, may provide speed optimized methods
195
195
  class Settings$Type extends MessageType<Settings> {
196
196
  constructor() {
197
- super("resources.centrum.Settings", [
197
+ super("resources.centrum.settings.Settings", [
198
198
  { no: 1, name: "job", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "20" } } } },
199
199
  { no: 2, name: "enabled", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
200
- { no: 3, name: "type", kind: "enum", T: () => ["resources.centrum.CentrumType", CentrumType, "CENTRUM_TYPE_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
200
+ { no: 3, name: "type", kind: "enum", T: () => ["resources.centrum.settings.CentrumType", CentrumType, "CENTRUM_TYPE_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
201
201
  { no: 9, name: "public", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
202
- { no: 8, name: "mode", kind: "enum", T: () => ["resources.centrum.CentrumMode", CentrumMode, "CENTRUM_MODE_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
203
- { no: 4, name: "fallback_mode", kind: "enum", T: () => ["resources.centrum.CentrumMode", CentrumMode, "CENTRUM_MODE_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
202
+ { no: 8, name: "mode", kind: "enum", T: () => ["resources.centrum.settings.CentrumMode", CentrumMode, "CENTRUM_MODE_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
203
+ { no: 4, name: "fallback_mode", kind: "enum", T: () => ["resources.centrum.settings.CentrumMode", CentrumMode, "CENTRUM_MODE_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
204
204
  { no: 5, name: "predefined_status", kind: "message", T: () => PredefinedStatus },
205
205
  { no: 6, name: "timings", kind: "message", T: () => Timings },
206
206
  { no: 10, name: "configuration", kind: "message", T: () => Configuration },
@@ -232,34 +232,34 @@ class Settings$Type extends MessageType<Settings> {
232
232
  case /* bool enabled */ 2:
233
233
  message.enabled = reader.bool();
234
234
  break;
235
- case /* resources.centrum.CentrumType type */ 3:
235
+ case /* resources.centrum.settings.CentrumType type */ 3:
236
236
  message.type = reader.int32();
237
237
  break;
238
238
  case /* bool public */ 9:
239
239
  message.public = reader.bool();
240
240
  break;
241
- case /* resources.centrum.CentrumMode mode */ 8:
241
+ case /* resources.centrum.settings.CentrumMode mode */ 8:
242
242
  message.mode = reader.int32();
243
243
  break;
244
- case /* resources.centrum.CentrumMode fallback_mode */ 4:
244
+ case /* resources.centrum.settings.CentrumMode fallback_mode */ 4:
245
245
  message.fallbackMode = reader.int32();
246
246
  break;
247
- case /* optional resources.centrum.PredefinedStatus predefined_status */ 5:
247
+ case /* optional resources.centrum.settings.PredefinedStatus predefined_status */ 5:
248
248
  message.predefinedStatus = PredefinedStatus.internalBinaryRead(reader, reader.uint32(), options, message.predefinedStatus);
249
249
  break;
250
- case /* resources.centrum.Timings timings */ 6:
250
+ case /* resources.centrum.settings.Timings timings */ 6:
251
251
  message.timings = Timings.internalBinaryRead(reader, reader.uint32(), options, message.timings);
252
252
  break;
253
- case /* resources.centrum.Configuration configuration */ 10:
253
+ case /* resources.centrum.settings.Configuration configuration */ 10:
254
254
  message.configuration = Configuration.internalBinaryRead(reader, reader.uint32(), options, message.configuration);
255
255
  break;
256
- case /* optional resources.centrum.CentrumAccess access */ 7:
256
+ case /* optional resources.centrum.access.CentrumAccess access */ 7:
257
257
  message.access = CentrumAccess.internalBinaryRead(reader, reader.uint32(), options, message.access);
258
258
  break;
259
- case /* optional resources.centrum.CentrumAccess offered_access */ 12:
259
+ case /* optional resources.centrum.access.CentrumAccess offered_access */ 12:
260
260
  message.offeredAccess = CentrumAccess.internalBinaryRead(reader, reader.uint32(), options, message.offeredAccess);
261
261
  break;
262
- case /* optional resources.centrum.EffectiveAccess effective_access */ 11:
262
+ case /* optional resources.centrum.settings.EffectiveAccess effective_access */ 11:
263
263
  message.effectiveAccess = EffectiveAccess.internalBinaryRead(reader, reader.uint32(), options, message.effectiveAccess);
264
264
  break;
265
265
  default:
@@ -280,34 +280,34 @@ class Settings$Type extends MessageType<Settings> {
280
280
  /* bool enabled = 2; */
281
281
  if (message.enabled !== false)
282
282
  writer.tag(2, WireType.Varint).bool(message.enabled);
283
- /* resources.centrum.CentrumType type = 3; */
283
+ /* resources.centrum.settings.CentrumType type = 3; */
284
284
  if (message.type !== 0)
285
285
  writer.tag(3, WireType.Varint).int32(message.type);
286
- /* resources.centrum.CentrumMode fallback_mode = 4; */
286
+ /* resources.centrum.settings.CentrumMode fallback_mode = 4; */
287
287
  if (message.fallbackMode !== 0)
288
288
  writer.tag(4, WireType.Varint).int32(message.fallbackMode);
289
- /* optional resources.centrum.PredefinedStatus predefined_status = 5; */
289
+ /* optional resources.centrum.settings.PredefinedStatus predefined_status = 5; */
290
290
  if (message.predefinedStatus)
291
291
  PredefinedStatus.internalBinaryWrite(message.predefinedStatus, writer.tag(5, WireType.LengthDelimited).fork(), options).join();
292
- /* resources.centrum.Timings timings = 6; */
292
+ /* resources.centrum.settings.Timings timings = 6; */
293
293
  if (message.timings)
294
294
  Timings.internalBinaryWrite(message.timings, writer.tag(6, WireType.LengthDelimited).fork(), options).join();
295
- /* optional resources.centrum.CentrumAccess access = 7; */
295
+ /* optional resources.centrum.access.CentrumAccess access = 7; */
296
296
  if (message.access)
297
297
  CentrumAccess.internalBinaryWrite(message.access, writer.tag(7, WireType.LengthDelimited).fork(), options).join();
298
- /* resources.centrum.CentrumMode mode = 8; */
298
+ /* resources.centrum.settings.CentrumMode mode = 8; */
299
299
  if (message.mode !== 0)
300
300
  writer.tag(8, WireType.Varint).int32(message.mode);
301
301
  /* bool public = 9; */
302
302
  if (message.public !== false)
303
303
  writer.tag(9, WireType.Varint).bool(message.public);
304
- /* resources.centrum.Configuration configuration = 10; */
304
+ /* resources.centrum.settings.Configuration configuration = 10; */
305
305
  if (message.configuration)
306
306
  Configuration.internalBinaryWrite(message.configuration, writer.tag(10, WireType.LengthDelimited).fork(), options).join();
307
- /* optional resources.centrum.EffectiveAccess effective_access = 11; */
307
+ /* optional resources.centrum.settings.EffectiveAccess effective_access = 11; */
308
308
  if (message.effectiveAccess)
309
309
  EffectiveAccess.internalBinaryWrite(message.effectiveAccess, writer.tag(11, WireType.LengthDelimited).fork(), options).join();
310
- /* optional resources.centrum.CentrumAccess offered_access = 12; */
310
+ /* optional resources.centrum.access.CentrumAccess offered_access = 12; */
311
311
  if (message.offeredAccess)
312
312
  CentrumAccess.internalBinaryWrite(message.offeredAccess, writer.tag(12, WireType.LengthDelimited).fork(), options).join();
313
313
  let u = options.writeUnknownFields;
@@ -317,15 +317,15 @@ class Settings$Type extends MessageType<Settings> {
317
317
  }
318
318
  }
319
319
  /**
320
- * @generated MessageType for protobuf message resources.centrum.Settings
320
+ * @generated MessageType for protobuf message resources.centrum.settings.Settings
321
321
  */
322
322
  export const Settings = new Settings$Type();
323
323
  // @generated message type with reflection information, may provide speed optimized methods
324
324
  class PredefinedStatus$Type extends MessageType<PredefinedStatus> {
325
325
  constructor() {
326
- super("resources.centrum.PredefinedStatus", [
327
- { no: 1, name: "unit_status", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { repeated: { maxItems: "20", items: { string: { maxLen: "64" } } } }, "codegen.sanitizer.sanitizer": { enabled: true, method: "StripTags" } } },
328
- { no: 2, name: "dispatch_status", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { repeated: { maxItems: "20", items: { string: { maxLen: "64" } } } }, "codegen.sanitizer.sanitizer": { enabled: true, method: "StripTags" } } }
326
+ super("resources.centrum.settings.PredefinedStatus", [
327
+ { no: 1, name: "unit_status", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { repeated: { maxItems: "20", items: { string: { maxLen: "64" } } } }, "codegen.sanitizer.sanitizer": { enabled: true, stripHtmlTags: true } } },
328
+ { no: 2, name: "dispatch_status", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { repeated: { maxItems: "20", items: { string: { maxLen: "64" } } } }, "codegen.sanitizer.sanitizer": { enabled: true, stripHtmlTags: true } } }
329
329
  ], { "codegen.dbscanner.dbscanner": { enabled: true } });
330
330
  }
331
331
  create(value?: PartialMessage<PredefinedStatus>): PredefinedStatus {
@@ -372,13 +372,13 @@ class PredefinedStatus$Type extends MessageType<PredefinedStatus> {
372
372
  }
373
373
  }
374
374
  /**
375
- * @generated MessageType for protobuf message resources.centrum.PredefinedStatus
375
+ * @generated MessageType for protobuf message resources.centrum.settings.PredefinedStatus
376
376
  */
377
377
  export const PredefinedStatus = new PredefinedStatus$Type();
378
378
  // @generated message type with reflection information, may provide speed optimized methods
379
379
  class Timings$Type extends MessageType<Timings> {
380
380
  constructor() {
381
- super("resources.centrum.Timings", [
381
+ super("resources.centrum.settings.Timings", [
382
382
  { no: 1, name: "dispatch_max_wait", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/, options: { "buf.validate.field": { int64: { lt: "6000", gt: "30" } } } },
383
383
  { no: 2, name: "require_unit", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
384
384
  { no: 3, name: "require_unit_reminder_seconds", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/, options: { "buf.validate.field": { int64: { lt: "6000", gt: "30" } } } }
@@ -435,16 +435,16 @@ class Timings$Type extends MessageType<Timings> {
435
435
  }
436
436
  }
437
437
  /**
438
- * @generated MessageType for protobuf message resources.centrum.Timings
438
+ * @generated MessageType for protobuf message resources.centrum.settings.Timings
439
439
  */
440
440
  export const Timings = new Timings$Type();
441
441
  // @generated message type with reflection information, may provide speed optimized methods
442
442
  class Configuration$Type extends MessageType<Configuration> {
443
443
  constructor() {
444
- super("resources.centrum.Configuration", [
444
+ super("resources.centrum.settings.Configuration", [
445
445
  { no: 1, name: "deduplication_enabled", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
446
446
  { no: 2, name: "deduplication_radius", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/, options: { "buf.validate.field": { int64: { lt: "1000000", gt: "5" } } } },
447
- { no: 3, name: "deduplication_duration", kind: "message", T: () => Duration }
447
+ { no: 3, name: "deduplication_duration", kind: "message", T: () => Duration, options: { "buf.validate.field": { duration: { lte: { seconds: "3600" }, gt: {} } } } }
448
448
  ], { "codegen.dbscanner.dbscanner": { enabled: true } });
449
449
  }
450
450
  create(value?: PartialMessage<Configuration>): Configuration {
@@ -497,13 +497,13 @@ class Configuration$Type extends MessageType<Configuration> {
497
497
  }
498
498
  }
499
499
  /**
500
- * @generated MessageType for protobuf message resources.centrum.Configuration
500
+ * @generated MessageType for protobuf message resources.centrum.settings.Configuration
501
501
  */
502
502
  export const Configuration = new Configuration$Type();
503
503
  // @generated message type with reflection information, may provide speed optimized methods
504
504
  class EffectiveAccess$Type extends MessageType<EffectiveAccess> {
505
505
  constructor() {
506
- super("resources.centrum.EffectiveAccess", [
506
+ super("resources.centrum.settings.EffectiveAccess", [
507
507
  { no: 1, name: "dispatches", kind: "message", T: () => EffectiveDispatchAccess }
508
508
  ]);
509
509
  }
@@ -518,7 +518,7 @@ class EffectiveAccess$Type extends MessageType<EffectiveAccess> {
518
518
  while (reader.pos < end) {
519
519
  let [fieldNo, wireType] = reader.tag();
520
520
  switch (fieldNo) {
521
- case /* resources.centrum.EffectiveDispatchAccess dispatches */ 1:
521
+ case /* resources.centrum.settings.EffectiveDispatchAccess dispatches */ 1:
522
522
  message.dispatches = EffectiveDispatchAccess.internalBinaryRead(reader, reader.uint32(), options, message.dispatches);
523
523
  break;
524
524
  default:
@@ -533,7 +533,7 @@ class EffectiveAccess$Type extends MessageType<EffectiveAccess> {
533
533
  return message;
534
534
  }
535
535
  internalBinaryWrite(message: EffectiveAccess, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
536
- /* resources.centrum.EffectiveDispatchAccess dispatches = 1; */
536
+ /* resources.centrum.settings.EffectiveDispatchAccess dispatches = 1; */
537
537
  if (message.dispatches)
538
538
  EffectiveDispatchAccess.internalBinaryWrite(message.dispatches, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
539
539
  let u = options.writeUnknownFields;
@@ -543,13 +543,13 @@ class EffectiveAccess$Type extends MessageType<EffectiveAccess> {
543
543
  }
544
544
  }
545
545
  /**
546
- * @generated MessageType for protobuf message resources.centrum.EffectiveAccess
546
+ * @generated MessageType for protobuf message resources.centrum.settings.EffectiveAccess
547
547
  */
548
548
  export const EffectiveAccess = new EffectiveAccess$Type();
549
549
  // @generated message type with reflection information, may provide speed optimized methods
550
550
  class EffectiveDispatchAccess$Type extends MessageType<EffectiveDispatchAccess> {
551
551
  constructor() {
552
- super("resources.centrum.EffectiveDispatchAccess", [
552
+ super("resources.centrum.settings.EffectiveDispatchAccess", [
553
553
  { no: 1, name: "jobs", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => JobAccessEntry, options: { "tagger.tags": "alias:\"job_access\"" } }
554
554
  ]);
555
555
  }
@@ -565,7 +565,7 @@ class EffectiveDispatchAccess$Type extends MessageType<EffectiveDispatchAccess>
565
565
  while (reader.pos < end) {
566
566
  let [fieldNo, wireType] = reader.tag();
567
567
  switch (fieldNo) {
568
- case /* repeated resources.centrum.JobAccessEntry jobs */ 1:
568
+ case /* repeated resources.centrum.settings.JobAccessEntry jobs */ 1:
569
569
  message.jobs.push(JobAccessEntry.internalBinaryRead(reader, reader.uint32(), options));
570
570
  break;
571
571
  default:
@@ -580,7 +580,7 @@ class EffectiveDispatchAccess$Type extends MessageType<EffectiveDispatchAccess>
580
580
  return message;
581
581
  }
582
582
  internalBinaryWrite(message: EffectiveDispatchAccess, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
583
- /* repeated resources.centrum.JobAccessEntry jobs = 1; */
583
+ /* repeated resources.centrum.settings.JobAccessEntry jobs = 1; */
584
584
  for (let i = 0; i < message.jobs.length; i++)
585
585
  JobAccessEntry.internalBinaryWrite(message.jobs[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
586
586
  let u = options.writeUnknownFields;
@@ -590,16 +590,16 @@ class EffectiveDispatchAccess$Type extends MessageType<EffectiveDispatchAccess>
590
590
  }
591
591
  }
592
592
  /**
593
- * @generated MessageType for protobuf message resources.centrum.EffectiveDispatchAccess
593
+ * @generated MessageType for protobuf message resources.centrum.settings.EffectiveDispatchAccess
594
594
  */
595
595
  export const EffectiveDispatchAccess = new EffectiveDispatchAccess$Type();
596
596
  // @generated message type with reflection information, may provide speed optimized methods
597
597
  class JobAccessEntry$Type extends MessageType<JobAccessEntry> {
598
598
  constructor() {
599
- super("resources.centrum.JobAccessEntry", [
599
+ super("resources.centrum.settings.JobAccessEntry", [
600
600
  { no: 1, name: "job", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "20" } } } },
601
601
  { no: 2, name: "job_label", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
602
- { no: 3, name: "access", kind: "enum", T: () => ["resources.centrum.CentrumAccessLevel", CentrumAccessLevel, "CENTRUM_ACCESS_LEVEL_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } }
602
+ { no: 3, name: "access", kind: "enum", T: () => ["resources.centrum.access.CentrumAccessLevel", CentrumAccessLevel, "CENTRUM_ACCESS_LEVEL_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } }
603
603
  ]);
604
604
  }
605
605
  create(value?: PartialMessage<JobAccessEntry>): JobAccessEntry {
@@ -621,7 +621,7 @@ class JobAccessEntry$Type extends MessageType<JobAccessEntry> {
621
621
  case /* optional string job_label */ 2:
622
622
  message.jobLabel = reader.string();
623
623
  break;
624
- case /* resources.centrum.CentrumAccessLevel access */ 3:
624
+ case /* resources.centrum.access.CentrumAccessLevel access */ 3:
625
625
  message.access = reader.int32();
626
626
  break;
627
627
  default:
@@ -642,7 +642,7 @@ class JobAccessEntry$Type extends MessageType<JobAccessEntry> {
642
642
  /* optional string job_label = 2; */
643
643
  if (message.jobLabel !== undefined)
644
644
  writer.tag(2, WireType.LengthDelimited).string(message.jobLabel);
645
- /* resources.centrum.CentrumAccessLevel access = 3; */
645
+ /* resources.centrum.access.CentrumAccessLevel access = 3; */
646
646
  if (message.access !== 0)
647
647
  writer.tag(3, WireType.Varint).int32(message.access);
648
648
  let u = options.writeUnknownFields;
@@ -652,6 +652,6 @@ class JobAccessEntry$Type extends MessageType<JobAccessEntry> {
652
652
  }
653
653
  }
654
654
  /**
655
- * @generated MessageType for protobuf message resources.centrum.JobAccessEntry
655
+ * @generated MessageType for protobuf message resources.centrum.settings.JobAccessEntry
656
656
  */
657
657
  export const JobAccessEntry = new JobAccessEntry$Type();