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.
Files changed (42) hide show
  1. package/README.md +16 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/client/api.d.ts +3 -1
  4. package/dist/client/api.d.ts.map +1 -1
  5. package/dist/client/index.d.ts +1 -1
  6. package/dist/client/index.d.ts.map +1 -1
  7. package/dist/client/index.js +4 -1
  8. package/dist/client/index.js.map +1 -1
  9. package/dist/component/_generated/component.d.ts +25 -0
  10. package/dist/component/_generated/component.d.ts.map +1 -1
  11. package/dist/component/comments.d.ts +10 -10
  12. package/dist/component/entries.d.ts +53 -28
  13. package/dist/component/entries.d.ts.map +1 -1
  14. package/dist/component/entries.js +7 -3
  15. package/dist/component/entries.js.map +1 -1
  16. package/dist/component/helpers.d.ts +2 -1
  17. package/dist/component/helpers.d.ts.map +1 -1
  18. package/dist/component/helpers.js +46 -1
  19. package/dist/component/helpers.js.map +1 -1
  20. package/dist/component/model.d.ts +70 -3
  21. package/dist/component/model.d.ts.map +1 -1
  22. package/dist/component/model.js +7 -0
  23. package/dist/component/model.js.map +1 -1
  24. package/dist/component/schema.d.ts +12 -1
  25. package/dist/component/schema.d.ts.map +1 -1
  26. package/dist/component/schema.js +2 -1
  27. package/dist/component/schema.js.map +1 -1
  28. package/dist/react/index.d.ts +28 -2
  29. package/dist/react/index.d.ts.map +1 -1
  30. package/dist/react/index.js +4 -1
  31. package/dist/react/index.js.map +1 -1
  32. package/dist/test.d.ts +12 -1
  33. package/dist/test.d.ts.map +1 -1
  34. package/package.json +1 -1
  35. package/src/client/api.ts +4 -0
  36. package/src/client/index.ts +6 -0
  37. package/src/component/_generated/component.ts +29 -1
  38. package/src/component/entries.ts +12 -1
  39. package/src/component/helpers.ts +70 -0
  40. package/src/component/model.ts +30 -0
  41. package/src/component/schema.ts +6 -1
  42. 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
- }, "required", "id" | "creationTime" | "actorId" | "kind" | "status" | "title" | "body" | "upvoteCount" | "commentCount" | "updatedAt" | "viewerHasUpvoted">;
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
- }, "required", "id" | "creationTime" | "actorId" | "kind" | "status" | "title" | "body" | "upvoteCount" | "commentCount" | "updatedAt" | "viewerHasUpvoted">, "required">;
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
- }, "required", "id" | "creationTime" | "actorId" | "kind" | "status" | "title" | "body" | "upvoteCount" | "commentCount" | "updatedAt" | "viewerHasUpvoted">, "required">;
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;;;;;;;;;;;;;;;;;;;;;;;;4JAY/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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;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"}
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"}
@@ -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;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE;CAC5B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC;CACvC,CAAC,CAAC"}
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
- }, "required", "actorId" | "kind" | "status" | "title" | "body" | "upvoteCount" | "commentCount" | "updatedAt" | "normalizedTitle" | "searchText">, {
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":"AAKA,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAoDV,CAAC;AAEH,eAAe,MAAM,CAAC"}
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"}
@@ -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":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/component/schema.ts"],"names":[],"mappings":"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"}
@@ -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
- export declare function createFeedbackHooks<RateLimitResult = never>(api: FeedbackPublicApi<string | undefined, RateLimitResult>, options?: FeedbackHooksOptions): {
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> = ReturnType<typeof createFeedbackHooks<RateLimitResult>>;
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,wBAAgB,mBAAmB,CAAC,eAAe,GAAG,KAAK,EACzD,GAAG,EAAE,iBAAiB,CAAC,MAAM,GAAG,SAAS,EAAE,eAAe,CAAC,EAC3D,OAAO,GAAE,oBAAyB;IAOhC;;;OAGG;;;;;;IAOH;;OAEG;sBACc,cAAc;;;;;;;;;;;;;IAY/B;;;;OAIG;sBACe,MAAM,GAAG,IAAI,GAAG,SAAS;;;;;;;;;;;;;IAO3C;;;;OAIG;2BACoB,iBAAiB;;;;;;;;;;;;;IAkBxC;;;;;;;OAOG;4BACqB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmB1C;;OAEG;sBACe,eAAe;;;;;;;;;;;;;;IAOjC,+CAA+C;;IAK/C,+CAA+C;;IAK/C,yCAAyC;;IAKzC,0DAA0D;;IAK1D,iDAAiD;;IAKjD,2CAA2C;;IAK3C,gDAAgD;;IAKhD,0DAA0D;;EAK7D;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,CAAC,eAAe,GAAG,KAAK,IAAI,UAAU,CAC7D,OAAO,mBAAmB,CAAC,eAAe,CAAC,CAC5C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
@@ -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
- export function createFeedbackHooks(api, options = {}) {
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
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
- }, "required", "actorId" | "kind" | "status" | "title" | "body" | "upvoteCount" | "commentCount" | "updatedAt" | "normalizedTitle" | "searchText">, {
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"];
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAC3B,wBAA6C"}
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.2",
3
+ "version": "0.1.4",
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
  "type": "module",
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
  /**
@@ -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
- { entryId: string; viewerActorId?: string },
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"