convex-feedback 0.1.2 → 0.1.4
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 +16 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/client/api.d.ts +3 -1
- package/dist/client/api.d.ts.map +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +4 -1
- package/dist/client/index.js.map +1 -1
- package/dist/component/_generated/component.d.ts +25 -0
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/comments.d.ts +10 -10
- package/dist/component/entries.d.ts +53 -28
- package/dist/component/entries.d.ts.map +1 -1
- package/dist/component/entries.js +7 -3
- package/dist/component/entries.js.map +1 -1
- package/dist/component/helpers.d.ts +2 -1
- package/dist/component/helpers.d.ts.map +1 -1
- package/dist/component/helpers.js +46 -1
- package/dist/component/helpers.js.map +1 -1
- package/dist/component/model.d.ts +70 -3
- package/dist/component/model.d.ts.map +1 -1
- package/dist/component/model.js +7 -0
- package/dist/component/model.js.map +1 -1
- package/dist/component/schema.d.ts +12 -1
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/schema.js +2 -1
- package/dist/component/schema.js.map +1 -1
- package/dist/react/index.d.ts +28 -2
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +4 -1
- package/dist/react/index.js.map +1 -1
- package/dist/test.d.ts +12 -1
- package/dist/test.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/client/api.ts +4 -0
- package/src/client/index.ts +6 -0
- package/src/component/_generated/component.ts +29 -1
- package/src/component/entries.ts +12 -1
- package/src/component/helpers.ts +70 -0
- package/src/component/model.ts +30 -0
- package/src/component/schema.ts +6 -1
- package/src/react/index.ts +26 -4
|
@@ -10,8 +10,21 @@ export declare const actorValidator: import("convex/values").VObject<{
|
|
|
10
10
|
id: import("convex/values").VString<string, "required">;
|
|
11
11
|
isModerator: import("convex/values").VBoolean<boolean, "required">;
|
|
12
12
|
}, "required", "id" | "isModerator">;
|
|
13
|
+
export declare const feedbackMetadataValueValidator: 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>;
|
|
14
|
+
export declare const feedbackMetadataRecordValidator: import("convex/values").VRecord<Record<string, string | number | boolean>, 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>, "required", string>;
|
|
15
|
+
export declare const feedbackMetadataValidator: import("convex/values").VObject<{
|
|
16
|
+
standard?: Record<string, string | number | boolean> | undefined;
|
|
17
|
+
additional?: Record<string, string | number | boolean> | undefined;
|
|
18
|
+
}, {
|
|
19
|
+
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>;
|
|
20
|
+
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>;
|
|
21
|
+
}, "required", "standard" | "additional" | `standard.${string}` | `additional.${string}`>;
|
|
13
22
|
export declare const publicEntryValidator: import("convex/values").VObject<{
|
|
14
23
|
updatedAt?: number | undefined;
|
|
24
|
+
metadata?: {
|
|
25
|
+
standard?: Record<string, string | number | boolean> | undefined;
|
|
26
|
+
additional?: Record<string, string | number | boolean> | undefined;
|
|
27
|
+
} | undefined;
|
|
15
28
|
id: string;
|
|
16
29
|
creationTime: number;
|
|
17
30
|
actorId: string;
|
|
@@ -34,7 +47,14 @@ export declare const publicEntryValidator: import("convex/values").VObject<{
|
|
|
34
47
|
commentCount: import("convex/values").VFloat64<number, "required">;
|
|
35
48
|
updatedAt: import("convex/values").VFloat64<number | undefined, "optional">;
|
|
36
49
|
viewerHasUpvoted: import("convex/values").VBoolean<boolean, "required">;
|
|
37
|
-
|
|
50
|
+
metadata: import("convex/values").VObject<{
|
|
51
|
+
standard?: Record<string, string | number | boolean> | undefined;
|
|
52
|
+
additional?: Record<string, string | number | boolean> | undefined;
|
|
53
|
+
} | undefined, {
|
|
54
|
+
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>;
|
|
55
|
+
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>;
|
|
56
|
+
}, "optional", "standard" | "additional" | `standard.${string}` | `additional.${string}`>;
|
|
57
|
+
}, "required", "id" | "creationTime" | "actorId" | "kind" | "status" | "title" | "body" | "upvoteCount" | "commentCount" | "updatedAt" | "viewerHasUpvoted" | "metadata" | "metadata.standard" | "metadata.additional" | `metadata.standard.${string}` | `metadata.additional.${string}`>;
|
|
38
58
|
export declare const publicCommentValidator: import("convex/values").VObject<{
|
|
39
59
|
updatedAt?: number | undefined;
|
|
40
60
|
parentCommentId?: string | undefined;
|
|
@@ -65,6 +85,10 @@ export declare const publicCommentValidator: import("convex/values").VObject<{
|
|
|
65
85
|
export declare const similarEntriesValidator: import("convex/values").VObject<{
|
|
66
86
|
exact: {
|
|
67
87
|
updatedAt?: number | undefined;
|
|
88
|
+
metadata?: {
|
|
89
|
+
standard?: Record<string, string | number | boolean> | undefined;
|
|
90
|
+
additional?: Record<string, string | number | boolean> | undefined;
|
|
91
|
+
} | undefined;
|
|
68
92
|
id: string;
|
|
69
93
|
creationTime: number;
|
|
70
94
|
actorId: string;
|
|
@@ -78,6 +102,10 @@ export declare const similarEntriesValidator: import("convex/values").VObject<{
|
|
|
78
102
|
}[];
|
|
79
103
|
similar: {
|
|
80
104
|
updatedAt?: number | undefined;
|
|
105
|
+
metadata?: {
|
|
106
|
+
standard?: Record<string, string | number | boolean> | undefined;
|
|
107
|
+
additional?: Record<string, string | number | boolean> | undefined;
|
|
108
|
+
} | undefined;
|
|
81
109
|
id: string;
|
|
82
110
|
creationTime: number;
|
|
83
111
|
actorId: string;
|
|
@@ -92,6 +120,10 @@ export declare const similarEntriesValidator: import("convex/values").VObject<{
|
|
|
92
120
|
}, {
|
|
93
121
|
exact: import("convex/values").VArray<{
|
|
94
122
|
updatedAt?: number | undefined;
|
|
123
|
+
metadata?: {
|
|
124
|
+
standard?: Record<string, string | number | boolean> | undefined;
|
|
125
|
+
additional?: Record<string, string | number | boolean> | undefined;
|
|
126
|
+
} | undefined;
|
|
95
127
|
id: string;
|
|
96
128
|
creationTime: number;
|
|
97
129
|
actorId: string;
|
|
@@ -104,6 +136,10 @@ export declare const similarEntriesValidator: import("convex/values").VObject<{
|
|
|
104
136
|
viewerHasUpvoted: boolean;
|
|
105
137
|
}[], import("convex/values").VObject<{
|
|
106
138
|
updatedAt?: number | undefined;
|
|
139
|
+
metadata?: {
|
|
140
|
+
standard?: Record<string, string | number | boolean> | undefined;
|
|
141
|
+
additional?: Record<string, string | number | boolean> | undefined;
|
|
142
|
+
} | undefined;
|
|
107
143
|
id: string;
|
|
108
144
|
creationTime: number;
|
|
109
145
|
actorId: string;
|
|
@@ -126,9 +162,20 @@ export declare const similarEntriesValidator: import("convex/values").VObject<{
|
|
|
126
162
|
commentCount: import("convex/values").VFloat64<number, "required">;
|
|
127
163
|
updatedAt: import("convex/values").VFloat64<number | undefined, "optional">;
|
|
128
164
|
viewerHasUpvoted: import("convex/values").VBoolean<boolean, "required">;
|
|
129
|
-
|
|
165
|
+
metadata: import("convex/values").VObject<{
|
|
166
|
+
standard?: Record<string, string | number | boolean> | undefined;
|
|
167
|
+
additional?: Record<string, string | number | boolean> | undefined;
|
|
168
|
+
} | undefined, {
|
|
169
|
+
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>;
|
|
170
|
+
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>;
|
|
171
|
+
}, "optional", "standard" | "additional" | `standard.${string}` | `additional.${string}`>;
|
|
172
|
+
}, "required", "id" | "creationTime" | "actorId" | "kind" | "status" | "title" | "body" | "upvoteCount" | "commentCount" | "updatedAt" | "viewerHasUpvoted" | "metadata" | "metadata.standard" | "metadata.additional" | `metadata.standard.${string}` | `metadata.additional.${string}`>, "required">;
|
|
130
173
|
similar: import("convex/values").VArray<{
|
|
131
174
|
updatedAt?: number | undefined;
|
|
175
|
+
metadata?: {
|
|
176
|
+
standard?: Record<string, string | number | boolean> | undefined;
|
|
177
|
+
additional?: Record<string, string | number | boolean> | undefined;
|
|
178
|
+
} | undefined;
|
|
132
179
|
id: string;
|
|
133
180
|
creationTime: number;
|
|
134
181
|
actorId: string;
|
|
@@ -141,6 +188,10 @@ export declare const similarEntriesValidator: import("convex/values").VObject<{
|
|
|
141
188
|
viewerHasUpvoted: boolean;
|
|
142
189
|
}[], import("convex/values").VObject<{
|
|
143
190
|
updatedAt?: number | undefined;
|
|
191
|
+
metadata?: {
|
|
192
|
+
standard?: Record<string, string | number | boolean> | undefined;
|
|
193
|
+
additional?: Record<string, string | number | boolean> | undefined;
|
|
194
|
+
} | undefined;
|
|
144
195
|
id: string;
|
|
145
196
|
creationTime: number;
|
|
146
197
|
actorId: string;
|
|
@@ -163,7 +214,14 @@ export declare const similarEntriesValidator: import("convex/values").VObject<{
|
|
|
163
214
|
commentCount: import("convex/values").VFloat64<number, "required">;
|
|
164
215
|
updatedAt: import("convex/values").VFloat64<number | undefined, "optional">;
|
|
165
216
|
viewerHasUpvoted: import("convex/values").VBoolean<boolean, "required">;
|
|
166
|
-
|
|
217
|
+
metadata: import("convex/values").VObject<{
|
|
218
|
+
standard?: Record<string, string | number | boolean> | undefined;
|
|
219
|
+
additional?: Record<string, string | number | boolean> | undefined;
|
|
220
|
+
} | undefined, {
|
|
221
|
+
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>;
|
|
222
|
+
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>;
|
|
223
|
+
}, "optional", "standard" | "additional" | `standard.${string}` | `additional.${string}`>;
|
|
224
|
+
}, "required", "id" | "creationTime" | "actorId" | "kind" | "status" | "title" | "body" | "upvoteCount" | "commentCount" | "updatedAt" | "viewerHasUpvoted" | "metadata" | "metadata.standard" | "metadata.additional" | `metadata.standard.${string}` | `metadata.additional.${string}`>, "required">;
|
|
167
225
|
}, "required", "exact" | "similar">;
|
|
168
226
|
/**
|
|
169
227
|
* Category of feedback represented by an entry.
|
|
@@ -213,6 +271,10 @@ export type CommentSort = Infer<typeof commentSortValidator>;
|
|
|
213
271
|
* status or modifying content they do not own.
|
|
214
272
|
*/
|
|
215
273
|
export type FeedbackActor = Infer<typeof actorValidator>;
|
|
274
|
+
/** Scalar value accepted in entry diagnostic metadata. */
|
|
275
|
+
export type FeedbackMetadataValue = Infer<typeof feedbackMetadataValueValidator>;
|
|
276
|
+
/** Flat metadata values grouped by their source. */
|
|
277
|
+
export type FeedbackMetadata = Infer<typeof feedbackMetadataValidator>;
|
|
216
278
|
/**
|
|
217
279
|
* Public representation of a feedback, feature-request, or bug-report entry.
|
|
218
280
|
*
|
|
@@ -251,6 +313,11 @@ export type FeedbackActor = Infer<typeof actorValidator>;
|
|
|
251
313
|
* @property viewerHasUpvoted
|
|
252
314
|
* Whether the actor associated with the current query has upvoted the entry.
|
|
253
315
|
* `false` when no viewer actor is available.
|
|
316
|
+
*
|
|
317
|
+
* @property metadata
|
|
318
|
+
* Creation-time diagnostic metadata. Present only when `getEntry` is queried
|
|
319
|
+
* by a moderator. Ordinary entry lists, searches, and non-moderator reads omit
|
|
320
|
+
* this property.
|
|
254
321
|
*/
|
|
255
322
|
export type FeedbackEntry = Infer<typeof publicEntryValidator>;
|
|
256
323
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/component/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAG3C,eAAO,MAAM,kBAAkB,2RAI9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,geAOhC,CAAC;AAEF,eAAO,MAAM,kBAAkB,oLAG9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,uPAIhC,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;oCAGzB,CAAC;AAEH,eAAO,MAAM,oBAAoB
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/component/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAG3C,eAAO,MAAM,kBAAkB,2RAI9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,geAOhC,CAAC;AAEF,eAAO,MAAM,kBAAkB,oLAG9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,uPAIhC,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;oCAGzB,CAAC;AAEH,eAAO,MAAM,8BAA8B,kPAI1C,CAAC;AAEF,eAAO,MAAM,+BAA+B,uYAG3C,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;;yFAGpC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yRAa/B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;gLAajC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAGlC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE7D;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEzD,0DAA0D;AAC1D,MAAM,MAAM,qBAAqB,GAAG,KAAK,CACvC,OAAO,8BAA8B,CACtC,CAAC;AAEF,oDAAoD;AACpD,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
|
package/dist/component/model.js
CHANGED
|
@@ -7,6 +7,12 @@ export const actorValidator = v.object({
|
|
|
7
7
|
id: v.string(),
|
|
8
8
|
isModerator: v.boolean(),
|
|
9
9
|
});
|
|
10
|
+
export const feedbackMetadataValueValidator = v.union(v.string(), v.number(), v.boolean());
|
|
11
|
+
export const feedbackMetadataRecordValidator = v.record(v.string(), feedbackMetadataValueValidator);
|
|
12
|
+
export const feedbackMetadataValidator = v.object({
|
|
13
|
+
standard: v.optional(feedbackMetadataRecordValidator),
|
|
14
|
+
additional: v.optional(feedbackMetadataRecordValidator),
|
|
15
|
+
});
|
|
10
16
|
export const publicEntryValidator = v.object({
|
|
11
17
|
id: v.string(),
|
|
12
18
|
creationTime: v.number(),
|
|
@@ -19,6 +25,7 @@ export const publicEntryValidator = v.object({
|
|
|
19
25
|
commentCount: v.number(),
|
|
20
26
|
updatedAt: v.optional(v.number()),
|
|
21
27
|
viewerHasUpvoted: v.boolean(),
|
|
28
|
+
metadata: v.optional(feedbackMetadataValidator),
|
|
22
29
|
});
|
|
23
30
|
export const publicCommentValidator = v.object({
|
|
24
31
|
id: v.string(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/component/model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAElC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CACvC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EACrB,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAC5B,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CACzC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EACjB,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,EACzB,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EACpB,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EACxB,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EACtB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CACvC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAChB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CACzC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAChB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EACnB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;CACzB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,kBAAkB;IACxB,MAAM,EAAE,oBAAoB;IAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/component/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
declare const schema: import("convex/server").SchemaDefinition<{
|
|
2
2
|
entries: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
3
3
|
updatedAt?: number | undefined;
|
|
4
|
+
metadata?: {
|
|
5
|
+
standard?: Record<string, string | number | boolean> | undefined;
|
|
6
|
+
additional?: Record<string, string | number | boolean> | undefined;
|
|
7
|
+
} | undefined;
|
|
4
8
|
actorId: string;
|
|
5
9
|
kind: "feedback" | "feature_request" | "bug_report";
|
|
6
10
|
status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
|
|
@@ -21,7 +25,14 @@ declare const schema: import("convex/server").SchemaDefinition<{
|
|
|
21
25
|
upvoteCount: import("convex/values").VFloat64<number, "required">;
|
|
22
26
|
commentCount: import("convex/values").VFloat64<number, "required">;
|
|
23
27
|
updatedAt: import("convex/values").VFloat64<number | undefined, "optional">;
|
|
24
|
-
|
|
28
|
+
metadata: import("convex/values").VObject<{
|
|
29
|
+
standard?: Record<string, string | number | boolean> | undefined;
|
|
30
|
+
additional?: Record<string, string | number | boolean> | undefined;
|
|
31
|
+
} | undefined, {
|
|
32
|
+
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>;
|
|
33
|
+
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>;
|
|
34
|
+
}, "optional", "standard" | "additional" | `standard.${string}` | `additional.${string}`>;
|
|
35
|
+
}, "required", "actorId" | "kind" | "status" | "title" | "body" | "upvoteCount" | "commentCount" | "updatedAt" | "metadata" | "metadata.standard" | "metadata.additional" | `metadata.standard.${string}` | `metadata.additional.${string}` | "normalizedTitle" | "searchText">, {
|
|
25
36
|
by_kind: ["kind", "_creationTime"];
|
|
26
37
|
by_status: ["status", "_creationTime"];
|
|
27
38
|
by_kind_status: ["kind", "status", "_creationTime"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/component/schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/component/schema.ts"],"names":[],"mappings":"AASA,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAqDV,CAAC;AAEH,eAAe,MAAM,CAAC"}
|
package/dist/component/schema.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineSchema, defineTable } from "convex/server";
|
|
2
2
|
import { v } from "convex/values";
|
|
3
|
-
import { entryKindValidator, entryStatusValidator } from "./model.js";
|
|
3
|
+
import { entryKindValidator, entryStatusValidator, feedbackMetadataValidator, } from "./model.js";
|
|
4
4
|
const schema = defineSchema({
|
|
5
5
|
entries: defineTable({
|
|
6
6
|
actorId: v.string(),
|
|
@@ -13,6 +13,7 @@ const schema = defineSchema({
|
|
|
13
13
|
upvoteCount: v.number(),
|
|
14
14
|
commentCount: v.number(),
|
|
15
15
|
updatedAt: v.optional(v.number()),
|
|
16
|
+
metadata: v.optional(feedbackMetadataValidator),
|
|
16
17
|
})
|
|
17
18
|
.index("by_kind", ["kind"])
|
|
18
19
|
.index("by_status", ["status"])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/component/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAElC,OAAO,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/component/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/react/index.d.ts
CHANGED
|
@@ -146,7 +146,7 @@ export interface SimilarEntriesArgs {
|
|
|
146
146
|
* @typeParam RateLimitResult The validated non-throwing rate-limit rejection
|
|
147
147
|
* type returned by mutation hooks. It is inferred from the supplied API.
|
|
148
148
|
*/
|
|
149
|
-
|
|
149
|
+
declare function createFeedbackHooksImplementation<RateLimitResult>(api: FeedbackPublicApi<string | undefined, RateLimitResult>, options?: FeedbackHooksOptions): {
|
|
150
150
|
/**
|
|
151
151
|
* Resolved client-side page sizes used by the generated hooks and useful
|
|
152
152
|
* when calling their `loadMore` functions.
|
|
@@ -161,6 +161,10 @@ export declare function createFeedbackHooks<RateLimitResult = never>(api: Feedba
|
|
|
161
161
|
*/
|
|
162
162
|
useEntries(args?: UseEntriesArgs): import("convex/react").UsePaginatedQueryReturnType<import("convex/server").FunctionReference<"query", "public", import("../client/api.js").ListEntriesArgs, import("convex/server").PaginationResult<{
|
|
163
163
|
updatedAt?: number | undefined;
|
|
164
|
+
metadata?: {
|
|
165
|
+
standard?: Record<string, string | number | boolean> | undefined;
|
|
166
|
+
additional?: Record<string, string | number | boolean> | undefined;
|
|
167
|
+
} | undefined;
|
|
164
168
|
id: string;
|
|
165
169
|
creationTime: number;
|
|
166
170
|
actorId: string;
|
|
@@ -179,6 +183,10 @@ export declare function createFeedbackHooks<RateLimitResult = never>(api: Feedba
|
|
|
179
183
|
*/
|
|
180
184
|
useEntry(entryId: string | null | undefined): {
|
|
181
185
|
updatedAt?: number | undefined;
|
|
186
|
+
metadata?: {
|
|
187
|
+
standard?: Record<string, string | number | boolean> | undefined;
|
|
188
|
+
additional?: Record<string, string | number | boolean> | undefined;
|
|
189
|
+
} | undefined;
|
|
182
190
|
id: string;
|
|
183
191
|
creationTime: number;
|
|
184
192
|
actorId: string;
|
|
@@ -197,6 +205,10 @@ export declare function createFeedbackHooks<RateLimitResult = never>(api: Feedba
|
|
|
197
205
|
*/
|
|
198
206
|
useSearchEntries(args: SearchEntriesArgs): {
|
|
199
207
|
updatedAt?: number | undefined;
|
|
208
|
+
metadata?: {
|
|
209
|
+
standard?: Record<string, string | number | boolean> | undefined;
|
|
210
|
+
additional?: Record<string, string | number | boolean> | undefined;
|
|
211
|
+
} | undefined;
|
|
200
212
|
id: string;
|
|
201
213
|
creationTime: number;
|
|
202
214
|
actorId: string;
|
|
@@ -219,6 +231,10 @@ export declare function createFeedbackHooks<RateLimitResult = never>(api: Feedba
|
|
|
219
231
|
useSimilarEntries(args: SimilarEntriesArgs): {
|
|
220
232
|
exact: {
|
|
221
233
|
updatedAt?: number | undefined;
|
|
234
|
+
metadata?: {
|
|
235
|
+
standard?: Record<string, string | number | boolean> | undefined;
|
|
236
|
+
additional?: Record<string, string | number | boolean> | undefined;
|
|
237
|
+
} | undefined;
|
|
222
238
|
id: string;
|
|
223
239
|
creationTime: number;
|
|
224
240
|
actorId: string;
|
|
@@ -232,6 +248,10 @@ export declare function createFeedbackHooks<RateLimitResult = never>(api: Feedba
|
|
|
232
248
|
}[];
|
|
233
249
|
similar: {
|
|
234
250
|
updatedAt?: number | undefined;
|
|
251
|
+
metadata?: {
|
|
252
|
+
standard?: Record<string, string | number | boolean> | undefined;
|
|
253
|
+
additional?: Record<string, string | number | boolean> | undefined;
|
|
254
|
+
} | undefined;
|
|
235
255
|
id: string;
|
|
236
256
|
creationTime: number;
|
|
237
257
|
actorId: string;
|
|
@@ -278,6 +298,11 @@ export declare function createFeedbackHooks<RateLimitResult = never>(api: Feedba
|
|
|
278
298
|
/** Returns the idempotent comment-like state mutation. */
|
|
279
299
|
useSetCommentLike(): import("convex/react").ReactMutation<import("convex/server").FunctionReference<"mutation", "public", import("../client/api.js").SetCommentLikeArgs, import("../client/api.js").SetCommentLikeResult | RateLimitResult, string | undefined>>;
|
|
280
300
|
};
|
|
301
|
+
type CreatedFeedbackHooks<RateLimitResult> = ReturnType<typeof createFeedbackHooksImplementation<RateLimitResult>>;
|
|
302
|
+
/** Creates hooks for a feedback API whose rate limiters reject by throwing. */
|
|
303
|
+
export declare function createFeedbackHooks(api: FeedbackPublicApi<string | undefined, never>, options?: FeedbackHooksOptions): CreatedFeedbackHooks<never>;
|
|
304
|
+
/** Creates hooks carrying a validated non-throwing rate-limit result. */
|
|
305
|
+
export declare function createFeedbackHooks<RateLimitResult>(api: FeedbackPublicApi<string | undefined, RateLimitResult>, options?: FeedbackHooksOptions): CreatedFeedbackHooks<RateLimitResult>;
|
|
281
306
|
/**
|
|
282
307
|
* Hook collection returned by `createFeedbackHooks`.
|
|
283
308
|
*
|
|
@@ -287,5 +312,6 @@ export declare function createFeedbackHooks<RateLimitResult = never>(api: Feedba
|
|
|
287
312
|
* @typeParam RateLimitResult The validated non-throwing rate-limit rejection
|
|
288
313
|
* type returned by mutation hooks.
|
|
289
314
|
*/
|
|
290
|
-
export type FeedbackHooks<RateLimitResult = never> =
|
|
315
|
+
export type FeedbackHooks<RateLimitResult = never> = CreatedFeedbackHooks<RateLimitResult>;
|
|
316
|
+
export {};
|
|
291
317
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,SAAS,EACT,WAAW,EAEZ,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;IAE7B,uCAAuC;IACvC,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;IAE7B,uCAAuC;IACvC,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAaD;;;;;;;;GAQG;AACH,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
|
package/dist/react/index.js
CHANGED
|
@@ -19,7 +19,7 @@ function positivePageSize(value, fallback) {
|
|
|
19
19
|
* @typeParam RateLimitResult The validated non-throwing rate-limit rejection
|
|
20
20
|
* type returned by mutation hooks. It is inferred from the supplied API.
|
|
21
21
|
*/
|
|
22
|
-
|
|
22
|
+
function createFeedbackHooksImplementation(api, options = {}) {
|
|
23
23
|
const entryPageSize = positivePageSize(options.entryPageSize, 20);
|
|
24
24
|
const commentPageSize = positivePageSize(options.commentPageSize, 20);
|
|
25
25
|
const replyPageSize = positivePageSize(options.replyPageSize, 10);
|
|
@@ -131,4 +131,7 @@ export function createFeedbackHooks(api, options = {}) {
|
|
|
131
131
|
},
|
|
132
132
|
};
|
|
133
133
|
}
|
|
134
|
+
export function createFeedbackHooks(api, options = {}) {
|
|
135
|
+
return createFeedbackHooksImplementation(api, options);
|
|
136
|
+
}
|
|
134
137
|
//# sourceMappingURL=index.js.map
|
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAqKrD,MAAM,yBAAyB,GAAyB;IACtD,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF,SAAS,gBAAgB,CAAC,KAAyB,EAAE,QAAgB;IACnE,OAAO,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QAChE,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,QAAQ,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
|
package/dist/test.d.ts
CHANGED
|
@@ -9,6 +9,10 @@ declare const _default: {
|
|
|
9
9
|
schema: SchemaDefinition<{
|
|
10
10
|
entries: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
11
11
|
updatedAt?: number | undefined;
|
|
12
|
+
metadata?: {
|
|
13
|
+
standard?: Record<string, string | number | boolean> | undefined;
|
|
14
|
+
additional?: Record<string, string | number | boolean> | undefined;
|
|
15
|
+
} | undefined;
|
|
12
16
|
actorId: string;
|
|
13
17
|
kind: "feedback" | "feature_request" | "bug_report";
|
|
14
18
|
status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
|
|
@@ -29,7 +33,14 @@ declare const _default: {
|
|
|
29
33
|
upvoteCount: import("convex/values").VFloat64<number, "required">;
|
|
30
34
|
commentCount: import("convex/values").VFloat64<number, "required">;
|
|
31
35
|
updatedAt: import("convex/values").VFloat64<number | undefined, "optional">;
|
|
32
|
-
|
|
36
|
+
metadata: import("convex/values").VObject<{
|
|
37
|
+
standard?: Record<string, string | number | boolean> | undefined;
|
|
38
|
+
additional?: Record<string, string | number | boolean> | undefined;
|
|
39
|
+
} | undefined, {
|
|
40
|
+
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>;
|
|
41
|
+
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>;
|
|
42
|
+
}, "optional", "standard" | "additional" | `standard.${string}` | `additional.${string}`>;
|
|
43
|
+
}, "required", "actorId" | "kind" | "status" | "title" | "body" | "upvoteCount" | "commentCount" | "updatedAt" | "metadata" | "metadata.standard" | "metadata.additional" | `metadata.standard.${string}` | `metadata.additional.${string}` | "normalizedTitle" | "searchText">, {
|
|
33
44
|
by_kind: ["kind", "_creationTime"];
|
|
34
45
|
by_status: ["status", "_creationTime"];
|
|
35
46
|
by_kind_status: ["kind", "status", "_creationTime"];
|
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
package/src/client/api.ts
CHANGED
|
@@ -11,6 +11,7 @@ import type {
|
|
|
11
11
|
EntryStatus,
|
|
12
12
|
FeedbackComment,
|
|
13
13
|
FeedbackEntry,
|
|
14
|
+
FeedbackMetadata,
|
|
14
15
|
SimilarEntriesResult,
|
|
15
16
|
} from "../component/model.js";
|
|
16
17
|
|
|
@@ -134,6 +135,9 @@ export type CreateEntryArgs = {
|
|
|
134
135
|
|
|
135
136
|
/** Entry description/body. */
|
|
136
137
|
body: string;
|
|
138
|
+
|
|
139
|
+
/** Optional creation-time diagnostic metadata. */
|
|
140
|
+
metadata?: FeedbackMetadata;
|
|
137
141
|
};
|
|
138
142
|
|
|
139
143
|
/**
|
package/src/client/index.ts
CHANGED
|
@@ -27,6 +27,7 @@ import {
|
|
|
27
27
|
entryKindValidator,
|
|
28
28
|
entrySortValidator,
|
|
29
29
|
entryStatusValidator,
|
|
30
|
+
feedbackMetadataValidator,
|
|
30
31
|
publicCommentValidator,
|
|
31
32
|
publicEntryValidator,
|
|
32
33
|
similarEntriesValidator,
|
|
@@ -46,6 +47,8 @@ export type {
|
|
|
46
47
|
FeedbackActor,
|
|
47
48
|
FeedbackComment,
|
|
48
49
|
FeedbackEntry,
|
|
50
|
+
FeedbackMetadata,
|
|
51
|
+
FeedbackMetadataValue,
|
|
49
52
|
SimilarEntriesResult,
|
|
50
53
|
} from "../component/model.js";
|
|
51
54
|
export type { FeedbackPublicApi } from "./api.js";
|
|
@@ -452,6 +455,7 @@ function buildFeedbackApi<
|
|
|
452
455
|
return await ctx.runQuery(component.entries.get, {
|
|
453
456
|
entryId: args.entryId,
|
|
454
457
|
...actorIdFields(actor),
|
|
458
|
+
...(actor?.isModerator === true ? { viewerIsModerator: true } : {}),
|
|
455
459
|
});
|
|
456
460
|
},
|
|
457
461
|
}),
|
|
@@ -515,6 +519,7 @@ function buildFeedbackApi<
|
|
|
515
519
|
kind: entryKindValidator,
|
|
516
520
|
title: v.string(),
|
|
517
521
|
body: v.string(),
|
|
522
|
+
metadata: v.optional(feedbackMetadataValidator),
|
|
518
523
|
},
|
|
519
524
|
returns: idReturns,
|
|
520
525
|
handler: async (ctx, args) => {
|
|
@@ -535,6 +540,7 @@ function buildFeedbackApi<
|
|
|
535
540
|
enabledKinds: [...config.entries.enabledKinds],
|
|
536
541
|
maxTitleLength: config.limits.titleLength,
|
|
537
542
|
maxBodyLength: config.limits.bodyLength,
|
|
543
|
+
...(args.metadata === undefined ? {} : { metadata: args.metadata }),
|
|
538
544
|
});
|
|
539
545
|
},
|
|
540
546
|
}),
|
|
@@ -127,6 +127,10 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
|
|
|
127
127
|
kind: "feedback" | "feature_request" | "bug_report";
|
|
128
128
|
maxBodyLength: number;
|
|
129
129
|
maxTitleLength: number;
|
|
130
|
+
metadata?: {
|
|
131
|
+
additional?: Record<string, string | number | boolean>;
|
|
132
|
+
standard?: Record<string, string | number | boolean>;
|
|
133
|
+
};
|
|
130
134
|
title: string;
|
|
131
135
|
},
|
|
132
136
|
string,
|
|
@@ -135,7 +139,11 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
|
|
|
135
139
|
get: FunctionReference<
|
|
136
140
|
"query",
|
|
137
141
|
"internal",
|
|
138
|
-
{
|
|
142
|
+
{
|
|
143
|
+
entryId: string;
|
|
144
|
+
viewerActorId?: string;
|
|
145
|
+
viewerIsModerator?: boolean;
|
|
146
|
+
},
|
|
139
147
|
{
|
|
140
148
|
actorId: string;
|
|
141
149
|
body: string;
|
|
@@ -143,6 +151,10 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
|
|
|
143
151
|
creationTime: number;
|
|
144
152
|
id: string;
|
|
145
153
|
kind: "feedback" | "feature_request" | "bug_report";
|
|
154
|
+
metadata?: {
|
|
155
|
+
additional?: Record<string, string | number | boolean>;
|
|
156
|
+
standard?: Record<string, string | number | boolean>;
|
|
157
|
+
};
|
|
146
158
|
status:
|
|
147
159
|
| "open"
|
|
148
160
|
| "under_review"
|
|
@@ -190,6 +202,10 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
|
|
|
190
202
|
creationTime: number;
|
|
191
203
|
id: string;
|
|
192
204
|
kind: "feedback" | "feature_request" | "bug_report";
|
|
205
|
+
metadata?: {
|
|
206
|
+
additional?: Record<string, string | number | boolean>;
|
|
207
|
+
standard?: Record<string, string | number | boolean>;
|
|
208
|
+
};
|
|
193
209
|
status:
|
|
194
210
|
| "open"
|
|
195
211
|
| "under_review"
|
|
@@ -230,6 +246,10 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
|
|
|
230
246
|
creationTime: number;
|
|
231
247
|
id: string;
|
|
232
248
|
kind: "feedback" | "feature_request" | "bug_report";
|
|
249
|
+
metadata?: {
|
|
250
|
+
additional?: Record<string, string | number | boolean>;
|
|
251
|
+
standard?: Record<string, string | number | boolean>;
|
|
252
|
+
};
|
|
233
253
|
status:
|
|
234
254
|
| "open"
|
|
235
255
|
| "under_review"
|
|
@@ -286,6 +306,10 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
|
|
|
286
306
|
creationTime: number;
|
|
287
307
|
id: string;
|
|
288
308
|
kind: "feedback" | "feature_request" | "bug_report";
|
|
309
|
+
metadata?: {
|
|
310
|
+
additional?: Record<string, string | number | boolean>;
|
|
311
|
+
standard?: Record<string, string | number | boolean>;
|
|
312
|
+
};
|
|
289
313
|
status:
|
|
290
314
|
| "open"
|
|
291
315
|
| "under_review"
|
|
@@ -305,6 +329,10 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
|
|
|
305
329
|
creationTime: number;
|
|
306
330
|
id: string;
|
|
307
331
|
kind: "feedback" | "feature_request" | "bug_report";
|
|
332
|
+
metadata?: {
|
|
333
|
+
additional?: Record<string, string | number | boolean>;
|
|
334
|
+
standard?: Record<string, string | number | boolean>;
|
|
335
|
+
};
|
|
308
336
|
status:
|
|
309
337
|
| "open"
|
|
310
338
|
| "under_review"
|