@fivenet-app/gen 2026.5.0 → 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 (87) hide show
  1. package/clients.ts +6 -0
  2. package/codegen/perms/perms.ts +74 -40
  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 +387 -41
  8. package/resources/access/access.ts +481 -0
  9. package/resources/accounts/accounts.ts +41 -30
  10. package/resources/audit/audit.ts +5 -1
  11. package/resources/calendar/access/access.ts +0 -330
  12. package/resources/calendar/calendar.ts +307 -25
  13. package/resources/calendar/entries/entries.ts +204 -11
  14. package/resources/centrum/units/access/access.ts +0 -373
  15. package/resources/centrum/units/units.ts +20 -8
  16. package/resources/citizens/labels/access.ts +0 -191
  17. package/resources/citizens/labels/labels.ts +20 -8
  18. package/resources/common/content/diff_activity.ts +1 -1
  19. package/resources/cron/cron.ts +1 -1
  20. package/resources/documents/access/access.ts +0 -329
  21. package/resources/documents/activity/activity.ts +49 -45
  22. package/resources/documents/documents.ts +1 -1
  23. package/resources/documents/requests/requests.ts +1 -1
  24. package/resources/documents/stamps/stamp.ts +40 -210
  25. package/resources/documents/templates/templates.ts +158 -318
  26. package/resources/jobs/colleagues/activity/activity.ts +2 -2
  27. package/resources/jobs/conduct/conduct.ts +2 -2
  28. package/resources/jobs/jobs.ts +22 -0
  29. package/resources/jobs/labels/labels.ts +9 -9
  30. package/resources/laws/laws.ts +96 -50
  31. package/resources/livemap/markers/marker_marker.ts +311 -4
  32. package/resources/mailer/access/access.ts +0 -457
  33. package/resources/mailer/emails/email.ts +4 -4
  34. package/resources/notifications/events/events.ts +18 -1
  35. package/resources/permissions/attributes/attributes.ts +51 -39
  36. package/resources/permissions/permissions/permissions.ts +46 -34
  37. package/resources/qualifications/access/access.ts +0 -248
  38. package/resources/qualifications/qualifications.ts +9 -9
  39. package/resources/settings/config.ts +53 -5
  40. package/resources/settings/data.ts +1 -1
  41. package/resources/stats/stats.ts +32 -20
  42. package/resources/sync/data/data.ts +22 -10
  43. package/resources/userinfo/userinfo.ts +202 -51
  44. package/resources/users/activity/activity.ts +70 -77
  45. package/resources/wiki/access/access.ts +0 -330
  46. package/resources/wiki/activity/activity.ts +45 -45
  47. package/resources/wiki/page.ts +9 -9
  48. package/services/auth/auth.ts +1 -1
  49. package/services/calendar/calendar.ts +1 -1
  50. package/services/calendar/entries.ts +13 -2
  51. package/services/centrum/dispatches.ts +32 -12
  52. package/services/centrum/units.client.ts +15 -2
  53. package/services/centrum/units.ts +237 -129
  54. package/services/citizens/citizens.ts +1 -1
  55. package/services/citizens/labels.client.ts +13 -0
  56. package/services/citizens/labels.ts +135 -4
  57. package/services/completor/completor.client.ts +0 -13
  58. package/services/completor/completor.ts +2 -116
  59. package/services/documents/approval.ts +20 -9
  60. package/services/documents/categories.ts +1 -1
  61. package/services/documents/collab.ts +1 -1
  62. package/services/documents/comments.ts +4 -4
  63. package/services/documents/documents.ts +38 -38
  64. package/services/documents/stats.ts +14 -2
  65. package/services/documents/templates.ts +1 -1
  66. package/services/filestore/filestore.ts +4 -4
  67. package/services/jobs/colleagues.ts +4 -4
  68. package/services/jobs/conduct.ts +2 -2
  69. package/services/jobs/groups.client.ts +22 -0
  70. package/services/jobs/groups.ts +9 -0
  71. package/services/jobs/timeclock.ts +2 -2
  72. package/services/mailer/settings.ts +1 -1
  73. package/services/mailer/thread.ts +3 -3
  74. package/services/qualifications/exam.ts +5 -5
  75. package/services/qualifications/qualifications.ts +52 -34
  76. package/services/settings/accounts.ts +19 -6
  77. package/services/settings/config.ts +2 -2
  78. package/services/settings/cron.ts +2 -2
  79. package/services/settings/laws.client.ts +44 -5
  80. package/services/settings/laws.ts +357 -4
  81. package/services/settings/system.ts +6 -6
  82. package/services/sync/sync.client.ts +42 -14
  83. package/services/sync/sync.ts +162 -13
  84. package/services/wiki/collab.ts +1 -1
  85. package/services/wiki/wiki.client.ts +15 -2
  86. package/services/wiki/wiki.ts +122 -0
  87. package/svcs.ts +19 -1
@@ -13,13 +13,13 @@ import { reflectionMergePartial } from "@protobuf-ts/runtime";
13
13
  import { MessageType } from "@protobuf-ts/runtime";
14
14
  import { OnEditBehavior } from "../approval/approval";
15
15
  import { ApprovalRuleKind } from "../approval/approval";
16
- import { AccessLevel } from "../access/access";
17
16
  import { Vehicle } from "../../vehicles/vehicles";
18
17
  import { UserShort } from "../../users/short/user";
19
18
  import { DocumentShort } from "../documents";
20
19
  import { User } from "../../users/user";
21
20
  import { Workflow } from "../workflow/workflow";
22
- import { DocumentAccess } from "../access/access";
21
+ import { Access } from "../../access/access";
22
+ import { JobAccess } from "../../access/access";
23
23
  import { Category } from "../category/category";
24
24
  import { Timestamp } from "../../timestamp/timestamp";
25
25
  /**
@@ -39,67 +39,71 @@ export interface Template {
39
39
  */
40
40
  updatedAt?: Timestamp;
41
41
  /**
42
- * @generated from protobuf field: resources.documents.category.Category category = 4
42
+ * @generated from protobuf field: optional resources.timestamp.Timestamp deleted_at = 4
43
+ */
44
+ deletedAt?: Timestamp;
45
+ /**
46
+ * @generated from protobuf field: resources.documents.category.Category category = 5
43
47
  */
44
48
  category?: Category;
45
49
  /**
46
- * @generated from protobuf field: uint32 weight = 5
50
+ * @generated from protobuf field: uint32 weight = 6
47
51
  */
48
52
  weight: number;
49
53
  /**
50
- * @generated from protobuf field: string title = 6
54
+ * @generated from protobuf field: string title = 7
51
55
  */
52
56
  title: string;
53
57
  /**
54
- * @generated from protobuf field: string description = 7
58
+ * @generated from protobuf field: string description = 8
55
59
  */
56
60
  description: string;
57
61
  /**
58
- * @generated from protobuf field: optional string color = 8
62
+ * @generated from protobuf field: optional string color = 9
59
63
  */
60
64
  color?: string;
61
65
  /**
62
- * @generated from protobuf field: optional string icon = 9
66
+ * @generated from protobuf field: optional string icon = 10
63
67
  */
64
68
  icon?: string;
65
69
  /**
66
- * @generated from protobuf field: string content_title = 10
70
+ * @generated from protobuf field: string content_title = 11
67
71
  */
68
72
  contentTitle: string;
69
73
  /**
70
- * @generated from protobuf field: string content = 11
74
+ * @generated from protobuf field: string content = 12
71
75
  */
72
76
  content: string;
73
77
  /**
74
- * @generated from protobuf field: string state = 12
78
+ * @generated from protobuf field: string state = 13
75
79
  */
76
80
  state: string;
77
81
  /**
78
- * @generated from protobuf field: resources.documents.templates.TemplateSchema schema = 13
82
+ * @generated from protobuf field: resources.documents.templates.TemplateSchema schema = 14
79
83
  */
80
84
  schema?: TemplateSchema;
81
85
  /**
82
- * @generated from protobuf field: string creator_job = 14
86
+ * @generated from protobuf field: string creator_job = 15
83
87
  */
84
88
  creatorJob: string;
85
89
  /**
86
- * @generated from protobuf field: optional string creator_job_label = 15
90
+ * @generated from protobuf field: optional string creator_job_label = 16
87
91
  */
88
92
  creatorJobLabel?: string;
89
93
  /**
90
- * @generated from protobuf field: repeated resources.documents.templates.TemplateJobAccess job_access = 16
94
+ * @generated from protobuf field: repeated resources.access.JobAccess job_access = 17
91
95
  */
92
- jobAccess: TemplateJobAccess[];
96
+ jobAccess: JobAccess[];
93
97
  /**
94
- * @generated from protobuf field: resources.documents.access.DocumentAccess content_access = 17
98
+ * @generated from protobuf field: resources.access.Access content_access = 18
95
99
  */
96
- contentAccess?: DocumentAccess;
100
+ contentAccess?: Access;
97
101
  /**
98
- * @generated from protobuf field: optional resources.documents.workflow.Workflow workflow = 18
102
+ * @generated from protobuf field: optional resources.documents.workflow.Workflow workflow = 19
99
103
  */
100
104
  workflow?: Workflow;
101
105
  /**
102
- * @generated from protobuf field: optional resources.documents.templates.TemplateApproval approval = 19
106
+ * @generated from protobuf field: optional resources.documents.templates.TemplateApproval approval = 20
103
107
  */
104
108
  approval?: TemplateApproval;
105
109
  }
@@ -120,43 +124,47 @@ export interface TemplateShort {
120
124
  */
121
125
  updatedAt?: Timestamp;
122
126
  /**
123
- * @generated from protobuf field: resources.documents.category.Category category = 4
127
+ * @generated from protobuf field: optional resources.timestamp.Timestamp deleted_at = 4
128
+ */
129
+ deletedAt?: Timestamp;
130
+ /**
131
+ * @generated from protobuf field: resources.documents.category.Category category = 5
124
132
  */
125
133
  category?: Category;
126
134
  /**
127
- * @generated from protobuf field: uint32 weight = 5
135
+ * @generated from protobuf field: uint32 weight = 6
128
136
  */
129
137
  weight: number;
130
138
  /**
131
- * @generated from protobuf field: string title = 6
139
+ * @generated from protobuf field: string title = 7
132
140
  */
133
141
  title: string;
134
142
  /**
135
- * @generated from protobuf field: string description = 7
143
+ * @generated from protobuf field: string description = 8
136
144
  */
137
145
  description: string;
138
146
  /**
139
- * @generated from protobuf field: optional string color = 8
147
+ * @generated from protobuf field: optional string color = 9
140
148
  */
141
149
  color?: string;
142
150
  /**
143
- * @generated from protobuf field: optional string icon = 9
151
+ * @generated from protobuf field: optional string icon = 10
144
152
  */
145
153
  icon?: string;
146
154
  /**
147
- * @generated from protobuf field: resources.documents.templates.TemplateSchema schema = 10
155
+ * @generated from protobuf field: resources.documents.templates.TemplateSchema schema = 14
148
156
  */
149
157
  schema?: TemplateSchema;
150
158
  /**
151
- * @generated from protobuf field: string creator_job = 11
159
+ * @generated from protobuf field: string creator_job = 15
152
160
  */
153
161
  creatorJob: string;
154
162
  /**
155
- * @generated from protobuf field: optional string creator_job_label = 12
163
+ * @generated from protobuf field: optional string creator_job_label = 16
156
164
  */
157
165
  creatorJobLabel?: string;
158
166
  /**
159
- * @generated from protobuf field: optional resources.documents.workflow.Workflow workflow = 18
167
+ * @generated from protobuf field: optional resources.documents.workflow.Workflow workflow = 19
160
168
  */
161
169
  workflow?: Workflow;
162
170
  }
@@ -224,50 +232,6 @@ export interface TemplateData {
224
232
  */
225
233
  vehicles: Vehicle[];
226
234
  }
227
- /**
228
- * @generated from protobuf message resources.documents.templates.TemplateJobAccess
229
- */
230
- export interface TemplateJobAccess {
231
- /**
232
- * @generated from protobuf field: int64 id = 1
233
- */
234
- id: number;
235
- /**
236
- * @generated from protobuf field: optional resources.timestamp.Timestamp created_at = 2
237
- */
238
- createdAt?: Timestamp;
239
- /**
240
- * @generated from protobuf field: int64 target_id = 3
241
- */
242
- targetId: number;
243
- /**
244
- * @generated from protobuf field: string job = 4
245
- */
246
- job: string;
247
- /**
248
- * @generated from protobuf field: optional string job_label = 5
249
- */
250
- jobLabel?: string;
251
- /**
252
- * @generated from protobuf field: int32 minimum_grade = 6
253
- */
254
- minimumGrade: number;
255
- /**
256
- * @generated from protobuf field: optional string job_grade_label = 7
257
- */
258
- jobGradeLabel?: string;
259
- /**
260
- * @generated from protobuf field: resources.documents.access.AccessLevel access = 8
261
- */
262
- access: AccessLevel;
263
- }
264
- /**
265
- * Dummy - DO NOT USE!
266
- *
267
- * @generated from protobuf message resources.documents.templates.TemplateUserAccess
268
- */
269
- export interface TemplateUserAccess {
270
- }
271
235
  /**
272
236
  * @generated from protobuf message resources.documents.templates.TemplateApproval
273
237
  */
@@ -364,22 +328,23 @@ class Template$Type extends MessageType<Template> {
364
328
  { no: 1, name: "id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/, options: { "tagger.tags": "alias:\"id\"" } },
365
329
  { no: 2, name: "created_at", kind: "message", T: () => Timestamp },
366
330
  { no: 3, name: "updated_at", kind: "message", T: () => Timestamp },
367
- { no: 4, name: "category", kind: "message", T: () => Category, options: { "tagger.tags": "alias:\"category\"" } },
368
- { no: 5, name: "weight", kind: "scalar", T: 13 /*ScalarType.UINT32*/, options: { "buf.validate.field": { uint32: { lt: 4294967295 } } } },
369
- { no: 6, name: "title", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "3" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
370
- { no: 7, name: "description", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "255" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
371
- { no: 8, name: "color", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "3", maxLen: "7" } }, "codegen.sanitizer.sanitizer": { enabled: true, stripHtmlTags: true } } },
372
- { no: 9, name: "icon", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "128" } }, "codegen.sanitizer.sanitizer": { enabled: true, stripHtmlTags: true } } },
373
- { no: 10, name: "content_title", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "3", maxBytes: "10240" } }, "codegen.sanitizer.sanitizer": { enabled: true, method: "SanitizeAndUnescape" }, "tagger.tags": "alias:\"content_title\"" } },
374
- { no: 11, name: "content", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "0", maxBytes: "2000000" } }, "codegen.sanitizer.sanitizer": { enabled: true, method: "SanitizeAndUnescape" }, "tagger.tags": "alias:\"content\"" } },
375
- { no: 12, name: "state", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "512" } }, "tagger.tags": "alias:\"state\"" } },
376
- { no: 13, name: "schema", kind: "message", T: () => TemplateSchema, options: { "tagger.tags": "alias:\"schema\"" } },
377
- { no: 14, name: "creator_job", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "20" } } } },
378
- { no: 15, name: "creator_job_label", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "50" } } } },
379
- { no: 16, name: "job_access", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => TemplateJobAccess, options: { "buf.validate.field": { repeated: { maxItems: "20" } } } },
380
- { no: 17, name: "content_access", kind: "message", T: () => DocumentAccess, options: { "tagger.tags": "alias:\"access\"" } },
381
- { no: 18, name: "workflow", kind: "message", T: () => Workflow },
382
- { no: 19, name: "approval", kind: "message", T: () => TemplateApproval }
331
+ { no: 4, name: "deleted_at", kind: "message", T: () => Timestamp },
332
+ { no: 5, name: "category", kind: "message", T: () => Category, options: { "tagger.tags": "alias:\"category\"" } },
333
+ { no: 6, name: "weight", kind: "scalar", T: 13 /*ScalarType.UINT32*/, options: { "buf.validate.field": { uint32: { lt: 4294967295 } } } },
334
+ { no: 7, name: "title", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "3" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
335
+ { no: 8, name: "description", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "255" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
336
+ { no: 9, name: "color", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "3", maxLen: "7" } }, "codegen.sanitizer.sanitizer": { enabled: true, stripHtmlTags: true } } },
337
+ { no: 10, name: "icon", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "128" } }, "codegen.sanitizer.sanitizer": { enabled: true, stripHtmlTags: true } } },
338
+ { no: 11, name: "content_title", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "3", maxBytes: "10240" } }, "codegen.sanitizer.sanitizer": { enabled: true }, "tagger.tags": "alias:\"content_title\"" } },
339
+ { no: 12, name: "content", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "0", maxBytes: "2000000" } }, "codegen.sanitizer.sanitizer": { enabled: true }, "tagger.tags": "alias:\"content\"" } },
340
+ { no: 13, name: "state", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "512" } }, "tagger.tags": "alias:\"state\"" } },
341
+ { no: 14, name: "schema", kind: "message", T: () => TemplateSchema, options: { "tagger.tags": "alias:\"schema\"" } },
342
+ { no: 15, name: "creator_job", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "20" } } } },
343
+ { no: 16, name: "creator_job_label", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "50" } } } },
344
+ { no: 17, name: "job_access", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => JobAccess, options: { "buf.validate.field": { repeated: { maxItems: "20" } } } },
345
+ { no: 18, name: "content_access", kind: "message", T: () => Access, options: { "tagger.tags": "alias:\"access\"" } },
346
+ { no: 19, name: "workflow", kind: "message", T: () => Workflow },
347
+ { no: 20, name: "approval", kind: "message", T: () => TemplateApproval }
383
348
  ]);
384
349
  }
385
350
  create(value?: PartialMessage<Template>): Template {
@@ -411,52 +376,55 @@ class Template$Type extends MessageType<Template> {
411
376
  case /* optional resources.timestamp.Timestamp updated_at */ 3:
412
377
  message.updatedAt = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.updatedAt);
413
378
  break;
414
- case /* resources.documents.category.Category category */ 4:
379
+ case /* optional resources.timestamp.Timestamp deleted_at */ 4:
380
+ message.deletedAt = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.deletedAt);
381
+ break;
382
+ case /* resources.documents.category.Category category */ 5:
415
383
  message.category = Category.internalBinaryRead(reader, reader.uint32(), options, message.category);
416
384
  break;
417
- case /* uint32 weight */ 5:
385
+ case /* uint32 weight */ 6:
418
386
  message.weight = reader.uint32();
419
387
  break;
420
- case /* string title */ 6:
388
+ case /* string title */ 7:
421
389
  message.title = reader.string();
422
390
  break;
423
- case /* string description */ 7:
391
+ case /* string description */ 8:
424
392
  message.description = reader.string();
425
393
  break;
426
- case /* optional string color */ 8:
394
+ case /* optional string color */ 9:
427
395
  message.color = reader.string();
428
396
  break;
429
- case /* optional string icon */ 9:
397
+ case /* optional string icon */ 10:
430
398
  message.icon = reader.string();
431
399
  break;
432
- case /* string content_title */ 10:
400
+ case /* string content_title */ 11:
433
401
  message.contentTitle = reader.string();
434
402
  break;
435
- case /* string content */ 11:
403
+ case /* string content */ 12:
436
404
  message.content = reader.string();
437
405
  break;
438
- case /* string state */ 12:
406
+ case /* string state */ 13:
439
407
  message.state = reader.string();
440
408
  break;
441
- case /* resources.documents.templates.TemplateSchema schema */ 13:
409
+ case /* resources.documents.templates.TemplateSchema schema */ 14:
442
410
  message.schema = TemplateSchema.internalBinaryRead(reader, reader.uint32(), options, message.schema);
443
411
  break;
444
- case /* string creator_job */ 14:
412
+ case /* string creator_job */ 15:
445
413
  message.creatorJob = reader.string();
446
414
  break;
447
- case /* optional string creator_job_label */ 15:
415
+ case /* optional string creator_job_label */ 16:
448
416
  message.creatorJobLabel = reader.string();
449
417
  break;
450
- case /* repeated resources.documents.templates.TemplateJobAccess job_access */ 16:
451
- message.jobAccess.push(TemplateJobAccess.internalBinaryRead(reader, reader.uint32(), options));
418
+ case /* repeated resources.access.JobAccess job_access */ 17:
419
+ message.jobAccess.push(JobAccess.internalBinaryRead(reader, reader.uint32(), options));
452
420
  break;
453
- case /* resources.documents.access.DocumentAccess content_access */ 17:
454
- message.contentAccess = DocumentAccess.internalBinaryRead(reader, reader.uint32(), options, message.contentAccess);
421
+ case /* resources.access.Access content_access */ 18:
422
+ message.contentAccess = Access.internalBinaryRead(reader, reader.uint32(), options, message.contentAccess);
455
423
  break;
456
- case /* optional resources.documents.workflow.Workflow workflow */ 18:
424
+ case /* optional resources.documents.workflow.Workflow workflow */ 19:
457
425
  message.workflow = Workflow.internalBinaryRead(reader, reader.uint32(), options, message.workflow);
458
426
  break;
459
- case /* optional resources.documents.templates.TemplateApproval approval */ 19:
427
+ case /* optional resources.documents.templates.TemplateApproval approval */ 20:
460
428
  message.approval = TemplateApproval.internalBinaryRead(reader, reader.uint32(), options, message.approval);
461
429
  break;
462
430
  default:
@@ -480,54 +448,57 @@ class Template$Type extends MessageType<Template> {
480
448
  /* optional resources.timestamp.Timestamp updated_at = 3; */
481
449
  if (message.updatedAt)
482
450
  Timestamp.internalBinaryWrite(message.updatedAt, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
483
- /* resources.documents.category.Category category = 4; */
451
+ /* optional resources.timestamp.Timestamp deleted_at = 4; */
452
+ if (message.deletedAt)
453
+ Timestamp.internalBinaryWrite(message.deletedAt, writer.tag(4, WireType.LengthDelimited).fork(), options).join();
454
+ /* resources.documents.category.Category category = 5; */
484
455
  if (message.category)
485
- Category.internalBinaryWrite(message.category, writer.tag(4, WireType.LengthDelimited).fork(), options).join();
486
- /* uint32 weight = 5; */
456
+ Category.internalBinaryWrite(message.category, writer.tag(5, WireType.LengthDelimited).fork(), options).join();
457
+ /* uint32 weight = 6; */
487
458
  if (message.weight !== 0)
488
- writer.tag(5, WireType.Varint).uint32(message.weight);
489
- /* string title = 6; */
459
+ writer.tag(6, WireType.Varint).uint32(message.weight);
460
+ /* string title = 7; */
490
461
  if (message.title !== "")
491
- writer.tag(6, WireType.LengthDelimited).string(message.title);
492
- /* string description = 7; */
462
+ writer.tag(7, WireType.LengthDelimited).string(message.title);
463
+ /* string description = 8; */
493
464
  if (message.description !== "")
494
- writer.tag(7, WireType.LengthDelimited).string(message.description);
495
- /* optional string color = 8; */
465
+ writer.tag(8, WireType.LengthDelimited).string(message.description);
466
+ /* optional string color = 9; */
496
467
  if (message.color !== undefined)
497
- writer.tag(8, WireType.LengthDelimited).string(message.color);
498
- /* optional string icon = 9; */
468
+ writer.tag(9, WireType.LengthDelimited).string(message.color);
469
+ /* optional string icon = 10; */
499
470
  if (message.icon !== undefined)
500
- writer.tag(9, WireType.LengthDelimited).string(message.icon);
501
- /* string content_title = 10; */
471
+ writer.tag(10, WireType.LengthDelimited).string(message.icon);
472
+ /* string content_title = 11; */
502
473
  if (message.contentTitle !== "")
503
- writer.tag(10, WireType.LengthDelimited).string(message.contentTitle);
504
- /* string content = 11; */
474
+ writer.tag(11, WireType.LengthDelimited).string(message.contentTitle);
475
+ /* string content = 12; */
505
476
  if (message.content !== "")
506
- writer.tag(11, WireType.LengthDelimited).string(message.content);
507
- /* string state = 12; */
477
+ writer.tag(12, WireType.LengthDelimited).string(message.content);
478
+ /* string state = 13; */
508
479
  if (message.state !== "")
509
- writer.tag(12, WireType.LengthDelimited).string(message.state);
510
- /* resources.documents.templates.TemplateSchema schema = 13; */
480
+ writer.tag(13, WireType.LengthDelimited).string(message.state);
481
+ /* resources.documents.templates.TemplateSchema schema = 14; */
511
482
  if (message.schema)
512
- TemplateSchema.internalBinaryWrite(message.schema, writer.tag(13, WireType.LengthDelimited).fork(), options).join();
513
- /* string creator_job = 14; */
483
+ TemplateSchema.internalBinaryWrite(message.schema, writer.tag(14, WireType.LengthDelimited).fork(), options).join();
484
+ /* string creator_job = 15; */
514
485
  if (message.creatorJob !== "")
515
- writer.tag(14, WireType.LengthDelimited).string(message.creatorJob);
516
- /* optional string creator_job_label = 15; */
486
+ writer.tag(15, WireType.LengthDelimited).string(message.creatorJob);
487
+ /* optional string creator_job_label = 16; */
517
488
  if (message.creatorJobLabel !== undefined)
518
- writer.tag(15, WireType.LengthDelimited).string(message.creatorJobLabel);
519
- /* repeated resources.documents.templates.TemplateJobAccess job_access = 16; */
489
+ writer.tag(16, WireType.LengthDelimited).string(message.creatorJobLabel);
490
+ /* repeated resources.access.JobAccess job_access = 17; */
520
491
  for (let i = 0; i < message.jobAccess.length; i++)
521
- TemplateJobAccess.internalBinaryWrite(message.jobAccess[i], writer.tag(16, WireType.LengthDelimited).fork(), options).join();
522
- /* resources.documents.access.DocumentAccess content_access = 17; */
492
+ JobAccess.internalBinaryWrite(message.jobAccess[i], writer.tag(17, WireType.LengthDelimited).fork(), options).join();
493
+ /* resources.access.Access content_access = 18; */
523
494
  if (message.contentAccess)
524
- DocumentAccess.internalBinaryWrite(message.contentAccess, writer.tag(17, WireType.LengthDelimited).fork(), options).join();
525
- /* optional resources.documents.workflow.Workflow workflow = 18; */
495
+ Access.internalBinaryWrite(message.contentAccess, writer.tag(18, WireType.LengthDelimited).fork(), options).join();
496
+ /* optional resources.documents.workflow.Workflow workflow = 19; */
526
497
  if (message.workflow)
527
- Workflow.internalBinaryWrite(message.workflow, writer.tag(18, WireType.LengthDelimited).fork(), options).join();
528
- /* optional resources.documents.templates.TemplateApproval approval = 19; */
498
+ Workflow.internalBinaryWrite(message.workflow, writer.tag(19, WireType.LengthDelimited).fork(), options).join();
499
+ /* optional resources.documents.templates.TemplateApproval approval = 20; */
529
500
  if (message.approval)
530
- TemplateApproval.internalBinaryWrite(message.approval, writer.tag(19, WireType.LengthDelimited).fork(), options).join();
501
+ TemplateApproval.internalBinaryWrite(message.approval, writer.tag(20, WireType.LengthDelimited).fork(), options).join();
531
502
  let u = options.writeUnknownFields;
532
503
  if (u !== false)
533
504
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -545,16 +516,17 @@ class TemplateShort$Type extends MessageType<TemplateShort> {
545
516
  { no: 1, name: "id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/, options: { "tagger.tags": "alias:\"id\"" } },
546
517
  { no: 2, name: "created_at", kind: "message", T: () => Timestamp },
547
518
  { no: 3, name: "updated_at", kind: "message", T: () => Timestamp },
548
- { no: 4, name: "category", kind: "message", T: () => Category, options: { "tagger.tags": "alias:\"category\"" } },
549
- { no: 5, name: "weight", kind: "scalar", T: 13 /*ScalarType.UINT32*/, options: { "buf.validate.field": { uint32: { lt: 4294967295 } } } },
550
- { no: 6, name: "title", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "3" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
551
- { no: 7, name: "description", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "255" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
552
- { no: 8, name: "color", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "3", maxLen: "7" } }, "codegen.sanitizer.sanitizer": { enabled: true, stripHtmlTags: true } } },
553
- { no: 9, name: "icon", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "128" } }, "codegen.sanitizer.sanitizer": { enabled: true, stripHtmlTags: true } } },
554
- { no: 10, name: "schema", kind: "message", T: () => TemplateSchema, options: { "tagger.tags": "alias:\"schema\"" } },
555
- { no: 11, name: "creator_job", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "20" } } } },
556
- { no: 12, name: "creator_job_label", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "50" } } } },
557
- { no: 18, name: "workflow", kind: "message", T: () => Workflow }
519
+ { no: 4, name: "deleted_at", kind: "message", T: () => Timestamp },
520
+ { no: 5, name: "category", kind: "message", T: () => Category, options: { "tagger.tags": "alias:\"category\"" } },
521
+ { no: 6, name: "weight", kind: "scalar", T: 13 /*ScalarType.UINT32*/, options: { "buf.validate.field": { uint32: { lt: 4294967295 } } } },
522
+ { no: 7, name: "title", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "3" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
523
+ { no: 8, name: "description", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "255" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
524
+ { no: 9, name: "color", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "3", maxLen: "7" } }, "codegen.sanitizer.sanitizer": { enabled: true, stripHtmlTags: true } } },
525
+ { no: 10, name: "icon", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "128" } }, "codegen.sanitizer.sanitizer": { enabled: true, stripHtmlTags: true } } },
526
+ { no: 14, name: "schema", kind: "message", T: () => TemplateSchema, options: { "tagger.tags": "alias:\"schema\"" } },
527
+ { no: 15, name: "creator_job", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "20" } } } },
528
+ { no: 16, name: "creator_job_label", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "50" } } } },
529
+ { no: 19, name: "workflow", kind: "message", T: () => Workflow }
558
530
  ]);
559
531
  }
560
532
  create(value?: PartialMessage<TemplateShort>): TemplateShort {
@@ -582,34 +554,37 @@ class TemplateShort$Type extends MessageType<TemplateShort> {
582
554
  case /* optional resources.timestamp.Timestamp updated_at */ 3:
583
555
  message.updatedAt = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.updatedAt);
584
556
  break;
585
- case /* resources.documents.category.Category category */ 4:
557
+ case /* optional resources.timestamp.Timestamp deleted_at */ 4:
558
+ message.deletedAt = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.deletedAt);
559
+ break;
560
+ case /* resources.documents.category.Category category */ 5:
586
561
  message.category = Category.internalBinaryRead(reader, reader.uint32(), options, message.category);
587
562
  break;
588
- case /* uint32 weight */ 5:
563
+ case /* uint32 weight */ 6:
589
564
  message.weight = reader.uint32();
590
565
  break;
591
- case /* string title */ 6:
566
+ case /* string title */ 7:
592
567
  message.title = reader.string();
593
568
  break;
594
- case /* string description */ 7:
569
+ case /* string description */ 8:
595
570
  message.description = reader.string();
596
571
  break;
597
- case /* optional string color */ 8:
572
+ case /* optional string color */ 9:
598
573
  message.color = reader.string();
599
574
  break;
600
- case /* optional string icon */ 9:
575
+ case /* optional string icon */ 10:
601
576
  message.icon = reader.string();
602
577
  break;
603
- case /* resources.documents.templates.TemplateSchema schema */ 10:
578
+ case /* resources.documents.templates.TemplateSchema schema */ 14:
604
579
  message.schema = TemplateSchema.internalBinaryRead(reader, reader.uint32(), options, message.schema);
605
580
  break;
606
- case /* string creator_job */ 11:
581
+ case /* string creator_job */ 15:
607
582
  message.creatorJob = reader.string();
608
583
  break;
609
- case /* optional string creator_job_label */ 12:
584
+ case /* optional string creator_job_label */ 16:
610
585
  message.creatorJobLabel = reader.string();
611
586
  break;
612
- case /* optional resources.documents.workflow.Workflow workflow */ 18:
587
+ case /* optional resources.documents.workflow.Workflow workflow */ 19:
613
588
  message.workflow = Workflow.internalBinaryRead(reader, reader.uint32(), options, message.workflow);
614
589
  break;
615
590
  default:
@@ -633,36 +608,39 @@ class TemplateShort$Type extends MessageType<TemplateShort> {
633
608
  /* optional resources.timestamp.Timestamp updated_at = 3; */
634
609
  if (message.updatedAt)
635
610
  Timestamp.internalBinaryWrite(message.updatedAt, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
636
- /* resources.documents.category.Category category = 4; */
611
+ /* optional resources.timestamp.Timestamp deleted_at = 4; */
612
+ if (message.deletedAt)
613
+ Timestamp.internalBinaryWrite(message.deletedAt, writer.tag(4, WireType.LengthDelimited).fork(), options).join();
614
+ /* resources.documents.category.Category category = 5; */
637
615
  if (message.category)
638
- Category.internalBinaryWrite(message.category, writer.tag(4, WireType.LengthDelimited).fork(), options).join();
639
- /* uint32 weight = 5; */
616
+ Category.internalBinaryWrite(message.category, writer.tag(5, WireType.LengthDelimited).fork(), options).join();
617
+ /* uint32 weight = 6; */
640
618
  if (message.weight !== 0)
641
- writer.tag(5, WireType.Varint).uint32(message.weight);
642
- /* string title = 6; */
619
+ writer.tag(6, WireType.Varint).uint32(message.weight);
620
+ /* string title = 7; */
643
621
  if (message.title !== "")
644
- writer.tag(6, WireType.LengthDelimited).string(message.title);
645
- /* string description = 7; */
622
+ writer.tag(7, WireType.LengthDelimited).string(message.title);
623
+ /* string description = 8; */
646
624
  if (message.description !== "")
647
- writer.tag(7, WireType.LengthDelimited).string(message.description);
648
- /* optional string color = 8; */
625
+ writer.tag(8, WireType.LengthDelimited).string(message.description);
626
+ /* optional string color = 9; */
649
627
  if (message.color !== undefined)
650
- writer.tag(8, WireType.LengthDelimited).string(message.color);
651
- /* optional string icon = 9; */
628
+ writer.tag(9, WireType.LengthDelimited).string(message.color);
629
+ /* optional string icon = 10; */
652
630
  if (message.icon !== undefined)
653
- writer.tag(9, WireType.LengthDelimited).string(message.icon);
654
- /* resources.documents.templates.TemplateSchema schema = 10; */
631
+ writer.tag(10, WireType.LengthDelimited).string(message.icon);
632
+ /* resources.documents.templates.TemplateSchema schema = 14; */
655
633
  if (message.schema)
656
- TemplateSchema.internalBinaryWrite(message.schema, writer.tag(10, WireType.LengthDelimited).fork(), options).join();
657
- /* string creator_job = 11; */
634
+ TemplateSchema.internalBinaryWrite(message.schema, writer.tag(14, WireType.LengthDelimited).fork(), options).join();
635
+ /* string creator_job = 15; */
658
636
  if (message.creatorJob !== "")
659
- writer.tag(11, WireType.LengthDelimited).string(message.creatorJob);
660
- /* optional string creator_job_label = 12; */
637
+ writer.tag(15, WireType.LengthDelimited).string(message.creatorJob);
638
+ /* optional string creator_job_label = 16; */
661
639
  if (message.creatorJobLabel !== undefined)
662
- writer.tag(12, WireType.LengthDelimited).string(message.creatorJobLabel);
663
- /* optional resources.documents.workflow.Workflow workflow = 18; */
640
+ writer.tag(16, WireType.LengthDelimited).string(message.creatorJobLabel);
641
+ /* optional resources.documents.workflow.Workflow workflow = 19; */
664
642
  if (message.workflow)
665
- Workflow.internalBinaryWrite(message.workflow, writer.tag(18, WireType.LengthDelimited).fork(), options).join();
643
+ Workflow.internalBinaryWrite(message.workflow, writer.tag(19, WireType.LengthDelimited).fork(), options).join();
666
644
  let u = options.writeUnknownFields;
667
645
  if (u !== false)
668
646
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -910,144 +888,6 @@ class TemplateData$Type extends MessageType<TemplateData> {
910
888
  */
911
889
  export const TemplateData = new TemplateData$Type();
912
890
  // @generated message type with reflection information, may provide speed optimized methods
913
- class TemplateJobAccess$Type extends MessageType<TemplateJobAccess> {
914
- constructor() {
915
- super("resources.documents.templates.TemplateJobAccess", [
916
- { no: 1, name: "id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/, options: { "tagger.tags": "alias:\"id\"" } },
917
- { no: 2, name: "created_at", kind: "message", T: () => Timestamp },
918
- { no: 3, name: "target_id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/, options: { "tagger.tags": "alias:\"template_id\"" } },
919
- { no: 4, name: "job", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "20" } } } },
920
- { no: 5, name: "job_label", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "50" } } } },
921
- { no: 6, name: "minimum_grade", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gte: 0 } } } },
922
- { no: 7, name: "job_grade_label", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "50" } } } },
923
- { no: 8, name: "access", kind: "enum", T: () => ["resources.documents.access.AccessLevel", AccessLevel, "ACCESS_LEVEL_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } }
924
- ]);
925
- }
926
- create(value?: PartialMessage<TemplateJobAccess>): TemplateJobAccess {
927
- const message = globalThis.Object.create((this.messagePrototype!));
928
- message.id = 0;
929
- message.targetId = 0;
930
- message.job = "";
931
- message.minimumGrade = 0;
932
- message.access = 0;
933
- if (value !== undefined)
934
- reflectionMergePartial<TemplateJobAccess>(this, message, value);
935
- return message;
936
- }
937
- internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TemplateJobAccess): TemplateJobAccess {
938
- let message = target ?? this.create(), end = reader.pos + length;
939
- while (reader.pos < end) {
940
- let [fieldNo, wireType] = reader.tag();
941
- switch (fieldNo) {
942
- case /* int64 id */ 1:
943
- message.id = reader.int64().toNumber();
944
- break;
945
- case /* optional resources.timestamp.Timestamp created_at */ 2:
946
- message.createdAt = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.createdAt);
947
- break;
948
- case /* int64 target_id */ 3:
949
- message.targetId = reader.int64().toNumber();
950
- break;
951
- case /* string job */ 4:
952
- message.job = reader.string();
953
- break;
954
- case /* optional string job_label */ 5:
955
- message.jobLabel = reader.string();
956
- break;
957
- case /* int32 minimum_grade */ 6:
958
- message.minimumGrade = reader.int32();
959
- break;
960
- case /* optional string job_grade_label */ 7:
961
- message.jobGradeLabel = reader.string();
962
- break;
963
- case /* resources.documents.access.AccessLevel access */ 8:
964
- message.access = reader.int32();
965
- break;
966
- default:
967
- let u = options.readUnknownField;
968
- if (u === "throw")
969
- throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
970
- let d = reader.skip(wireType);
971
- if (u !== false)
972
- (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
973
- }
974
- }
975
- return message;
976
- }
977
- internalBinaryWrite(message: TemplateJobAccess, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
978
- /* int64 id = 1; */
979
- if (message.id !== 0)
980
- writer.tag(1, WireType.Varint).int64(message.id);
981
- /* optional resources.timestamp.Timestamp created_at = 2; */
982
- if (message.createdAt)
983
- Timestamp.internalBinaryWrite(message.createdAt, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
984
- /* int64 target_id = 3; */
985
- if (message.targetId !== 0)
986
- writer.tag(3, WireType.Varint).int64(message.targetId);
987
- /* string job = 4; */
988
- if (message.job !== "")
989
- writer.tag(4, WireType.LengthDelimited).string(message.job);
990
- /* optional string job_label = 5; */
991
- if (message.jobLabel !== undefined)
992
- writer.tag(5, WireType.LengthDelimited).string(message.jobLabel);
993
- /* int32 minimum_grade = 6; */
994
- if (message.minimumGrade !== 0)
995
- writer.tag(6, WireType.Varint).int32(message.minimumGrade);
996
- /* optional string job_grade_label = 7; */
997
- if (message.jobGradeLabel !== undefined)
998
- writer.tag(7, WireType.LengthDelimited).string(message.jobGradeLabel);
999
- /* resources.documents.access.AccessLevel access = 8; */
1000
- if (message.access !== 0)
1001
- writer.tag(8, WireType.Varint).int32(message.access);
1002
- let u = options.writeUnknownFields;
1003
- if (u !== false)
1004
- (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
1005
- return writer;
1006
- }
1007
- }
1008
- /**
1009
- * @generated MessageType for protobuf message resources.documents.templates.TemplateJobAccess
1010
- */
1011
- export const TemplateJobAccess = new TemplateJobAccess$Type();
1012
- // @generated message type with reflection information, may provide speed optimized methods
1013
- class TemplateUserAccess$Type extends MessageType<TemplateUserAccess> {
1014
- constructor() {
1015
- super("resources.documents.templates.TemplateUserAccess", []);
1016
- }
1017
- create(value?: PartialMessage<TemplateUserAccess>): TemplateUserAccess {
1018
- const message = globalThis.Object.create((this.messagePrototype!));
1019
- if (value !== undefined)
1020
- reflectionMergePartial<TemplateUserAccess>(this, message, value);
1021
- return message;
1022
- }
1023
- internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TemplateUserAccess): TemplateUserAccess {
1024
- let message = target ?? this.create(), end = reader.pos + length;
1025
- while (reader.pos < end) {
1026
- let [fieldNo, wireType] = reader.tag();
1027
- switch (fieldNo) {
1028
- default:
1029
- let u = options.readUnknownField;
1030
- if (u === "throw")
1031
- throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
1032
- let d = reader.skip(wireType);
1033
- if (u !== false)
1034
- (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
1035
- }
1036
- }
1037
- return message;
1038
- }
1039
- internalBinaryWrite(message: TemplateUserAccess, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
1040
- let u = options.writeUnknownFields;
1041
- if (u !== false)
1042
- (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
1043
- return writer;
1044
- }
1045
- }
1046
- /**
1047
- * @generated MessageType for protobuf message resources.documents.templates.TemplateUserAccess
1048
- */
1049
- export const TemplateUserAccess = new TemplateUserAccess$Type();
1050
- // @generated message type with reflection information, may provide speed optimized methods
1051
891
  class TemplateApproval$Type extends MessageType<TemplateApproval> {
1052
892
  constructor() {
1053
893
  super("resources.documents.templates.TemplateApproval", [