initiative-plugin-sdk 7.2.0 → 8.1.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.
- package/README.md +299 -44
- package/dist/build.d.ts +1 -1
- package/dist/build.js +10 -5
- package/dist/build.js.map +1 -1
- package/dist/client.d.ts +4 -0
- package/dist/client.js.map +1 -1
- package/dist/contract.d.ts +452 -80
- package/dist/contract.js +22 -6
- package/dist/contract.js.map +1 -1
- package/dist/define.d.ts +68 -15
- package/dist/define.js +27 -9
- package/dist/define.js.map +1 -1
- package/dist/manifest.d.ts +1 -1
- package/dist/manifest.js.map +1 -1
- package/dist/plugin-api.generated.d.ts +260 -9
- package/dist/plugin-api.generated.js +44 -2
- package/dist/plugin-api.generated.js.map +1 -1
- package/dist/server.js +5 -3
- package/dist/server.js.map +1 -1
- package/dist/statements.d.ts +11 -1
- package/dist/statements.js +10 -2
- package/dist/statements.js.map +1 -1
- package/dist/testing.d.ts +132 -21
- package/dist/testing.js +273 -51
- package/dist/testing.js.map +1 -1
- package/dist/validate.d.ts +13 -4
- package/dist/validate.js +240 -48
- package/dist/validate.js.map +1 -1
- package/manifest.contract.json +514 -23
- package/package.json +1 -1
- package/schemas/plugin-api.json +1268 -144
- package/schemas/plugin-manifest.json +553 -22
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generated by scripts/generate-plugin-api.mjs from schemas/plugin-api.json, the plug-in API
|
|
3
|
-
* taken from Initiative 0.
|
|
3
|
+
* taken from Initiative 0.76.0 (commit 4aa7e8215). Do not edit: regenerate.
|
|
4
4
|
*/
|
|
5
5
|
import type { Scope } from "./contract.js";
|
|
6
6
|
/**
|
|
@@ -104,11 +104,13 @@ export interface PluginApiSchemas {
|
|
|
104
104
|
overridden_fields: string[];
|
|
105
105
|
skipped_starts: string[];
|
|
106
106
|
extra_starts: string[];
|
|
107
|
+
plugin_values: PluginApiSchemas["PluginValueSummary"][];
|
|
107
108
|
};
|
|
108
109
|
CalendarEventUpdate: {
|
|
109
110
|
properties?: PluginApiSchemas["PropertyValueInput"][] | null;
|
|
110
111
|
title?: string | null;
|
|
111
112
|
description?: string | null;
|
|
113
|
+
description_base?: string | null;
|
|
112
114
|
location?: string | null;
|
|
113
115
|
start_at?: string | null;
|
|
114
116
|
end_at?: string | null;
|
|
@@ -207,6 +209,16 @@ export interface PluginApiSchemas {
|
|
|
207
209
|
completed: number;
|
|
208
210
|
total: number;
|
|
209
211
|
};
|
|
212
|
+
/**
|
|
213
|
+
* One limited column of a project's board: its limit, and how many open tasks
|
|
214
|
+
* it holds.
|
|
215
|
+
*/
|
|
216
|
+
ColumnFillRead: {
|
|
217
|
+
project_id: number;
|
|
218
|
+
status_id: number;
|
|
219
|
+
limit: number;
|
|
220
|
+
count: number;
|
|
221
|
+
};
|
|
210
222
|
/**
|
|
211
223
|
* Who a comment is said to.
|
|
212
224
|
*/
|
|
@@ -240,6 +252,8 @@ export interface PluginApiSchemas {
|
|
|
240
252
|
CommentListResponse: {
|
|
241
253
|
comments: PluginApiSchemas["CommentRead"][];
|
|
242
254
|
next_cursor: string | null;
|
|
255
|
+
locked: boolean;
|
|
256
|
+
can_moderate: boolean;
|
|
243
257
|
};
|
|
244
258
|
/**
|
|
245
259
|
* One comment. `project_id` is its own for a comment on a project and the
|
|
@@ -273,9 +287,18 @@ export interface PluginApiSchemas {
|
|
|
273
287
|
imported_author_name: string | null;
|
|
274
288
|
reactions: PluginApiSchemas["ReactionGroup"][];
|
|
275
289
|
can_remove: boolean;
|
|
290
|
+
removed: PluginApiSchemas["CommentRemoval"] | null;
|
|
276
291
|
audience: PluginApiSchemas["CommentAudience"];
|
|
277
292
|
system_kind: string | null;
|
|
278
293
|
};
|
|
294
|
+
/**
|
|
295
|
+
* What a tombstone says in place of a comment: who took it out, and, for a
|
|
296
|
+
* moderator, why. Never what it said, or who wrote it.
|
|
297
|
+
*/
|
|
298
|
+
CommentRemoval: {
|
|
299
|
+
by: PluginApiSchemas["RemovedBy"];
|
|
300
|
+
reason: PluginApiSchemas["RemovalReason"] | null;
|
|
301
|
+
};
|
|
279
302
|
/**
|
|
280
303
|
* What the caller may do to a piece of content, as the server answers it.
|
|
281
304
|
*/
|
|
@@ -379,6 +402,7 @@ export interface PluginApiSchemas {
|
|
|
379
402
|
view_mode: PluginApiSchemas["CounterViewMode"];
|
|
380
403
|
position: string;
|
|
381
404
|
properties: PluginApiSchemas["PropertySummary"][];
|
|
405
|
+
plugin_values: PluginApiSchemas["PluginValueSummary"][];
|
|
382
406
|
created_at: string;
|
|
383
407
|
updated_at: string;
|
|
384
408
|
};
|
|
@@ -411,6 +435,11 @@ export interface PluginApiSchemas {
|
|
|
411
435
|
position?: number | string | null;
|
|
412
436
|
};
|
|
413
437
|
CounterViewMode: "number" | "progress_bar" | "segmented_clock";
|
|
438
|
+
/**
|
|
439
|
+
* What a date is grouped by: the calendar's day, week, month, quarter or year
|
|
440
|
+
* it falls in. A week starts on Monday, as Postgres counts one.
|
|
441
|
+
*/
|
|
442
|
+
DateBucket: "day" | "week" | "month" | "quarter" | "year";
|
|
414
443
|
FileCreate: {
|
|
415
444
|
properties?: PluginApiSchemas["PropertyValueInput"][];
|
|
416
445
|
name: string;
|
|
@@ -602,12 +631,14 @@ export interface PluginApiSchemas {
|
|
|
602
631
|
version_count: number;
|
|
603
632
|
tags: PluginApiSchemas["TagSummary"][];
|
|
604
633
|
properties: PluginApiSchemas["PropertySummary"][];
|
|
634
|
+
plugin_values: PluginApiSchemas["PluginValueSummary"][];
|
|
605
635
|
};
|
|
606
636
|
GalleryImageUpdate: {
|
|
607
637
|
properties?: PluginApiSchemas["PropertyValueInput"][] | null;
|
|
608
638
|
title?: string | null;
|
|
609
639
|
caption?: string | null;
|
|
610
640
|
tag_ids?: number[] | null;
|
|
641
|
+
caption_base?: string | null;
|
|
611
642
|
};
|
|
612
643
|
/**
|
|
613
644
|
* One stored rendition of a picture.
|
|
@@ -691,6 +722,20 @@ export interface PluginApiSchemas {
|
|
|
691
722
|
description?: string | null;
|
|
692
723
|
cover_image_id?: number | null;
|
|
693
724
|
};
|
|
725
|
+
/**
|
|
726
|
+
* One group of a grouped list.
|
|
727
|
+
*/
|
|
728
|
+
GroupRead: {
|
|
729
|
+
key: string;
|
|
730
|
+
label?: string | null;
|
|
731
|
+
};
|
|
732
|
+
/**
|
|
733
|
+
* A list's groups by one field, and the groups each row is in.
|
|
734
|
+
*/
|
|
735
|
+
GroupsResponse: {
|
|
736
|
+
groups: PluginApiSchemas["GroupRead"][];
|
|
737
|
+
rows: Record<string, string[]>;
|
|
738
|
+
};
|
|
694
739
|
HTTPValidationError: {
|
|
695
740
|
detail?: PluginApiSchemas["ValidationError"][];
|
|
696
741
|
};
|
|
@@ -700,6 +745,7 @@ export interface PluginApiSchemas {
|
|
|
700
745
|
InitiativeCan: {
|
|
701
746
|
manage: boolean;
|
|
702
747
|
moderate: boolean;
|
|
748
|
+
roster: boolean;
|
|
703
749
|
view: PluginApiSchemas["Tool"][];
|
|
704
750
|
create: PluginApiSchemas["Tool"][];
|
|
705
751
|
};
|
|
@@ -787,6 +833,16 @@ export interface PluginApiSchemas {
|
|
|
787
833
|
*/
|
|
788
834
|
avatar_url?: string | null;
|
|
789
835
|
};
|
|
836
|
+
/**
|
|
837
|
+
* One value an installed plug-in shows on an item: a key its pinned version
|
|
838
|
+
* declares as a field there. A list field's value is an array of its
|
|
839
|
+
* elements, newest first, each with its `ref`.
|
|
840
|
+
*/
|
|
841
|
+
PluginValueSummary: {
|
|
842
|
+
plugin_id: number;
|
|
843
|
+
key: string;
|
|
844
|
+
value: unknown;
|
|
845
|
+
};
|
|
790
846
|
PollOptionRead: {
|
|
791
847
|
id: number;
|
|
792
848
|
text: string;
|
|
@@ -891,6 +947,7 @@ export interface PluginApiSchemas {
|
|
|
891
947
|
is_read: boolean;
|
|
892
948
|
read_count: number;
|
|
893
949
|
reactions_enabled: boolean;
|
|
950
|
+
comments_locked_at: string | null;
|
|
894
951
|
comment_count: number;
|
|
895
952
|
reactions: PluginApiSchemas["ReactionGroup"][];
|
|
896
953
|
/**
|
|
@@ -902,6 +959,7 @@ export interface PluginApiSchemas {
|
|
|
902
959
|
*/
|
|
903
960
|
body: Record<string, unknown>;
|
|
904
961
|
poll: PluginApiSchemas["PollRead"] | null;
|
|
962
|
+
plugin_values: PluginApiSchemas["PluginValueSummary"][];
|
|
905
963
|
};
|
|
906
964
|
PostUpdate: {
|
|
907
965
|
name?: string | null;
|
|
@@ -961,10 +1019,9 @@ export interface PluginApiSchemas {
|
|
|
961
1019
|
owner: PluginApiSchemas["PluginPerson"] | null;
|
|
962
1020
|
owner_plugin: PluginApiSchemas["OwnerPluginSummary"] | null;
|
|
963
1021
|
initiative: PluginApiSchemas["InitiativeSummary"] | null;
|
|
964
|
-
is_favorited: boolean;
|
|
965
|
-
last_viewed_at: string | null;
|
|
966
1022
|
task_summary: PluginApiSchemas["ProjectTaskSummary"];
|
|
967
1023
|
task_statuses: PluginApiSchemas["TaskStatusRead"][];
|
|
1024
|
+
task_types: PluginApiSchemas["TaskTypeRead"][];
|
|
968
1025
|
};
|
|
969
1026
|
ProjectTaskSummary: {
|
|
970
1027
|
total: number;
|
|
@@ -1022,6 +1079,16 @@ export interface PluginApiSchemas {
|
|
|
1022
1079
|
label: string;
|
|
1023
1080
|
color?: string | null;
|
|
1024
1081
|
};
|
|
1082
|
+
/**
|
|
1083
|
+
* Options put on and taken off one multi-select value, against the value as
|
|
1084
|
+
* it stands when the change is written rather than a list that replaces it,
|
|
1085
|
+
* so two people changing different options of it both stand.
|
|
1086
|
+
*/
|
|
1087
|
+
PropertyOptionsChange: {
|
|
1088
|
+
property_id: number;
|
|
1089
|
+
add?: string[];
|
|
1090
|
+
remove?: string[];
|
|
1091
|
+
};
|
|
1025
1092
|
/**
|
|
1026
1093
|
* Lightweight property value for embedding in entity reads.
|
|
1027
1094
|
*/
|
|
@@ -1053,10 +1120,14 @@ export interface PluginApiSchemas {
|
|
|
1053
1120
|
value?: unknown;
|
|
1054
1121
|
};
|
|
1055
1122
|
/**
|
|
1056
|
-
*
|
|
1123
|
+
* Payload for `PUT /properties/{target}/{entity_id}`: replace-all, or with
|
|
1124
|
+
* `merge` only the properties it names.
|
|
1057
1125
|
*/
|
|
1058
1126
|
PropertyValuesSetRequest: {
|
|
1059
1127
|
values?: PluginApiSchemas["PropertyValueInput"][];
|
|
1128
|
+
merge?: boolean;
|
|
1129
|
+
removed?: number[];
|
|
1130
|
+
options?: PluginApiSchemas["PropertyOptionsChange"][];
|
|
1060
1131
|
};
|
|
1061
1132
|
QueueCreate: {
|
|
1062
1133
|
properties?: PluginApiSchemas["PropertyValueInput"][];
|
|
@@ -1090,7 +1161,9 @@ export interface PluginApiSchemas {
|
|
|
1090
1161
|
properties: PluginApiSchemas["PropertySummary"][];
|
|
1091
1162
|
attachment_count: number;
|
|
1092
1163
|
held_at_round: number | null;
|
|
1164
|
+
created_by: string | null;
|
|
1093
1165
|
created_at: string;
|
|
1166
|
+
plugin_values: PluginApiSchemas["PluginValueSummary"][];
|
|
1094
1167
|
};
|
|
1095
1168
|
QueueItemUpdate: {
|
|
1096
1169
|
properties?: PluginApiSchemas["PropertyValueInput"][] | null;
|
|
@@ -1101,6 +1174,7 @@ export interface PluginApiSchemas {
|
|
|
1101
1174
|
notes?: string | null;
|
|
1102
1175
|
is_visible?: boolean | null;
|
|
1103
1176
|
tag_ids?: number[] | null;
|
|
1177
|
+
notes_base?: string | null;
|
|
1104
1178
|
};
|
|
1105
1179
|
QueueListResponse: {
|
|
1106
1180
|
total_count: number;
|
|
@@ -1180,6 +1254,19 @@ export interface PluginApiSchemas {
|
|
|
1180
1254
|
reacted: boolean;
|
|
1181
1255
|
users: PluginApiSchemas["PluginPerson"][];
|
|
1182
1256
|
};
|
|
1257
|
+
/**
|
|
1258
|
+
* How a repeating task's next date is counted.
|
|
1259
|
+
*/
|
|
1260
|
+
RecurrenceStrategy: "fixed" | "rolling";
|
|
1261
|
+
/**
|
|
1262
|
+
* Why a moderator took something down. Every reason a report can give, and
|
|
1263
|
+
* two that only a community's own rules give.
|
|
1264
|
+
*/
|
|
1265
|
+
RemovalReason: "spam" | "harassment" | "hate" | "violence" | "sexual_content" | "self_harm" | "illegal" | "misinformation" | "other" | "off_topic" | "community_rule";
|
|
1266
|
+
/**
|
|
1267
|
+
* Who took a comment out of the conversation.
|
|
1268
|
+
*/
|
|
1269
|
+
RemovedBy: "moderator" | "author";
|
|
1183
1270
|
ResourceAccessLevel: "owner" | "write" | "read";
|
|
1184
1271
|
/**
|
|
1185
1272
|
* One `resource_grants` row — exactly the columns that define a grant: a
|
|
@@ -1259,12 +1346,14 @@ export interface PluginApiSchemas {
|
|
|
1259
1346
|
start_date?: string | null;
|
|
1260
1347
|
due_date?: string | null;
|
|
1261
1348
|
recurrence?: string | null;
|
|
1262
|
-
recurrence_strategy?: "
|
|
1349
|
+
recurrence_strategy?: PluginApiSchemas["RecurrenceStrategy"];
|
|
1350
|
+
recurrence_limit?: number | null;
|
|
1263
1351
|
description?: string | null;
|
|
1264
1352
|
project_id: number;
|
|
1265
1353
|
tz?: string | null;
|
|
1266
1354
|
assignee_ids?: string[];
|
|
1267
1355
|
task_status_id?: number | null;
|
|
1356
|
+
task_type_id?: number | null;
|
|
1268
1357
|
tag_ids?: number[];
|
|
1269
1358
|
checklist?: PluginApiSchemas["ChecklistItemInput"][];
|
|
1270
1359
|
};
|
|
@@ -1277,13 +1366,16 @@ export interface PluginApiSchemas {
|
|
|
1277
1366
|
start_date: string | null;
|
|
1278
1367
|
due_date: string | null;
|
|
1279
1368
|
recurrence: string | null;
|
|
1280
|
-
recurrence_strategy: "
|
|
1369
|
+
recurrence_strategy: PluginApiSchemas["RecurrenceStrategy"];
|
|
1370
|
+
recurrence_limit: number | null;
|
|
1281
1371
|
description_excerpt: string | null;
|
|
1282
1372
|
has_description: boolean;
|
|
1283
1373
|
id: number;
|
|
1284
1374
|
project_id: number;
|
|
1285
1375
|
task_status_id: number;
|
|
1286
1376
|
task_status: PluginApiSchemas["TaskStatusRead"];
|
|
1377
|
+
task_type_id: number;
|
|
1378
|
+
task_type: PluginApiSchemas["TaskTypeRead"];
|
|
1287
1379
|
created_at: string;
|
|
1288
1380
|
updated_at: string;
|
|
1289
1381
|
completed_at: string | null;
|
|
@@ -1293,6 +1385,8 @@ export interface PluginApiSchemas {
|
|
|
1293
1385
|
assignees: PluginApiSchemas["PluginPerson"][];
|
|
1294
1386
|
recurrence_occurrence_count: number;
|
|
1295
1387
|
recurrence_shift: number;
|
|
1388
|
+
recurrence_anchor: string | null;
|
|
1389
|
+
recurrence_anchor_count: number;
|
|
1296
1390
|
recurrence_until: string | null;
|
|
1297
1391
|
comment_count: number;
|
|
1298
1392
|
blocked_by_open_count: number;
|
|
@@ -1305,6 +1399,7 @@ export interface PluginApiSchemas {
|
|
|
1305
1399
|
checklist_progress: PluginApiSchemas["ChecklistProgress"] | null;
|
|
1306
1400
|
tags: PluginApiSchemas["TagSummary"][];
|
|
1307
1401
|
properties: PluginApiSchemas["PropertySummary"][];
|
|
1402
|
+
plugin_values: PluginApiSchemas["PluginValueSummary"][];
|
|
1308
1403
|
};
|
|
1309
1404
|
TaskListResponse: {
|
|
1310
1405
|
total_count: number;
|
|
@@ -1334,12 +1429,15 @@ export interface PluginApiSchemas {
|
|
|
1334
1429
|
start_date: string | null;
|
|
1335
1430
|
due_date: string | null;
|
|
1336
1431
|
recurrence: string | null;
|
|
1337
|
-
recurrence_strategy: "
|
|
1432
|
+
recurrence_strategy: PluginApiSchemas["RecurrenceStrategy"];
|
|
1433
|
+
recurrence_limit: number | null;
|
|
1338
1434
|
description: string | null;
|
|
1339
1435
|
id: number;
|
|
1340
1436
|
project_id: number;
|
|
1341
1437
|
task_status_id: number;
|
|
1342
1438
|
task_status: PluginApiSchemas["TaskStatusRead"];
|
|
1439
|
+
task_type_id: number;
|
|
1440
|
+
task_type: PluginApiSchemas["TaskTypeRead"];
|
|
1343
1441
|
created_at: string;
|
|
1344
1442
|
updated_at: string;
|
|
1345
1443
|
completed_at: string | null;
|
|
@@ -1350,6 +1448,8 @@ export interface PluginApiSchemas {
|
|
|
1350
1448
|
assignees: PluginApiSchemas["PluginPerson"][];
|
|
1351
1449
|
recurrence_occurrence_count: number;
|
|
1352
1450
|
recurrence_shift: number;
|
|
1451
|
+
recurrence_anchor: string | null;
|
|
1452
|
+
recurrence_anchor_count: number;
|
|
1353
1453
|
recurrence_until: string | null;
|
|
1354
1454
|
series_id: number | null;
|
|
1355
1455
|
series_size: number;
|
|
@@ -1360,6 +1460,7 @@ export interface PluginApiSchemas {
|
|
|
1360
1460
|
checklist_progress: PluginApiSchemas["ChecklistProgress"] | null;
|
|
1361
1461
|
tags: PluginApiSchemas["TagSummary"][];
|
|
1362
1462
|
properties: PluginApiSchemas["PropertySummary"][];
|
|
1463
|
+
plugin_values: PluginApiSchemas["PluginValueSummary"][];
|
|
1363
1464
|
};
|
|
1364
1465
|
TaskStatusCategory: "backlog" | "todo" | "in_progress" | "done";
|
|
1365
1466
|
TaskStatusRead: {
|
|
@@ -1372,18 +1473,73 @@ export interface PluginApiSchemas {
|
|
|
1372
1473
|
id: number;
|
|
1373
1474
|
project_id: number;
|
|
1374
1475
|
};
|
|
1476
|
+
/**
|
|
1477
|
+
* One ready-made type, in the reader's language.
|
|
1478
|
+
*/
|
|
1479
|
+
TaskTypeGalleryEntry: {
|
|
1480
|
+
key: string;
|
|
1481
|
+
name: string;
|
|
1482
|
+
hint: string;
|
|
1483
|
+
icon: string;
|
|
1484
|
+
color: string;
|
|
1485
|
+
layout_preset: string;
|
|
1486
|
+
fields: PluginApiSchemas["TaskTypeGalleryField"][];
|
|
1487
|
+
starting_values?: PluginApiSchemas["TaskTypeStartingValues"] | null;
|
|
1488
|
+
};
|
|
1489
|
+
TaskTypeGalleryField: {
|
|
1490
|
+
name: string;
|
|
1491
|
+
type: string;
|
|
1492
|
+
};
|
|
1493
|
+
TaskTypeGalleryGroup: {
|
|
1494
|
+
key: string;
|
|
1495
|
+
name: string;
|
|
1496
|
+
entries: PluginApiSchemas["TaskTypeGalleryEntry"][];
|
|
1497
|
+
};
|
|
1498
|
+
/**
|
|
1499
|
+
* One kind of task in a project, and the shape its page is drawn as until the
|
|
1500
|
+
* page is changed.
|
|
1501
|
+
*/
|
|
1502
|
+
TaskTypeRead: {
|
|
1503
|
+
id: number;
|
|
1504
|
+
project_id: number;
|
|
1505
|
+
name: string;
|
|
1506
|
+
position: number;
|
|
1507
|
+
is_default: boolean;
|
|
1508
|
+
color: string;
|
|
1509
|
+
icon: string;
|
|
1510
|
+
layout_preset: string;
|
|
1511
|
+
starting_values: PluginApiSchemas["TaskTypeStartingValues"] | null;
|
|
1512
|
+
};
|
|
1513
|
+
/**
|
|
1514
|
+
* What a new task of a type starts with, field by field, where whoever makes
|
|
1515
|
+
* it leaves that field empty. A repeat starts only on a task with a date to
|
|
1516
|
+
* count from.
|
|
1517
|
+
*/
|
|
1518
|
+
TaskTypeStartingValues: {
|
|
1519
|
+
description?: string | null;
|
|
1520
|
+
checklist?: string[];
|
|
1521
|
+
priority?: PluginApiSchemas["TaskPriority"] | null;
|
|
1522
|
+
recurrence?: string | null;
|
|
1523
|
+
recurrence_strategy?: PluginApiSchemas["RecurrenceStrategy"] | null;
|
|
1524
|
+
};
|
|
1375
1525
|
TaskUpdate: {
|
|
1376
1526
|
properties?: PluginApiSchemas["PropertyValueInput"][] | null;
|
|
1377
1527
|
title?: string | null;
|
|
1378
1528
|
description?: string | null;
|
|
1529
|
+
description_base?: string | null;
|
|
1379
1530
|
task_status_id?: number | null;
|
|
1531
|
+
task_type_id?: number | null;
|
|
1532
|
+
status_category?: PluginApiSchemas["TaskStatusCategory"] | null;
|
|
1380
1533
|
priority?: PluginApiSchemas["TaskPriority"] | null;
|
|
1381
1534
|
assignee_ids?: string[] | null;
|
|
1535
|
+
add_assignee_ids?: string[] | null;
|
|
1536
|
+
remove_assignee_ids?: string[] | null;
|
|
1382
1537
|
start_date?: string | null;
|
|
1383
1538
|
due_date?: string | null;
|
|
1384
1539
|
recurrence?: string | null;
|
|
1385
1540
|
tz?: string | null;
|
|
1386
|
-
recurrence_strategy?: "
|
|
1541
|
+
recurrence_strategy?: PluginApiSchemas["RecurrenceStrategy"] | null;
|
|
1542
|
+
recurrence_limit?: number | null;
|
|
1387
1543
|
tag_ids?: number[] | null;
|
|
1388
1544
|
checklist?: PluginApiSchemas["ChecklistItemInput"][] | null;
|
|
1389
1545
|
scope?: "this" | "following" | "all" | null;
|
|
@@ -1545,6 +1701,7 @@ export interface PluginApiSchemas {
|
|
|
1545
1701
|
*/
|
|
1546
1702
|
content: Record<string, unknown>;
|
|
1547
1703
|
content_version: string | null;
|
|
1704
|
+
comments_locked_at: string | null;
|
|
1548
1705
|
};
|
|
1549
1706
|
/**
|
|
1550
1707
|
* One page as the navigation draws it — no body.
|
|
@@ -2092,6 +2249,18 @@ export interface PluginApiOperations {
|
|
|
2092
2249
|
};
|
|
2093
2250
|
answer: PluginApiSchemas["InitiativeTaskStatusRead"][];
|
|
2094
2251
|
};
|
|
2252
|
+
list_task_types: {
|
|
2253
|
+
path: {
|
|
2254
|
+
project_id: number;
|
|
2255
|
+
};
|
|
2256
|
+
answer: PluginApiSchemas["TaskTypeRead"][];
|
|
2257
|
+
};
|
|
2258
|
+
list_task_type_gallery: {
|
|
2259
|
+
path: {
|
|
2260
|
+
project_id: number;
|
|
2261
|
+
};
|
|
2262
|
+
answer: PluginApiSchemas["TaskTypeGalleryGroup"][];
|
|
2263
|
+
};
|
|
2095
2264
|
list_tasks: {
|
|
2096
2265
|
query: {
|
|
2097
2266
|
/**
|
|
@@ -2124,6 +2293,29 @@ export interface PluginApiOperations {
|
|
|
2124
2293
|
body: PluginApiSchemas["TaskCreate"];
|
|
2125
2294
|
answer: PluginApiSchemas["TaskRead"];
|
|
2126
2295
|
};
|
|
2296
|
+
list_task_groups: {
|
|
2297
|
+
query: {
|
|
2298
|
+
/**
|
|
2299
|
+
* The field the list is grouped by, as the field catalog's `groupings`
|
|
2300
|
+
* name it, or `property:<id>`
|
|
2301
|
+
*/
|
|
2302
|
+
group_by: string;
|
|
2303
|
+
/**
|
|
2304
|
+
* For a date: the bucket of the calendar it groups by
|
|
2305
|
+
*/
|
|
2306
|
+
bucket?: PluginApiSchemas["DateBucket"] | null;
|
|
2307
|
+
conditions?: Array<PluginApiSchemas["FilterCondition"] | PluginApiSchemas["FilterGroup"]>;
|
|
2308
|
+
include_archived?: boolean;
|
|
2309
|
+
tz?: string | null;
|
|
2310
|
+
};
|
|
2311
|
+
answer: PluginApiSchemas["GroupsResponse"];
|
|
2312
|
+
};
|
|
2313
|
+
list_column_limits: {
|
|
2314
|
+
query: {
|
|
2315
|
+
project_id: number[];
|
|
2316
|
+
};
|
|
2317
|
+
answer: PluginApiSchemas["ColumnFillRead"][];
|
|
2318
|
+
};
|
|
2127
2319
|
read_task: {
|
|
2128
2320
|
path: {
|
|
2129
2321
|
task_id: number;
|
|
@@ -3094,6 +3286,16 @@ export declare const pluginApiOperations: {
|
|
|
3094
3286
|
readonly path: "/initiatives/{initiative_id}/task-statuses/";
|
|
3095
3287
|
readonly scope: "projects:read";
|
|
3096
3288
|
};
|
|
3289
|
+
readonly list_task_types: {
|
|
3290
|
+
readonly method: "GET";
|
|
3291
|
+
readonly path: "/projects/{project_id}/task-types/";
|
|
3292
|
+
readonly scope: "projects:read";
|
|
3293
|
+
};
|
|
3294
|
+
readonly list_task_type_gallery: {
|
|
3295
|
+
readonly method: "GET";
|
|
3296
|
+
readonly path: "/projects/{project_id}/task-types/gallery";
|
|
3297
|
+
readonly scope: "projects:read";
|
|
3298
|
+
};
|
|
3097
3299
|
readonly list_tasks: {
|
|
3098
3300
|
readonly method: "GET";
|
|
3099
3301
|
readonly path: "/tasks/";
|
|
@@ -3105,6 +3307,17 @@ export declare const pluginApiOperations: {
|
|
|
3105
3307
|
readonly path: "/tasks/";
|
|
3106
3308
|
readonly scope: "projects:write";
|
|
3107
3309
|
};
|
|
3310
|
+
readonly list_task_groups: {
|
|
3311
|
+
readonly method: "GET";
|
|
3312
|
+
readonly path: "/tasks/groups";
|
|
3313
|
+
readonly scope: "projects:read";
|
|
3314
|
+
readonly json: readonly ["conditions"];
|
|
3315
|
+
};
|
|
3316
|
+
readonly list_column_limits: {
|
|
3317
|
+
readonly method: "GET";
|
|
3318
|
+
readonly path: "/tasks/column-limits";
|
|
3319
|
+
readonly scope: "projects:read";
|
|
3320
|
+
};
|
|
3108
3321
|
readonly read_task: {
|
|
3109
3322
|
readonly method: "GET";
|
|
3110
3323
|
readonly path: "/tasks/{task_id}";
|
|
@@ -3819,6 +4032,23 @@ export declare class PluginApi {
|
|
|
3819
4032
|
listInitiativeTaskStatuses(args: {
|
|
3820
4033
|
path: PluginApiOperations["list_initiative_task_statuses"]["path"];
|
|
3821
4034
|
}): Promise<PluginApiOperations["list_initiative_task_statuses"]["answer"]>;
|
|
4035
|
+
/**
|
|
4036
|
+
* List Task Types
|
|
4037
|
+
*
|
|
4038
|
+
* `GET /projects/{project_id}/task-types/`, needs `projects:read`.
|
|
4039
|
+
*/
|
|
4040
|
+
listTaskTypes(args: {
|
|
4041
|
+
path: PluginApiOperations["list_task_types"]["path"];
|
|
4042
|
+
}): Promise<PluginApiOperations["list_task_types"]["answer"]>;
|
|
4043
|
+
/**
|
|
4044
|
+
* The ready-made types the project can add, grouped by what they are for, in
|
|
4045
|
+
* the reader's language.
|
|
4046
|
+
*
|
|
4047
|
+
* `GET /projects/{project_id}/task-types/gallery`, needs `projects:read`.
|
|
4048
|
+
*/
|
|
4049
|
+
listTaskTypeGallery(args: {
|
|
4050
|
+
path: PluginApiOperations["list_task_type_gallery"]["path"];
|
|
4051
|
+
}): Promise<PluginApiOperations["list_task_type_gallery"]["answer"]>;
|
|
3822
4052
|
/**
|
|
3823
4053
|
* List Tasks
|
|
3824
4054
|
*
|
|
@@ -3835,6 +4065,25 @@ export declare class PluginApi {
|
|
|
3835
4065
|
createTask(args: {
|
|
3836
4066
|
body: PluginApiOperations["create_task"]["body"];
|
|
3837
4067
|
}): Promise<PluginApiOperations["create_task"]["answer"]>;
|
|
4068
|
+
/**
|
|
4069
|
+
* The groups of the task list these filters answer with, in the order the
|
|
4070
|
+
* list shows them, and the groups each task is in.
|
|
4071
|
+
*
|
|
4072
|
+
* `GET /tasks/groups`, needs `projects:read`.
|
|
4073
|
+
*/
|
|
4074
|
+
listTaskGroups(args: {
|
|
4075
|
+
query: PluginApiOperations["list_task_groups"]["query"];
|
|
4076
|
+
}): Promise<PluginApiOperations["list_task_groups"]["answer"]>;
|
|
4077
|
+
/**
|
|
4078
|
+
* Each limited board column of the named projects the reader can open: its
|
|
4079
|
+
* limit, and how many open tasks it holds. A project with no limits, or one
|
|
4080
|
+
* the reader can't open, has none.
|
|
4081
|
+
*
|
|
4082
|
+
* `GET /tasks/column-limits`, needs `projects:read`.
|
|
4083
|
+
*/
|
|
4084
|
+
listColumnLimits(args: {
|
|
4085
|
+
query: PluginApiOperations["list_column_limits"]["query"];
|
|
4086
|
+
}): Promise<PluginApiOperations["list_column_limits"]["answer"]>;
|
|
3838
4087
|
/**
|
|
3839
4088
|
* Read Task
|
|
3840
4089
|
*
|
|
@@ -4717,7 +4966,9 @@ export declare class PluginApi {
|
|
|
4717
4966
|
body: PluginApiOperations["update_property_definition"]["body"];
|
|
4718
4967
|
}): Promise<PluginApiOperations["update_property_definition"]["answer"]>;
|
|
4719
4968
|
/**
|
|
4720
|
-
* Replace the custom property values on one tool or sub-tool
|
|
4969
|
+
* Replace the custom property values on one tool or sub-tool, or with `merge`
|
|
4970
|
+
* write only the ones named and leave the rest, and change options of
|
|
4971
|
+
* multi-select values against what each holds.
|
|
4721
4972
|
*
|
|
4722
4973
|
* `PUT /properties/{target}/{entity_id}`, needs the scope its `target` names.
|
|
4723
4974
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generated by scripts/generate-plugin-api.mjs from schemas/plugin-api.json, the plug-in API
|
|
3
|
-
* taken from Initiative 0.
|
|
3
|
+
* taken from Initiative 0.76.0 (commit 4aa7e8215). Do not edit: regenerate.
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
6
|
* Each operation a plug-in may call: its method, its path after `/api/v1/c/0`, the
|
|
@@ -29,8 +29,12 @@ export const pluginApiOperations = {
|
|
|
29
29
|
update_project: { method: "PATCH", path: "/projects/{project_id}", scope: "projects:write" },
|
|
30
30
|
list_task_statuses: { method: "GET", path: "/projects/{project_id}/task-statuses/", scope: "projects:read" },
|
|
31
31
|
list_initiative_task_statuses: { method: "GET", path: "/initiatives/{initiative_id}/task-statuses/", scope: "projects:read" },
|
|
32
|
+
list_task_types: { method: "GET", path: "/projects/{project_id}/task-types/", scope: "projects:read" },
|
|
33
|
+
list_task_type_gallery: { method: "GET", path: "/projects/{project_id}/task-types/gallery", scope: "projects:read" },
|
|
32
34
|
list_tasks: { method: "GET", path: "/tasks/", scope: "projects:read", json: ["conditions", "sorting"] },
|
|
33
35
|
create_task: { method: "POST", path: "/tasks/", scope: "projects:write" },
|
|
36
|
+
list_task_groups: { method: "GET", path: "/tasks/groups", scope: "projects:read", json: ["conditions"] },
|
|
37
|
+
list_column_limits: { method: "GET", path: "/tasks/column-limits", scope: "projects:read" },
|
|
34
38
|
read_task: { method: "GET", path: "/tasks/{task_id}", scope: "projects:read" },
|
|
35
39
|
update_task: { method: "PATCH", path: "/tasks/{task_id}", scope: "projects:write" },
|
|
36
40
|
move_task: { method: "POST", path: "/tasks/{task_id}/move", scope: "projects:write" },
|
|
@@ -317,6 +321,23 @@ export class PluginApi {
|
|
|
317
321
|
listInitiativeTaskStatuses(args) {
|
|
318
322
|
return this.call("list_initiative_task_statuses", args);
|
|
319
323
|
}
|
|
324
|
+
/**
|
|
325
|
+
* List Task Types
|
|
326
|
+
*
|
|
327
|
+
* `GET /projects/{project_id}/task-types/`, needs `projects:read`.
|
|
328
|
+
*/
|
|
329
|
+
listTaskTypes(args) {
|
|
330
|
+
return this.call("list_task_types", args);
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* The ready-made types the project can add, grouped by what they are for, in
|
|
334
|
+
* the reader's language.
|
|
335
|
+
*
|
|
336
|
+
* `GET /projects/{project_id}/task-types/gallery`, needs `projects:read`.
|
|
337
|
+
*/
|
|
338
|
+
listTaskTypeGallery(args) {
|
|
339
|
+
return this.call("list_task_type_gallery", args);
|
|
340
|
+
}
|
|
320
341
|
/**
|
|
321
342
|
* List Tasks
|
|
322
343
|
*
|
|
@@ -333,6 +354,25 @@ export class PluginApi {
|
|
|
333
354
|
createTask(args) {
|
|
334
355
|
return this.call("create_task", args);
|
|
335
356
|
}
|
|
357
|
+
/**
|
|
358
|
+
* The groups of the task list these filters answer with, in the order the
|
|
359
|
+
* list shows them, and the groups each task is in.
|
|
360
|
+
*
|
|
361
|
+
* `GET /tasks/groups`, needs `projects:read`.
|
|
362
|
+
*/
|
|
363
|
+
listTaskGroups(args) {
|
|
364
|
+
return this.call("list_task_groups", args);
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Each limited board column of the named projects the reader can open: its
|
|
368
|
+
* limit, and how many open tasks it holds. A project with no limits, or one
|
|
369
|
+
* the reader can't open, has none.
|
|
370
|
+
*
|
|
371
|
+
* `GET /tasks/column-limits`, needs `projects:read`.
|
|
372
|
+
*/
|
|
373
|
+
listColumnLimits(args) {
|
|
374
|
+
return this.call("list_column_limits", args);
|
|
375
|
+
}
|
|
336
376
|
/**
|
|
337
377
|
* Read Task
|
|
338
378
|
*
|
|
@@ -1153,7 +1193,9 @@ export class PluginApi {
|
|
|
1153
1193
|
return this.call("update_property_definition", args);
|
|
1154
1194
|
}
|
|
1155
1195
|
/**
|
|
1156
|
-
* Replace the custom property values on one tool or sub-tool
|
|
1196
|
+
* Replace the custom property values on one tool or sub-tool, or with `merge`
|
|
1197
|
+
* write only the ones named and leave the rest, and change options of
|
|
1198
|
+
* multi-select values against what each holds.
|
|
1157
1199
|
*
|
|
1158
1200
|
* `PUT /properties/{target}/{entity_id}`, needs the scope its `target` names.
|
|
1159
1201
|
*/
|