convex-feedback 0.1.4 → 0.2.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/README.md +87 -27
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/client/api.d.ts +80 -1
  4. package/dist/client/api.d.ts.map +1 -1
  5. package/dist/client/config.d.ts +1 -1
  6. package/dist/client/index.d.ts +9 -5
  7. package/dist/client/index.d.ts.map +1 -1
  8. package/dist/client/index.js +261 -8
  9. package/dist/client/index.js.map +1 -1
  10. package/dist/component/_generated/api.d.ts +8 -0
  11. package/dist/component/_generated/api.d.ts.map +1 -1
  12. package/dist/component/_generated/api.js.map +1 -1
  13. package/dist/component/_generated/component.d.ts +295 -5
  14. package/dist/component/_generated/component.d.ts.map +1 -1
  15. package/dist/component/admin.d.ts +130 -0
  16. package/dist/component/admin.d.ts.map +1 -0
  17. package/dist/component/admin.js +125 -0
  18. package/dist/component/admin.js.map +1 -0
  19. package/dist/component/comments.d.ts +7 -5
  20. package/dist/component/comments.d.ts.map +1 -1
  21. package/dist/component/comments.js +4 -3
  22. package/dist/component/comments.js.map +1 -1
  23. package/dist/component/crons.d.ts +3 -0
  24. package/dist/component/crons.d.ts.map +1 -0
  25. package/dist/component/crons.js +8 -0
  26. package/dist/component/crons.js.map +1 -0
  27. package/dist/component/entries.d.ts +29 -16
  28. package/dist/component/entries.d.ts.map +1 -1
  29. package/dist/component/entries.js +136 -12
  30. package/dist/component/entries.js.map +1 -1
  31. package/dist/component/helpers.d.ts +3 -1
  32. package/dist/component/helpers.d.ts.map +1 -1
  33. package/dist/component/helpers.js +28 -0
  34. package/dist/component/helpers.js.map +1 -1
  35. package/dist/component/migrations.d.ts +11 -0
  36. package/dist/component/migrations.d.ts.map +1 -0
  37. package/dist/component/migrations.js +35 -0
  38. package/dist/component/migrations.js.map +1 -0
  39. package/dist/component/model.d.ts +144 -24
  40. package/dist/component/model.d.ts.map +1 -1
  41. package/dist/component/model.js +34 -1
  42. package/dist/component/model.js.map +1 -1
  43. package/dist/component/roadmap.d.ts +166 -0
  44. package/dist/component/roadmap.d.ts.map +1 -0
  45. package/dist/component/roadmap.js +534 -0
  46. package/dist/component/roadmap.js.map +1 -0
  47. package/dist/component/schema.d.ts +67 -5
  48. package/dist/component/schema.d.ts.map +1 -1
  49. package/dist/component/schema.js +57 -2
  50. package/dist/component/schema.js.map +1 -1
  51. package/dist/component/tags.d.ts +58 -0
  52. package/dist/component/tags.d.ts.map +1 -0
  53. package/dist/component/tags.js +216 -0
  54. package/dist/component/tags.js.map +1 -0
  55. package/dist/react/index.d.ts +173 -12
  56. package/dist/react/index.d.ts.map +1 -1
  57. package/dist/react/index.js +78 -1
  58. package/dist/react/index.js.map +1 -1
  59. package/dist/test.d.ts +67 -5
  60. package/dist/test.d.ts.map +1 -1
  61. package/package.json +6 -2
  62. package/src/client/README.md +1 -1
  63. package/src/client/api.ts +183 -0
  64. package/src/client/config.ts +1 -1
  65. package/src/client/index.ts +340 -13
  66. package/src/component/README.md +3 -1
  67. package/src/component/_generated/api.ts +8 -0
  68. package/src/component/_generated/component.ts +373 -9
  69. package/src/component/admin.ts +180 -0
  70. package/src/component/comments.ts +5 -2
  71. package/src/component/crons.ts +16 -0
  72. package/src/component/entries.ts +175 -11
  73. package/src/component/helpers.ts +44 -1
  74. package/src/component/migrations.ts +44 -0
  75. package/src/component/model.ts +79 -4
  76. package/src/component/roadmap.ts +627 -0
  77. package/src/component/schema.ts +61 -1
  78. package/src/react/README.md +2 -2
  79. package/src/react/index.ts +152 -4
@@ -0,0 +1,130 @@
1
+ export declare const getEntry: import("convex/server").RegisteredQuery<"public", {
2
+ entryId: import("convex/values").GenericId<"entries">;
3
+ viewerActorId: string;
4
+ }, Promise<{
5
+ updatedAt?: number | undefined;
6
+ metadata?: {
7
+ standard?: Record<string, string | number | boolean> | undefined;
8
+ additional?: Record<string, string | number | boolean> | undefined;
9
+ } | undefined;
10
+ id: string;
11
+ creationTime: number;
12
+ title: string;
13
+ status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
14
+ actorId: string;
15
+ kind: "feedback" | "feature_request" | "bug_report";
16
+ body: string;
17
+ upvoteCount: number;
18
+ commentCount: number;
19
+ viewerHasUpvoted: boolean;
20
+ priority?: "low" | "medium" | "high" | undefined;
21
+ roadmap?: {
22
+ description?: string | undefined;
23
+ id: string;
24
+ creationTime: number;
25
+ title: string;
26
+ status: "planned" | "in_progress" | "shipped";
27
+ position: number;
28
+ createdAt: number;
29
+ updatedAt: number;
30
+ feedbackCount: number;
31
+ } | undefined;
32
+ } | null>>;
33
+ export declare const listEntries: import("convex/server").RegisteredQuery<"public", {
34
+ status?: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed" | undefined;
35
+ priority?: "low" | "medium" | "high" | undefined;
36
+ kinds?: ("feedback" | "feature_request" | "bug_report")[] | undefined;
37
+ paginationOpts: {
38
+ id?: number;
39
+ endCursor?: string | null;
40
+ maximumRowsRead?: number;
41
+ maximumBytesRead?: number;
42
+ numItems: number;
43
+ cursor: string | null;
44
+ };
45
+ viewerActorId: string;
46
+ }, Promise<{
47
+ page: {
48
+ updatedAt?: number | undefined;
49
+ metadata?: {
50
+ standard?: Record<string, string | number | boolean> | undefined;
51
+ additional?: Record<string, string | number | boolean> | undefined;
52
+ } | undefined;
53
+ id: string;
54
+ creationTime: number;
55
+ title: string;
56
+ status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
57
+ actorId: string;
58
+ kind: "feedback" | "feature_request" | "bug_report";
59
+ body: string;
60
+ upvoteCount: number;
61
+ commentCount: number;
62
+ viewerHasUpvoted: boolean;
63
+ priority?: "low" | "medium" | "high" | undefined;
64
+ roadmap?: {
65
+ description?: string | undefined;
66
+ id: string;
67
+ creationTime: number;
68
+ title: string;
69
+ status: "planned" | "in_progress" | "shipped";
70
+ position: number;
71
+ createdAt: number;
72
+ updatedAt: number;
73
+ feedbackCount: number;
74
+ } | undefined;
75
+ }[];
76
+ isDone: boolean;
77
+ continueCursor: import("convex/server").Cursor;
78
+ splitCursor?: import("convex/server").Cursor | null;
79
+ pageStatus?: "SplitRecommended" | "SplitRequired" | null;
80
+ }>>;
81
+ export declare const searchEntries: import("convex/server").RegisteredQuery<"public", {
82
+ status?: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed" | undefined;
83
+ priority?: "low" | "medium" | "high" | undefined;
84
+ kinds?: ("feedback" | "feature_request" | "bug_report")[] | undefined;
85
+ paginationOpts: {
86
+ id?: number;
87
+ endCursor?: string | null;
88
+ maximumRowsRead?: number;
89
+ maximumBytesRead?: number;
90
+ numItems: number;
91
+ cursor: string | null;
92
+ };
93
+ searchQuery: string;
94
+ viewerActorId: string;
95
+ }, Promise<{
96
+ page: {
97
+ updatedAt?: number | undefined;
98
+ metadata?: {
99
+ standard?: Record<string, string | number | boolean> | undefined;
100
+ additional?: Record<string, string | number | boolean> | undefined;
101
+ } | undefined;
102
+ id: string;
103
+ creationTime: number;
104
+ title: string;
105
+ status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
106
+ actorId: string;
107
+ kind: "feedback" | "feature_request" | "bug_report";
108
+ body: string;
109
+ upvoteCount: number;
110
+ commentCount: number;
111
+ viewerHasUpvoted: boolean;
112
+ priority?: "low" | "medium" | "high" | undefined;
113
+ roadmap?: {
114
+ description?: string | undefined;
115
+ id: string;
116
+ creationTime: number;
117
+ title: string;
118
+ status: "planned" | "in_progress" | "shipped";
119
+ position: number;
120
+ createdAt: number;
121
+ updatedAt: number;
122
+ feedbackCount: number;
123
+ } | undefined;
124
+ }[];
125
+ isDone: boolean;
126
+ continueCursor: import("convex/server").Cursor;
127
+ splitCursor?: import("convex/server").Cursor | null;
128
+ pageStatus?: "SplitRecommended" | "SplitRequired" | null;
129
+ }>>;
130
+ //# sourceMappingURL=admin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/component/admin.ts"],"names":[],"mappings":"AA2CA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UASnB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDtB,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0ExB,CAAC"}
@@ -0,0 +1,125 @@
1
+ import { paginationOptsValidator, paginationResultValidator, } from "convex/server";
2
+ import { ConvexError, v } from "convex/values";
3
+ import { stream } from "convex-helpers/server/stream";
4
+ import { query } from "./_generated/server.js";
5
+ import { serializeAdminEntry } from "./helpers.js";
6
+ import { adminEntryValidator, entryKindValidator, entryPriorityValidator, entryStatusValidator, } from "./model.js";
7
+ import schema from "./schema.js";
8
+ function matchesFilters(entry, kinds, status, priority) {
9
+ return ((kinds === undefined || kinds.includes(entry.kind)) &&
10
+ (status === undefined || entry.status === status) &&
11
+ (priority === undefined || entry.priority === priority));
12
+ }
13
+ function matchesSearch(entry, searchQuery) {
14
+ const haystack = entry.searchText.toLocaleLowerCase("en-US");
15
+ const terms = searchQuery
16
+ .toLocaleLowerCase("en-US")
17
+ .split(/\s+/)
18
+ .filter((term) => term.length > 0);
19
+ return terms.every((term) => haystack.includes(term));
20
+ }
21
+ export const getEntry = query({
22
+ args: { entryId: v.id("entries"), viewerActorId: v.string() },
23
+ returns: v.union(adminEntryValidator, v.null()),
24
+ handler: async (ctx, args) => {
25
+ const entry = await ctx.db.get("entries", args.entryId);
26
+ return entry === null
27
+ ? null
28
+ : await serializeAdminEntry(ctx, entry, args.viewerActorId);
29
+ },
30
+ });
31
+ export const listEntries = query({
32
+ args: {
33
+ kinds: v.optional(v.array(entryKindValidator)),
34
+ status: v.optional(entryStatusValidator),
35
+ priority: v.optional(entryPriorityValidator),
36
+ paginationOpts: paginationOptsValidator,
37
+ viewerActorId: v.string(),
38
+ },
39
+ returns: paginationResultValidator(adminEntryValidator),
40
+ handler: async (ctx, args) => {
41
+ const kinds = args.kinds === undefined ? undefined : [...new Set(args.kinds)];
42
+ if (kinds?.length === 0) {
43
+ throw new ConvexError("`kinds` must contain at least one kind.");
44
+ }
45
+ const entriesStream = args.priority !== undefined
46
+ ? stream(ctx.db, schema)
47
+ .query("entries")
48
+ .withIndex("by_priority", (q) => q.eq("priority", args.priority))
49
+ : args.status !== undefined
50
+ ? stream(ctx.db, schema)
51
+ .query("entries")
52
+ .withIndex("by_status", (q) => q.eq("status", args.status))
53
+ : kinds?.length === 1
54
+ ? stream(ctx.db, schema)
55
+ .query("entries")
56
+ .withIndex("by_kind", (q) => q.eq("kind", kinds[0]))
57
+ : stream(ctx.db, schema).query("entries");
58
+ const result = await entriesStream
59
+ .order("desc")
60
+ .filterWith((entry) => Promise.resolve(matchesFilters(entry, kinds, args.status, args.priority)))
61
+ .paginate(args.paginationOpts);
62
+ return {
63
+ ...result,
64
+ page: await Promise.all(result.page.map((entry) => serializeAdminEntry(ctx, entry, args.viewerActorId))),
65
+ };
66
+ },
67
+ });
68
+ export const searchEntries = query({
69
+ args: {
70
+ searchQuery: v.string(),
71
+ kinds: v.optional(v.array(entryKindValidator)),
72
+ status: v.optional(entryStatusValidator),
73
+ priority: v.optional(entryPriorityValidator),
74
+ paginationOpts: paginationOptsValidator,
75
+ viewerActorId: v.string(),
76
+ },
77
+ returns: paginationResultValidator(adminEntryValidator),
78
+ handler: async (ctx, args) => {
79
+ const searchQuery = args.searchQuery.trim();
80
+ if (searchQuery.length === 0) {
81
+ return { page: [], isDone: true, continueCursor: "" };
82
+ }
83
+ const kinds = args.kinds === undefined ? undefined : [...new Set(args.kinds)];
84
+ if (kinds?.length === 0) {
85
+ throw new ConvexError("`kinds` must contain at least one kind.");
86
+ }
87
+ const canUseSearchIndex = kinds === undefined || kinds.length === 1;
88
+ const result = canUseSearchIndex
89
+ ? await ctx.db
90
+ .query("entries")
91
+ .withSearchIndex("search", (q) => {
92
+ const searched = q.search("searchText", searchQuery);
93
+ const withKind = kinds?.length === 1 ? searched.eq("kind", kinds[0]) : searched;
94
+ const withStatus = args.status === undefined
95
+ ? withKind
96
+ : withKind.eq("status", args.status);
97
+ return args.priority === undefined
98
+ ? withStatus
99
+ : withStatus.eq("priority", args.priority);
100
+ })
101
+ .paginate(args.paginationOpts)
102
+ : await (args.priority !== undefined
103
+ ? stream(ctx.db, schema)
104
+ .query("entries")
105
+ .withIndex("by_priority", (q) => q.eq("priority", args.priority))
106
+ : args.status !== undefined
107
+ ? stream(ctx.db, schema)
108
+ .query("entries")
109
+ .withIndex("by_status", (q) => q.eq("status", args.status))
110
+ : kinds?.length === 1
111
+ ? stream(ctx.db, schema)
112
+ .query("entries")
113
+ .withIndex("by_kind", (q) => q.eq("kind", kinds[0]))
114
+ : stream(ctx.db, schema).query("entries"))
115
+ .order("desc")
116
+ .filterWith((entry) => Promise.resolve(matchesFilters(entry, kinds, args.status, args.priority) &&
117
+ matchesSearch(entry, searchQuery)))
118
+ .paginate(args.paginationOpts);
119
+ return {
120
+ ...result,
121
+ page: await Promise.all(result.page.map((entry) => serializeAdminEntry(ctx, entry, args.viewerActorId))),
122
+ };
123
+ },
124
+ });
125
+ //# sourceMappingURL=admin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/component/admin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAGtD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,GAIrB,MAAM,YAAY,CAAC;AACpB,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,SAAS,cAAc,CACrB,KAAqB,EACrB,KAA8B,EAC9B,MAA+B,EAC/B,QAAmC;IAEnC,OAAO,CACL,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC;QACjD,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CACxD,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAqB,EAAE,WAAmB;IAC/D,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,WAAW;SACtB,iBAAiB,CAAC,OAAO,CAAC;SAC1B,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC;IAC5B,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;IAC7D,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,OAAO,KAAK,KAAK,IAAI;YACnB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,MAAM,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAChE,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC;IAC/B,IAAI,EAAE;QACJ,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC9C,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACxC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAC5C,cAAc,EAAE,uBAAuB;QACvC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;KAC1B;IACD,OAAO,EAAE,yBAAyB,CAAC,mBAAmB,CAAC;IACvD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,KAAK,GACT,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,IAAI,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,WAAW,CAAC,yCAAyC,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,aAAa,GACjB,IAAI,CAAC,QAAQ,KAAK,SAAS;YACzB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC;iBACnB,KAAK,CAAC,SAAS,CAAC;iBAChB,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrE,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS;gBACzB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC;qBACnB,KAAK,CAAC,SAAS,CAAC;qBAChB,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAO,CAAC,CAAC;gBAChE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC;oBACnB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC;yBACnB,KAAK,CAAC,SAAS,CAAC;yBAChB,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;oBACzD,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAElD,MAAM,MAAM,GAAG,MAAM,aAAa;aAC/B,KAAK,CAAC,MAAM,CAAC;aACb,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE,CACpB,OAAO,CAAC,OAAO,CACb,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CACzD,CACF;aACA,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEjC,OAAO;YACL,GAAG,MAAM;YACT,IAAI,EAAE,MAAM,OAAO,CAAC,GAAG,CACrB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CACpD,CACF;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC;IACjC,IAAI,EAAE;QACJ,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;QACvB,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC9C,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACxC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAC5C,cAAc,EAAE,uBAAuB;QACvC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;KAC1B;IACD,OAAO,EAAE,yBAAyB,CAAC,mBAAmB,CAAC;IACvD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;QACxD,CAAC;QACD,MAAM,KAAK,GACT,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,IAAI,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,WAAW,CAAC,yCAAyC,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,iBAAiB,GAAG,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;QAEpE,MAAM,MAAM,GAAG,iBAAiB;YAC9B,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;iBACT,KAAK,CAAC,SAAS,CAAC;iBAChB,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gBAC/B,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;gBACrD,MAAM,QAAQ,GACZ,KAAK,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAClE,MAAM,UAAU,GACd,IAAI,CAAC,MAAM,KAAK,SAAS;oBACvB,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzC,OAAO,IAAI,CAAC,QAAQ,KAAK,SAAS;oBAChC,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/C,CAAC,CAAC;iBACD,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC;YAClC,CAAC,CAAC,MAAM,CACJ,IAAI,CAAC,QAAQ,KAAK,SAAS;gBACzB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC;qBACnB,KAAK,CAAC,SAAS,CAAC;qBAChB,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAC9B,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAChC;gBACL,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS;oBACzB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC;yBACnB,KAAK,CAAC,SAAS,CAAC;yBAChB,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAO,CAAC,CAAC;oBAChE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC;wBACnB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC;6BACnB,KAAK,CAAC,SAAS,CAAC;6BAChB,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;wBACzD,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAChD;iBACE,KAAK,CAAC,MAAM,CAAC;iBACb,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE,CACpB,OAAO,CAAC,OAAO,CACb,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC;gBACtD,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,CACpC,CACF;iBACA,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAErC,OAAO;YACL,GAAG,MAAM;YACT,IAAI,EAAE,MAAM,OAAO,CAAC,GAAG,CACrB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CACpD,CACF;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -36,26 +36,28 @@ export declare const create: import("convex/server").RegisteredMutation<"public"
36
36
  actorId: string;
37
37
  body: string;
38
38
  entryId: import("convex/values").GenericId<"entries">;
39
- maxCommentLength: number;
40
39
  maxDepth: number;
40
+ maxCommentLength: number;
41
41
  }, Promise<import("convex/values").GenericId<"comments">>>;
42
42
  export declare const update: import("convex/server").RegisteredMutation<"public", {
43
43
  body: string;
44
44
  commentId: import("convex/values").GenericId<"comments">;
45
+ editableByAuthor: boolean;
45
46
  maxCommentLength: number;
46
47
  actor: {
48
+ isAdmin?: boolean | undefined;
49
+ isModerator?: boolean | undefined;
47
50
  id: string;
48
- isModerator: boolean;
49
51
  };
50
- editableByAuthor: boolean;
51
52
  }, Promise<null>>;
52
53
  export declare const remove: import("convex/server").RegisteredMutation<"public", {
53
54
  commentId: import("convex/values").GenericId<"comments">;
55
+ deletableByAuthor: boolean;
54
56
  actor: {
57
+ isAdmin?: boolean | undefined;
58
+ isModerator?: boolean | undefined;
55
59
  id: string;
56
- isModerator: boolean;
57
60
  };
58
- deletableByAuthor: boolean;
59
61
  }, Promise<null>>;
60
62
  export declare const setLike: import("convex/server").RegisteredMutation<"public", {
61
63
  actorId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../src/component/comments.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDf,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;;0DAiEjB,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;;;;iBAiCjB,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;;iBAuBjB,CAAC;AAEH,eAAO,MAAM,OAAO;;;;;;;GAyClB,CAAC"}
1
+ {"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../src/component/comments.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDf,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;;0DAkEjB,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;iBAiCjB,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;;;iBAuBjB,CAAC;AAEH,eAAO,MAAM,OAAO;;;;;;;GAyClB,CAAC"}
@@ -3,7 +3,7 @@ import { paginationOptsValidator, paginationResultValidator, } from "convex/serv
3
3
  import { ConvexError, v } from "convex/values";
4
4
  import { mutation, query } from "./_generated/server.js";
5
5
  import { assertActorId, assertPositiveInteger, normalizeRequiredText, serializeComment, } from "./helpers.js";
6
- import { actorValidator, commentSortValidator, publicCommentValidator, } from "./model.js";
6
+ import { actorValidator, actorIsAdmin, commentSortValidator, entryStatusFilterForStatus, publicCommentValidator, } from "./model.js";
7
7
  import schema from "./schema.js";
8
8
  export const list = query({
9
9
  args: {
@@ -85,6 +85,7 @@ export const create = mutation({
85
85
  });
86
86
  await ctx.db.patch("entries", args.entryId, {
87
87
  commentCount: entry.commentCount + 1,
88
+ statusFilter: entryStatusFilterForStatus(entry.status),
88
89
  });
89
90
  if (args.parentCommentId !== undefined) {
90
91
  const parent = await ctx.db.get("comments", args.parentCommentId);
@@ -114,7 +115,7 @@ export const update = mutation({
114
115
  if (comment.deletedAt !== undefined) {
115
116
  throw new ConvexError("Deleted comments cannot be edited.");
116
117
  }
117
- const canEdit = args.actor.isModerator ||
118
+ const canEdit = actorIsAdmin(args.actor) ||
118
119
  (args.editableByAuthor && comment.actorId === args.actor.id);
119
120
  if (!canEdit)
120
121
  throw new ConvexError("Not authorized to edit this comment.");
@@ -140,7 +141,7 @@ export const remove = mutation({
140
141
  throw new ConvexError("Comment not found.");
141
142
  if (comment.deletedAt !== undefined)
142
143
  return null;
143
- const canDelete = args.actor.isModerator ||
144
+ const canDelete = actorIsAdmin(args.actor) ||
144
145
  (args.deletableByAuthor && comment.actorId === args.actor.id);
145
146
  if (!canDelete) {
146
147
  throw new ConvexError("Not authorized to delete this comment.");
@@ -1 +1 @@
1
- {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/component/comments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/component/comments.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ declare const crons: import("convex/server").Crons;
2
+ export default crons;
3
+ //# sourceMappingURL=crons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crons.d.ts","sourceRoot":"","sources":["../../src/component/crons.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,KAAK,+BAAa,CAAC;AAWzB,eAAe,KAAK,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { cronJobs } from "convex/server";
2
+ import { internal } from "./_generated/api.js";
3
+ const crons = cronJobs();
4
+ // Interval jobs run as soon as they are first deployed. The 30-day repeat is a
5
+ // temporary, low-frequency self-healing safeguard for missed legacy records.
6
+ crons.interval("self-heal entry status filters", { hours: 24 * 30 }, internal.migrations.backfillStatusFilter, {});
7
+ export default crons;
8
+ //# sourceMappingURL=crons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crons.js","sourceRoot":"","sources":["../../src/component/crons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;AAEzB,+EAA+E;AAC/E,6EAA6E;AAC7E,KAAK,CAAC,QAAQ,CACZ,gCAAgC,EAChC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAClB,QAAQ,CAAC,UAAU,CAAC,oBAAoB,EACxC,EAAE,CACH,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export declare const list: import("convex/server").RegisteredQuery<"public", {
2
2
  status?: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed" | undefined;
3
+ statusFilter?: "open" | "closed" | undefined;
3
4
  kinds?: ("feedback" | "feature_request" | "bug_report")[] | undefined;
4
5
  viewerActorId?: string | undefined;
5
6
  sort: "top" | "newest";
@@ -20,10 +21,10 @@ export declare const list: import("convex/server").RegisteredQuery<"public", {
20
21
  } | undefined;
21
22
  id: string;
22
23
  creationTime: number;
24
+ title: string;
25
+ status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
23
26
  actorId: string;
24
27
  kind: "feedback" | "feature_request" | "bug_report";
25
- status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
26
- title: string;
27
28
  body: string;
28
29
  upvoteCount: number;
29
30
  commentCount: number;
@@ -36,7 +37,7 @@ export declare const list: import("convex/server").RegisteredQuery<"public", {
36
37
  }>>;
37
38
  export declare const get: import("convex/server").RegisteredQuery<"public", {
38
39
  viewerActorId?: string | undefined;
39
- viewerIsModerator?: boolean | undefined;
40
+ viewerIsAdmin?: boolean | undefined;
40
41
  entryId: import("convex/values").GenericId<"entries">;
41
42
  }, Promise<{
42
43
  updatedAt?: number | undefined;
@@ -46,10 +47,10 @@ export declare const get: import("convex/server").RegisteredQuery<"public", {
46
47
  } | undefined;
47
48
  id: string;
48
49
  creationTime: number;
50
+ title: string;
51
+ status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
49
52
  actorId: string;
50
53
  kind: "feedback" | "feature_request" | "bug_report";
51
- status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
52
- title: string;
53
54
  body: string;
54
55
  upvoteCount: number;
55
56
  commentCount: number;
@@ -57,6 +58,7 @@ export declare const get: import("convex/server").RegisteredQuery<"public", {
57
58
  } | null>>;
58
59
  export declare const search: import("convex/server").RegisteredQuery<"public", {
59
60
  status?: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed" | undefined;
61
+ statusFilter?: "open" | "closed" | undefined;
60
62
  kinds?: ("feedback" | "feature_request" | "bug_report")[] | undefined;
61
63
  viewerActorId?: string | undefined;
62
64
  searchQuery: string;
@@ -69,10 +71,10 @@ export declare const search: import("convex/server").RegisteredQuery<"public", {
69
71
  } | undefined;
70
72
  id: string;
71
73
  creationTime: number;
74
+ title: string;
75
+ status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
72
76
  actorId: string;
73
77
  kind: "feedback" | "feature_request" | "bug_report";
74
- status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
75
- title: string;
76
78
  body: string;
77
79
  upvoteCount: number;
78
80
  commentCount: number;
@@ -93,10 +95,10 @@ export declare const similar: import("convex/server").RegisteredQuery<"public",
93
95
  } | undefined;
94
96
  id: string;
95
97
  creationTime: number;
98
+ title: string;
99
+ status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
96
100
  actorId: string;
97
101
  kind: "feedback" | "feature_request" | "bug_report";
98
- status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
99
- title: string;
100
102
  body: string;
101
103
  upvoteCount: number;
102
104
  commentCount: number;
@@ -110,10 +112,10 @@ export declare const similar: import("convex/server").RegisteredQuery<"public",
110
112
  } | undefined;
111
113
  id: string;
112
114
  creationTime: number;
115
+ title: string;
116
+ status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
113
117
  actorId: string;
114
118
  kind: "feedback" | "feature_request" | "bug_report";
115
- status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
116
- title: string;
117
119
  body: string;
118
120
  upvoteCount: number;
119
121
  commentCount: number;
@@ -125,12 +127,12 @@ export declare const create: import("convex/server").RegisteredMutation<"public"
125
127
  standard?: Record<string, string | number | boolean> | undefined;
126
128
  additional?: Record<string, string | number | boolean> | undefined;
127
129
  } | undefined;
130
+ title: string;
128
131
  actorId: string;
129
132
  kind: "feedback" | "feature_request" | "bug_report";
130
- title: string;
131
133
  body: string;
132
- defaultStatus: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
133
134
  enabledKinds: ("feedback" | "feature_request" | "bug_report")[];
135
+ defaultStatus: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
134
136
  maxBodyLength: number;
135
137
  maxTitleLength: number;
136
138
  }, Promise<import("convex/values").GenericId<"entries">>>;
@@ -138,11 +140,12 @@ export declare const update: import("convex/server").RegisteredMutation<"public"
138
140
  title: string;
139
141
  body: string;
140
142
  entryId: import("convex/values").GenericId<"entries">;
143
+ editableByAuthor: boolean;
141
144
  actor: {
145
+ isAdmin?: boolean | undefined;
146
+ isModerator?: boolean | undefined;
142
147
  id: string;
143
- isModerator: boolean;
144
148
  };
145
- editableByAuthor: boolean;
146
149
  maxBodyLength: number;
147
150
  maxTitleLength: number;
148
151
  }, Promise<null>>;
@@ -150,8 +153,18 @@ export declare const setStatus: import("convex/server").RegisteredMutation<"publ
150
153
  status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
151
154
  entryId: import("convex/values").GenericId<"entries">;
152
155
  actor: {
156
+ isAdmin?: boolean | undefined;
157
+ isModerator?: boolean | undefined;
158
+ id: string;
159
+ };
160
+ }, Promise<null>>;
161
+ export declare const setPriority: import("convex/server").RegisteredMutation<"public", {
162
+ entryId: import("convex/values").GenericId<"entries">;
163
+ priority: "low" | "medium" | "high" | null;
164
+ actor: {
165
+ isAdmin?: boolean | undefined;
166
+ isModerator?: boolean | undefined;
153
167
  id: string;
154
- isModerator: boolean;
155
168
  };
156
169
  }, Promise<null>>;
157
170
  export declare const setUpvote: import("convex/server").RegisteredMutation<"public", {
@@ -1 +1 @@
1
- {"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../src/component/entries.ts"],"names":[],"mappings":"AA4DA,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0If,CAAC;AAEH,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;UAkBd,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;KAgGjB,CAAC;AAEH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwGlB,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;;;;yDA+CjB,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;;iBAqCjB,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;;;iBAoBpB,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;;;GAsCpB,CAAC"}
1
+ {"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../src/component/entries.ts"],"names":[],"mappings":"AAgEA,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkNf,CAAC;AAEH,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;UAkBd,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;KAyJjB,CAAC;AAEH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwGlB,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;;;;yDAgDjB,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;;;iBAsCjB,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;;;;iBAqBpB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;iBAoBtB,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;;;GA4CpB,CAAC"}