convex-feedback 0.1.5 → 0.2.0-beta.1
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 +70 -27
- package/dist/.tsbuildinfo +1 -1
- package/dist/client/api.d.ts +76 -1
- package/dist/client/api.d.ts.map +1 -1
- package/dist/client/config.d.ts +1 -1
- package/dist/client/index.d.ts +9 -5
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +253 -8
- package/dist/client/index.js.map +1 -1
- package/dist/component/_generated/api.d.ts +4 -0
- package/dist/component/_generated/api.d.ts.map +1 -1
- package/dist/component/_generated/api.js.map +1 -1
- package/dist/component/_generated/component.d.ts +293 -5
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/admin.d.ts +130 -0
- package/dist/component/admin.d.ts.map +1 -0
- package/dist/component/admin.js +125 -0
- package/dist/component/admin.js.map +1 -0
- package/dist/component/comments.d.ts +7 -5
- package/dist/component/comments.d.ts.map +1 -1
- package/dist/component/comments.js +3 -3
- package/dist/component/comments.js.map +1 -1
- package/dist/component/entries.d.ts +29 -18
- package/dist/component/entries.d.ts.map +1 -1
- package/dist/component/entries.js +27 -6
- package/dist/component/entries.js.map +1 -1
- package/dist/component/helpers.d.ts +3 -1
- package/dist/component/helpers.d.ts.map +1 -1
- package/dist/component/helpers.js +28 -0
- package/dist/component/helpers.js.map +1 -1
- package/dist/component/model.d.ts +140 -24
- package/dist/component/model.d.ts.map +1 -1
- package/dist/component/model.js +30 -1
- package/dist/component/model.js.map +1 -1
- package/dist/component/roadmap.d.ts +166 -0
- package/dist/component/roadmap.d.ts.map +1 -0
- package/dist/component/roadmap.js +534 -0
- package/dist/component/roadmap.js.map +1 -0
- package/dist/component/schema.d.ts +61 -5
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/schema.js +48 -2
- package/dist/component/schema.js.map +1 -1
- package/dist/react/index.d.ts +169 -12
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +72 -1
- package/dist/react/index.js.map +1 -1
- package/dist/test.d.ts +61 -5
- package/dist/test.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/client/README.md +1 -1
- package/src/client/api.ts +176 -0
- package/src/client/config.ts +1 -1
- package/src/client/index.ts +330 -13
- package/src/component/README.md +1 -1
- package/src/component/_generated/api.ts +4 -0
- package/src/component/_generated/component.ts +371 -9
- package/src/component/admin.ts +180 -0
- package/src/component/comments.ts +3 -2
- package/src/component/entries.ts +29 -5
- package/src/component/helpers.ts +44 -1
- package/src/component/model.ts +65 -4
- package/src/component/roadmap.ts +627 -0
- package/src/component/schema.ts +51 -1
- package/src/react/README.md +2 -2
- package/src/react/index.ts +139 -4
package/dist/test.d.ts
CHANGED
|
@@ -13,11 +13,13 @@ declare const _default: {
|
|
|
13
13
|
standard?: Record<string, string | number | boolean> | undefined;
|
|
14
14
|
additional?: Record<string, string | number | boolean> | undefined;
|
|
15
15
|
} | undefined;
|
|
16
|
+
priority?: "low" | "medium" | "high" | undefined;
|
|
16
17
|
statusFilter?: "open" | "closed" | undefined;
|
|
18
|
+
roadmapId?: import("convex/values").GenericId<"roadmap"> | undefined;
|
|
19
|
+
title: string;
|
|
20
|
+
status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
|
|
17
21
|
actorId: string;
|
|
18
22
|
kind: "feedback" | "feature_request" | "bug_report";
|
|
19
|
-
status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
|
|
20
|
-
title: string;
|
|
21
23
|
body: string;
|
|
22
24
|
upvoteCount: number;
|
|
23
25
|
commentCount: number;
|
|
@@ -42,7 +44,9 @@ declare const _default: {
|
|
|
42
44
|
standard: import("convex/values").VRecord<Record<string, string | number | boolean> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VUnion<string | number | boolean, [import("convex/values").VString<string, "required">, import("convex/values").VFloat64<number, "required">, import("convex/values").VBoolean<boolean, "required">], "required", never>, "optional", string>;
|
|
43
45
|
additional: import("convex/values").VRecord<Record<string, string | number | boolean> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VUnion<string | number | boolean, [import("convex/values").VString<string, "required">, import("convex/values").VFloat64<number, "required">, import("convex/values").VBoolean<boolean, "required">], "required", never>, "optional", string>;
|
|
44
46
|
}, "optional", "standard" | "additional" | `standard.${string}` | `additional.${string}`>;
|
|
45
|
-
|
|
47
|
+
priority: import("convex/values").VUnion<"low" | "medium" | "high" | undefined, [import("convex/values").VLiteral<"low", "required">, import("convex/values").VLiteral<"medium", "required">, import("convex/values").VLiteral<"high", "required">], "optional", never>;
|
|
48
|
+
roadmapId: import("convex/values").VId<import("convex/values").GenericId<"roadmap"> | undefined, "optional">;
|
|
49
|
+
}, "required", "title" | "status" | "updatedAt" | "actorId" | "kind" | "body" | "upvoteCount" | "commentCount" | "metadata" | "metadata.standard" | "metadata.additional" | `metadata.standard.${string}` | `metadata.additional.${string}` | "priority" | "statusFilter" | "normalizedTitle" | "searchText" | "roadmapId">, {
|
|
46
50
|
by_kind: ["kind", "_creationTime"];
|
|
47
51
|
by_status: ["status", "_creationTime"];
|
|
48
52
|
by_kind_status: ["kind", "status", "_creationTime"];
|
|
@@ -56,12 +60,64 @@ declare const _default: {
|
|
|
56
60
|
by_kind_status_filter_upvotes: ["kind", "statusFilter", "upvoteCount", "_creationTime"];
|
|
57
61
|
by_normalized_title: ["normalizedTitle", "_creationTime"];
|
|
58
62
|
by_kind_normalized_title: ["kind", "normalizedTitle", "_creationTime"];
|
|
63
|
+
by_priority: ["priority", "_creationTime"];
|
|
64
|
+
by_roadmap_id: ["roadmapId", "_creationTime"];
|
|
59
65
|
}, {
|
|
60
66
|
search: {
|
|
61
67
|
searchField: "searchText";
|
|
62
|
-
filterFields: "kind" | "
|
|
68
|
+
filterFields: "status" | "kind" | "priority" | "statusFilter";
|
|
63
69
|
};
|
|
64
70
|
}, {}>;
|
|
71
|
+
roadmap: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
72
|
+
description?: string | undefined;
|
|
73
|
+
deletingAt?: number | undefined;
|
|
74
|
+
rebalanceId?: string | undefined;
|
|
75
|
+
rebalanceRank?: number | undefined;
|
|
76
|
+
rebalancePosition?: number | undefined;
|
|
77
|
+
title: string;
|
|
78
|
+
status: "planned" | "in_progress" | "shipped";
|
|
79
|
+
position: number;
|
|
80
|
+
createdAt: number;
|
|
81
|
+
updatedAt: number;
|
|
82
|
+
feedbackCount: number;
|
|
83
|
+
}, {
|
|
84
|
+
title: import("convex/values").VString<string, "required">;
|
|
85
|
+
description: import("convex/values").VString<string | undefined, "optional">;
|
|
86
|
+
status: import("convex/values").VUnion<"planned" | "in_progress" | "shipped", [import("convex/values").VLiteral<"planned", "required">, import("convex/values").VLiteral<"in_progress", "required">, import("convex/values").VLiteral<"shipped", "required">], "required", never>;
|
|
87
|
+
position: import("convex/values").VFloat64<number, "required">;
|
|
88
|
+
feedbackCount: import("convex/values").VFloat64<number, "required">;
|
|
89
|
+
createdAt: import("convex/values").VFloat64<number, "required">;
|
|
90
|
+
updatedAt: import("convex/values").VFloat64<number, "required">;
|
|
91
|
+
deletingAt: import("convex/values").VFloat64<number | undefined, "optional">;
|
|
92
|
+
rebalanceId: import("convex/values").VString<string | undefined, "optional">;
|
|
93
|
+
rebalanceRank: import("convex/values").VFloat64<number | undefined, "optional">;
|
|
94
|
+
rebalancePosition: import("convex/values").VFloat64<number | undefined, "optional">;
|
|
95
|
+
}, "required", "title" | "description" | "status" | "position" | "createdAt" | "updatedAt" | "feedbackCount" | "deletingAt" | "rebalanceId" | "rebalanceRank" | "rebalancePosition">, {
|
|
96
|
+
by_status_and_position: ["status", "position", "_creationTime"];
|
|
97
|
+
by_status_deleting_at_position: ["status", "deletingAt", "position", "_creationTime"];
|
|
98
|
+
by_deleting_at_and_position: ["deletingAt", "position", "_creationTime"];
|
|
99
|
+
by_status_rebalance_rank: ["status", "rebalanceId", "rebalanceRank", "_creationTime"];
|
|
100
|
+
by_status_deleting_at_rebalance_id_position: ["status", "deletingAt", "rebalanceId", "rebalancePosition", "_creationTime"];
|
|
101
|
+
by_position: ["position", "_creationTime"];
|
|
102
|
+
}, {
|
|
103
|
+
search_title: {
|
|
104
|
+
searchField: "title";
|
|
105
|
+
filterFields: "status" | "deletingAt";
|
|
106
|
+
};
|
|
107
|
+
}, {}>;
|
|
108
|
+
roadmapRebalances: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
109
|
+
visibleGeneration?: string | undefined;
|
|
110
|
+
activeGeneration?: string | undefined;
|
|
111
|
+
status: "planned" | "in_progress" | "shipped";
|
|
112
|
+
nextGeneration: number;
|
|
113
|
+
}, {
|
|
114
|
+
status: import("convex/values").VUnion<"planned" | "in_progress" | "shipped", [import("convex/values").VLiteral<"planned", "required">, import("convex/values").VLiteral<"in_progress", "required">, import("convex/values").VLiteral<"shipped", "required">], "required", never>;
|
|
115
|
+
nextGeneration: import("convex/values").VFloat64<number, "required">;
|
|
116
|
+
visibleGeneration: import("convex/values").VString<string | undefined, "optional">;
|
|
117
|
+
activeGeneration: import("convex/values").VString<string | undefined, "optional">;
|
|
118
|
+
}, "required", "status" | "nextGeneration" | "visibleGeneration" | "activeGeneration">, {
|
|
119
|
+
by_status: ["status", "_creationTime"];
|
|
120
|
+
}, {}, {}>;
|
|
65
121
|
comments: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
66
122
|
updatedAt?: number | undefined;
|
|
67
123
|
parentCommentId?: import("convex/values").GenericId<"comments"> | undefined;
|
|
@@ -82,7 +138,7 @@ declare const _default: {
|
|
|
82
138
|
replyCount: import("convex/values").VFloat64<number, "required">;
|
|
83
139
|
updatedAt: import("convex/values").VFloat64<number | undefined, "optional">;
|
|
84
140
|
deletedAt: import("convex/values").VFloat64<number | undefined, "optional">;
|
|
85
|
-
}, "required", "
|
|
141
|
+
}, "required", "updatedAt" | "actorId" | "body" | "entryId" | "parentCommentId" | "depth" | "likeCount" | "replyCount" | "deletedAt">, {
|
|
86
142
|
by_entry_parent: ["entryId", "parentCommentId", "_creationTime"];
|
|
87
143
|
by_entry_parent_likes: ["entryId", "parentCommentId", "likeCount", "_creationTime"];
|
|
88
144
|
}, {}, {}>;
|
package/dist/test.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAErE,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAE3C,QAAA,MAAM,OAAO,wCAA0C,CAAC;AAExD,wBAAgB,QAAQ,CACtB,IAAI,EAAE,UAAU,CAAC,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,EAC1D,IAAI,SAAa,GAChB,IAAI,CAEN;AAED,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAErE,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAE3C,QAAA,MAAM,OAAO,wCAA0C,CAAC;AAExD,wBAAgB,QAAQ,CACtB,IAAI,EAAE,UAAU,CAAC,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,EAC1D,IAAI,SAAa,GAChB,IAAI,CAEN;AAED,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAC3B,wBAA6C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "convex-feedback",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.0-beta.1",
|
|
4
4
|
"description": "Type-safe Convex component for feedback, feature requests, bug reports, voting, comments, and duplicate search.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -41,7 +41,8 @@
|
|
|
41
41
|
},
|
|
42
42
|
"scripts": {
|
|
43
43
|
"codegen": "npx convex codegen --component-dir ./src/component",
|
|
44
|
-
"
|
|
44
|
+
"clean": "node scripts/clean-dist.js",
|
|
45
|
+
"build": "npm run clean && tsc -p tsconfig.build.json",
|
|
45
46
|
"build:codegen": "npm run codegen && npm run build",
|
|
46
47
|
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
47
48
|
"lint": "eslint src test",
|
package/src/client/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
This layer is the supported server-side integration boundary between a host Convex app and the component.
|
|
4
4
|
|
|
5
5
|
- Construct the client with `createFeedback(...)` and the generated component reference.
|
|
6
|
-
- Resolve authentication and
|
|
6
|
+
- Resolve authentication and admin authorization in the host app. Components do not own host authentication.
|
|
7
7
|
- Keep `actor.id` stable. It is the identity used for authorship, entry upvotes, and comment likes.
|
|
8
8
|
- Configuration is static code configuration; there is no configuration table.
|
|
9
9
|
- Call the returned methods from host queries/mutations instead of exposing component internals directly.
|
package/src/client/api.ts
CHANGED
|
@@ -13,6 +13,10 @@ import type {
|
|
|
13
13
|
FeedbackComment,
|
|
14
14
|
FeedbackEntry,
|
|
15
15
|
FeedbackMetadata,
|
|
16
|
+
AdminFeedbackEntry,
|
|
17
|
+
EntryPriority,
|
|
18
|
+
RoadmapItem,
|
|
19
|
+
RoadmapStatus,
|
|
16
20
|
SimilarEntriesResult,
|
|
17
21
|
} from "../component/model.js";
|
|
18
22
|
|
|
@@ -172,6 +176,60 @@ export type SetEntryStatusArgs = {
|
|
|
172
176
|
status: EntryStatus;
|
|
173
177
|
};
|
|
174
178
|
|
|
179
|
+
export type AdminListEntriesArgs = {
|
|
180
|
+
/** Convex cursor-pagination options. */
|
|
181
|
+
paginationOpts: PaginationOptions;
|
|
182
|
+
kinds?: EntryKind[];
|
|
183
|
+
status?: EntryStatus;
|
|
184
|
+
priority?: EntryPriority;
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
export type AdminSearchEntriesArgs = AdminListEntriesArgs & {
|
|
188
|
+
searchQuery: string;
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
export type SetEntryPriorityArgs = {
|
|
192
|
+
entryId: string;
|
|
193
|
+
priority: EntryPriority | null;
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
export type ListRoadmapArgs = {
|
|
197
|
+
/** Convex cursor-pagination options. */
|
|
198
|
+
paginationOpts: PaginationOptions;
|
|
199
|
+
status?: RoadmapStatus;
|
|
200
|
+
};
|
|
201
|
+
export type SearchRoadmapArgs = { searchQuery: string; limit?: number };
|
|
202
|
+
export type CreateRoadmapArgs = {
|
|
203
|
+
title: string;
|
|
204
|
+
description?: string;
|
|
205
|
+
status: RoadmapStatus;
|
|
206
|
+
};
|
|
207
|
+
export type CreateRoadmapForEntryArgs = CreateRoadmapArgs & {
|
|
208
|
+
entryId: string;
|
|
209
|
+
};
|
|
210
|
+
export type UpdateRoadmapArgs = {
|
|
211
|
+
roadmapId: string;
|
|
212
|
+
title: string;
|
|
213
|
+
description?: string;
|
|
214
|
+
};
|
|
215
|
+
export type DeleteRoadmapArgs = { roadmapId: string };
|
|
216
|
+
export type MoveRoadmapArgs = {
|
|
217
|
+
roadmapId: string;
|
|
218
|
+
status: RoadmapStatus;
|
|
219
|
+
previousItemId?: string;
|
|
220
|
+
nextItemId?: string;
|
|
221
|
+
};
|
|
222
|
+
export type AttachFeedbackToRoadmapArgs = {
|
|
223
|
+
roadmapId: string;
|
|
224
|
+
entryId: string;
|
|
225
|
+
};
|
|
226
|
+
export type DetachFeedbackFromRoadmapArgs = { entryId: string };
|
|
227
|
+
export type ListRoadmapFeedbackArgs = {
|
|
228
|
+
/** Convex cursor-pagination options. */
|
|
229
|
+
paginationOpts: PaginationOptions;
|
|
230
|
+
roadmapId: string;
|
|
231
|
+
};
|
|
232
|
+
|
|
175
233
|
/**
|
|
176
234
|
* Arguments for setting the current actor's entry-upvote state.
|
|
177
235
|
*/
|
|
@@ -308,6 +366,24 @@ export interface FeedbackPublicApi<
|
|
|
308
366
|
Name extends string | undefined = string | undefined,
|
|
309
367
|
RateLimitResult = never,
|
|
310
368
|
> {
|
|
369
|
+
/** Returns whether the host actor has admin permissions. */
|
|
370
|
+
isAdmin: FunctionReference<
|
|
371
|
+
"query",
|
|
372
|
+
"public",
|
|
373
|
+
Record<string, never>,
|
|
374
|
+
boolean,
|
|
375
|
+
Name
|
|
376
|
+
>;
|
|
377
|
+
|
|
378
|
+
/** Returns whether the current request has an authenticated host actor. */
|
|
379
|
+
isAuthenticated: FunctionReference<
|
|
380
|
+
"query",
|
|
381
|
+
"public",
|
|
382
|
+
Record<string, never>,
|
|
383
|
+
boolean,
|
|
384
|
+
Name
|
|
385
|
+
>;
|
|
386
|
+
|
|
311
387
|
/** Returns a cursor-paginated entry list. */
|
|
312
388
|
listEntries: FunctionReference<
|
|
313
389
|
"query",
|
|
@@ -371,6 +447,106 @@ export interface FeedbackPublicApi<
|
|
|
371
447
|
Name
|
|
372
448
|
>;
|
|
373
449
|
|
|
450
|
+
adminListEntries: FunctionReference<
|
|
451
|
+
"query",
|
|
452
|
+
"public",
|
|
453
|
+
AdminListEntriesArgs,
|
|
454
|
+
PaginationResult<AdminFeedbackEntry>,
|
|
455
|
+
Name
|
|
456
|
+
>;
|
|
457
|
+
adminGetEntry: FunctionReference<
|
|
458
|
+
"query",
|
|
459
|
+
"public",
|
|
460
|
+
GetEntryArgs,
|
|
461
|
+
AdminFeedbackEntry | null,
|
|
462
|
+
Name
|
|
463
|
+
>;
|
|
464
|
+
adminSearchEntries: FunctionReference<
|
|
465
|
+
"query",
|
|
466
|
+
"public",
|
|
467
|
+
AdminSearchEntriesArgs,
|
|
468
|
+
PaginationResult<AdminFeedbackEntry>,
|
|
469
|
+
Name
|
|
470
|
+
>;
|
|
471
|
+
setEntryPriority: FunctionReference<
|
|
472
|
+
"mutation",
|
|
473
|
+
"public",
|
|
474
|
+
SetEntryPriorityArgs,
|
|
475
|
+
null | RateLimitResult,
|
|
476
|
+
Name
|
|
477
|
+
>;
|
|
478
|
+
|
|
479
|
+
listRoadmap: FunctionReference<
|
|
480
|
+
"query",
|
|
481
|
+
"public",
|
|
482
|
+
ListRoadmapArgs,
|
|
483
|
+
PaginationResult<RoadmapItem>,
|
|
484
|
+
Name
|
|
485
|
+
>;
|
|
486
|
+
searchRoadmap: FunctionReference<
|
|
487
|
+
"query",
|
|
488
|
+
"public",
|
|
489
|
+
SearchRoadmapArgs,
|
|
490
|
+
RoadmapItem[],
|
|
491
|
+
Name
|
|
492
|
+
>;
|
|
493
|
+
createRoadmap: FunctionReference<
|
|
494
|
+
"mutation",
|
|
495
|
+
"public",
|
|
496
|
+
CreateRoadmapArgs,
|
|
497
|
+
string | RateLimitResult,
|
|
498
|
+
Name
|
|
499
|
+
>;
|
|
500
|
+
createRoadmapForEntry: FunctionReference<
|
|
501
|
+
"mutation",
|
|
502
|
+
"public",
|
|
503
|
+
CreateRoadmapForEntryArgs,
|
|
504
|
+
string | RateLimitResult,
|
|
505
|
+
Name
|
|
506
|
+
>;
|
|
507
|
+
updateRoadmap: FunctionReference<
|
|
508
|
+
"mutation",
|
|
509
|
+
"public",
|
|
510
|
+
UpdateRoadmapArgs,
|
|
511
|
+
null | RateLimitResult,
|
|
512
|
+
Name
|
|
513
|
+
>;
|
|
514
|
+
deleteRoadmap: FunctionReference<
|
|
515
|
+
"mutation",
|
|
516
|
+
"public",
|
|
517
|
+
DeleteRoadmapArgs,
|
|
518
|
+
null | RateLimitResult,
|
|
519
|
+
Name
|
|
520
|
+
>;
|
|
521
|
+
moveRoadmapItem: FunctionReference<
|
|
522
|
+
"mutation",
|
|
523
|
+
"public",
|
|
524
|
+
MoveRoadmapArgs,
|
|
525
|
+
number | RateLimitResult,
|
|
526
|
+
Name
|
|
527
|
+
>;
|
|
528
|
+
attachFeedbackToRoadmap: FunctionReference<
|
|
529
|
+
"mutation",
|
|
530
|
+
"public",
|
|
531
|
+
AttachFeedbackToRoadmapArgs,
|
|
532
|
+
null | RateLimitResult,
|
|
533
|
+
Name
|
|
534
|
+
>;
|
|
535
|
+
detachFeedbackFromRoadmap: FunctionReference<
|
|
536
|
+
"mutation",
|
|
537
|
+
"public",
|
|
538
|
+
DetachFeedbackFromRoadmapArgs,
|
|
539
|
+
null | RateLimitResult,
|
|
540
|
+
Name
|
|
541
|
+
>;
|
|
542
|
+
listRoadmapFeedback: FunctionReference<
|
|
543
|
+
"query",
|
|
544
|
+
"public",
|
|
545
|
+
ListRoadmapFeedbackArgs,
|
|
546
|
+
PaginationResult<FeedbackEntry>,
|
|
547
|
+
Name
|
|
548
|
+
>;
|
|
549
|
+
|
|
374
550
|
/** Sets entry-upvote state, or returns a configured rate-limit rejection. */
|
|
375
551
|
setEntryUpvote: FunctionReference<
|
|
376
552
|
"mutation",
|
package/src/client/config.ts
CHANGED
|
@@ -42,7 +42,7 @@ export interface FeedbackEntriesConfig {
|
|
|
42
42
|
/**
|
|
43
43
|
* Whether entry authors may edit their own title and body.
|
|
44
44
|
*
|
|
45
|
-
*
|
|
45
|
+
* Admins are governed separately by the resolved actor permissions.
|
|
46
46
|
*
|
|
47
47
|
* @default true
|
|
48
48
|
*/
|