convex-feedback 0.1.0 → 0.1.1

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.
@@ -1,14 +1,35 @@
1
1
  import { paginator } from "convex-helpers/server/pagination";
2
2
  import { paginationOptsValidator, paginationResultValidator, } from "convex/server";
3
3
  import { ConvexError, v } from "convex/values";
4
+ import { mergedStream, stream } from "convex-helpers/server/stream";
4
5
  import { mutation, query } from "./_generated/server.js";
5
6
  import { assertActorId, normalizeRequiredText, normalizeTitle, serializeEntry, } from "./helpers.js";
6
7
  import { actorValidator, entryKindValidator, entrySortValidator, entryStatusValidator, publicEntryValidator, similarEntriesValidator, } from "./model.js";
7
8
  import schema from "./schema.js";
9
+ const allEntryKinds = [
10
+ "feedback",
11
+ "feature_request",
12
+ "bug_report",
13
+ ];
14
+ function normalizeKindFilter(kinds) {
15
+ if (kinds === undefined) {
16
+ return undefined;
17
+ }
18
+ const uniqueKinds = [...new Set(kinds)];
19
+ if (uniqueKinds.length === 0) {
20
+ throw new ConvexError("`kinds` must contain at least one entry kind when provided.");
21
+ }
22
+ // All known kinds is equivalent to no kind filter and lets us use the
23
+ // simpler global indexes.
24
+ if (uniqueKinds.length === allEntryKinds.length) {
25
+ return undefined;
26
+ }
27
+ return uniqueKinds;
28
+ }
8
29
  export const list = query({
9
30
  args: {
10
31
  paginationOpts: paginationOptsValidator,
11
- kind: v.optional(entryKindValidator),
32
+ kinds: v.optional(v.array(entryKindValidator)),
12
33
  status: v.optional(entryStatusValidator),
13
34
  sort: entrySortValidator,
14
35
  viewerActorId: v.optional(v.string()),
@@ -16,53 +37,100 @@ export const list = query({
16
37
  returns: paginationResultValidator(publicEntryValidator),
17
38
  handler: async (ctx, args) => {
18
39
  const db = paginator(ctx.db, schema);
19
- const { kind, status } = args;
20
- const result = args.sort === "top"
21
- ? kind !== undefined && status !== undefined
22
- ? await db
23
- .query("entries")
24
- .withIndex("by_kind_status_upvotes", (q) => q.eq("kind", kind).eq("status", status))
25
- .order("desc")
26
- .paginate(args.paginationOpts)
27
- : kind !== undefined
28
- ? await db
29
- .query("entries")
30
- .withIndex("by_kind_upvotes", (q) => q.eq("kind", kind))
31
- .order("desc")
32
- .paginate(args.paginationOpts)
33
- : status !== undefined
40
+ const kinds = normalizeKindFilter(args.kinds);
41
+ const { status } = args;
42
+ let result;
43
+ if (kinds === undefined) {
44
+ result =
45
+ args.sort === "top"
46
+ ? status === undefined
34
47
  ? await db
35
48
  .query("entries")
36
- .withIndex("by_status_upvotes", (q) => q.eq("status", status))
49
+ .withIndex("by_upvotes")
37
50
  .order("desc")
38
51
  .paginate(args.paginationOpts)
39
52
  : await db
40
53
  .query("entries")
41
- .withIndex("by_upvotes")
54
+ .withIndex("by_status_upvotes", (q) => q.eq("status", status))
42
55
  .order("desc")
43
56
  .paginate(args.paginationOpts)
44
- : kind !== undefined && status !== undefined
45
- ? await db
46
- .query("entries")
47
- .withIndex("by_kind_status", (q) => q.eq("kind", kind).eq("status", status))
48
- .order("desc")
49
- .paginate(args.paginationOpts)
50
- : kind !== undefined
51
- ? await db
52
- .query("entries")
53
- .withIndex("by_kind", (q) => q.eq("kind", kind))
54
- .order("desc")
55
- .paginate(args.paginationOpts)
56
- : status !== undefined
57
+ : status === undefined
57
58
  ? await db
59
+ .query("entries")
60
+ .order("desc")
61
+ .paginate(args.paginationOpts)
62
+ : await db
58
63
  .query("entries")
59
64
  .withIndex("by_status", (q) => q.eq("status", status))
60
65
  .order("desc")
66
+ .paginate(args.paginationOpts);
67
+ }
68
+ else if (kinds.length === 1) {
69
+ const kind = kinds[0];
70
+ if (kind === undefined) {
71
+ throw new ConvexError("Invalid kind filter.");
72
+ }
73
+ result =
74
+ args.sort === "top"
75
+ ? status === undefined
76
+ ? await db
77
+ .query("entries")
78
+ .withIndex("by_kind_upvotes", (q) => q.eq("kind", kind))
79
+ .order("desc")
80
+ .paginate(args.paginationOpts)
81
+ : await db
82
+ .query("entries")
83
+ .withIndex("by_kind_status_upvotes", (q) => q.eq("kind", kind).eq("status", status))
84
+ .order("desc")
85
+ .paginate(args.paginationOpts)
86
+ : status === undefined
87
+ ? await db
88
+ .query("entries")
89
+ .withIndex("by_kind", (q) => q.eq("kind", kind))
90
+ .order("desc")
61
91
  .paginate(args.paginationOpts)
62
92
  : await db
63
93
  .query("entries")
94
+ .withIndex("by_kind_status", (q) => q.eq("kind", kind).eq("status", status))
64
95
  .order("desc")
65
96
  .paginate(args.paginationOpts);
97
+ }
98
+ else if (args.sort === "top") {
99
+ if (status === undefined) {
100
+ const streams = kinds.map((kind) => stream(ctx.db, schema)
101
+ .query("entries")
102
+ .withIndex("by_kind_upvotes", (q) => q.eq("kind", kind))
103
+ .order("desc"));
104
+ result = await mergedStream(streams, [
105
+ "upvoteCount",
106
+ "_creationTime",
107
+ ]).paginate(args.paginationOpts);
108
+ }
109
+ else {
110
+ const streams = kinds.map((kind) => stream(ctx.db, schema)
111
+ .query("entries")
112
+ .withIndex("by_kind_status_upvotes", (q) => q.eq("kind", kind).eq("status", status))
113
+ .order("desc"));
114
+ result = await mergedStream(streams, [
115
+ "upvoteCount",
116
+ "_creationTime",
117
+ ]).paginate(args.paginationOpts);
118
+ }
119
+ }
120
+ else if (status === undefined) {
121
+ const streams = kinds.map((kind) => stream(ctx.db, schema)
122
+ .query("entries")
123
+ .withIndex("by_kind", (q) => q.eq("kind", kind))
124
+ .order("desc"));
125
+ result = await mergedStream(streams, ["_creationTime"]).paginate(args.paginationOpts);
126
+ }
127
+ else {
128
+ const streams = kinds.map((kind) => stream(ctx.db, schema)
129
+ .query("entries")
130
+ .withIndex("by_kind_status", (q) => q.eq("kind", kind).eq("status", status))
131
+ .order("desc"));
132
+ result = await mergedStream(streams, ["_creationTime"]).paginate(args.paginationOpts);
133
+ }
66
134
  return {
67
135
  ...result,
68
136
  page: await Promise.all(result.page.map((entry) => serializeEntry(ctx, entry, args.viewerActorId))),
@@ -88,7 +156,7 @@ export const get = query({
88
156
  export const search = query({
89
157
  args: {
90
158
  searchQuery: v.string(),
91
- kind: v.optional(entryKindValidator),
159
+ kinds: v.optional(v.array(entryKindValidator)),
92
160
  status: v.optional(entryStatusValidator),
93
161
  limit: v.number(),
94
162
  viewerActorId: v.optional(v.string()),
@@ -96,32 +164,62 @@ export const search = query({
96
164
  returns: v.array(publicEntryValidator),
97
165
  handler: async (ctx, args) => {
98
166
  const searchQuery = args.searchQuery.trim();
99
- if (searchQuery.length === 0 || args.limit <= 0)
167
+ if (searchQuery.length === 0 || args.limit <= 0) {
100
168
  return [];
101
- const { kind, status } = args;
102
- const entries = kind !== undefined && status !== undefined
103
- ? await ctx.db
104
- .query("entries")
105
- .withSearchIndex("search", (q) => q
106
- .search("searchText", searchQuery)
107
- .eq("kind", kind)
108
- .eq("status", status))
109
- .take(args.limit)
110
- : kind !== undefined
111
- ? await ctx.db
112
- .query("entries")
113
- .withSearchIndex("search", (q) => q.search("searchText", searchQuery).eq("kind", kind))
114
- .take(args.limit)
115
- : status !== undefined
169
+ }
170
+ const kinds = normalizeKindFilter(args.kinds);
171
+ const { status } = args;
172
+ let entries;
173
+ if (kinds === undefined) {
174
+ entries =
175
+ status === undefined
116
176
  ? await ctx.db
177
+ .query("entries")
178
+ .withSearchIndex("search", (q) => q.search("searchText", searchQuery))
179
+ .take(args.limit)
180
+ : await ctx.db
117
181
  .query("entries")
118
182
  .withSearchIndex("search", (q) => q.search("searchText", searchQuery).eq("status", status))
183
+ .take(args.limit);
184
+ }
185
+ else if (kinds.length === 1) {
186
+ const kind = kinds[0];
187
+ if (kind === undefined) {
188
+ throw new ConvexError("Invalid kind filter.");
189
+ }
190
+ entries =
191
+ status === undefined
192
+ ? await ctx.db
193
+ .query("entries")
194
+ .withSearchIndex("search", (q) => q.search("searchText", searchQuery).eq("kind", kind))
119
195
  .take(args.limit)
120
196
  : await ctx.db
121
197
  .query("entries")
122
- .withSearchIndex("search", (q) => q.search("searchText", searchQuery))
198
+ .withSearchIndex("search", (q) => q
199
+ .search("searchText", searchQuery)
200
+ .eq("kind", kind)
201
+ .eq("status", status))
123
202
  .take(args.limit);
124
- return Promise.all(entries.map((entry) => serializeEntry(ctx, entry, args.viewerActorId)));
203
+ }
204
+ else {
205
+ const firstKind = kinds[0];
206
+ const secondKind = kinds[1];
207
+ if (firstKind === undefined || secondKind === undefined) {
208
+ throw new ConvexError("Invalid kind filter.");
209
+ }
210
+ const searchResults = status === undefined
211
+ ? ctx.db
212
+ .query("entries")
213
+ .withSearchIndex("search", (q) => q.search("searchText", searchQuery))
214
+ : ctx.db
215
+ .query("entries")
216
+ .withSearchIndex("search", (q) => q.search("searchText", searchQuery).eq("status", status));
217
+ entries = await searchResults
218
+ // eslint-disable-next-line @convex-dev/no-filter-in-query
219
+ .filter((q) => q.or(q.eq(q.field("kind"), firstKind), q.eq(q.field("kind"), secondKind)))
220
+ .take(args.limit);
221
+ }
222
+ return await Promise.all(entries.map((entry) => serializeEntry(ctx, entry, args.viewerActorId)));
125
223
  },
126
224
  });
127
225
  export const similar = query({
@@ -134,15 +232,23 @@ export const similar = query({
134
232
  },
135
233
  returns: similarEntriesValidator,
136
234
  handler: async (ctx, args) => {
137
- if (args.limit <= 0)
138
- return { exact: [], similar: [] };
235
+ if (args.limit <= 0) {
236
+ return {
237
+ exact: [],
238
+ similar: [],
239
+ };
240
+ }
139
241
  const title = args.title.trim();
140
242
  const body = args.body.trim();
141
- const { kind } = args;
243
+ const kind = args.kind;
142
244
  if (title.length === 0 && body.length === 0) {
143
- return { exact: [], similar: [] };
245
+ return {
246
+ exact: [],
247
+ similar: [],
248
+ };
144
249
  }
145
250
  const normalizedTitle = normalizeTitle(title);
251
+ // Exact normalized-title matches always consume the available limit first.
146
252
  const exactDocs = title.length === 0
147
253
  ? []
148
254
  : kind === undefined
@@ -154,25 +260,40 @@ export const similar = query({
154
260
  .query("entries")
155
261
  .withIndex("by_kind_normalized_title", (q) => q.eq("kind", kind).eq("normalizedTitle", normalizedTitle))
156
262
  .take(args.limit);
157
- const exactIds = new Set(exactDocs.map((entry) => entry._id));
263
+ const exact = await Promise.all(exactDocs.map((entry) => serializeEntry(ctx, entry, args.viewerActorId)));
264
+ const remainingLimit = args.limit - exactDocs.length;
265
+ if (remainingLimit <= 0) {
266
+ return {
267
+ exact,
268
+ similar: [],
269
+ };
270
+ }
158
271
  const searchText = `${title}\n${body}`.trim();
159
- const similarDocs = searchText.length === 0
160
- ? []
161
- : kind === undefined
162
- ? await ctx.db
163
- .query("entries")
164
- .withSearchIndex("search", (q) => q.search("searchText", searchText))
165
- .take(args.limit + exactIds.size)
166
- : await ctx.db
167
- .query("entries")
168
- .withSearchIndex("search", (q) => q.search("searchText", searchText).eq("kind", kind))
169
- .take(args.limit + exactIds.size);
170
- const similarFiltered = similarDocs
272
+ if (searchText.length === 0) {
273
+ return {
274
+ exact,
275
+ similar: [],
276
+ };
277
+ }
278
+ const exactIds = new Set(exactDocs.map((entry) => entry._id));
279
+ // We fetch enough candidates to account for exact matches also appearing
280
+ // in the full-text search results. Those duplicates are removed below.
281
+ const candidateLimit = remainingLimit + exactIds.size;
282
+ const similarDocs = kind === undefined
283
+ ? await ctx.db
284
+ .query("entries")
285
+ .withSearchIndex("search", (q) => q.search("searchText", searchText))
286
+ .take(candidateLimit)
287
+ : await ctx.db
288
+ .query("entries")
289
+ .withSearchIndex("search", (q) => q.search("searchText", searchText).eq("kind", kind))
290
+ .take(candidateLimit);
291
+ const similarDocsWithoutExactMatches = similarDocs
171
292
  .filter((entry) => !exactIds.has(entry._id))
172
- .slice(0, args.limit);
293
+ .slice(0, remainingLimit);
173
294
  return {
174
- exact: await Promise.all(exactDocs.map((entry) => serializeEntry(ctx, entry, args.viewerActorId))),
175
- similar: await Promise.all(similarFiltered.map((entry) => serializeEntry(ctx, entry, args.viewerActorId))),
295
+ exact,
296
+ similar: await Promise.all(similarDocsWithoutExactMatches.map((entry) => serializeEntry(ctx, entry, args.viewerActorId))),
176
297
  };
177
298
  },
178
299
  });
@@ -195,7 +316,7 @@ export const create = mutation({
195
316
  }
196
317
  const title = normalizeRequiredText(args.title, "Title", args.maxTitleLength);
197
318
  const body = normalizeRequiredText(args.body, "Body", args.maxBodyLength);
198
- return await ctx.db.insert("entries", {
319
+ const entry = await ctx.db.insert("entries", {
199
320
  actorId: args.actorId,
200
321
  kind: args.kind,
201
322
  status: args.defaultStatus,
@@ -203,9 +324,14 @@ export const create = mutation({
203
324
  body,
204
325
  normalizedTitle: normalizeTitle(title),
205
326
  searchText: `${title}\n${body}`,
206
- upvoteCount: 0,
327
+ upvoteCount: 1,
207
328
  commentCount: 0,
208
329
  });
330
+ await ctx.db.insert("reactions", {
331
+ actorId: args.actorId,
332
+ entryId: entry,
333
+ });
334
+ return entry;
209
335
  },
210
336
  });
211
337
  export const update = mutation({
@@ -1 +1 @@
1
- {"version":3,"file":"entries.js","sourceRoot":"","sources":["../../src/component/entries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entries.js","sourceRoot":"","sources":["../../src/component/entries.ts"],"names":[],"mappings":"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"}
@@ -165,12 +165,163 @@ export declare const similarEntriesValidator: import("convex/values").VObject<{
165
165
  viewerHasUpvoted: import("convex/values").VBoolean<boolean, "required">;
166
166
  }, "required", "id" | "creationTime" | "actorId" | "kind" | "status" | "title" | "body" | "upvoteCount" | "commentCount" | "updatedAt" | "viewerHasUpvoted">, "required">;
167
167
  }, "required", "exact" | "similar">;
168
+ /**
169
+ * Category of feedback represented by an entry.
170
+ *
171
+ * - `"feedback"` — general feedback that is not specifically a bug or feature request.
172
+ * - `"feature_request"` — a request for new or changed functionality.
173
+ * - `"bug_report"` — a report describing incorrect or broken behavior.
174
+ */
168
175
  export type EntryKind = Infer<typeof entryKindValidator>;
176
+ /**
177
+ * Workflow state of a feedback entry.
178
+ *
179
+ * Status values are fixed by the component so consumers can rely on a stable,
180
+ * fully typed lifecycle. UI labels and presentation can be customized.
181
+ */
169
182
  export type EntryStatus = Infer<typeof entryStatusValidator>;
183
+ /**
184
+ * Server-side ordering strategy for feedback entries.
185
+ *
186
+ * - `"top"` — entries with the most upvotes first, with creation time used as
187
+ * the deterministic tie-breaker.
188
+ * - `"newest"` — newest entries first.
189
+ */
170
190
  export type EntrySort = Infer<typeof entrySortValidator>;
191
+ /**
192
+ * Server-side ordering strategy for comments and replies.
193
+ *
194
+ * - `"top"` — comments with the most likes first, with creation time used as
195
+ * the deterministic tie-breaker.
196
+ * - `"newest"` — newest comments first.
197
+ * - `"oldest"` — oldest comments first.
198
+ */
171
199
  export type CommentSort = Infer<typeof commentSortValidator>;
200
+ /**
201
+ * Authenticated or anonymous actor resolved by the host application.
202
+ *
203
+ * The component does not access the host application's authentication system
204
+ * directly. The host resolves its current user/session into this shape.
205
+ *
206
+ * @property id
207
+ * Stable identifier for the actor. This can be a Clerk ID, Convex Auth ID,
208
+ * application user ID, anonymous installation ID, or another stable
209
+ * host-controlled identifier.
210
+ *
211
+ * @property isModerator
212
+ * Whether the actor can perform moderator-only actions such as changing entry
213
+ * status or modifying content they do not own.
214
+ */
172
215
  export type FeedbackActor = Infer<typeof actorValidator>;
216
+ /**
217
+ * Public representation of a feedback, feature-request, or bug-report entry.
218
+ *
219
+ * @property id
220
+ * Public component document identifier.
221
+ *
222
+ * @property creationTime
223
+ * Convex document creation timestamp in milliseconds since the Unix epoch.
224
+ *
225
+ * @property actorId
226
+ * Stable identifier of the actor who created the entry.
227
+ *
228
+ * @property kind
229
+ * Entry category.
230
+ *
231
+ * @property status
232
+ * Current workflow status.
233
+ *
234
+ * @property title
235
+ * User-provided entry title.
236
+ *
237
+ * @property body
238
+ * User-provided entry description.
239
+ *
240
+ * @property upvoteCount
241
+ * Denormalized number of actors currently upvoting this entry.
242
+ *
243
+ * @property commentCount
244
+ * Denormalized total number of comments belonging to the entry, including
245
+ * nested replies.
246
+ *
247
+ * @property updatedAt
248
+ * Millisecond timestamp of the most recent content update. Absent when the
249
+ * entry has never been edited.
250
+ *
251
+ * @property viewerHasUpvoted
252
+ * Whether the actor associated with the current query has upvoted the entry.
253
+ * `false` when no viewer actor is available.
254
+ */
173
255
  export type FeedbackEntry = Infer<typeof publicEntryValidator>;
256
+ /**
257
+ * Public representation of a comment or reply.
258
+ *
259
+ * Comments are returned one level at a time. Child comments are not included
260
+ * automatically; query them separately using the comment's `id` as
261
+ * `parentCommentId`.
262
+ *
263
+ * @property id
264
+ * Public component document identifier.
265
+ *
266
+ * @property creationTime
267
+ * Convex document creation timestamp in milliseconds since the Unix epoch.
268
+ *
269
+ * @property entryId
270
+ * Entry this comment belongs to.
271
+ *
272
+ * @property parentCommentId
273
+ * Direct parent comment. Absent for top-level comments.
274
+ *
275
+ * @property actorId
276
+ * Stable identifier of the actor who created the comment.
277
+ *
278
+ * @property depth
279
+ * Zero-based nesting depth. Top-level comments have depth `0`.
280
+ *
281
+ * @property body
282
+ * User-provided comment text. `null` when the comment was soft-deleted so
283
+ * nested replies can retain their place in the conversation.
284
+ *
285
+ * @property likeCount
286
+ * Denormalized number of actors currently liking this comment.
287
+ *
288
+ * @property replyCount
289
+ * Number of direct child replies. Descendants below those direct children are
290
+ * not included in this count.
291
+ *
292
+ * @property updatedAt
293
+ * Millisecond timestamp of the latest edit, when the comment has been edited.
294
+ *
295
+ * @property deletedAt
296
+ * Millisecond timestamp at which the comment was soft-deleted.
297
+ *
298
+ * @property viewerHasLiked
299
+ * Whether the actor associated with the current query likes this comment.
300
+ * `false` when no viewer actor is available.
301
+ */
174
302
  export type FeedbackComment = Infer<typeof publicCommentValidator>;
303
+ /**
304
+ * Duplicate-detection result for a proposed entry.
305
+ *
306
+ * Exact normalized-title matches always receive priority. The requested
307
+ * `limit` is a combined limit across both arrays: exact matches consume the
308
+ * available slots first and only the remaining slots can be populated by
309
+ * relevance-ranked full-text matches.
310
+ *
311
+ * For `limit: 3`:
312
+ *
313
+ * - 3 exact matches → `3 exact + 0 similar`
314
+ * - 2 exact matches → `2 exact + at most 1 similar`
315
+ * - 0 exact matches → `0 exact + at most 3 similar`
316
+ *
317
+ * An entry returned in `exact` is never repeated in `similar`.
318
+ *
319
+ * @property exact
320
+ * Entries whose normalized title exactly matches the proposed title.
321
+ *
322
+ * @property similar
323
+ * Full-text matches ordered by search relevance after exact matches have been
324
+ * removed.
325
+ */
175
326
  export type SimilarEntriesResult = Infer<typeof similarEntriesValidator>;
176
327
  //# sourceMappingURL=model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/component/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAG3C,eAAO,MAAM,kBAAkB,2RAI9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,geAOhC,CAAC;AAEF,eAAO,MAAM,kBAAkB,oLAG9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,uPAIhC,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;oCAGzB,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;4JAY/B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;gLAajC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAGlC,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACzD,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAC7D,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACzD,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAC7D,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACzD,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAC/D,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACnE,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/component/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAG3C,eAAO,MAAM,kBAAkB,2RAI9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,geAOhC,CAAC;AAEF,eAAO,MAAM,kBAAkB,oLAG9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,uPAIhC,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;oCAGzB,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;4JAY/B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;gLAajC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAGlC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE7D;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}