@fivenet-app/gen 2025.9.1 → 2026.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/README.md +1 -1
  2. package/clients.ts +36 -0
  3. package/codegen/perms/perms.ts +186 -15
  4. package/codegen/sanitizer/sanitizer.ts +34 -1
  5. package/package.json +2 -2
  6. package/perms.ts +140 -8
  7. package/resources/accounts/accounts.ts +98 -31
  8. package/resources/accounts/{oauth2.ts → oauth2/oauth2.ts} +20 -20
  9. package/resources/audit/audit.ts +156 -38
  10. package/resources/calendar/{access.ts → access/access.ts} +30 -30
  11. package/resources/calendar/calendar.ts +17 -477
  12. package/resources/calendar/entries/entries.ts +474 -0
  13. package/resources/centrum/{access.ts → access/access.ts} +22 -22
  14. package/resources/centrum/{dispatchers.ts → dispatchers/dispatchers.ts} +14 -14
  15. package/resources/centrum/{dispatches.ts → dispatches/dispatches.ts} +151 -185
  16. package/resources/centrum/joblist.ts +136 -0
  17. package/resources/centrum/{settings.ts → settings/settings.ts} +70 -70
  18. package/resources/centrum/{units_access.ts → units/access/access.ts} +30 -30
  19. package/resources/centrum/{units.ts → units/units.ts} +131 -51
  20. package/resources/citizens/labels/labels.ts +526 -0
  21. package/resources/{users → citizens/licenses}/licenses.ts +17 -17
  22. package/resources/clientconfig/clientconfig.ts +126 -258
  23. package/resources/collab/collab.ts +4 -16
  24. package/resources/common/content/content.ts +108 -85
  25. package/resources/common/content/diff_activity.ts +267 -0
  26. package/resources/common/i18n.ts +2 -2
  27. package/resources/{common/cron → cron}/cron.ts +43 -43
  28. package/resources/documents/{access.ts → access/access.ts} +29 -52
  29. package/resources/documents/{activity.ts → activity/activity.ts} +171 -123
  30. package/resources/documents/approval/approval.ts +945 -0
  31. package/resources/documents/{category.ts → category/category.ts} +7 -7
  32. package/resources/documents/{comment.ts → comment/comment.ts} +10 -10
  33. package/resources/documents/data/data.ts +303 -0
  34. package/resources/documents/documents.ts +282 -667
  35. package/resources/{common/uuid.ts → documents/forms/forms.ts} +20 -20
  36. package/resources/documents/{pins.ts → pins/pins.ts} +5 -5
  37. package/resources/documents/references/references.ts +187 -0
  38. package/resources/documents/relations/relations.ts +184 -0
  39. package/resources/documents/{requests.ts → requests/requests.ts} +18 -18
  40. package/resources/documents/stamps/stamp.ts +355 -0
  41. package/resources/documents/{templates.ts → templates/templates.ts} +426 -84
  42. package/resources/documents/{workflow.ts → workflow/workflow.ts} +264 -26
  43. package/resources/file/filestore.ts +1 -1
  44. package/resources/{common/grpcws → grpcws}/grpcws.ts +52 -52
  45. package/resources/jobs/{activity.ts → colleagues/activity/activity.ts} +54 -54
  46. package/resources/jobs/{colleagues.ts → colleagues/colleagues.ts} +17 -28
  47. package/resources/jobs/{conduct.ts → conduct/conduct.ts} +70 -45
  48. package/resources/jobs/{labels.ts → labels/labels.ts} +34 -23
  49. package/resources/jobs/{job_props.ts → props/props.ts} +26 -38
  50. package/resources/jobs/{job_settings.ts → settings/settings.ts} +53 -53
  51. package/resources/jobs/{timeclock.ts → timeclock/timeclock.ts} +17 -17
  52. package/resources/livemap/{heatmap.ts → heatmap/heatmap.ts} +4 -4
  53. package/resources/livemap/{marker_marker.ts → markers/marker_marker.ts} +35 -35
  54. package/resources/livemap/{user_marker.ts → markers/user_marker.ts} +115 -36
  55. package/resources/mailer/{access.ts → access/access.ts} +67 -67
  56. package/resources/mailer/{email.ts → emails/email.ts} +19 -19
  57. package/resources/mailer/{events.ts → events/events.ts} +24 -24
  58. package/resources/mailer/{message.ts → messages/message.ts} +29 -29
  59. package/resources/mailer/{settings.ts → settings/settings.ts} +14 -13
  60. package/resources/mailer/{template.ts → templates/template.ts} +15 -15
  61. package/resources/mailer/{thread.ts → threads/thread.ts} +29 -29
  62. package/resources/notifications/{client_view.ts → clientview/clientview.ts} +22 -22
  63. package/resources/notifications/{events.ts → events/events.ts} +20 -20
  64. package/resources/notifications/notifications.ts +4 -4
  65. package/resources/permissions/{attributes.ts → attributes/attributes.ts} +42 -42
  66. package/resources/permissions/{events.ts → events/events.ts} +7 -7
  67. package/resources/permissions/{permissions.ts → permissions/permissions.ts} +30 -19
  68. package/resources/qualifications/{access.ts → access/access.ts} +19 -19
  69. package/resources/qualifications/{exam.ts → exam/exam.ts} +269 -141
  70. package/resources/qualifications/qualifications.ts +51 -179
  71. package/resources/settings/banner.ts +3 -3
  72. package/resources/settings/config.ts +527 -25
  73. package/resources/{documents/state.ts → settings/data.ts} +41 -20
  74. package/resources/settings/perms.ts +14 -14
  75. package/resources/stats/stats.ts +379 -0
  76. package/resources/sync/{activity.ts → activity/activity.ts} +104 -25
  77. package/resources/sync/{data.ts → data/data.ts} +405 -59
  78. package/resources/userinfo/{user_info.ts → userinfo.ts} +71 -93
  79. package/resources/users/{activity.ts → activity/activity.ts} +242 -101
  80. package/resources/users/{props.ts → props/props.ts} +91 -69
  81. package/resources/users/short/user.ts +184 -0
  82. package/resources/users/{users.ts → user.ts} +266 -195
  83. package/resources/vehicles/{activity.ts → activity/activity.ts} +20 -20
  84. package/resources/vehicles/{props.ts → props/props.ts} +28 -6
  85. package/resources/vehicles/vehicles.ts +20 -8
  86. package/resources/wiki/{access.ts → access/access.ts} +30 -30
  87. package/resources/wiki/{activity.ts → activity/activity.ts} +104 -70
  88. package/resources/wiki/page.ts +39 -15
  89. package/services/auth/auth.client.ts +23 -10
  90. package/services/auth/auth.ts +445 -262
  91. package/services/calendar/calendar.ts +56 -34
  92. package/services/centrum/centrum.ts +127 -127
  93. package/services/citizens/citizens.client.ts +0 -13
  94. package/services/citizens/citizens.ts +44 -134
  95. package/services/citizens/labels.client.ts +77 -0
  96. package/services/citizens/labels.ts +455 -0
  97. package/services/completor/completor.ts +36 -16
  98. package/services/documents/approval.client.ts +188 -0
  99. package/services/documents/approval.ts +1776 -0
  100. package/services/documents/documents.ts +164 -186
  101. package/services/documents/forms.client.ts +51 -0
  102. package/services/documents/forms.ts +232 -0
  103. package/services/documents/stamps.client.ts +77 -0
  104. package/services/documents/stamps.ts +481 -0
  105. package/services/documents/stats.client.ts +38 -0
  106. package/services/documents/stats.ts +245 -0
  107. package/services/jobs/conduct.client.ts +30 -3
  108. package/services/jobs/conduct.ts +159 -33
  109. package/services/jobs/jobs.ts +43 -43
  110. package/services/jobs/stats.client.ts +38 -0
  111. package/services/jobs/stats.ts +207 -0
  112. package/services/jobs/timeclock.ts +39 -39
  113. package/services/livemap/livemap.ts +18 -18
  114. package/services/mailer/mailer.ts +78 -78
  115. package/services/notifications/notifications.ts +35 -35
  116. package/services/qualifications/qualifications.ts +81 -46
  117. package/services/settings/accounts.client.ts +23 -10
  118. package/services/settings/accounts.ts +191 -30
  119. package/services/settings/cron.client.ts +13 -0
  120. package/services/settings/cron.ts +118 -5
  121. package/services/settings/laws.ts +1 -1
  122. package/services/settings/settings.ts +73 -52
  123. package/services/settings/system.client.ts +13 -0
  124. package/services/settings/system.ts +115 -15
  125. package/services/stats/stats.client.ts +7 -7
  126. package/services/stats/stats.ts +24 -24
  127. package/services/sync/sync.client.ts +271 -37
  128. package/services/sync/sync.ts +1525 -421
  129. package/services/vehicles/vehicles.ts +8 -8
  130. package/services/wiki/wiki.ts +8 -8
  131. package/svcs.ts +100 -6
  132. package/resources/centrum/attributes.ts +0 -183
  133. package/resources/documents/signoff.ts +0 -55
  134. package/resources/users/labels.ts +0 -160
@@ -1,5 +1,5 @@
1
1
  // @generated by protobuf-ts 2.11.1 with parameter force_server_none,long_type_number,optimize_speed,ts_nocheck
2
- // @generated from protobuf file "resources/sync/activity.proto" (package "resources.sync", syntax proto3)
2
+ // @generated from protobuf file "resources/sync/activity/activity.proto" (package "resources.sync.activity", syntax proto3)
3
3
  // tslint:disable
4
4
  // @ts-nocheck
5
5
  import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
@@ -11,13 +11,14 @@ 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 { ColleagueProps as ColleagueProps$ } from "../jobs/colleagues";
15
- import { UserProps as UserProps$ } from "../users/props";
14
+ import { AccountGroups } from "../../accounts/accounts";
15
+ import { ColleagueProps as ColleagueProps$ } from "../../jobs/colleagues/colleagues";
16
+ import { UserProps as UserProps$ } from "../../users/props/props";
16
17
  /**
17
18
  * Connect an identifier/license to the provider with the specified external id
18
19
  * (e.g., auto discord social connect on server join)
19
20
  *
20
- * @generated from protobuf message resources.sync.UserOAuth2Conn
21
+ * @generated from protobuf message resources.sync.activity.UserOAuth2Conn
21
22
  */
22
23
  export interface UserOAuth2Conn {
23
24
  /**
@@ -38,7 +39,7 @@ export interface UserOAuth2Conn {
38
39
  username: string;
39
40
  }
40
41
  /**
41
- * @generated from protobuf message resources.sync.UserProps
42
+ * @generated from protobuf message resources.sync.activity.UserProps
42
43
  */
43
44
  export interface UserProps {
44
45
  /**
@@ -46,12 +47,12 @@ export interface UserProps {
46
47
  */
47
48
  reason?: string;
48
49
  /**
49
- * @generated from protobuf field: resources.users.UserProps props = 2
50
+ * @generated from protobuf field: resources.users.props.UserProps props = 2
50
51
  */
51
52
  props?: UserProps$;
52
53
  }
53
54
  /**
54
- * @generated from protobuf message resources.sync.ColleagueProps
55
+ * @generated from protobuf message resources.sync.activity.ColleagueProps
55
56
  */
56
57
  export interface ColleagueProps {
57
58
  /**
@@ -59,12 +60,12 @@ export interface ColleagueProps {
59
60
  */
60
61
  reason?: string;
61
62
  /**
62
- * @generated from protobuf field: resources.jobs.ColleagueProps props = 2
63
+ * @generated from protobuf field: resources.jobs.colleagues.ColleagueProps props = 2
63
64
  */
64
65
  props?: ColleagueProps$;
65
66
  }
66
67
  /**
67
- * @generated from protobuf message resources.sync.UserUpdate
68
+ * @generated from protobuf message resources.sync.activity.UserUpdate
68
69
  */
69
70
  export interface UserUpdate {
70
71
  /**
@@ -95,7 +96,7 @@ export interface UserUpdate {
95
96
  lastname?: string;
96
97
  }
97
98
  /**
98
- * @generated from protobuf message resources.sync.TimeclockUpdate
99
+ * @generated from protobuf message resources.sync.activity.TimeclockUpdate
99
100
  */
100
101
  export interface TimeclockUpdate {
101
102
  /**
@@ -111,10 +112,27 @@ export interface TimeclockUpdate {
111
112
  */
112
113
  start: boolean;
113
114
  }
115
+ /**
116
+ * @generated from protobuf message resources.sync.activity.AccountUpdate
117
+ */
118
+ export interface AccountUpdate {
119
+ /**
120
+ * @generated from protobuf field: string license = 1
121
+ */
122
+ license: string;
123
+ /**
124
+ * @generated from protobuf field: optional string group = 2
125
+ */
126
+ group?: string;
127
+ /**
128
+ * @generated from protobuf field: resources.accounts.AccountGroups groups = 3
129
+ */
130
+ groups?: AccountGroups;
131
+ }
114
132
  // @generated message type with reflection information, may provide speed optimized methods
115
133
  class UserOAuth2Conn$Type extends MessageType<UserOAuth2Conn> {
116
134
  constructor() {
117
- super("resources.sync.UserOAuth2Conn", [
135
+ super("resources.sync.activity.UserOAuth2Conn", [
118
136
  { no: 1, name: "provider_name", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
119
137
  { no: 2, name: "identifier", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
120
138
  { no: 3, name: "external_id", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
@@ -179,13 +197,13 @@ class UserOAuth2Conn$Type extends MessageType<UserOAuth2Conn> {
179
197
  }
180
198
  }
181
199
  /**
182
- * @generated MessageType for protobuf message resources.sync.UserOAuth2Conn
200
+ * @generated MessageType for protobuf message resources.sync.activity.UserOAuth2Conn
183
201
  */
184
202
  export const UserOAuth2Conn = new UserOAuth2Conn$Type();
185
203
  // @generated message type with reflection information, may provide speed optimized methods
186
204
  class UserProps$Type extends MessageType<UserProps> {
187
205
  constructor() {
188
- super("resources.sync.UserProps", [
206
+ super("resources.sync.activity.UserProps", [
189
207
  { no: 1, name: "reason", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "255" } } } },
190
208
  { no: 2, name: "props", kind: "message", T: () => UserProps$, options: { "buf.validate.field": { required: true } } }
191
209
  ]);
@@ -204,7 +222,7 @@ class UserProps$Type extends MessageType<UserProps> {
204
222
  case /* optional string reason */ 1:
205
223
  message.reason = reader.string();
206
224
  break;
207
- case /* resources.users.UserProps props */ 2:
225
+ case /* resources.users.props.UserProps props */ 2:
208
226
  message.props = UserProps$.internalBinaryRead(reader, reader.uint32(), options, message.props);
209
227
  break;
210
228
  default:
@@ -222,7 +240,7 @@ class UserProps$Type extends MessageType<UserProps> {
222
240
  /* optional string reason = 1; */
223
241
  if (message.reason !== undefined)
224
242
  writer.tag(1, WireType.LengthDelimited).string(message.reason);
225
- /* resources.users.UserProps props = 2; */
243
+ /* resources.users.props.UserProps props = 2; */
226
244
  if (message.props)
227
245
  UserProps$.internalBinaryWrite(message.props, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
228
246
  let u = options.writeUnknownFields;
@@ -232,13 +250,13 @@ class UserProps$Type extends MessageType<UserProps> {
232
250
  }
233
251
  }
234
252
  /**
235
- * @generated MessageType for protobuf message resources.sync.UserProps
253
+ * @generated MessageType for protobuf message resources.sync.activity.UserProps
236
254
  */
237
255
  export const UserProps = new UserProps$Type();
238
256
  // @generated message type with reflection information, may provide speed optimized methods
239
257
  class ColleagueProps$Type extends MessageType<ColleagueProps> {
240
258
  constructor() {
241
- super("resources.sync.ColleagueProps", [
259
+ super("resources.sync.activity.ColleagueProps", [
242
260
  { no: 1, name: "reason", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "255" } } } },
243
261
  { no: 2, name: "props", kind: "message", T: () => ColleagueProps$, options: { "buf.validate.field": { required: true } } }
244
262
  ]);
@@ -257,7 +275,7 @@ class ColleagueProps$Type extends MessageType<ColleagueProps> {
257
275
  case /* optional string reason */ 1:
258
276
  message.reason = reader.string();
259
277
  break;
260
- case /* resources.jobs.ColleagueProps props */ 2:
278
+ case /* resources.jobs.colleagues.ColleagueProps props */ 2:
261
279
  message.props = ColleagueProps$.internalBinaryRead(reader, reader.uint32(), options, message.props);
262
280
  break;
263
281
  default:
@@ -275,7 +293,7 @@ class ColleagueProps$Type extends MessageType<ColleagueProps> {
275
293
  /* optional string reason = 1; */
276
294
  if (message.reason !== undefined)
277
295
  writer.tag(1, WireType.LengthDelimited).string(message.reason);
278
- /* resources.jobs.ColleagueProps props = 2; */
296
+ /* resources.jobs.colleagues.ColleagueProps props = 2; */
279
297
  if (message.props)
280
298
  ColleagueProps$.internalBinaryWrite(message.props, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
281
299
  let u = options.writeUnknownFields;
@@ -285,17 +303,17 @@ class ColleagueProps$Type extends MessageType<ColleagueProps> {
285
303
  }
286
304
  }
287
305
  /**
288
- * @generated MessageType for protobuf message resources.sync.ColleagueProps
306
+ * @generated MessageType for protobuf message resources.sync.activity.ColleagueProps
289
307
  */
290
308
  export const ColleagueProps = new ColleagueProps$Type();
291
309
  // @generated message type with reflection information, may provide speed optimized methods
292
310
  class UserUpdate$Type extends MessageType<UserUpdate> {
293
311
  constructor() {
294
- super("resources.sync.UserUpdate", [
312
+ super("resources.sync.activity.UserUpdate", [
295
313
  { no: 1, name: "user_id", kind: "scalar", T: 5 /*ScalarType.INT32*/ },
296
314
  { no: 2, name: "group", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
297
315
  { no: 3, name: "job", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "20" } } } },
298
- { no: 4, name: "job_grade", kind: "scalar", opt: true, T: 5 /*ScalarType.INT32*/ },
316
+ { no: 4, name: "job_grade", kind: "scalar", opt: true, T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gte: 0 } } } },
299
317
  { no: 5, name: "firstname", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
300
318
  { no: 6, name: "lastname", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ }
301
319
  ]);
@@ -367,13 +385,13 @@ class UserUpdate$Type extends MessageType<UserUpdate> {
367
385
  }
368
386
  }
369
387
  /**
370
- * @generated MessageType for protobuf message resources.sync.UserUpdate
388
+ * @generated MessageType for protobuf message resources.sync.activity.UserUpdate
371
389
  */
372
390
  export const UserUpdate = new UserUpdate$Type();
373
391
  // @generated message type with reflection information, may provide speed optimized methods
374
392
  class TimeclockUpdate$Type extends MessageType<TimeclockUpdate> {
375
393
  constructor() {
376
- super("resources.sync.TimeclockUpdate", [
394
+ super("resources.sync.activity.TimeclockUpdate", [
377
395
  { no: 1, name: "job", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
378
396
  { no: 2, name: "user_id", kind: "scalar", T: 5 /*ScalarType.INT32*/ },
379
397
  { no: 3, name: "start", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }
@@ -430,6 +448,67 @@ class TimeclockUpdate$Type extends MessageType<TimeclockUpdate> {
430
448
  }
431
449
  }
432
450
  /**
433
- * @generated MessageType for protobuf message resources.sync.TimeclockUpdate
451
+ * @generated MessageType for protobuf message resources.sync.activity.TimeclockUpdate
434
452
  */
435
453
  export const TimeclockUpdate = new TimeclockUpdate$Type();
454
+ // @generated message type with reflection information, may provide speed optimized methods
455
+ class AccountUpdate$Type extends MessageType<AccountUpdate> {
456
+ constructor() {
457
+ super("resources.sync.activity.AccountUpdate", [
458
+ { no: 1, name: "license", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "64" } } } },
459
+ { no: 2, name: "group", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
460
+ { no: 3, name: "groups", kind: "message", T: () => AccountGroups, options: { "tagger.tags": "alias:\"groups\"" } }
461
+ ]);
462
+ }
463
+ create(value?: PartialMessage<AccountUpdate>): AccountUpdate {
464
+ const message = globalThis.Object.create((this.messagePrototype!));
465
+ message.license = "";
466
+ if (value !== undefined)
467
+ reflectionMergePartial<AccountUpdate>(this, message, value);
468
+ return message;
469
+ }
470
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AccountUpdate): AccountUpdate {
471
+ let message = target ?? this.create(), end = reader.pos + length;
472
+ while (reader.pos < end) {
473
+ let [fieldNo, wireType] = reader.tag();
474
+ switch (fieldNo) {
475
+ case /* string license */ 1:
476
+ message.license = reader.string();
477
+ break;
478
+ case /* optional string group */ 2:
479
+ message.group = reader.string();
480
+ break;
481
+ case /* resources.accounts.AccountGroups groups */ 3:
482
+ message.groups = AccountGroups.internalBinaryRead(reader, reader.uint32(), options, message.groups);
483
+ break;
484
+ default:
485
+ let u = options.readUnknownField;
486
+ if (u === "throw")
487
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
488
+ let d = reader.skip(wireType);
489
+ if (u !== false)
490
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
491
+ }
492
+ }
493
+ return message;
494
+ }
495
+ internalBinaryWrite(message: AccountUpdate, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
496
+ /* string license = 1; */
497
+ if (message.license !== "")
498
+ writer.tag(1, WireType.LengthDelimited).string(message.license);
499
+ /* optional string group = 2; */
500
+ if (message.group !== undefined)
501
+ writer.tag(2, WireType.LengthDelimited).string(message.group);
502
+ /* resources.accounts.AccountGroups groups = 3; */
503
+ if (message.groups)
504
+ AccountGroups.internalBinaryWrite(message.groups, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
505
+ let u = options.writeUnknownFields;
506
+ if (u !== false)
507
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
508
+ return writer;
509
+ }
510
+ }
511
+ /**
512
+ * @generated MessageType for protobuf message resources.sync.activity.AccountUpdate
513
+ */
514
+ export const AccountUpdate = new AccountUpdate$Type();