convex-feedback 0.1.0 → 0.1.2

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 (36) hide show
  1. package/README.md +351 -92
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/client/api.d.ts +267 -68
  4. package/dist/client/api.d.ts.map +1 -1
  5. package/dist/client/config.d.ts +168 -29
  6. package/dist/client/config.d.ts.map +1 -1
  7. package/dist/client/config.js.map +1 -1
  8. package/dist/client/index.d.ts +167 -172
  9. package/dist/client/index.d.ts.map +1 -1
  10. package/dist/client/index.js +75 -14
  11. package/dist/client/index.js.map +1 -1
  12. package/dist/component/_generated/component.d.ts +2 -2
  13. package/dist/component/_generated/component.d.ts.map +1 -1
  14. package/dist/component/comments.d.ts +12 -12
  15. package/dist/component/comments.d.ts.map +1 -1
  16. package/dist/component/comments.js +43 -60
  17. package/dist/component/comments.js.map +1 -1
  18. package/dist/component/entries.d.ts +30 -30
  19. package/dist/component/entries.d.ts.map +1 -1
  20. package/dist/component/entries.js +216 -97
  21. package/dist/component/entries.js.map +1 -1
  22. package/dist/component/model.d.ts +151 -0
  23. package/dist/component/model.d.ts.map +1 -1
  24. package/dist/react/index.d.ts +178 -56
  25. package/dist/react/index.d.ts.map +1 -1
  26. package/dist/react/index.js +70 -4
  27. package/dist/react/index.js.map +1 -1
  28. package/package.json +1 -1
  29. package/src/client/api.ts +326 -36
  30. package/src/client/config.ts +191 -29
  31. package/src/client/index.ts +437 -16
  32. package/src/component/_generated/component.ts +2 -2
  33. package/src/component/comments.ts +43 -61
  34. package/src/component/entries.ts +300 -123
  35. package/src/component/model.ts +158 -0
  36. package/src/react/index.ts +217 -9
@@ -1,14 +1,35 @@
1
1
  import { paginator } from "convex-helpers/server/pagination";
2
2
  import { paginationOptsValidator, paginationResultValidator, } from "convex/server";
3
3
  import { ConvexError, v } from "convex/values";
4
+ import { mergedStream, stream } from "convex-helpers/server/stream";
4
5
  import { mutation, query } from "./_generated/server.js";
5
6
  import { assertActorId, normalizeRequiredText, normalizeTitle, serializeEntry, } from "./helpers.js";
6
7
  import { actorValidator, entryKindValidator, entrySortValidator, entryStatusValidator, publicEntryValidator, similarEntriesValidator, } from "./model.js";
7
8
  import schema from "./schema.js";
9
+ const allEntryKinds = [
10
+ "feedback",
11
+ "feature_request",
12
+ "bug_report",
13
+ ];
14
+ function normalizeKindFilter(kinds) {
15
+ if (kinds === undefined) {
16
+ return undefined;
17
+ }
18
+ const uniqueKinds = [...new Set(kinds)];
19
+ if (uniqueKinds.length === 0) {
20
+ throw new ConvexError("`kinds` must contain at least one entry kind when provided.");
21
+ }
22
+ // All known kinds is equivalent to no kind filter and lets us use the
23
+ // simpler global indexes.
24
+ if (uniqueKinds.length === allEntryKinds.length) {
25
+ return undefined;
26
+ }
27
+ return uniqueKinds;
28
+ }
8
29
  export const list = query({
9
30
  args: {
10
31
  paginationOpts: paginationOptsValidator,
11
- kind: v.optional(entryKindValidator),
32
+ kinds: v.optional(v.array(entryKindValidator)),
12
33
  status: v.optional(entryStatusValidator),
13
34
  sort: entrySortValidator,
14
35
  viewerActorId: v.optional(v.string()),
@@ -16,53 +37,100 @@ export const list = query({
16
37
  returns: paginationResultValidator(publicEntryValidator),
17
38
  handler: async (ctx, args) => {
18
39
  const db = paginator(ctx.db, schema);
19
- const { kind, status } = args;
20
- const result = args.sort === "top"
21
- ? kind !== undefined && status !== undefined
22
- ? await db
23
- .query("entries")
24
- .withIndex("by_kind_status_upvotes", (q) => q.eq("kind", kind).eq("status", status))
25
- .order("desc")
26
- .paginate(args.paginationOpts)
27
- : kind !== undefined
28
- ? await db
29
- .query("entries")
30
- .withIndex("by_kind_upvotes", (q) => q.eq("kind", kind))
31
- .order("desc")
32
- .paginate(args.paginationOpts)
33
- : status !== undefined
40
+ const kinds = normalizeKindFilter(args.kinds);
41
+ const { status } = args;
42
+ let result;
43
+ if (kinds === undefined) {
44
+ result =
45
+ args.sort === "top"
46
+ ? status === undefined
34
47
  ? await db
35
48
  .query("entries")
36
- .withIndex("by_status_upvotes", (q) => q.eq("status", status))
49
+ .withIndex("by_upvotes")
37
50
  .order("desc")
38
51
  .paginate(args.paginationOpts)
39
52
  : await db
40
53
  .query("entries")
41
- .withIndex("by_upvotes")
54
+ .withIndex("by_status_upvotes", (q) => q.eq("status", status))
42
55
  .order("desc")
43
56
  .paginate(args.paginationOpts)
44
- : kind !== undefined && status !== undefined
45
- ? await db
46
- .query("entries")
47
- .withIndex("by_kind_status", (q) => q.eq("kind", kind).eq("status", status))
48
- .order("desc")
49
- .paginate(args.paginationOpts)
50
- : kind !== undefined
51
- ? await db
52
- .query("entries")
53
- .withIndex("by_kind", (q) => q.eq("kind", kind))
54
- .order("desc")
55
- .paginate(args.paginationOpts)
56
- : status !== undefined
57
+ : status === undefined
57
58
  ? await db
59
+ .query("entries")
60
+ .order("desc")
61
+ .paginate(args.paginationOpts)
62
+ : await db
58
63
  .query("entries")
59
64
  .withIndex("by_status", (q) => q.eq("status", status))
60
65
  .order("desc")
66
+ .paginate(args.paginationOpts);
67
+ }
68
+ else if (kinds.length === 1) {
69
+ const kind = kinds[0];
70
+ if (kind === undefined) {
71
+ throw new ConvexError("Invalid kind filter.");
72
+ }
73
+ result =
74
+ args.sort === "top"
75
+ ? status === undefined
76
+ ? await db
77
+ .query("entries")
78
+ .withIndex("by_kind_upvotes", (q) => q.eq("kind", kind))
79
+ .order("desc")
61
80
  .paginate(args.paginationOpts)
62
81
  : await db
63
82
  .query("entries")
83
+ .withIndex("by_kind_status_upvotes", (q) => q.eq("kind", kind).eq("status", status))
84
+ .order("desc")
85
+ .paginate(args.paginationOpts)
86
+ : status === undefined
87
+ ? await db
88
+ .query("entries")
89
+ .withIndex("by_kind", (q) => q.eq("kind", kind))
90
+ .order("desc")
91
+ .paginate(args.paginationOpts)
92
+ : await db
93
+ .query("entries")
94
+ .withIndex("by_kind_status", (q) => q.eq("kind", kind).eq("status", status))
64
95
  .order("desc")
65
96
  .paginate(args.paginationOpts);
97
+ }
98
+ else if (args.sort === "top") {
99
+ if (status === undefined) {
100
+ const streams = kinds.map((kind) => stream(ctx.db, schema)
101
+ .query("entries")
102
+ .withIndex("by_kind_upvotes", (q) => q.eq("kind", kind))
103
+ .order("desc"));
104
+ result = await mergedStream(streams, [
105
+ "upvoteCount",
106
+ "_creationTime",
107
+ ]).paginate(args.paginationOpts);
108
+ }
109
+ else {
110
+ const streams = kinds.map((kind) => stream(ctx.db, schema)
111
+ .query("entries")
112
+ .withIndex("by_kind_status_upvotes", (q) => q.eq("kind", kind).eq("status", status))
113
+ .order("desc"));
114
+ result = await mergedStream(streams, [
115
+ "upvoteCount",
116
+ "_creationTime",
117
+ ]).paginate(args.paginationOpts);
118
+ }
119
+ }
120
+ else if (status === undefined) {
121
+ const streams = kinds.map((kind) => stream(ctx.db, schema)
122
+ .query("entries")
123
+ .withIndex("by_kind", (q) => q.eq("kind", kind))
124
+ .order("desc"));
125
+ result = await mergedStream(streams, ["_creationTime"]).paginate(args.paginationOpts);
126
+ }
127
+ else {
128
+ const streams = kinds.map((kind) => stream(ctx.db, schema)
129
+ .query("entries")
130
+ .withIndex("by_kind_status", (q) => q.eq("kind", kind).eq("status", status))
131
+ .order("desc"));
132
+ result = await mergedStream(streams, ["_creationTime"]).paginate(args.paginationOpts);
133
+ }
66
134
  return {
67
135
  ...result,
68
136
  page: await Promise.all(result.page.map((entry) => serializeEntry(ctx, entry, args.viewerActorId))),
@@ -71,15 +139,12 @@ export const list = query({
71
139
  });
72
140
  export const get = query({
73
141
  args: {
74
- entryId: v.string(),
142
+ entryId: v.id("entries"),
75
143
  viewerActorId: v.optional(v.string()),
76
144
  },
77
145
  returns: v.union(publicEntryValidator, v.null()),
78
146
  handler: async (ctx, args) => {
79
- const entryId = ctx.db.normalizeId("entries", args.entryId);
80
- if (entryId === null)
81
- return null;
82
- const entry = await ctx.db.get("entries", entryId);
147
+ const entry = await ctx.db.get("entries", args.entryId);
83
148
  return entry === null
84
149
  ? null
85
150
  : serializeEntry(ctx, entry, args.viewerActorId);
@@ -88,7 +153,7 @@ export const get = query({
88
153
  export const search = query({
89
154
  args: {
90
155
  searchQuery: v.string(),
91
- kind: v.optional(entryKindValidator),
156
+ kinds: v.optional(v.array(entryKindValidator)),
92
157
  status: v.optional(entryStatusValidator),
93
158
  limit: v.number(),
94
159
  viewerActorId: v.optional(v.string()),
@@ -96,32 +161,62 @@ export const search = query({
96
161
  returns: v.array(publicEntryValidator),
97
162
  handler: async (ctx, args) => {
98
163
  const searchQuery = args.searchQuery.trim();
99
- if (searchQuery.length === 0 || args.limit <= 0)
164
+ if (searchQuery.length === 0 || args.limit <= 0) {
100
165
  return [];
101
- const { kind, status } = args;
102
- const entries = kind !== undefined && status !== undefined
103
- ? await ctx.db
104
- .query("entries")
105
- .withSearchIndex("search", (q) => q
106
- .search("searchText", searchQuery)
107
- .eq("kind", kind)
108
- .eq("status", status))
109
- .take(args.limit)
110
- : kind !== undefined
111
- ? await ctx.db
112
- .query("entries")
113
- .withSearchIndex("search", (q) => q.search("searchText", searchQuery).eq("kind", kind))
114
- .take(args.limit)
115
- : status !== undefined
166
+ }
167
+ const kinds = normalizeKindFilter(args.kinds);
168
+ const { status } = args;
169
+ let entries;
170
+ if (kinds === undefined) {
171
+ entries =
172
+ status === undefined
116
173
  ? await ctx.db
174
+ .query("entries")
175
+ .withSearchIndex("search", (q) => q.search("searchText", searchQuery))
176
+ .take(args.limit)
177
+ : await ctx.db
117
178
  .query("entries")
118
179
  .withSearchIndex("search", (q) => q.search("searchText", searchQuery).eq("status", status))
180
+ .take(args.limit);
181
+ }
182
+ else if (kinds.length === 1) {
183
+ const kind = kinds[0];
184
+ if (kind === undefined) {
185
+ throw new ConvexError("Invalid kind filter.");
186
+ }
187
+ entries =
188
+ status === undefined
189
+ ? await ctx.db
190
+ .query("entries")
191
+ .withSearchIndex("search", (q) => q.search("searchText", searchQuery).eq("kind", kind))
119
192
  .take(args.limit)
120
193
  : await ctx.db
121
194
  .query("entries")
122
- .withSearchIndex("search", (q) => q.search("searchText", searchQuery))
195
+ .withSearchIndex("search", (q) => q
196
+ .search("searchText", searchQuery)
197
+ .eq("kind", kind)
198
+ .eq("status", status))
123
199
  .take(args.limit);
124
- return Promise.all(entries.map((entry) => serializeEntry(ctx, entry, args.viewerActorId)));
200
+ }
201
+ else {
202
+ const firstKind = kinds[0];
203
+ const secondKind = kinds[1];
204
+ if (firstKind === undefined || secondKind === undefined) {
205
+ throw new ConvexError("Invalid kind filter.");
206
+ }
207
+ const searchResults = status === undefined
208
+ ? ctx.db
209
+ .query("entries")
210
+ .withSearchIndex("search", (q) => q.search("searchText", searchQuery))
211
+ : ctx.db
212
+ .query("entries")
213
+ .withSearchIndex("search", (q) => q.search("searchText", searchQuery).eq("status", status));
214
+ entries = await searchResults
215
+ // eslint-disable-next-line @convex-dev/no-filter-in-query
216
+ .filter((q) => q.or(q.eq(q.field("kind"), firstKind), q.eq(q.field("kind"), secondKind)))
217
+ .take(args.limit);
218
+ }
219
+ return await Promise.all(entries.map((entry) => serializeEntry(ctx, entry, args.viewerActorId)));
125
220
  },
126
221
  });
127
222
  export const similar = query({
@@ -134,15 +229,23 @@ export const similar = query({
134
229
  },
135
230
  returns: similarEntriesValidator,
136
231
  handler: async (ctx, args) => {
137
- if (args.limit <= 0)
138
- return { exact: [], similar: [] };
232
+ if (args.limit <= 0) {
233
+ return {
234
+ exact: [],
235
+ similar: [],
236
+ };
237
+ }
139
238
  const title = args.title.trim();
140
239
  const body = args.body.trim();
141
- const { kind } = args;
240
+ const kind = args.kind;
142
241
  if (title.length === 0 && body.length === 0) {
143
- return { exact: [], similar: [] };
242
+ return {
243
+ exact: [],
244
+ similar: [],
245
+ };
144
246
  }
145
247
  const normalizedTitle = normalizeTitle(title);
248
+ // Exact normalized-title matches always consume the available limit first.
146
249
  const exactDocs = title.length === 0
147
250
  ? []
148
251
  : kind === undefined
@@ -154,25 +257,40 @@ export const similar = query({
154
257
  .query("entries")
155
258
  .withIndex("by_kind_normalized_title", (q) => q.eq("kind", kind).eq("normalizedTitle", normalizedTitle))
156
259
  .take(args.limit);
157
- const exactIds = new Set(exactDocs.map((entry) => entry._id));
260
+ const exact = await Promise.all(exactDocs.map((entry) => serializeEntry(ctx, entry, args.viewerActorId)));
261
+ const remainingLimit = args.limit - exactDocs.length;
262
+ if (remainingLimit <= 0) {
263
+ return {
264
+ exact,
265
+ similar: [],
266
+ };
267
+ }
158
268
  const searchText = `${title}\n${body}`.trim();
159
- const similarDocs = searchText.length === 0
160
- ? []
161
- : kind === undefined
162
- ? await ctx.db
163
- .query("entries")
164
- .withSearchIndex("search", (q) => q.search("searchText", searchText))
165
- .take(args.limit + exactIds.size)
166
- : await ctx.db
167
- .query("entries")
168
- .withSearchIndex("search", (q) => q.search("searchText", searchText).eq("kind", kind))
169
- .take(args.limit + exactIds.size);
170
- const similarFiltered = similarDocs
269
+ if (searchText.length === 0) {
270
+ return {
271
+ exact,
272
+ similar: [],
273
+ };
274
+ }
275
+ const exactIds = new Set(exactDocs.map((entry) => entry._id));
276
+ // We fetch enough candidates to account for exact matches also appearing
277
+ // in the full-text search results. Those duplicates are removed below.
278
+ const candidateLimit = remainingLimit + exactIds.size;
279
+ const similarDocs = kind === undefined
280
+ ? await ctx.db
281
+ .query("entries")
282
+ .withSearchIndex("search", (q) => q.search("searchText", searchText))
283
+ .take(candidateLimit)
284
+ : await ctx.db
285
+ .query("entries")
286
+ .withSearchIndex("search", (q) => q.search("searchText", searchText).eq("kind", kind))
287
+ .take(candidateLimit);
288
+ const similarDocsWithoutExactMatches = similarDocs
171
289
  .filter((entry) => !exactIds.has(entry._id))
172
- .slice(0, args.limit);
290
+ .slice(0, remainingLimit);
173
291
  return {
174
- exact: await Promise.all(exactDocs.map((entry) => serializeEntry(ctx, entry, args.viewerActorId))),
175
- similar: await Promise.all(similarFiltered.map((entry) => serializeEntry(ctx, entry, args.viewerActorId))),
292
+ exact,
293
+ similar: await Promise.all(similarDocsWithoutExactMatches.map((entry) => serializeEntry(ctx, entry, args.viewerActorId))),
176
294
  };
177
295
  },
178
296
  });
@@ -187,7 +305,7 @@ export const create = mutation({
187
305
  maxTitleLength: v.number(),
188
306
  maxBodyLength: v.number(),
189
307
  },
190
- returns: v.string(),
308
+ returns: v.id("entries"),
191
309
  handler: async (ctx, args) => {
192
310
  assertActorId(args.actorId);
193
311
  if (!args.enabledKinds.includes(args.kind)) {
@@ -195,7 +313,7 @@ export const create = mutation({
195
313
  }
196
314
  const title = normalizeRequiredText(args.title, "Title", args.maxTitleLength);
197
315
  const body = normalizeRequiredText(args.body, "Body", args.maxBodyLength);
198
- return await ctx.db.insert("entries", {
316
+ const entry = await ctx.db.insert("entries", {
199
317
  actorId: args.actorId,
200
318
  kind: args.kind,
201
319
  status: args.defaultStatus,
@@ -203,15 +321,20 @@ export const create = mutation({
203
321
  body,
204
322
  normalizedTitle: normalizeTitle(title),
205
323
  searchText: `${title}\n${body}`,
206
- upvoteCount: 0,
324
+ upvoteCount: 1,
207
325
  commentCount: 0,
208
326
  });
327
+ await ctx.db.insert("reactions", {
328
+ actorId: args.actorId,
329
+ entryId: entry,
330
+ });
331
+ return entry;
209
332
  },
210
333
  });
211
334
  export const update = mutation({
212
335
  args: {
213
336
  actor: actorValidator,
214
- entryId: v.string(),
337
+ entryId: v.id("entries"),
215
338
  title: v.string(),
216
339
  body: v.string(),
217
340
  editableByAuthor: v.boolean(),
@@ -221,10 +344,7 @@ export const update = mutation({
221
344
  returns: v.null(),
222
345
  handler: async (ctx, args) => {
223
346
  assertActorId(args.actor.id);
224
- const entryId = ctx.db.normalizeId("entries", args.entryId);
225
- if (entryId === null)
226
- throw new ConvexError("Entry not found.");
227
- const entry = await ctx.db.get("entries", entryId);
347
+ const entry = await ctx.db.get("entries", args.entryId);
228
348
  if (entry === null)
229
349
  throw new ConvexError("Entry not found.");
230
350
  const canEdit = args.actor.isModerator ||
@@ -233,7 +353,7 @@ export const update = mutation({
233
353
  throw new ConvexError("Not authorized to edit this entry.");
234
354
  const title = normalizeRequiredText(args.title, "Title", args.maxTitleLength);
235
355
  const body = normalizeRequiredText(args.body, "Body", args.maxBodyLength);
236
- await ctx.db.patch("entries", entryId, {
356
+ await ctx.db.patch("entries", args.entryId, {
237
357
  title,
238
358
  body,
239
359
  normalizedTitle: normalizeTitle(title),
@@ -246,7 +366,7 @@ export const update = mutation({
246
366
  export const setStatus = mutation({
247
367
  args: {
248
368
  actor: actorValidator,
249
- entryId: v.string(),
369
+ entryId: v.id("entries"),
250
370
  status: entryStatusValidator,
251
371
  },
252
372
  returns: v.null(),
@@ -254,11 +374,10 @@ export const setStatus = mutation({
254
374
  if (!args.actor.isModerator) {
255
375
  throw new ConvexError("Moderator access is required to change status.");
256
376
  }
257
- const entryId = ctx.db.normalizeId("entries", args.entryId);
258
- if (entryId === null || (await ctx.db.get("entries", entryId)) === null) {
377
+ if ((await ctx.db.get("entries", args.entryId)) === null) {
259
378
  throw new ConvexError("Entry not found.");
260
379
  }
261
- await ctx.db.patch("entries", entryId, {
380
+ await ctx.db.patch("entries", args.entryId, {
262
381
  status: args.status,
263
382
  updatedAt: Date.now(),
264
383
  });
@@ -268,32 +387,32 @@ export const setStatus = mutation({
268
387
  export const setUpvote = mutation({
269
388
  args: {
270
389
  actorId: v.string(),
271
- entryId: v.string(),
390
+ entryId: v.id("entries"),
272
391
  desiredState: v.boolean(),
273
392
  },
274
393
  returns: v.object({ active: v.boolean(), upvoteCount: v.number() }),
275
394
  handler: async (ctx, args) => {
276
395
  assertActorId(args.actorId);
277
- const entryId = ctx.db.normalizeId("entries", args.entryId);
278
- if (entryId === null)
279
- throw new ConvexError("Entry not found.");
280
- const entry = await ctx.db.get("entries", entryId);
396
+ const entry = await ctx.db.get("entries", args.entryId);
281
397
  if (entry === null)
282
398
  throw new ConvexError("Entry not found.");
283
399
  const existing = await ctx.db
284
400
  .query("reactions")
285
- .withIndex("by_entry_actor", (q) => q.eq("entryId", entryId).eq("actorId", args.actorId))
401
+ .withIndex("by_entry_actor", (q) => q.eq("entryId", args.entryId).eq("actorId", args.actorId))
286
402
  .unique();
287
403
  if (args.desiredState && existing === null) {
288
- await ctx.db.insert("reactions", { actorId: args.actorId, entryId });
404
+ await ctx.db.insert("reactions", {
405
+ actorId: args.actorId,
406
+ entryId: args.entryId,
407
+ });
289
408
  const upvoteCount = entry.upvoteCount + 1;
290
- await ctx.db.patch("entries", entryId, { upvoteCount });
409
+ await ctx.db.patch("entries", args.entryId, { upvoteCount });
291
410
  return { active: true, upvoteCount };
292
411
  }
293
412
  if (!args.desiredState && existing !== null) {
294
413
  await ctx.db.delete("reactions", existing._id);
295
414
  const upvoteCount = Math.max(0, entry.upvoteCount - 1);
296
- await ctx.db.patch("entries", entryId, { upvoteCount });
415
+ await ctx.db.patch("entries", args.entryId, { upvoteCount });
297
416
  return { active: false, upvoteCount };
298
417
  }
299
418
  return { active: args.desiredState, upvoteCount: entry.upvoteCount };
@@ -1 +1 @@
1
- {"version":3,"file":"entries.js","sourceRoot":"","sources":["../../src/component/entries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entries.js","sourceRoot":"","sources":["../../src/component/entries.ts"],"names":[],"mappings":"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"}