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
@@ -1,10 +1,50 @@
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 { mutation, query } from "./_generated/server.js";
5
- import { assertActorId, assertPositiveInteger, normalizeRequiredText, serializeComment, } from "./helpers.js";
6
- import { actorValidator, actorIsAdmin, commentSortValidator, entryStatusFilterForStatus, publicCommentValidator, } from "./model.js";
4
+ import { stream } from "convex-helpers/server/stream";
5
+ import { internal } from "./_generated/api.js";
6
+ import { internalMutation, mutation, query } from "./_generated/server.js";
7
+ import { assertActorId, assertPositiveInteger, commentIsLive, findDeletingComment, normalizeRequiredText, serializeActivityComment, serializeComment, } from "./helpers.js";
8
+ import { activityCommentValidator, actorValidator, actorIsAdmin, commentSortValidator, entryKindValidator, entryStatusValidator, entryStatusFilterForStatus, publicCommentValidator, } from "./model.js";
7
9
  import schema from "./schema.js";
10
+ const commentDeletionBatchSize = 25;
11
+ const reactionDeletionBatchSize = 100;
12
+ async function scheduleCommentCleanup(ctx, commentId) {
13
+ await ctx.scheduler.runAfter(0, internal.comments.removeBatch, { commentId });
14
+ }
15
+ /**
16
+ * Mark a comment subtree for permanent deletion and enqueue its bounded
17
+ * cleanup. The helper is shared by the public delete mutation and the legacy
18
+ * migration so both paths use the same deletion token and retry semantics.
19
+ */
20
+ export async function startCommentDeletion(ctx, comment, deletionToken = Date.now()) {
21
+ let rootId = comment.deletingAt === undefined
22
+ ? comment._id
23
+ : (comment.deletionRootId ?? comment._id);
24
+ // A legacy or interrupted cleanup can leave a pending child pointing at a
25
+ // root that was already removed. Re-root that child so retries cannot keep
26
+ // scheduling a missing document forever.
27
+ if (comment.deletingAt !== undefined &&
28
+ comment.deletionRootId !== undefined) {
29
+ const root = await ctx.db.get("comments", comment.deletionRootId);
30
+ if (root === null || root.deletingAt === undefined) {
31
+ rootId = comment._id;
32
+ await ctx.db.patch("comments", comment._id, {
33
+ deletionRootId: rootId,
34
+ });
35
+ }
36
+ }
37
+ if (comment.deletingAt === undefined) {
38
+ await ctx.db.patch("comments", comment._id, {
39
+ deletingAt: deletionToken,
40
+ deletionRootId: rootId,
41
+ });
42
+ }
43
+ await scheduleCommentCleanup(ctx, rootId);
44
+ }
45
+ function emptyCommentPaginationResult() {
46
+ return { page: [], isDone: true, continueCursor: "" };
47
+ }
8
48
  export const list = query({
9
49
  args: {
10
50
  paginationOpts: paginationOptsValidator,
@@ -15,26 +55,41 @@ export const list = query({
15
55
  },
16
56
  returns: paginationResultValidator(publicCommentValidator),
17
57
  handler: async (ctx, args) => {
58
+ const entry = await ctx.db.get("entries", args.entryId);
59
+ if (entry === null || entry.deletingAt !== undefined) {
60
+ return {
61
+ ...emptyCommentPaginationResult(),
62
+ };
63
+ }
18
64
  if (args.parentCommentId !== undefined) {
19
65
  const parent = await ctx.db.get("comments", args.parentCommentId);
20
66
  if (parent === null || parent.entryId !== args.entryId) {
21
67
  throw new ConvexError("Parent comment not found on this entry.");
22
68
  }
69
+ if (!(await commentIsLive(ctx, parent))) {
70
+ return {
71
+ ...emptyCommentPaginationResult(),
72
+ };
73
+ }
23
74
  }
24
75
  const db = paginator(ctx.db, schema);
25
76
  const result = args.sort === "top"
26
77
  ? await db
27
78
  .query("comments")
28
- .withIndex("by_entry_parent_likes", (q) => q
79
+ .withIndex("by_entry_parent_deleting_likes", (q) => q
29
80
  .eq("entryId", args.entryId)
30
- .eq("parentCommentId", args.parentCommentId))
81
+ .eq("parentCommentId", args.parentCommentId)
82
+ .eq("deletingAt", undefined)
83
+ .eq("deletedAt", undefined))
31
84
  .order("desc")
32
85
  .paginate(args.paginationOpts)
33
86
  : await db
34
87
  .query("comments")
35
- .withIndex("by_entry_parent", (q) => q
88
+ .withIndex("by_entry_parent_deleting", (q) => q
36
89
  .eq("entryId", args.entryId)
37
- .eq("parentCommentId", args.parentCommentId))
90
+ .eq("parentCommentId", args.parentCommentId)
91
+ .eq("deletingAt", undefined)
92
+ .eq("deletedAt", undefined))
38
93
  .order(args.sort === "newest" ? "desc" : "asc")
39
94
  .paginate(args.paginationOpts);
40
95
  return {
@@ -43,6 +98,43 @@ export const list = query({
43
98
  };
44
99
  },
45
100
  });
101
+ /**
102
+ * List comments created by a known actor. The actor is supplied by trusted
103
+ * component/server callers; the host-facing wrapper resolves it from the
104
+ * current request instead of accepting it from clients.
105
+ *
106
+ * This activity query resolves the current parent entry title and excludes
107
+ * comments whose entry or ancestor is pending deletion.
108
+ */
109
+ export const listByActor = query({
110
+ args: {
111
+ paginationOpts: paginationOptsValidator,
112
+ actorId: v.string(),
113
+ },
114
+ returns: paginationResultValidator(activityCommentValidator),
115
+ handler: async (ctx, args) => {
116
+ assertActorId(args.actorId);
117
+ const result = await stream(ctx.db, schema)
118
+ .query("comments")
119
+ .withIndex("by_actor", (q) => q.eq("actorId", args.actorId))
120
+ .order("desc")
121
+ .map(async (comment) => {
122
+ if (comment.deletingAt !== undefined ||
123
+ comment.deletedAt !== undefined) {
124
+ return null;
125
+ }
126
+ const entry = await ctx.db.get("entries", comment.entryId);
127
+ if (entry === null ||
128
+ entry.deletingAt !== undefined ||
129
+ !(await commentIsLive(ctx, comment))) {
130
+ return null;
131
+ }
132
+ return serializeActivityComment(comment, entry);
133
+ })
134
+ .paginate(args.paginationOpts);
135
+ return result;
136
+ },
137
+ });
46
138
  export const create = mutation({
47
139
  args: {
48
140
  actorId: v.string(),
@@ -51,8 +143,27 @@ export const create = mutation({
51
143
  body: v.string(),
52
144
  maxDepth: v.number(),
53
145
  maxCommentLength: v.number(),
146
+ includeCallbackContext: v.optional(v.boolean()),
54
147
  },
55
- returns: v.id("comments"),
148
+ returns: v.union(v.object({ id: v.id("comments") }), v.object({
149
+ id: v.id("comments"),
150
+ comment: v.object({
151
+ id: v.id("comments"),
152
+ actorId: v.string(),
153
+ entryId: v.id("entries"),
154
+ parentCommentId: v.optional(v.id("comments")),
155
+ body: v.string(),
156
+ depth: v.number(),
157
+ }),
158
+ entry: v.object({
159
+ id: v.id("entries"),
160
+ actorId: v.string(),
161
+ kind: entryKindValidator,
162
+ status: entryStatusValidator,
163
+ title: v.string(),
164
+ }),
165
+ parentComment: v.optional(v.object({ id: v.id("comments"), actorId: v.string() })),
166
+ })),
56
167
  handler: async (ctx, args) => {
57
168
  assertActorId(args.actorId);
58
169
  assertPositiveInteger(args.maxDepth, "Maximum comment depth");
@@ -60,13 +171,20 @@ export const create = mutation({
60
171
  const entry = await ctx.db.get("entries", args.entryId);
61
172
  if (entry === null)
62
173
  throw new ConvexError("Entry not found.");
174
+ if (entry.deletingAt !== undefined) {
175
+ throw new ConvexError("Entry is being deleted.");
176
+ }
63
177
  const body = normalizeRequiredText(args.body, "Comment", args.maxCommentLength);
64
178
  let depth = 0;
179
+ let parent = null;
65
180
  if (args.parentCommentId !== undefined) {
66
- const parent = await ctx.db.get("comments", args.parentCommentId);
181
+ parent = await ctx.db.get("comments", args.parentCommentId);
67
182
  if (parent === null || parent.entryId !== args.entryId) {
68
183
  throw new ConvexError("Parent comment not found on this entry.");
69
184
  }
185
+ if (!(await commentIsLive(ctx, parent))) {
186
+ throw new ConvexError("Comment is being deleted.");
187
+ }
70
188
  depth = parent.depth + 1;
71
189
  if (depth > args.maxDepth) {
72
190
  throw new ConvexError(`Comments may not exceed depth ${args.maxDepth}.`);
@@ -87,15 +205,38 @@ export const create = mutation({
87
205
  commentCount: entry.commentCount + 1,
88
206
  statusFilter: entryStatusFilterForStatus(entry.status),
89
207
  });
90
- if (args.parentCommentId !== undefined) {
91
- const parent = await ctx.db.get("comments", args.parentCommentId);
92
- if (parent !== null) {
93
- await ctx.db.patch("comments", args.parentCommentId, {
94
- replyCount: parent.replyCount + 1,
95
- });
96
- }
208
+ if (parent !== null) {
209
+ await ctx.db.patch("comments", parent._id, {
210
+ replyCount: parent.replyCount + 1,
211
+ });
97
212
  }
98
- return commentId;
213
+ if (!args.includeCallbackContext)
214
+ return { id: commentId };
215
+ return {
216
+ id: commentId,
217
+ comment: {
218
+ id: commentId,
219
+ actorId: args.actorId,
220
+ entryId: args.entryId,
221
+ ...(args.parentCommentId === undefined
222
+ ? {}
223
+ : { parentCommentId: args.parentCommentId }),
224
+ body,
225
+ depth,
226
+ },
227
+ entry: {
228
+ id: entry._id,
229
+ actorId: entry.actorId,
230
+ kind: entry.kind,
231
+ status: entry.status,
232
+ title: entry.title,
233
+ },
234
+ ...(parent === null
235
+ ? {}
236
+ : {
237
+ parentComment: { id: parent._id, actorId: parent.actorId },
238
+ }),
239
+ };
99
240
  },
100
241
  });
101
242
  export const update = mutation({
@@ -112,8 +253,14 @@ export const update = mutation({
112
253
  const comment = await ctx.db.get("comments", args.commentId);
113
254
  if (comment === null)
114
255
  throw new ConvexError("Comment not found.");
115
- if (comment.deletedAt !== undefined) {
116
- throw new ConvexError("Deleted comments cannot be edited.");
256
+ if (!(await commentIsLive(ctx, comment))) {
257
+ throw new ConvexError("Comment is being deleted.");
258
+ }
259
+ const entry = await ctx.db.get("entries", comment.entryId);
260
+ if (entry === null)
261
+ throw new ConvexError("Entry not found.");
262
+ if (entry.deletingAt !== undefined) {
263
+ throw new ConvexError("Entry is being deleted.");
117
264
  }
118
265
  const canEdit = actorIsAdmin(args.actor) ||
119
266
  (args.editableByAuthor && comment.actorId === args.actor.id);
@@ -138,32 +285,154 @@ export const remove = mutation({
138
285
  assertActorId(args.actor.id);
139
286
  const comment = await ctx.db.get("comments", args.commentId);
140
287
  if (comment === null)
141
- throw new ConvexError("Comment not found.");
142
- if (comment.deletedAt !== undefined)
143
288
  return null;
289
+ const pending = await findDeletingComment(ctx, comment);
290
+ if (pending !== null) {
291
+ await scheduleCommentCleanup(ctx, pending._id);
292
+ return null;
293
+ }
144
294
  const canDelete = actorIsAdmin(args.actor) ||
145
295
  (args.deletableByAuthor && comment.actorId === args.actor.id);
146
296
  if (!canDelete) {
147
297
  throw new ConvexError("Not authorized to delete this comment.");
148
298
  }
149
- await ctx.db.patch("comments", args.commentId, { deletedAt: Date.now() });
299
+ await startCommentDeletion(ctx, comment);
150
300
  return null;
151
301
  },
152
302
  });
303
+ /**
304
+ * Remove one bounded slice of a pending comment subtree. Children are marked
305
+ * with the root's deletion token before leaves are removed, which keeps the
306
+ * whole subtree hidden immediately and lets retries resume from indexed
307
+ * state. Reactions are drained before each comment is deleted.
308
+ */
309
+ export const removeBatch = internalMutation({
310
+ args: { commentId: v.id("comments") },
311
+ returns: v.object({ processed: v.number(), hasMore: v.boolean() }),
312
+ handler: async (ctx, args) => {
313
+ const root = await ctx.db.get("comments", args.commentId);
314
+ if (root === null || root.deletingAt === undefined) {
315
+ return { processed: 0, hasMore: false };
316
+ }
317
+ const deletionToken = root.deletingAt;
318
+ const deletionRootId = root.deletionRootId ?? root._id;
319
+ if (root.deletionRootId === undefined) {
320
+ await ctx.db.patch("comments", root._id, { deletionRootId });
321
+ }
322
+ const entry = await ctx.db.get("entries", root.entryId);
323
+ const pendingComments = await ctx.db
324
+ .query("comments")
325
+ .withIndex("by_entry_deletion_root", (q) => q.eq("entryId", root.entryId).eq("deletionRootId", deletionRootId))
326
+ .take(commentDeletionBatchSize + 1);
327
+ let processed = 0;
328
+ let deletedComments = 0;
329
+ for (const comment of pendingComments.slice(0, commentDeletionBatchSize)) {
330
+ const unmarkedChildren = await ctx.db
331
+ .query("comments")
332
+ .withIndex("by_entry_parent_deleting", (q) => q
333
+ .eq("entryId", root.entryId)
334
+ .eq("parentCommentId", comment._id)
335
+ .eq("deletingAt", undefined))
336
+ .take(commentDeletionBatchSize + 1);
337
+ if (unmarkedChildren.length > 0) {
338
+ for (const child of unmarkedChildren.slice(0, commentDeletionBatchSize)) {
339
+ await ctx.db.patch("comments", child._id, {
340
+ deletingAt: deletionToken,
341
+ deletionRootId,
342
+ });
343
+ processed += 1;
344
+ }
345
+ continue;
346
+ }
347
+ const remainingChild = await ctx.db
348
+ .query("comments")
349
+ .withIndex("by_entry_parent", (q) => q.eq("entryId", root.entryId).eq("parentCommentId", comment._id))
350
+ .first();
351
+ if (remainingChild !== null)
352
+ continue;
353
+ const commentReactions = await ctx.db
354
+ .query("reactions")
355
+ .withIndex("by_comment_actor", (q) => q.eq("commentId", comment._id))
356
+ .take(reactionDeletionBatchSize + 1);
357
+ for (const reaction of commentReactions.slice(0, reactionDeletionBatchSize)) {
358
+ await ctx.db.delete("reactions", reaction._id);
359
+ processed += 1;
360
+ }
361
+ if (commentReactions.length > reactionDeletionBatchSize) {
362
+ await scheduleCommentCleanup(ctx, root._id);
363
+ return { processed, hasMore: true };
364
+ }
365
+ await ctx.db.delete("comments", comment._id);
366
+ processed += 1;
367
+ deletedComments += 1;
368
+ if (comment.parentCommentId !== undefined) {
369
+ const parent = await ctx.db.get("comments", comment.parentCommentId);
370
+ if (parent !== null) {
371
+ await ctx.db.patch("comments", parent._id, {
372
+ replyCount: Math.max(0, parent.replyCount - 1),
373
+ });
374
+ }
375
+ }
376
+ }
377
+ if (entry !== null && deletedComments > 0) {
378
+ await ctx.db.patch("entries", entry._id, {
379
+ commentCount: Math.max(0, entry.commentCount - deletedComments),
380
+ });
381
+ }
382
+ const remainingPending = await ctx.db
383
+ .query("comments")
384
+ .withIndex("by_entry_deletion_root", (q) => q.eq("entryId", root.entryId).eq("deletionRootId", deletionRootId))
385
+ .first();
386
+ if (remainingPending !== null) {
387
+ await scheduleCommentCleanup(ctx, root._id);
388
+ return { processed, hasMore: true };
389
+ }
390
+ return { processed, hasMore: false };
391
+ },
392
+ });
153
393
  export const setLike = mutation({
154
394
  args: {
155
395
  actorId: v.string(),
156
396
  commentId: v.id("comments"),
157
397
  desiredState: v.boolean(),
398
+ includeCallbackContext: v.optional(v.boolean()),
158
399
  },
159
- returns: v.object({ active: v.boolean(), likeCount: v.number() }),
400
+ returns: v.union(v.object({
401
+ active: v.boolean(),
402
+ likeCount: v.number(),
403
+ }), v.object({
404
+ changed: v.literal(false),
405
+ active: v.boolean(),
406
+ transition: v.null(),
407
+ previousCount: v.number(),
408
+ count: v.number(),
409
+ }), v.object({
410
+ changed: v.literal(true),
411
+ active: v.boolean(),
412
+ transition: v.union(v.literal("added"), v.literal("removed")),
413
+ previousCount: v.number(),
414
+ count: v.number(),
415
+ comment: v.object({
416
+ id: v.id("comments"),
417
+ actorId: v.string(),
418
+ entryId: v.id("entries"),
419
+ parentCommentId: v.optional(v.id("comments")),
420
+ body: v.string(),
421
+ }),
422
+ })),
160
423
  handler: async (ctx, args) => {
161
424
  assertActorId(args.actorId);
162
425
  const comment = await ctx.db.get("comments", args.commentId);
163
426
  if (comment === null)
164
427
  throw new ConvexError("Comment not found.");
165
- if (comment.deletedAt !== undefined) {
166
- throw new ConvexError("Deleted comments cannot receive likes.");
428
+ const entry = await ctx.db.get("entries", comment.entryId);
429
+ if (entry === null)
430
+ throw new ConvexError("Entry not found.");
431
+ if (entry.deletingAt !== undefined) {
432
+ throw new ConvexError("Entry is being deleted.");
433
+ }
434
+ if (!(await commentIsLive(ctx, comment))) {
435
+ throw new ConvexError("Comment is being deleted.");
167
436
  }
168
437
  const existing = await ctx.db
169
438
  .query("reactions")
@@ -176,15 +445,60 @@ export const setLike = mutation({
176
445
  });
177
446
  const likeCount = comment.likeCount + 1;
178
447
  await ctx.db.patch("comments", args.commentId, { likeCount });
179
- return { active: true, likeCount };
448
+ if (!args.includeCallbackContext) {
449
+ return { active: true, likeCount };
450
+ }
451
+ return {
452
+ changed: true,
453
+ active: true,
454
+ transition: "added",
455
+ previousCount: comment.likeCount,
456
+ count: likeCount,
457
+ comment: {
458
+ id: comment._id,
459
+ actorId: comment.actorId,
460
+ entryId: comment.entryId,
461
+ ...(comment.parentCommentId === undefined
462
+ ? {}
463
+ : { parentCommentId: comment.parentCommentId }),
464
+ body: comment.body,
465
+ },
466
+ };
180
467
  }
181
468
  if (!args.desiredState && existing !== null) {
182
469
  await ctx.db.delete("reactions", existing._id);
183
470
  const likeCount = Math.max(0, comment.likeCount - 1);
184
471
  await ctx.db.patch("comments", args.commentId, { likeCount });
185
- return { active: false, likeCount };
472
+ if (!args.includeCallbackContext) {
473
+ return { active: false, likeCount };
474
+ }
475
+ return {
476
+ changed: true,
477
+ active: false,
478
+ transition: "removed",
479
+ previousCount: comment.likeCount,
480
+ count: likeCount,
481
+ comment: {
482
+ id: comment._id,
483
+ actorId: comment.actorId,
484
+ entryId: comment.entryId,
485
+ ...(comment.parentCommentId === undefined
486
+ ? {}
487
+ : { parentCommentId: comment.parentCommentId }),
488
+ body: comment.body,
489
+ },
490
+ };
186
491
  }
187
- return { active: args.desiredState, likeCount: comment.likeCount };
492
+ if (!args.includeCallbackContext) {
493
+ return { active: args.desiredState, likeCount: comment.likeCount };
494
+ }
495
+ return {
496
+ changed: false,
497
+ active: args.desiredState,
498
+ transition: null,
499
+ previousCount: comment.likeCount,
500
+ count: comment.likeCount,
501
+ };
188
502
  },
189
503
  });
190
504
  //# sourceMappingURL=comments.js.map
@@ -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":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,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,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,wBAAwB,EACxB,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,YAAY,CAAC;AACpB,OAAO,MAAM,MAAM,aAAa,CAAC;AAGjC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AACpC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAEtC,KAAK,UAAU,sBAAsB,CACnC,GAAgB,EAChB,SAAiC;IAEjC,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;AAChF,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAgB,EAChB,OAAwB,EACxB,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE;IAE1B,IAAI,MAAM,GACR,OAAO,CAAC,UAAU,KAAK,SAAS;QAC9B,CAAC,CAAC,OAAO,CAAC,GAAG;QACb,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAE9C,0EAA0E;IAC1E,2EAA2E;IAC3E,yCAAyC;IACzC,IACE,OAAO,CAAC,UAAU,KAAK,SAAS;QAChC,OAAO,CAAC,cAAc,KAAK,SAAS,EACpC,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QAClE,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACnD,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;YACrB,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE;gBAC1C,cAAc,EAAE,MAAM;aACvB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE;YAC1C,UAAU,EAAE,aAAa;YACzB,cAAc,EAAE,MAAM;SACvB,CAAC,CAAC;IACL,CAAC;IACD,MAAM,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,4BAA4B;IACnC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CAAC;IACxB,IAAI,EAAE;QACJ,cAAc,EAAE,uBAAuB;QACvC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;QACxB,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,EAAE,oBAAoB;QAC1B,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACtC;IACD,OAAO,EAAE,yBAAyB,CAAC,sBAAsB,CAAC;IAC1D,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,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACrD,OAAO;gBACL,GAAG,4BAA4B,EAAE;aAClC,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAClE,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;gBACvD,MAAM,IAAI,WAAW,CAAC,yCAAyC,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;gBACxC,OAAO;oBACL,GAAG,4BAA4B,EAAE;iBAClC,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACrC,MAAM,MAAM,GACV,IAAI,CAAC,IAAI,KAAK,KAAK;YACjB,CAAC,CAAC,MAAM,EAAE;iBACL,KAAK,CAAC,UAAU,CAAC;iBACjB,SAAS,CAAC,gCAAgC,EAAE,CAAC,CAAC,EAAE,EAAE,CACjD,CAAC;iBACE,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC;iBAC3B,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC;iBAC3C,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;iBAC3B,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,CAC9B;iBACA,KAAK,CAAC,MAAM,CAAC;iBACb,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC;YAClC,CAAC,CAAC,MAAM,EAAE;iBACL,KAAK,CAAC,UAAU,CAAC;iBACjB,SAAS,CAAC,0BAA0B,EAAE,CAAC,CAAC,EAAE,EAAE,CAC3C,CAAC;iBACE,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC;iBAC3B,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC;iBAC3C,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;iBAC3B,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,CAC9B;iBACA,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;iBAC9C,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEvC,OAAO;YACL,GAAG,MAAM;YACT,IAAI,EAAE,MAAM,OAAO,CAAC,GAAG,CACrB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC1B,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CACnD,CACF;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC;IAC/B,IAAI,EAAE;QACJ,cAAc,EAAE,uBAAuB;QACvC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;KACpB;IACD,OAAO,EAAE,yBAAyB,CAAC,wBAAwB,CAAC;IAC5D,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC3B,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC;aACxC,KAAK,CAAC,UAAU,CAAC;aACjB,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aAC3D,KAAK,CAAC,MAAM,CAAC;aACb,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACrB,IACE,OAAO,CAAC,UAAU,KAAK,SAAS;gBAChC,OAAO,CAAC,SAAS,KAAK,SAAS,EAC/B,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAC3D,IACE,KAAK,KAAK,IAAI;gBACd,KAAK,CAAC,UAAU,KAAK,SAAS;gBAC9B,CAAC,CAAC,MAAM,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,EACpC,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,wBAAwB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC,CAAC;aACD,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEjC,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC;IAC7B,IAAI,EAAE;QACJ,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;QACxB,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;QAC5B,sBAAsB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;KAChD;IACD,OAAO,EAAE,CAAC,CAAC,KAAK,CACd,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,EAClC,CAAC,CAAC,MAAM,CAAC;QACP,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC;QACpB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;YAChB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC;YACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;YACxB,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;SAClB,CAAC;QACF,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;YACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,oBAAoB;YAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;SAClB,CAAC;QACF,aAAa,EAAE,CAAC,CAAC,QAAQ,CACvB,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACxD;KACF,CAAC,CACH;IACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC3B,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;QAC9D,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,CAAC;QAEvE,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,KAAK,KAAK,IAAI;YAAE,MAAM,IAAI,WAAW,CAAC,kBAAkB,CAAC,CAAC;QAC9D,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,IAAI,WAAW,CAAC,yBAAyB,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,IAAI,GAAG,qBAAqB,CAChC,IAAI,CAAC,IAAI,EACT,SAAS,EACT,IAAI,CAAC,gBAAgB,CACtB,CAAC;QAEF,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,MAAM,GAA2B,IAAI,CAAC;QAC1C,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAC5D,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;gBACvD,MAAM,IAAI,WAAW,CAAC,yCAAyC,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,WAAW,CAAC,2BAA2B,CAAC,CAAC;YACrD,CAAC;YACD,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;YACzB,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC1B,MAAM,IAAI,WAAW,CACnB,iCAAiC,IAAI,CAAC,QAAQ,GAAG,CAClD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE;YAChD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,CAAC,IAAI,CAAC,eAAe,KAAK,SAAS;gBACpC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;YAC9C,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK;YACL,IAAI;YACJ,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;QAEH,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE;YAC1C,YAAY,EAAE,KAAK,CAAC,YAAY,GAAG,CAAC;YACpC,YAAY,EAAE,0BAA0B,CAAC,KAAK,CAAC,MAAM,CAAC;SACvD,CAAC,CAAC;QAEH,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,EAAE;gBACzC,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,CAAC;aAClC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,sBAAsB;YAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;QAE3D,OAAO;YACL,EAAE,EAAE,SAAS;YACb,OAAO,EAAE;gBACP,EAAE,EAAE,SAAS;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,GAAG,CAAC,IAAI,CAAC,eAAe,KAAK,SAAS;oBACpC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC9C,IAAI;gBACJ,KAAK;aACN;YACD,KAAK,EAAE;gBACL,EAAE,EAAE,KAAK,CAAC,GAAG;gBACb,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB;YACD,GAAG,CAAC,MAAM,KAAK,IAAI;gBACjB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,aAAa,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;iBAC3D,CAAC;SACP,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC;IAC7B,IAAI,EAAE;QACJ,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC;QAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE;QAC7B,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;KAC7B;IACD,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE;IACjB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC3B,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,OAAO,KAAK,IAAI;YAAE,MAAM,IAAI,WAAW,CAAC,oBAAoB,CAAC,CAAC;QAClE,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,WAAW,CAAC,2BAA2B,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,KAAK,KAAK,IAAI;YAAE,MAAM,IAAI,WAAW,CAAC,kBAAkB,CAAC,CAAC;QAC9D,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,IAAI,WAAW,CAAC,yBAAyB,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,OAAO,GACX,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;YACxB,CAAC,IAAI,CAAC,gBAAgB,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,WAAW,CAAC,sCAAsC,CAAC,CAAC;QAE5E,MAAM,IAAI,GAAG,qBAAqB,CAChC,IAAI,CAAC,IAAI,EACT,SAAS,EACT,IAAI,CAAC,gBAAgB,CACtB,CAAC;QACF,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE;YAC7C,IAAI;YACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC;IAC7B,IAAI,EAAE;QACJ,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC;QAC3B,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE;KAC/B;IACD,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE;IACjB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC3B,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAElC,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACxD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GACb,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;YACxB,CAAC,IAAI,CAAC,iBAAiB,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,WAAW,CAAC,wCAAwC,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,gBAAgB,CAAC;IAC1C,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;IAClE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACnD,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC1C,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC;QACtC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,CAAC;QACvD,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,eAAe,GAAG,MAAM,GAAG,CAAC,EAAE;aACjC,KAAK,CAAC,UAAU,CAAC;aACjB,SAAS,CAAC,wBAAwB,EAAE,CAAC,CAAC,EAAE,EAAE,CACzC,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,gBAAgB,EAAE,cAAc,CAAC,CACnE;aACA,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAC,CAAC;QAEtC,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,eAAe,GAAG,CAAC,CAAC;QAExB,KAAK,MAAM,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,wBAAwB,CAAC,EAAE,CAAC;YACzE,MAAM,gBAAgB,GAAG,MAAM,GAAG,CAAC,EAAE;iBAClC,KAAK,CAAC,UAAU,CAAC;iBACjB,SAAS,CAAC,0BAA0B,EAAE,CAAC,CAAC,EAAE,EAAE,CAC3C,CAAC;iBACE,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC;iBAC3B,EAAE,CAAC,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC;iBAClC,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,CAC/B;iBACA,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAC,CAAC;YAEtC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,KAAK,CACxC,CAAC,EACD,wBAAwB,CACzB,EAAE,CAAC;oBACF,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,EAAE;wBACxC,UAAU,EAAE,aAAa;wBACzB,cAAc;qBACf,CAAC,CAAC;oBACH,SAAS,IAAI,CAAC,CAAC;gBACjB,CAAC;gBACD,SAAS;YACX,CAAC;YAED,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,EAAE;iBAChC,KAAK,CAAC,UAAU,CAAC;iBACjB,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAClC,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,CACjE;iBACA,KAAK,EAAE,CAAC;YACX,IAAI,cAAc,KAAK,IAAI;gBAAE,SAAS;YAEtC,MAAM,gBAAgB,GAAG,MAAM,GAAG,CAAC,EAAE;iBAClC,KAAK,CAAC,WAAW,CAAC;iBAClB,SAAS,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;iBACpE,IAAI,CAAC,yBAAyB,GAAG,CAAC,CAAC,CAAC;YACvC,KAAK,MAAM,QAAQ,IAAI,gBAAgB,CAAC,KAAK,CAC3C,CAAC,EACD,yBAAyB,CAC1B,EAAE,CAAC;gBACF,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC/C,SAAS,IAAI,CAAC,CAAC;YACjB,CAAC;YACD,IAAI,gBAAgB,CAAC,MAAM,GAAG,yBAAyB,EAAE,CAAC;gBACxD,MAAM,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC5C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACtC,CAAC;YAED,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7C,SAAS,IAAI,CAAC,CAAC;YACf,eAAe,IAAI,CAAC,CAAC;YAErB,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;gBAC1C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;gBACrE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,EAAE;wBACzC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;qBAC/C,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,KAAK,IAAI,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE;gBACvC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,eAAe,CAAC;aAChE,CAAC,CAAC;QACL,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,GAAG,CAAC,EAAE;aAClC,KAAK,CAAC,UAAU,CAAC;aACjB,SAAS,CAAC,wBAAwB,EAAE,CAAC,CAAC,EAAE,EAAE,CACzC,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,gBAAgB,EAAE,cAAc,CAAC,CACnE;aACA,KAAK,EAAE,CAAC;QACX,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;YAC9B,MAAM,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtC,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACvC,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;IAC9B,IAAI,EAAE;QACJ,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC;QAC3B,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE;QACzB,sBAAsB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;KAChD;IACD,OAAO,EAAE,CAAC,CAAC,KAAK,CACd,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;QACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;KACtB,CAAC,EACF,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QACzB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;QACnB,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE;QACpB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;QACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KAClB,CAAC,EACF,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACxB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;QACnB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;QACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;YAChB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC;YACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;YACxB,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;SACjB,CAAC;KACH,CAAC,CACH;IACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC3B,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,OAAO,KAAK,IAAI;YAAE,MAAM,IAAI,WAAW,CAAC,oBAAoB,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,KAAK,KAAK,IAAI;YAAE,MAAM,IAAI,WAAW,CAAC,kBAAkB,CAAC,CAAC;QAC9D,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,IAAI,WAAW,CAAC,yBAAyB,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,WAAW,CAAC,2BAA2B,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,EAAE;aAC1B,KAAK,CAAC,WAAW,CAAC;aAClB,SAAS,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE,EAAE,CACnC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAC9D;aACA,MAAM,EAAE,CAAC;QAEZ,IAAI,IAAI,CAAC,YAAY,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3C,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE;gBAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;YACxC,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBACjC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YACrC,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,IAAa;gBACtB,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,OAAgB;gBAC5B,aAAa,EAAE,OAAO,CAAC,SAAS;gBAChC,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE;oBACP,EAAE,EAAE,OAAO,CAAC,GAAG;oBACf,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS;wBACvC,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC;oBACjD,IAAI,EAAE,OAAO,CAAC,IAAI;iBACnB;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC5C,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YACrD,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBACjC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YACtC,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,IAAa;gBACtB,MAAM,EAAE,KAAK;gBACb,UAAU,EAAE,SAAkB;gBAC9B,aAAa,EAAE,OAAO,CAAC,SAAS;gBAChC,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE;oBACP,EAAE,EAAE,OAAO,CAAC,GAAG;oBACf,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS;wBACvC,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC;oBACjD,IAAI,EAAE,OAAO,CAAC,IAAI;iBACnB;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACjC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QACrE,CAAC;QACD,OAAO;YACL,OAAO,EAAE,KAAc;YACvB,MAAM,EAAE,IAAI,CAAC,YAAY;YACzB,UAAU,EAAE,IAAI;YAChB,aAAa,EAAE,OAAO,CAAC,SAAS;YAChC,KAAK,EAAE,OAAO,CAAC,SAAS;SACzB,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -1 +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"}
1
+ {"version":3,"file":"crons.d.ts","sourceRoot":"","sources":["../../src/component/crons.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,KAAK,+BAAa,CAAC;AAqBzB,eAAe,KAAK,CAAC"}
@@ -4,5 +4,9 @@ const crons = cronJobs();
4
4
  // Interval jobs run as soon as they are first deployed. The 30-day repeat is a
5
5
  // temporary, low-frequency self-healing safeguard for missed legacy records.
6
6
  crons.interval("self-heal entry status filters", { hours: 24 * 30 }, internal.migrations.backfillStatusFilter, {});
7
+ // Legacy comment tombstones and orphaned feedback are drained in bounded
8
+ // scheduled batches. The interval is a low-frequency retry for installations
9
+ // that upgrade while an earlier batch is paused or interrupted.
10
+ crons.interval("clean up legacy comment tombstones", { hours: 24 * 30 }, internal.migrations.cleanupLegacyComments, {});
7
11
  export default crons;
8
12
  //# sourceMappingURL=crons.js.map
@@ -1 +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
+ {"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,yEAAyE;AACzE,6EAA6E;AAC7E,gEAAgE;AAChE,KAAK,CAAC,QAAQ,CACZ,oCAAoC,EACpC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAClB,QAAQ,CAAC,UAAU,CAAC,qBAAqB,EACzC,EAAE,CACH,CAAC;AAEF,eAAe,KAAK,CAAC"}