convex-feedback 0.2.0-beta.8 → 0.2.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 (81) hide show
  1. package/README.md +398 -7
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/client/api.d.ts +49 -9
  4. package/dist/client/api.d.ts.map +1 -1
  5. package/dist/client/config.d.ts +1 -3
  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 +707 -15
  9. package/dist/client/index.d.ts.map +1 -1
  10. package/dist/client/index.js +243 -12
  11. package/dist/client/index.js.map +1 -1
  12. package/dist/component/_generated/api.d.ts +2 -0
  13. package/dist/component/_generated/api.d.ts.map +1 -1
  14. package/dist/component/_generated/api.js.map +1 -1
  15. package/dist/component/_generated/component.d.ts +222 -4
  16. package/dist/component/_generated/component.d.ts.map +1 -1
  17. package/dist/component/admin.d.ts +5 -90
  18. package/dist/component/admin.d.ts.map +1 -1
  19. package/dist/component/admin.js +59 -29
  20. package/dist/component/admin.js.map +1 -1
  21. package/dist/component/comments.d.ts +107 -15
  22. package/dist/component/comments.d.ts.map +1 -1
  23. package/dist/component/comments.js +342 -28
  24. package/dist/component/comments.js.map +1 -1
  25. package/dist/component/crons.d.ts.map +1 -1
  26. package/dist/component/crons.js +4 -0
  27. package/dist/component/crons.js.map +1 -1
  28. package/dist/component/entries.d.ts +119 -91
  29. package/dist/component/entries.d.ts.map +1 -1
  30. package/dist/component/entries.js +348 -29
  31. package/dist/component/entries.js.map +1 -1
  32. package/dist/component/helpers.d.ts +32 -1
  33. package/dist/component/helpers.d.ts.map +1 -1
  34. package/dist/component/helpers.js +121 -4
  35. package/dist/component/helpers.js.map +1 -1
  36. package/dist/component/migrations.d.ts +24 -0
  37. package/dist/component/migrations.d.ts.map +1 -1
  38. package/dist/component/migrations.js +318 -0
  39. package/dist/component/migrations.js.map +1 -1
  40. package/dist/component/model.d.ts +455 -120
  41. package/dist/component/model.d.ts.map +1 -1
  42. package/dist/component/model.js +70 -2
  43. package/dist/component/model.js.map +1 -1
  44. package/dist/component/reactions.d.ts +37 -0
  45. package/dist/component/reactions.d.ts.map +1 -0
  46. package/dist/component/reactions.js +52 -0
  47. package/dist/component/reactions.js.map +1 -0
  48. package/dist/component/roadmap.d.ts +10 -46
  49. package/dist/component/roadmap.d.ts.map +1 -1
  50. package/dist/component/roadmap.js +239 -21
  51. package/dist/component/roadmap.js.map +1 -1
  52. package/dist/component/schema.d.ts +33 -5
  53. package/dist/component/schema.d.ts.map +1 -1
  54. package/dist/component/schema.js +40 -4
  55. package/dist/component/schema.js.map +1 -1
  56. package/dist/react/index.d.ts +26 -238
  57. package/dist/react/index.d.ts.map +1 -1
  58. package/dist/react/index.js +65 -2
  59. package/dist/react/index.js.map +1 -1
  60. package/dist/test.d.ts +23 -5
  61. package/dist/test.d.ts.map +1 -1
  62. package/package.json +1 -1
  63. package/src/client/README.md +6 -1
  64. package/src/client/api.ts +89 -7
  65. package/src/client/config.ts +1 -3
  66. package/src/client/index.ts +1237 -34
  67. package/src/component/README.md +32 -4
  68. package/src/component/_generated/api.ts +2 -0
  69. package/src/component/_generated/component.ts +290 -8
  70. package/src/component/admin.ts +88 -30
  71. package/src/component/comments.ts +405 -26
  72. package/src/component/crons.ts +10 -0
  73. package/src/component/entries.ts +388 -27
  74. package/src/component/helpers.ts +163 -4
  75. package/src/component/migrations.ts +415 -0
  76. package/src/component/model.ts +381 -117
  77. package/src/component/reactions.ts +60 -0
  78. package/src/component/roadmap.ts +357 -35
  79. package/src/component/schema.ts +40 -4
  80. package/src/react/README.md +5 -0
  81. package/src/react/index.ts +90 -3
@@ -13,24 +13,34 @@ export declare const list: import("convex/server").RegisteredQuery<"public", {
13
13
  cursor: string | null;
14
14
  };
15
15
  }, Promise<{
16
- page: {
17
- updatedAt?: number | undefined;
18
- viewerIsAuthor?: boolean | undefined;
19
- metadata?: {
20
- standard?: Record<string, string | number | boolean> | undefined;
21
- additional?: Record<string, string | number | boolean> | undefined;
22
- } | undefined;
23
- id: string;
24
- creationTime: number;
25
- title: string;
26
- status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
27
- actorId: string;
28
- kind: "feedback" | "feature_request" | "bug_report";
29
- body: string;
30
- upvoteCount: number;
31
- commentCount: number;
32
- viewerHasUpvoted: boolean;
33
- }[];
16
+ page: import("./model.js").FeedbackEntry[];
17
+ isDone: boolean;
18
+ continueCursor: import("convex/server").Cursor;
19
+ splitCursor?: import("convex/server").Cursor | null;
20
+ pageStatus?: "SplitRecommended" | "SplitRequired" | null;
21
+ }>>;
22
+ /**
23
+ * List entries created by a known actor. This component-level query remains
24
+ * actor-parameterized so trusted host/server consumers can use it without a
25
+ * request authentication context.
26
+ *
27
+ * `includeAdminContext` is intentionally unavailable on the host-facing
28
+ * `listUserEntries` wrapper. Trusted server consumers such as exports may opt
29
+ * into retained metadata and triage context when needed.
30
+ */
31
+ export declare const listByActor: import("convex/server").RegisteredQuery<"public", {
32
+ includeAdminContext?: boolean | undefined;
33
+ actorId: string;
34
+ paginationOpts: {
35
+ id?: number;
36
+ endCursor?: string | null;
37
+ maximumRowsRead?: number;
38
+ maximumBytesRead?: number;
39
+ numItems: number;
40
+ cursor: string | null;
41
+ };
42
+ }, Promise<{
43
+ page: import("./model.js").FeedbackActivityEntryWithContext[];
34
44
  isDone: boolean;
35
45
  continueCursor: import("convex/server").Cursor;
36
46
  splitCursor?: import("convex/server").Cursor | null;
@@ -40,24 +50,7 @@ export declare const get: import("convex/server").RegisteredQuery<"public", {
40
50
  viewerActorId?: string | undefined;
41
51
  viewerIsAdmin?: boolean | undefined;
42
52
  entryId: import("convex/values").GenericId<"entries">;
43
- }, Promise<{
44
- updatedAt?: number | undefined;
45
- viewerIsAuthor?: boolean | undefined;
46
- metadata?: {
47
- standard?: Record<string, string | number | boolean> | undefined;
48
- additional?: Record<string, string | number | boolean> | undefined;
49
- } | undefined;
50
- id: string;
51
- creationTime: number;
52
- title: string;
53
- status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
54
- actorId: string;
55
- kind: "feedback" | "feature_request" | "bug_report";
56
- body: string;
57
- upvoteCount: number;
58
- commentCount: number;
59
- viewerHasUpvoted: boolean;
60
- } | null>>;
53
+ }, Promise<import("./model.js").FeedbackEntry | null>>;
61
54
  export declare const search: import("convex/server").RegisteredQuery<"public", {
62
55
  status?: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed" | undefined;
63
56
  statusFilter?: "open" | "closed" | undefined;
@@ -65,24 +58,7 @@ export declare const search: import("convex/server").RegisteredQuery<"public", {
65
58
  viewerActorId?: string | undefined;
66
59
  searchQuery: string;
67
60
  limit: number;
68
- }, Promise<{
69
- updatedAt?: number | undefined;
70
- viewerIsAuthor?: boolean | undefined;
71
- metadata?: {
72
- standard?: Record<string, string | number | boolean> | undefined;
73
- additional?: Record<string, string | number | boolean> | undefined;
74
- } | undefined;
75
- id: string;
76
- creationTime: number;
77
- title: string;
78
- status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
79
- actorId: string;
80
- kind: "feedback" | "feature_request" | "bug_report";
81
- body: string;
82
- upvoteCount: number;
83
- commentCount: number;
84
- viewerHasUpvoted: boolean;
85
- }[]>>;
61
+ }, Promise<import("./model.js").FeedbackEntry[]>>;
86
62
  export declare const similar: import("convex/server").RegisteredQuery<"public", {
87
63
  kind?: "feedback" | "feature_request" | "bug_report" | undefined;
88
64
  viewerActorId?: string | undefined;
@@ -90,48 +66,15 @@ export declare const similar: import("convex/server").RegisteredQuery<"public",
90
66
  body: string;
91
67
  limit: number;
92
68
  }, Promise<{
93
- exact: {
94
- updatedAt?: number | undefined;
95
- viewerIsAuthor?: boolean | undefined;
96
- metadata?: {
97
- standard?: Record<string, string | number | boolean> | undefined;
98
- additional?: Record<string, string | number | boolean> | undefined;
99
- } | undefined;
100
- id: string;
101
- creationTime: number;
102
- title: string;
103
- status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
104
- actorId: string;
105
- kind: "feedback" | "feature_request" | "bug_report";
106
- body: string;
107
- upvoteCount: number;
108
- commentCount: number;
109
- viewerHasUpvoted: boolean;
110
- }[];
111
- similar: {
112
- updatedAt?: number | undefined;
113
- viewerIsAuthor?: boolean | undefined;
114
- metadata?: {
115
- standard?: Record<string, string | number | boolean> | undefined;
116
- additional?: Record<string, string | number | boolean> | undefined;
117
- } | undefined;
118
- id: string;
119
- creationTime: number;
120
- title: string;
121
- status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
122
- actorId: string;
123
- kind: "feedback" | "feature_request" | "bug_report";
124
- body: string;
125
- upvoteCount: number;
126
- commentCount: number;
127
- viewerHasUpvoted: boolean;
128
- }[];
69
+ exact: import("./model.js").FeedbackEntry[];
70
+ similar: import("./model.js").FeedbackEntry[];
129
71
  }>>;
130
72
  export declare const create: import("convex/server").RegisteredMutation<"public", {
131
73
  metadata?: {
132
74
  standard?: Record<string, string | number | boolean> | undefined;
133
75
  additional?: Record<string, string | number | boolean> | undefined;
134
76
  } | undefined;
77
+ includeCallbackContext?: boolean | undefined;
135
78
  title: string;
136
79
  actorId: string;
137
80
  kind: "feedback" | "feature_request" | "bug_report";
@@ -140,7 +83,26 @@ export declare const create: import("convex/server").RegisteredMutation<"public"
140
83
  defaultStatus: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
141
84
  maxBodyLength: number;
142
85
  maxTitleLength: number;
143
- }, Promise<import("convex/values").GenericId<"entries">>>;
86
+ }, Promise<{
87
+ id: import("convex/values").GenericId<"entries">;
88
+ entry?: undefined;
89
+ } | {
90
+ id: import("convex/values").GenericId<"entries">;
91
+ entry: {
92
+ upvoteCount: number;
93
+ commentCount: number;
94
+ metadata?: {
95
+ standard?: Record<string, string | number | boolean> | undefined;
96
+ additional?: Record<string, string | number | boolean> | undefined;
97
+ } | undefined;
98
+ id: import("convex/values").GenericId<"entries">;
99
+ actorId: string;
100
+ kind: "feedback" | "feature_request" | "bug_report";
101
+ status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
102
+ title: string;
103
+ body: string;
104
+ };
105
+ }>>;
144
106
  export declare const update: import("convex/server").RegisteredMutation<"public", {
145
107
  kind?: "feedback" | "feature_request" | "bug_report" | undefined;
146
108
  title: string;
@@ -155,6 +117,30 @@ export declare const update: import("convex/server").RegisteredMutation<"public"
155
117
  maxBodyLength: number;
156
118
  maxTitleLength: number;
157
119
  }, Promise<null>>;
120
+ export declare const remove: import("convex/server").RegisteredMutation<"public", {
121
+ entryId: import("convex/values").GenericId<"entries">;
122
+ actor: {
123
+ isAdmin?: boolean | undefined;
124
+ isModerator?: boolean | undefined;
125
+ id: string;
126
+ };
127
+ }, Promise<null>>;
128
+ /**
129
+ * Remove one bounded slice of an entry's dependent documents. Direct entry
130
+ * reactions are drained first, then comments are processed in index order.
131
+ * Each comment's reactions are drained before the comment is deleted, which
132
+ * keeps this safe for comments with arbitrarily many likes.
133
+ */
134
+ export declare const removeBatch: import("convex/server").RegisteredMutation<"internal", {
135
+ entryId: import("convex/values").GenericId<"entries">;
136
+ }, Promise<{
137
+ processed: number;
138
+ hasMore: boolean;
139
+ }>>;
140
+ /** Hard-delete only after a fresh bounded dependency check. */
141
+ export declare const finalizeRemoval: import("convex/server").RegisteredMutation<"internal", {
142
+ entryId: import("convex/values").GenericId<"entries">;
143
+ }, Promise<null>>;
158
144
  export declare const setStatus: import("convex/server").RegisteredMutation<"public", {
159
145
  status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
160
146
  entryId: import("convex/values").GenericId<"entries">;
@@ -174,11 +160,53 @@ export declare const setPriority: import("convex/server").RegisteredMutation<"pu
174
160
  };
175
161
  }, Promise<null>>;
176
162
  export declare const setUpvote: import("convex/server").RegisteredMutation<"public", {
163
+ includeCallbackContext?: boolean | undefined;
177
164
  actorId: string;
178
165
  entryId: import("convex/values").GenericId<"entries">;
179
166
  desiredState: boolean;
180
167
  }, Promise<{
181
168
  active: boolean;
182
169
  upvoteCount: number;
170
+ changed?: undefined;
171
+ transition?: undefined;
172
+ previousCount?: undefined;
173
+ count?: undefined;
174
+ entry?: undefined;
175
+ } | {
176
+ changed: true;
177
+ active: boolean;
178
+ transition: "added";
179
+ previousCount: number;
180
+ count: number;
181
+ entry: {
182
+ id: import("convex/values").GenericId<"entries">;
183
+ actorId: string;
184
+ kind: "feedback" | "feature_request" | "bug_report";
185
+ status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
186
+ title: string;
187
+ };
188
+ upvoteCount?: undefined;
189
+ } | {
190
+ changed: true;
191
+ active: boolean;
192
+ transition: "removed";
193
+ previousCount: number;
194
+ count: number;
195
+ entry: {
196
+ id: import("convex/values").GenericId<"entries">;
197
+ actorId: string;
198
+ kind: "feedback" | "feature_request" | "bug_report";
199
+ status: "open" | "under_review" | "planned" | "in_progress" | "completed" | "closed";
200
+ title: string;
201
+ };
202
+ upvoteCount?: undefined;
203
+ } | {
204
+ changed: false;
205
+ active: boolean;
206
+ transition: null;
207
+ previousCount: number;
208
+ count: number;
209
+ upvoteCount?: undefined;
210
+ entry?: undefined;
183
211
  }>>;
184
212
  //# sourceMappingURL=entries.d.ts.map
@@ -1 +1 @@
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;;;;;;;;;;;;;iBA6CjB,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;;;;iBAqBpB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;iBAoBtB,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;;;GA4CpB,CAAC"}
1
+ {"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../src/component/entries.ts"],"names":[],"mappings":"AAwFA,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;GAoOf,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;GA0BtB,CAAC;AAEH,eAAO,MAAM,GAAG;;;;sDAkBd,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;;iDAwKjB,CAAC;AAEH,eAAO,MAAM,OAAO;;;;;;;;;GAiHlB,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFjB,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;;;;iBAgDjB,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;;iBA0CjB,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,WAAW;;;;;GA+DtB,CAAC;AAEH,+DAA+D;AAC/D,eAAO,MAAM,eAAe;;iBA0B1B,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;;;;iBAyBpB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;iBAwBtB,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmHpB,CAAC"}