@fivenet-app/gen 2026.5.1 → 2026.7.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 (74) hide show
  1. package/clients.ts +6 -0
  2. package/codegen/perms/perms.ts +14 -2
  3. package/codegen/sanitizer/sanitizer.ts +6 -0
  4. package/google/protobuf/descriptor.ts +11 -3
  5. package/google/protobuf/timestamp.ts +7 -6
  6. package/package.json +1 -1
  7. package/perms.ts +343 -3
  8. package/resources/access/access.ts +481 -0
  9. package/resources/calendar/access/access.ts +0 -330
  10. package/resources/calendar/calendar.ts +307 -25
  11. package/resources/calendar/entries/entries.ts +204 -11
  12. package/resources/centrum/units/access/access.ts +0 -373
  13. package/resources/centrum/units/units.ts +20 -8
  14. package/resources/citizens/labels/access.ts +0 -191
  15. package/resources/citizens/labels/labels.ts +20 -8
  16. package/resources/common/content/diff_activity.ts +1 -1
  17. package/resources/cron/cron.ts +1 -1
  18. package/resources/documents/access/access.ts +0 -329
  19. package/resources/documents/activity/activity.ts +49 -45
  20. package/resources/documents/documents.ts +1 -1
  21. package/resources/documents/requests/requests.ts +1 -1
  22. package/resources/documents/stamps/stamp.ts +40 -210
  23. package/resources/documents/templates/templates.ts +158 -318
  24. package/resources/jobs/colleagues/activity/activity.ts +1 -1
  25. package/resources/jobs/conduct/conduct.ts +2 -2
  26. package/resources/jobs/jobs.ts +22 -0
  27. package/resources/jobs/labels/labels.ts +9 -9
  28. package/resources/laws/laws.ts +24 -0
  29. package/resources/livemap/markers/marker_marker.ts +311 -4
  30. package/resources/mailer/access/access.ts +0 -457
  31. package/resources/mailer/emails/email.ts +4 -4
  32. package/resources/notifications/events/events.ts +18 -1
  33. package/resources/qualifications/access/access.ts +0 -248
  34. package/resources/qualifications/qualifications.ts +9 -9
  35. package/resources/settings/config.ts +53 -5
  36. package/resources/settings/data.ts +1 -1
  37. package/resources/stats/stats.ts +32 -20
  38. package/resources/sync/data/data.ts +13 -1
  39. package/resources/userinfo/userinfo.ts +202 -51
  40. package/resources/users/activity/activity.ts +1 -1
  41. package/resources/wiki/access/access.ts +0 -330
  42. package/resources/wiki/activity/activity.ts +45 -45
  43. package/resources/wiki/page.ts +9 -9
  44. package/services/calendar/calendar.ts +1 -1
  45. package/services/calendar/entries.ts +12 -1
  46. package/services/centrum/dispatches.ts +27 -7
  47. package/services/centrum/units.client.ts +15 -2
  48. package/services/centrum/units.ts +231 -123
  49. package/services/citizens/citizens.ts +1 -1
  50. package/services/citizens/labels.client.ts +7 -20
  51. package/services/citizens/labels.ts +35 -183
  52. package/services/documents/approval.ts +15 -4
  53. package/services/documents/collab.ts +1 -1
  54. package/services/documents/documents.ts +38 -38
  55. package/services/documents/stats.ts +14 -2
  56. package/services/filestore/filestore.ts +4 -4
  57. package/services/jobs/colleagues.ts +3 -3
  58. package/services/jobs/conduct.ts +2 -2
  59. package/services/jobs/groups.client.ts +22 -0
  60. package/services/jobs/groups.ts +9 -0
  61. package/services/jobs/timeclock.ts +2 -2
  62. package/services/mailer/thread.ts +2 -2
  63. package/services/qualifications/qualifications.ts +52 -34
  64. package/services/settings/accounts.ts +5 -5
  65. package/services/settings/config.ts +2 -2
  66. package/services/settings/cron.ts +2 -2
  67. package/services/settings/laws.client.ts +28 -2
  68. package/services/settings/laws.ts +229 -1
  69. package/services/settings/system.ts +6 -6
  70. package/services/sync/sync.client.ts +42 -14
  71. package/services/sync/sync.ts +162 -13
  72. package/services/wiki/wiki.client.ts +15 -2
  73. package/services/wiki/wiki.ts +122 -0
  74. package/svcs.ts +18 -2
@@ -2,96 +2,6 @@
2
2
  // @generated from protobuf file "resources/wiki/access/access.proto" (package "resources.wiki.access", syntax proto3)
3
3
  // tslint:disable
4
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
- import { UserShort } from "../../users/short/user";
15
- import { Timestamp } from "../../timestamp/timestamp";
16
- /**
17
- * @generated from protobuf message resources.wiki.access.PageAccess
18
- */
19
- export interface PageAccess {
20
- /**
21
- * @generated from protobuf field: repeated resources.wiki.access.PageJobAccess jobs = 1
22
- */
23
- jobs: PageJobAccess[];
24
- /**
25
- * @generated from protobuf field: repeated resources.wiki.access.PageUserAccess users = 2
26
- */
27
- users: PageUserAccess[];
28
- }
29
- /**
30
- * @generated from protobuf message resources.wiki.access.PageJobAccess
31
- */
32
- export interface PageJobAccess {
33
- /**
34
- * @generated from protobuf field: int64 id = 1
35
- */
36
- id: number;
37
- /**
38
- * @generated from protobuf field: optional resources.timestamp.Timestamp created_at = 2
39
- */
40
- createdAt?: Timestamp;
41
- /**
42
- * @generated from protobuf field: int64 target_id = 3
43
- */
44
- targetId: number;
45
- /**
46
- * @generated from protobuf field: string job = 4
47
- */
48
- job: string;
49
- /**
50
- * @generated from protobuf field: optional string job_label = 5
51
- */
52
- jobLabel?: string;
53
- /**
54
- * @generated from protobuf field: int32 minimum_grade = 6
55
- */
56
- minimumGrade: number;
57
- /**
58
- * @generated from protobuf field: optional string job_grade_label = 7
59
- */
60
- jobGradeLabel?: string;
61
- /**
62
- * @generated from protobuf field: resources.wiki.access.AccessLevel access = 8
63
- */
64
- access: AccessLevel;
65
- }
66
- /**
67
- * @generated from protobuf message resources.wiki.access.PageUserAccess
68
- */
69
- export interface PageUserAccess {
70
- /**
71
- * @generated from protobuf field: int64 id = 1
72
- */
73
- id: number;
74
- /**
75
- * @generated from protobuf field: optional resources.timestamp.Timestamp created_at = 2
76
- */
77
- createdAt?: Timestamp;
78
- /**
79
- * @generated from protobuf field: int64 target_id = 3
80
- */
81
- targetId: number;
82
- /**
83
- * @generated from protobuf field: int32 user_id = 4
84
- */
85
- userId: number;
86
- /**
87
- * @generated from protobuf field: optional resources.users.short.UserShort user = 5
88
- */
89
- user?: UserShort;
90
- /**
91
- * @generated from protobuf field: resources.wiki.access.AccessLevel access = 6
92
- */
93
- access: AccessLevel;
94
- }
95
5
  /**
96
6
  * @generated from protobuf enum resources.wiki.access.AccessLevel
97
7
  */
@@ -117,243 +27,3 @@ export enum AccessLevel {
117
27
  */
118
28
  EDIT = 4
119
29
  }
120
- // @generated message type with reflection information, may provide speed optimized methods
121
- class PageAccess$Type extends MessageType<PageAccess> {
122
- constructor() {
123
- super("resources.wiki.access.PageAccess", [
124
- { no: 1, name: "jobs", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => PageJobAccess, options: { "buf.validate.field": { repeated: { maxItems: "20" } }, "tagger.tags": "alias:\"job_access\"" } },
125
- { no: 2, name: "users", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => PageUserAccess, options: { "buf.validate.field": { repeated: { maxItems: "20" } }, "tagger.tags": "alias:\"user_access\"" } }
126
- ]);
127
- }
128
- create(value?: PartialMessage<PageAccess>): PageAccess {
129
- const message = globalThis.Object.create((this.messagePrototype!));
130
- message.jobs = [];
131
- message.users = [];
132
- if (value !== undefined)
133
- reflectionMergePartial<PageAccess>(this, message, value);
134
- return message;
135
- }
136
- internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PageAccess): PageAccess {
137
- let message = target ?? this.create(), end = reader.pos + length;
138
- while (reader.pos < end) {
139
- let [fieldNo, wireType] = reader.tag();
140
- switch (fieldNo) {
141
- case /* repeated resources.wiki.access.PageJobAccess jobs */ 1:
142
- message.jobs.push(PageJobAccess.internalBinaryRead(reader, reader.uint32(), options));
143
- break;
144
- case /* repeated resources.wiki.access.PageUserAccess users */ 2:
145
- message.users.push(PageUserAccess.internalBinaryRead(reader, reader.uint32(), options));
146
- break;
147
- default:
148
- let u = options.readUnknownField;
149
- if (u === "throw")
150
- throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
151
- let d = reader.skip(wireType);
152
- if (u !== false)
153
- (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
154
- }
155
- }
156
- return message;
157
- }
158
- internalBinaryWrite(message: PageAccess, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
159
- /* repeated resources.wiki.access.PageJobAccess jobs = 1; */
160
- for (let i = 0; i < message.jobs.length; i++)
161
- PageJobAccess.internalBinaryWrite(message.jobs[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
162
- /* repeated resources.wiki.access.PageUserAccess users = 2; */
163
- for (let i = 0; i < message.users.length; i++)
164
- PageUserAccess.internalBinaryWrite(message.users[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
165
- let u = options.writeUnknownFields;
166
- if (u !== false)
167
- (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
168
- return writer;
169
- }
170
- }
171
- /**
172
- * @generated MessageType for protobuf message resources.wiki.access.PageAccess
173
- */
174
- export const PageAccess = new PageAccess$Type();
175
- // @generated message type with reflection information, may provide speed optimized methods
176
- class PageJobAccess$Type extends MessageType<PageJobAccess> {
177
- constructor() {
178
- super("resources.wiki.access.PageJobAccess", [
179
- { no: 1, name: "id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
180
- { no: 2, name: "created_at", kind: "message", T: () => Timestamp },
181
- { no: 3, name: "target_id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
182
- { no: 4, name: "job", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "20" } } } },
183
- { no: 5, name: "job_label", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "50" } } } },
184
- { no: 6, name: "minimum_grade", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gte: 0 } } } },
185
- { no: 7, name: "job_grade_label", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "50" } } } },
186
- { no: 8, name: "access", kind: "enum", T: () => ["resources.wiki.access.AccessLevel", AccessLevel, "ACCESS_LEVEL_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } }
187
- ]);
188
- }
189
- create(value?: PartialMessage<PageJobAccess>): PageJobAccess {
190
- const message = globalThis.Object.create((this.messagePrototype!));
191
- message.id = 0;
192
- message.targetId = 0;
193
- message.job = "";
194
- message.minimumGrade = 0;
195
- message.access = 0;
196
- if (value !== undefined)
197
- reflectionMergePartial<PageJobAccess>(this, message, value);
198
- return message;
199
- }
200
- internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PageJobAccess): PageJobAccess {
201
- let message = target ?? this.create(), end = reader.pos + length;
202
- while (reader.pos < end) {
203
- let [fieldNo, wireType] = reader.tag();
204
- switch (fieldNo) {
205
- case /* int64 id */ 1:
206
- message.id = reader.int64().toNumber();
207
- break;
208
- case /* optional resources.timestamp.Timestamp created_at */ 2:
209
- message.createdAt = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.createdAt);
210
- break;
211
- case /* int64 target_id */ 3:
212
- message.targetId = reader.int64().toNumber();
213
- break;
214
- case /* string job */ 4:
215
- message.job = reader.string();
216
- break;
217
- case /* optional string job_label */ 5:
218
- message.jobLabel = reader.string();
219
- break;
220
- case /* int32 minimum_grade */ 6:
221
- message.minimumGrade = reader.int32();
222
- break;
223
- case /* optional string job_grade_label */ 7:
224
- message.jobGradeLabel = reader.string();
225
- break;
226
- case /* resources.wiki.access.AccessLevel access */ 8:
227
- message.access = reader.int32();
228
- break;
229
- default:
230
- let u = options.readUnknownField;
231
- if (u === "throw")
232
- throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
233
- let d = reader.skip(wireType);
234
- if (u !== false)
235
- (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
236
- }
237
- }
238
- return message;
239
- }
240
- internalBinaryWrite(message: PageJobAccess, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
241
- /* int64 id = 1; */
242
- if (message.id !== 0)
243
- writer.tag(1, WireType.Varint).int64(message.id);
244
- /* optional resources.timestamp.Timestamp created_at = 2; */
245
- if (message.createdAt)
246
- Timestamp.internalBinaryWrite(message.createdAt, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
247
- /* int64 target_id = 3; */
248
- if (message.targetId !== 0)
249
- writer.tag(3, WireType.Varint).int64(message.targetId);
250
- /* string job = 4; */
251
- if (message.job !== "")
252
- writer.tag(4, WireType.LengthDelimited).string(message.job);
253
- /* optional string job_label = 5; */
254
- if (message.jobLabel !== undefined)
255
- writer.tag(5, WireType.LengthDelimited).string(message.jobLabel);
256
- /* int32 minimum_grade = 6; */
257
- if (message.minimumGrade !== 0)
258
- writer.tag(6, WireType.Varint).int32(message.minimumGrade);
259
- /* optional string job_grade_label = 7; */
260
- if (message.jobGradeLabel !== undefined)
261
- writer.tag(7, WireType.LengthDelimited).string(message.jobGradeLabel);
262
- /* resources.wiki.access.AccessLevel access = 8; */
263
- if (message.access !== 0)
264
- writer.tag(8, WireType.Varint).int32(message.access);
265
- let u = options.writeUnknownFields;
266
- if (u !== false)
267
- (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
268
- return writer;
269
- }
270
- }
271
- /**
272
- * @generated MessageType for protobuf message resources.wiki.access.PageJobAccess
273
- */
274
- export const PageJobAccess = new PageJobAccess$Type();
275
- // @generated message type with reflection information, may provide speed optimized methods
276
- class PageUserAccess$Type extends MessageType<PageUserAccess> {
277
- constructor() {
278
- super("resources.wiki.access.PageUserAccess", [
279
- { no: 1, name: "id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
280
- { no: 2, name: "created_at", kind: "message", T: () => Timestamp },
281
- { no: 3, name: "target_id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
282
- { no: 4, name: "user_id", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gt: 0 } } } },
283
- { no: 5, name: "user", kind: "message", T: () => UserShort },
284
- { no: 6, name: "access", kind: "enum", T: () => ["resources.wiki.access.AccessLevel", AccessLevel, "ACCESS_LEVEL_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } }
285
- ]);
286
- }
287
- create(value?: PartialMessage<PageUserAccess>): PageUserAccess {
288
- const message = globalThis.Object.create((this.messagePrototype!));
289
- message.id = 0;
290
- message.targetId = 0;
291
- message.userId = 0;
292
- message.access = 0;
293
- if (value !== undefined)
294
- reflectionMergePartial<PageUserAccess>(this, message, value);
295
- return message;
296
- }
297
- internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PageUserAccess): PageUserAccess {
298
- let message = target ?? this.create(), end = reader.pos + length;
299
- while (reader.pos < end) {
300
- let [fieldNo, wireType] = reader.tag();
301
- switch (fieldNo) {
302
- case /* int64 id */ 1:
303
- message.id = reader.int64().toNumber();
304
- break;
305
- case /* optional resources.timestamp.Timestamp created_at */ 2:
306
- message.createdAt = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.createdAt);
307
- break;
308
- case /* int64 target_id */ 3:
309
- message.targetId = reader.int64().toNumber();
310
- break;
311
- case /* int32 user_id */ 4:
312
- message.userId = reader.int32();
313
- break;
314
- case /* optional resources.users.short.UserShort user */ 5:
315
- message.user = UserShort.internalBinaryRead(reader, reader.uint32(), options, message.user);
316
- break;
317
- case /* resources.wiki.access.AccessLevel access */ 6:
318
- message.access = reader.int32();
319
- break;
320
- default:
321
- let u = options.readUnknownField;
322
- if (u === "throw")
323
- throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
324
- let d = reader.skip(wireType);
325
- if (u !== false)
326
- (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
327
- }
328
- }
329
- return message;
330
- }
331
- internalBinaryWrite(message: PageUserAccess, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
332
- /* int64 id = 1; */
333
- if (message.id !== 0)
334
- writer.tag(1, WireType.Varint).int64(message.id);
335
- /* optional resources.timestamp.Timestamp created_at = 2; */
336
- if (message.createdAt)
337
- Timestamp.internalBinaryWrite(message.createdAt, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
338
- /* int64 target_id = 3; */
339
- if (message.targetId !== 0)
340
- writer.tag(3, WireType.Varint).int64(message.targetId);
341
- /* int32 user_id = 4; */
342
- if (message.userId !== 0)
343
- writer.tag(4, WireType.Varint).int32(message.userId);
344
- /* optional resources.users.short.UserShort user = 5; */
345
- if (message.user)
346
- UserShort.internalBinaryWrite(message.user, writer.tag(5, WireType.LengthDelimited).fork(), options).join();
347
- /* resources.wiki.access.AccessLevel access = 6; */
348
- if (message.access !== 0)
349
- writer.tag(6, WireType.Varint).int32(message.access);
350
- let u = options.writeUnknownFields;
351
- if (u !== false)
352
- (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
353
- return writer;
354
- }
355
- }
356
- /**
357
- * @generated MessageType for protobuf message resources.wiki.access.PageUserAccess
358
- */
359
- export const PageUserAccess = new PageUserAccess$Type();
@@ -11,8 +11,8 @@ import { UnknownFieldHandler } from "@protobuf-ts/runtime";
11
11
  import type { PartialMessage } from "@protobuf-ts/runtime";
12
12
  import { reflectionMergePartial } from "@protobuf-ts/runtime";
13
13
  import { MessageType } from "@protobuf-ts/runtime";
14
- import { PageUserAccess } from "../access/access";
15
- import { PageJobAccess } from "../access/access";
14
+ import { UserAccess } from "../../access/access";
15
+ import { JobAccess } from "../../access/access";
16
16
  import { ContentDiff } from "../../common/content/diff_activity";
17
17
  import { UserShort } from "../../users/short/user";
18
18
  import { Timestamp } from "../../timestamp/timestamp";
@@ -148,34 +148,34 @@ export interface PageAccessUpdated {
148
148
  */
149
149
  export interface PageAccessJobsDiff {
150
150
  /**
151
- * @generated from protobuf field: repeated resources.wiki.access.PageJobAccess to_create = 1
151
+ * @generated from protobuf field: repeated resources.access.JobAccess to_create = 1
152
152
  */
153
- toCreate: PageJobAccess[];
153
+ toCreate: JobAccess[];
154
154
  /**
155
- * @generated from protobuf field: repeated resources.wiki.access.PageJobAccess to_update = 2
155
+ * @generated from protobuf field: repeated resources.access.JobAccess to_update = 2
156
156
  */
157
- toUpdate: PageJobAccess[];
157
+ toUpdate: JobAccess[];
158
158
  /**
159
- * @generated from protobuf field: repeated resources.wiki.access.PageJobAccess to_delete = 3
159
+ * @generated from protobuf field: repeated resources.access.JobAccess to_delete = 3
160
160
  */
161
- toDelete: PageJobAccess[];
161
+ toDelete: JobAccess[];
162
162
  }
163
163
  /**
164
164
  * @generated from protobuf message resources.wiki.activity.PageAccessUsersDiff
165
165
  */
166
166
  export interface PageAccessUsersDiff {
167
167
  /**
168
- * @generated from protobuf field: repeated resources.wiki.access.PageUserAccess to_create = 1
168
+ * @generated from protobuf field: repeated resources.access.UserAccess to_create = 1
169
169
  */
170
- toCreate: PageUserAccess[];
170
+ toCreate: UserAccess[];
171
171
  /**
172
- * @generated from protobuf field: repeated resources.wiki.access.PageUserAccess to_update = 2
172
+ * @generated from protobuf field: repeated resources.access.UserAccess to_update = 2
173
173
  */
174
- toUpdate: PageUserAccess[];
174
+ toUpdate: UserAccess[];
175
175
  /**
176
- * @generated from protobuf field: repeated resources.wiki.access.PageUserAccess to_delete = 3
176
+ * @generated from protobuf field: repeated resources.access.UserAccess to_delete = 3
177
177
  */
178
- toDelete: PageUserAccess[];
178
+ toDelete: UserAccess[];
179
179
  }
180
180
  /**
181
181
  * @generated from protobuf enum resources.wiki.activity.PageActivityType
@@ -219,7 +219,7 @@ class PageActivity$Type extends MessageType<PageActivity> {
219
219
  { no: 1, name: "id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
220
220
  { no: 2, name: "created_at", kind: "message", T: () => Timestamp },
221
221
  { no: 3, name: "page_id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
222
- { no: 4, name: "activity_type", kind: "enum", T: () => ["resources.wiki.activity.PageActivityType", PageActivityType, "PAGE_ACTIVITY_TYPE_"] },
222
+ { no: 4, name: "activity_type", kind: "enum", T: () => ["resources.wiki.activity.PageActivityType", PageActivityType, "PAGE_ACTIVITY_TYPE_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
223
223
  { no: 5, name: "creator_id", kind: "scalar", opt: true, T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gt: 0 } } } },
224
224
  { no: 6, name: "creator", kind: "message", T: () => UserShort, options: { "tagger.tags": "alias:\"creator\"" } },
225
225
  { no: 7, name: "creator_job", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "20" } } } },
@@ -585,9 +585,9 @@ export const PageAccessUpdated = new PageAccessUpdated$Type();
585
585
  class PageAccessJobsDiff$Type extends MessageType<PageAccessJobsDiff> {
586
586
  constructor() {
587
587
  super("resources.wiki.activity.PageAccessJobsDiff", [
588
- { no: 1, name: "to_create", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => PageJobAccess, options: { "buf.validate.field": { repeated: { maxItems: "20" } } } },
589
- { no: 2, name: "to_update", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => PageJobAccess, options: { "buf.validate.field": { repeated: { maxItems: "20" } } } },
590
- { no: 3, name: "to_delete", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => PageJobAccess, options: { "buf.validate.field": { repeated: { maxItems: "20" } } } }
588
+ { no: 1, name: "to_create", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => JobAccess, options: { "buf.validate.field": { repeated: { maxItems: "20" } } } },
589
+ { no: 2, name: "to_update", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => JobAccess, options: { "buf.validate.field": { repeated: { maxItems: "20" } } } },
590
+ { no: 3, name: "to_delete", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => JobAccess, options: { "buf.validate.field": { repeated: { maxItems: "20" } } } }
591
591
  ]);
592
592
  }
593
593
  create(value?: PartialMessage<PageAccessJobsDiff>): PageAccessJobsDiff {
@@ -604,14 +604,14 @@ class PageAccessJobsDiff$Type extends MessageType<PageAccessJobsDiff> {
604
604
  while (reader.pos < end) {
605
605
  let [fieldNo, wireType] = reader.tag();
606
606
  switch (fieldNo) {
607
- case /* repeated resources.wiki.access.PageJobAccess to_create */ 1:
608
- message.toCreate.push(PageJobAccess.internalBinaryRead(reader, reader.uint32(), options));
607
+ case /* repeated resources.access.JobAccess to_create */ 1:
608
+ message.toCreate.push(JobAccess.internalBinaryRead(reader, reader.uint32(), options));
609
609
  break;
610
- case /* repeated resources.wiki.access.PageJobAccess to_update */ 2:
611
- message.toUpdate.push(PageJobAccess.internalBinaryRead(reader, reader.uint32(), options));
610
+ case /* repeated resources.access.JobAccess to_update */ 2:
611
+ message.toUpdate.push(JobAccess.internalBinaryRead(reader, reader.uint32(), options));
612
612
  break;
613
- case /* repeated resources.wiki.access.PageJobAccess to_delete */ 3:
614
- message.toDelete.push(PageJobAccess.internalBinaryRead(reader, reader.uint32(), options));
613
+ case /* repeated resources.access.JobAccess to_delete */ 3:
614
+ message.toDelete.push(JobAccess.internalBinaryRead(reader, reader.uint32(), options));
615
615
  break;
616
616
  default:
617
617
  let u = options.readUnknownField;
@@ -625,15 +625,15 @@ class PageAccessJobsDiff$Type extends MessageType<PageAccessJobsDiff> {
625
625
  return message;
626
626
  }
627
627
  internalBinaryWrite(message: PageAccessJobsDiff, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
628
- /* repeated resources.wiki.access.PageJobAccess to_create = 1; */
628
+ /* repeated resources.access.JobAccess to_create = 1; */
629
629
  for (let i = 0; i < message.toCreate.length; i++)
630
- PageJobAccess.internalBinaryWrite(message.toCreate[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
631
- /* repeated resources.wiki.access.PageJobAccess to_update = 2; */
630
+ JobAccess.internalBinaryWrite(message.toCreate[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
631
+ /* repeated resources.access.JobAccess to_update = 2; */
632
632
  for (let i = 0; i < message.toUpdate.length; i++)
633
- PageJobAccess.internalBinaryWrite(message.toUpdate[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
634
- /* repeated resources.wiki.access.PageJobAccess to_delete = 3; */
633
+ JobAccess.internalBinaryWrite(message.toUpdate[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
634
+ /* repeated resources.access.JobAccess to_delete = 3; */
635
635
  for (let i = 0; i < message.toDelete.length; i++)
636
- PageJobAccess.internalBinaryWrite(message.toDelete[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join();
636
+ JobAccess.internalBinaryWrite(message.toDelete[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join();
637
637
  let u = options.writeUnknownFields;
638
638
  if (u !== false)
639
639
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -648,9 +648,9 @@ export const PageAccessJobsDiff = new PageAccessJobsDiff$Type();
648
648
  class PageAccessUsersDiff$Type extends MessageType<PageAccessUsersDiff> {
649
649
  constructor() {
650
650
  super("resources.wiki.activity.PageAccessUsersDiff", [
651
- { no: 1, name: "to_create", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => PageUserAccess, options: { "buf.validate.field": { repeated: { maxItems: "20" } } } },
652
- { no: 2, name: "to_update", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => PageUserAccess, options: { "buf.validate.field": { repeated: { maxItems: "20" } } } },
653
- { no: 3, name: "to_delete", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => PageUserAccess, options: { "buf.validate.field": { repeated: { maxItems: "20" } } } }
651
+ { no: 1, name: "to_create", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => UserAccess, options: { "buf.validate.field": { repeated: { maxItems: "20" } } } },
652
+ { no: 2, name: "to_update", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => UserAccess, options: { "buf.validate.field": { repeated: { maxItems: "20" } } } },
653
+ { no: 3, name: "to_delete", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => UserAccess, options: { "buf.validate.field": { repeated: { maxItems: "20" } } } }
654
654
  ]);
655
655
  }
656
656
  create(value?: PartialMessage<PageAccessUsersDiff>): PageAccessUsersDiff {
@@ -667,14 +667,14 @@ class PageAccessUsersDiff$Type extends MessageType<PageAccessUsersDiff> {
667
667
  while (reader.pos < end) {
668
668
  let [fieldNo, wireType] = reader.tag();
669
669
  switch (fieldNo) {
670
- case /* repeated resources.wiki.access.PageUserAccess to_create */ 1:
671
- message.toCreate.push(PageUserAccess.internalBinaryRead(reader, reader.uint32(), options));
670
+ case /* repeated resources.access.UserAccess to_create */ 1:
671
+ message.toCreate.push(UserAccess.internalBinaryRead(reader, reader.uint32(), options));
672
672
  break;
673
- case /* repeated resources.wiki.access.PageUserAccess to_update */ 2:
674
- message.toUpdate.push(PageUserAccess.internalBinaryRead(reader, reader.uint32(), options));
673
+ case /* repeated resources.access.UserAccess to_update */ 2:
674
+ message.toUpdate.push(UserAccess.internalBinaryRead(reader, reader.uint32(), options));
675
675
  break;
676
- case /* repeated resources.wiki.access.PageUserAccess to_delete */ 3:
677
- message.toDelete.push(PageUserAccess.internalBinaryRead(reader, reader.uint32(), options));
676
+ case /* repeated resources.access.UserAccess to_delete */ 3:
677
+ message.toDelete.push(UserAccess.internalBinaryRead(reader, reader.uint32(), options));
678
678
  break;
679
679
  default:
680
680
  let u = options.readUnknownField;
@@ -688,15 +688,15 @@ class PageAccessUsersDiff$Type extends MessageType<PageAccessUsersDiff> {
688
688
  return message;
689
689
  }
690
690
  internalBinaryWrite(message: PageAccessUsersDiff, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
691
- /* repeated resources.wiki.access.PageUserAccess to_create = 1; */
691
+ /* repeated resources.access.UserAccess to_create = 1; */
692
692
  for (let i = 0; i < message.toCreate.length; i++)
693
- PageUserAccess.internalBinaryWrite(message.toCreate[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
694
- /* repeated resources.wiki.access.PageUserAccess to_update = 2; */
693
+ UserAccess.internalBinaryWrite(message.toCreate[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
694
+ /* repeated resources.access.UserAccess to_update = 2; */
695
695
  for (let i = 0; i < message.toUpdate.length; i++)
696
- PageUserAccess.internalBinaryWrite(message.toUpdate[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
697
- /* repeated resources.wiki.access.PageUserAccess to_delete = 3; */
696
+ UserAccess.internalBinaryWrite(message.toUpdate[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
697
+ /* repeated resources.access.UserAccess to_delete = 3; */
698
698
  for (let i = 0; i < message.toDelete.length; i++)
699
- PageUserAccess.internalBinaryWrite(message.toDelete[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join();
699
+ UserAccess.internalBinaryWrite(message.toDelete[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join();
700
700
  let u = options.writeUnknownFields;
701
701
  if (u !== false)
702
702
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -15,7 +15,7 @@ import { ContentType } from "../common/content/content";
15
15
  import { UserShort } from "../users/short/user";
16
16
  import { Timestamp } from "../timestamp/timestamp";
17
17
  import { File } from "../file/file";
18
- import { PageAccess } from "./access/access";
18
+ import { Access } from "../access/access";
19
19
  import { Content } from "../common/content/content";
20
20
  /**
21
21
  * @generated from protobuf message resources.wiki.Page
@@ -46,9 +46,9 @@ export interface Page {
46
46
  */
47
47
  content?: Content;
48
48
  /**
49
- * @generated from protobuf field: resources.wiki.access.PageAccess access = 7
49
+ * @generated from protobuf field: resources.access.Access access = 7
50
50
  */
51
- access?: PageAccess;
51
+ access?: Access;
52
52
  /**
53
53
  * @generated from protobuf field: repeated resources.file.File files = 8
54
54
  */
@@ -195,8 +195,8 @@ class Page$Type extends MessageType<Page> {
195
195
  { no: 4, name: "parent_id", kind: "scalar", opt: true, T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
196
196
  { no: 5, name: "meta", kind: "message", T: () => PageMeta, options: { "buf.validate.field": { required: true } } },
197
197
  { no: 6, name: "content", kind: "message", T: () => Content },
198
- { no: 7, name: "access", kind: "message", T: () => PageAccess, options: { "buf.validate.field": { required: true } } },
199
- { no: 8, name: "files", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => File, options: { "tagger.tags": "alias:\"files\"" } }
198
+ { no: 7, name: "access", kind: "message", T: () => Access, options: { "buf.validate.field": { required: true } } },
199
+ { no: 8, name: "files", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => File, options: { "buf.validate.field": { repeated: { maxItems: "5" } }, "tagger.tags": "alias:\"files\"" } }
200
200
  ]);
201
201
  }
202
202
  create(value?: PartialMessage<Page>): Page {
@@ -231,8 +231,8 @@ class Page$Type extends MessageType<Page> {
231
231
  case /* resources.common.content.Content content */ 6:
232
232
  message.content = Content.internalBinaryRead(reader, reader.uint32(), options, message.content);
233
233
  break;
234
- case /* resources.wiki.access.PageAccess access */ 7:
235
- message.access = PageAccess.internalBinaryRead(reader, reader.uint32(), options, message.access);
234
+ case /* resources.access.Access access */ 7:
235
+ message.access = Access.internalBinaryRead(reader, reader.uint32(), options, message.access);
236
236
  break;
237
237
  case /* repeated resources.file.File files */ 8:
238
238
  message.files.push(File.internalBinaryRead(reader, reader.uint32(), options));
@@ -267,9 +267,9 @@ class Page$Type extends MessageType<Page> {
267
267
  /* resources.common.content.Content content = 6; */
268
268
  if (message.content)
269
269
  Content.internalBinaryWrite(message.content, writer.tag(6, WireType.LengthDelimited).fork(), options).join();
270
- /* resources.wiki.access.PageAccess access = 7; */
270
+ /* resources.access.Access access = 7; */
271
271
  if (message.access)
272
- PageAccess.internalBinaryWrite(message.access, writer.tag(7, WireType.LengthDelimited).fork(), options).join();
272
+ Access.internalBinaryWrite(message.access, writer.tag(7, WireType.LengthDelimited).fork(), options).join();
273
273
  /* repeated resources.file.File files = 8; */
274
274
  for (let i = 0; i < message.files.length; i++)
275
275
  File.internalBinaryWrite(message.files[i], writer.tag(8, WireType.LengthDelimited).fork(), options).join();
@@ -180,7 +180,7 @@ class ListCalendarsRequest$Type extends MessageType<ListCalendarsRequest> {
180
180
  super("services.calendar.ListCalendarsRequest", [
181
181
  { no: 1, name: "pagination", kind: "message", T: () => PaginationRequest, options: { "buf.validate.field": { required: true } } },
182
182
  { no: 2, name: "only_public", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
183
- { no: 3, name: "min_access_level", kind: "enum", opt: true, T: () => ["resources.calendar.access.AccessLevel", AccessLevel, "ACCESS_LEVEL_"] },
183
+ { no: 3, name: "min_access_level", kind: "enum", opt: true, T: () => ["resources.calendar.access.AccessLevel", AccessLevel, "ACCESS_LEVEL_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
184
184
  { no: 4, name: "after", kind: "message", T: () => Timestamp },
185
185
  { no: 5, name: "calendar_ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ }
186
186
  ]);
@@ -187,6 +187,10 @@ export interface RSVPCalendarEntryRequest {
187
187
  * @generated from protobuf field: optional bool remove = 3
188
188
  */
189
189
  remove?: boolean;
190
+ /**
191
+ * @generated from protobuf field: optional string occurrence_key = 4
192
+ */
193
+ occurrenceKey?: string;
190
194
  }
191
195
  /**
192
196
  * @generated from protobuf message services.calendar.RSVPCalendarEntryResponse
@@ -924,7 +928,8 @@ class RSVPCalendarEntryRequest$Type extends MessageType<RSVPCalendarEntryRequest
924
928
  super("services.calendar.RSVPCalendarEntryRequest", [
925
929
  { no: 1, name: "entry", kind: "message", T: () => CalendarEntryRSVP },
926
930
  { no: 2, name: "subscribe", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
927
- { no: 3, name: "remove", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ }
931
+ { no: 3, name: "remove", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ },
932
+ { no: 4, name: "occurrence_key", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "128" } } } }
928
933
  ]);
929
934
  }
930
935
  create(value?: PartialMessage<RSVPCalendarEntryRequest>): RSVPCalendarEntryRequest {
@@ -948,6 +953,9 @@ class RSVPCalendarEntryRequest$Type extends MessageType<RSVPCalendarEntryRequest
948
953
  case /* optional bool remove */ 3:
949
954
  message.remove = reader.bool();
950
955
  break;
956
+ case /* optional string occurrence_key */ 4:
957
+ message.occurrenceKey = reader.string();
958
+ break;
951
959
  default:
952
960
  let u = options.readUnknownField;
953
961
  if (u === "throw")
@@ -969,6 +977,9 @@ class RSVPCalendarEntryRequest$Type extends MessageType<RSVPCalendarEntryRequest
969
977
  /* optional bool remove = 3; */
970
978
  if (message.remove !== undefined)
971
979
  writer.tag(3, WireType.Varint).bool(message.remove);
980
+ /* optional string occurrence_key = 4; */
981
+ if (message.occurrenceKey !== undefined)
982
+ writer.tag(4, WireType.LengthDelimited).string(message.occurrenceKey);
972
983
  let u = options.writeUnknownFields;
973
984
  if (u !== false)
974
985
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);