@vibes.diy/api-svc 5.0.1 → 5.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/cf-serve.d.ts +4 -1
  2. package/cf-serve.js +23 -0
  3. package/cf-serve.js.map +1 -1
  4. package/create-handler.d.ts +9 -1
  5. package/create-handler.js +5 -0
  6. package/create-handler.js.map +1 -1
  7. package/evento-handler-manifest.js +25 -0
  8. package/evento-handler-manifest.js.map +1 -1
  9. package/index.d.ts +8 -0
  10. package/index.js +8 -0
  11. package/index.js.map +1 -1
  12. package/intern/backend-db-callback.js +56 -0
  13. package/intern/backend-db-callback.js.map +1 -1
  14. package/intern/backend-egress.d.ts +1 -1
  15. package/intern/backend-egress.js +74 -22
  16. package/intern/backend-egress.js.map +1 -1
  17. package/intern/backend-policy-version.d.ts +1 -1
  18. package/intern/backend-policy-version.js +1 -1
  19. package/intern/delete-access-gate.d.ts +4 -0
  20. package/intern/delete-access-gate.js +46 -5
  21. package/intern/delete-access-gate.js.map +1 -1
  22. package/intern/egress-platform-list.d.ts +1 -0
  23. package/intern/egress-platform-list.js +4 -0
  24. package/intern/egress-platform-list.js.map +1 -1
  25. package/intern/emit-notification.d.ts +2 -1
  26. package/intern/emit-notification.js +1 -0
  27. package/intern/emit-notification.js.map +1 -1
  28. package/intern/ensure-app-metadata.js +4 -0
  29. package/intern/ensure-app-metadata.js.map +1 -1
  30. package/intern/ensure-chat-id.js +13 -2
  31. package/intern/ensure-chat-id.js.map +1 -1
  32. package/intern/ensure-slug-binding.js +20 -2
  33. package/intern/ensure-slug-binding.js.map +1 -1
  34. package/intern/notify-social-edge.d.ts +9 -0
  35. package/intern/notify-social-edge.js +45 -0
  36. package/intern/notify-social-edge.js.map +1 -0
  37. package/intern/pre-allocate.d.ts +1 -0
  38. package/intern/pre-allocate.js +1 -0
  39. package/intern/pre-allocate.js.map +1 -1
  40. package/intern/process-access-bindings.js +12 -2
  41. package/intern/process-access-bindings.js.map +1 -1
  42. package/intern/put-access-gate.js +25 -3
  43. package/intern/put-access-gate.js.map +1 -1
  44. package/intern/read-anonymous-seed-docs.js +1 -1
  45. package/intern/read-anonymous-seed-docs.js.map +1 -1
  46. package/intern/recovery.d.ts +7 -1
  47. package/intern/recovery.js +5 -5
  48. package/intern/recovery.js.map +1 -1
  49. package/intern/render-vibe.js +7 -3
  50. package/intern/render-vibe.js.map +1 -1
  51. package/intern/slot-assembler.d.ts +2 -0
  52. package/intern/slot-assembler.js +9 -3
  53. package/intern/slot-assembler.js.map +1 -1
  54. package/intern/write-apps.js +9 -2
  55. package/intern/write-apps.js.map +1 -1
  56. package/package.json +16 -15
  57. package/public/access-function.js +4 -1
  58. package/public/access-function.js.map +1 -1
  59. package/public/access-helpers.js +5 -0
  60. package/public/access-helpers.js.map +1 -1
  61. package/public/app-documents-broadcast.d.ts +8 -0
  62. package/public/app-documents-broadcast.js +15 -0
  63. package/public/app-documents-broadcast.js.map +1 -1
  64. package/public/app-documents-grant-delta.js +3 -2
  65. package/public/app-documents-grant-delta.js.map +1 -1
  66. package/public/app-documents-read-eventos.js +72 -13
  67. package/public/app-documents-read-eventos.js.map +1 -1
  68. package/public/app-documents-write-eventos.js +28 -11
  69. package/public/app-documents-write-eventos.js.map +1 -1
  70. package/public/app-settings-sql-upsert.js +4 -1
  71. package/public/app-settings-sql-upsert.js.map +1 -1
  72. package/public/audience-arms-store.d.ts +21 -0
  73. package/public/audience-arms-store.js +110 -0
  74. package/public/audience-arms-store.js.map +1 -0
  75. package/public/audience-channels.d.ts +14 -0
  76. package/public/audience-channels.js +71 -0
  77. package/public/audience-channels.js.map +1 -0
  78. package/public/audience-derived-trigger.d.ts +15 -0
  79. package/public/audience-derived-trigger.js +45 -0
  80. package/public/audience-derived-trigger.js.map +1 -0
  81. package/public/audience-key-patch.d.ts +16 -0
  82. package/public/audience-key-patch.js +38 -0
  83. package/public/audience-key-patch.js.map +1 -0
  84. package/public/channel-read-filter.js +4 -2
  85. package/public/channel-read-filter.js.map +1 -1
  86. package/public/curated-new-vibes.d.ts +2 -0
  87. package/public/curated-new-vibes.js +1 -1
  88. package/public/curated-new-vibes.js.map +1 -1
  89. package/public/developer-grants-flow.d.ts +5 -0
  90. package/public/developer-grants-flow.js +218 -0
  91. package/public/developer-grants-flow.js.map +1 -0
  92. package/public/developer-grants.d.ts +12 -0
  93. package/public/developer-grants.js +40 -0
  94. package/public/developer-grants.js.map +1 -0
  95. package/public/ensure-app-settings.js +69 -3
  96. package/public/ensure-app-settings.js.map +1 -1
  97. package/public/grant-reduce.d.ts +4 -2
  98. package/public/grant-reduce.js +11 -3
  99. package/public/grant-reduce.js.map +1 -1
  100. package/public/home-leaderboard.d.ts +2 -0
  101. package/public/home-leaderboard.js +1 -1
  102. package/public/home-leaderboard.js.map +1 -1
  103. package/public/invite-unsubscribe.d.ts +3 -0
  104. package/public/invite-unsubscribe.js +31 -0
  105. package/public/invite-unsubscribe.js.map +1 -0
  106. package/public/related-vibes.d.ts +3 -0
  107. package/public/related-vibes.js +134 -0
  108. package/public/related-vibes.js.map +1 -0
  109. package/public/serv-entry-point.js +2 -2
  110. package/public/serv-entry-point.js.map +1 -1
  111. package/public/social-flow.d.ts +21 -0
  112. package/public/social-flow.js +765 -0
  113. package/public/social-flow.js.map +1 -0
  114. package/public/social-invite-flow.d.ts +3 -0
  115. package/public/social-invite-flow.js +73 -0
  116. package/public/social-invite-flow.js.map +1 -0
  117. package/public/social-invite-signup-match.d.ts +6 -0
  118. package/public/social-invite-signup-match.js +38 -0
  119. package/public/social-invite-signup-match.js.map +1 -0
  120. package/public/social-invite-store.d.ts +70 -0
  121. package/public/social-invite-store.js +172 -0
  122. package/public/social-invite-store.js.map +1 -0
  123. package/public/social-store.d.ts +109 -0
  124. package/public/social-store.js +469 -0
  125. package/public/social-store.js.map +1 -0
  126. package/public/who-am-i.js +5 -3
  127. package/public/who-am-i.js.map +1 -1
  128. package/svc-ws-send-provider.d.ts +2 -0
  129. package/svc-ws-send-provider.js +2 -0
  130. package/svc-ws-send-provider.js.map +1 -1
  131. package/types.d.ts +20 -1
  132. package/types.js.map +1 -1
  133. package/usage-report/README.md +1 -0
  134. package/usage-report/vibe-usage.py +171 -0
@@ -0,0 +1,469 @@
1
+ import { and, eq, inArray, notExists, or } from "drizzle-orm/sql/expressions";
2
+ import { sql } from "drizzle-orm";
3
+ import { exception2Result, Result } from "@adviser/cement";
4
+ import { ActiveEntry, isActiveAudiencePolicy, isActiveSocial, parseArrayWarning, } from "@vibes.diy/api-types";
5
+ import { armedSubjects } from "./audience-arms-store.js";
6
+ export class SocialBlockedError extends Error {
7
+ a;
8
+ b;
9
+ constructor(a, b) {
10
+ super(`blocked: ${a} <-> ${b}`);
11
+ this.a = a;
12
+ this.b = b;
13
+ this.name = "SocialBlockedError";
14
+ }
15
+ }
16
+ export class SelfFollowError extends Error {
17
+ handle;
18
+ constructor(handle) {
19
+ super(`cannot follow self: ${handle}`);
20
+ this.handle = handle;
21
+ this.name = "SelfFollowError";
22
+ }
23
+ }
24
+ function now() {
25
+ return new Date().toISOString();
26
+ }
27
+ function withDb(vctx, db) {
28
+ return { ...vctx, sql: { ...vctx.sql, db } };
29
+ }
30
+ async function isBlockedPair(vctx, a, b) {
31
+ const t = vctx.sql.tables.socialBlocks;
32
+ const rows = await vctx.sql.db
33
+ .select({ blockerHandle: t.blockerHandle })
34
+ .from(t)
35
+ .where(or(and(eq(t.blockerHandle, a), eq(t.blockedHandle, b)), and(eq(t.blockerHandle, b), eq(t.blockedHandle, a))))
36
+ .limit(1);
37
+ return rows.length > 0;
38
+ }
39
+ function blockPairSubquery(vctx, a, b) {
40
+ const t = vctx.sql.tables.socialBlocks;
41
+ return vctx.sql.db
42
+ .select({ one: sql `1` })
43
+ .from(t)
44
+ .where(or(and(eq(t.blockerHandle, a), eq(t.blockedHandle, b)), and(eq(t.blockerHandle, b), eq(t.blockedHandle, a))));
45
+ }
46
+ export function socialPairLockKey(a, b) {
47
+ const [x, y] = a < b ? [a, b] : [b, a];
48
+ return JSON.stringify(["social-pair", x, y]);
49
+ }
50
+ async function lockPair(vctx, a, b) {
51
+ if (vctx.sql.flavour !== "pg")
52
+ return;
53
+ const pgDb = vctx.sql.db;
54
+ await pgDb.execute(sql `SELECT pg_advisory_xact_lock(hashtextextended(${socialPairLockKey(a, b)}, 0))`);
55
+ }
56
+ function runReturning(db, flavour, stmt) {
57
+ if (flavour === "pg") {
58
+ const pgDb = db;
59
+ return pgDb.execute(stmt);
60
+ }
61
+ return Promise.resolve(db.run(stmt));
62
+ }
63
+ function returnedRows(result) {
64
+ const r = result;
65
+ if (Array.isArray(r?.rows))
66
+ return r.rows;
67
+ if (Array.isArray(r?.results))
68
+ return r.results;
69
+ return Array.isArray(result) ? result : [];
70
+ }
71
+ export async function insertEdgeGuarded(vctx, { follower, followee, state }) {
72
+ const ts = now();
73
+ const stmt = sql `
74
+ INSERT INTO "SocialEdges" ("followerHandle","followeeHandle","state","created","updated")
75
+ SELECT ${follower}, ${followee}, ${state}, ${ts}, ${ts}
76
+ WHERE NOT EXISTS (
77
+ SELECT 1 FROM "SocialBlocks"
78
+ WHERE ("blockerHandle" = ${follower} AND "blockedHandle" = ${followee})
79
+ OR ("blockerHandle" = ${followee} AND "blockedHandle" = ${follower})
80
+ )
81
+ RETURNING "state"
82
+ `;
83
+ const result = await runReturning(vctx.sql.db, vctx.sql.flavour, stmt);
84
+ return returnedRows(result).length > 0;
85
+ }
86
+ function parseEntries(settings) {
87
+ const { filtered } = parseArrayWarning(settings ?? [], ActiveEntry);
88
+ return filtered;
89
+ }
90
+ export async function isHandlePrivate(vctx, handle) {
91
+ const t = vctx.sql.tables.handleSettings;
92
+ const row = await vctx.sql.db
93
+ .select({ settings: t.settings })
94
+ .from(t)
95
+ .where(eq(t.handle, handle))
96
+ .limit(1)
97
+ .then((r) => r[0]);
98
+ if (row === undefined)
99
+ return false;
100
+ const social = parseEntries(row.settings).find(isActiveSocial);
101
+ return social?.private === true;
102
+ }
103
+ export async function setHandlePrivacy(vctx, { handle, private: priv, userId }) {
104
+ const t = vctx.sql.tables.handleSettings;
105
+ const row = await vctx.sql.db
106
+ .select()
107
+ .from(t)
108
+ .where(eq(t.handle, handle))
109
+ .limit(1)
110
+ .then((r) => r[0]);
111
+ const entries = row === undefined ? [] : parseEntries(row.settings);
112
+ const next = { type: "active.social", private: priv };
113
+ const idx = entries.findIndex(isActiveSocial);
114
+ if (idx >= 0) {
115
+ entries[idx] = next;
116
+ }
117
+ else {
118
+ entries.push(next);
119
+ }
120
+ if (row === undefined) {
121
+ await vctx.sql.db.insert(t).values({ handle, userId, settings: entries, updated: now(), created: now() });
122
+ }
123
+ else {
124
+ await vctx.sql.db.update(t).set({ settings: entries, updated: now() }).where(eq(t.handle, handle));
125
+ }
126
+ let activated = [];
127
+ if (priv === false) {
128
+ const e = vctx.sql.tables.socialEdges;
129
+ const rows = await vctx.sql.db
130
+ .update(e)
131
+ .set({ state: "active", updated: now() })
132
+ .where(and(eq(e.followeeHandle, handle), eq(e.state, "requested")))
133
+ .returning({
134
+ followerHandle: e.followerHandle,
135
+ followeeHandle: e.followeeHandle,
136
+ state: e.state,
137
+ created: e.created,
138
+ updated: e.updated,
139
+ });
140
+ activated = rows.map((r) => ({ ...r, state: r.state }));
141
+ }
142
+ return Result.Ok({ activated });
143
+ }
144
+ export async function getAudiencePolicy(vctx, handle) {
145
+ const t = vctx.sql.tables.handleSettings;
146
+ const row = await vctx.sql.db
147
+ .select({ settings: t.settings })
148
+ .from(t)
149
+ .where(eq(t.handle, handle))
150
+ .limit(1)
151
+ .then((r) => r[0]);
152
+ if (row === undefined)
153
+ return "ask";
154
+ const entry = parseEntries(row.settings).find(isActiveAudiencePolicy);
155
+ return entry?.policy ?? "ask";
156
+ }
157
+ export async function setAudiencePolicy(vctx, { handle, policy, userId }) {
158
+ const t = vctx.sql.tables.handleSettings;
159
+ const row = await vctx.sql.db
160
+ .select()
161
+ .from(t)
162
+ .where(eq(t.handle, handle))
163
+ .limit(1)
164
+ .then((r) => r[0]);
165
+ const entries = row === undefined ? [] : parseEntries(row.settings);
166
+ const next = { type: "active.audience-policy", policy };
167
+ const idx = entries.findIndex(isActiveAudiencePolicy);
168
+ if (idx >= 0) {
169
+ entries[idx] = next;
170
+ }
171
+ else {
172
+ entries.push(next);
173
+ }
174
+ if (row === undefined) {
175
+ await vctx.sql.db.insert(t).values({ handle, userId, settings: entries, updated: now(), created: now() });
176
+ }
177
+ else {
178
+ await vctx.sql.db.update(t).set({ settings: entries, updated: now() }).where(eq(t.handle, handle));
179
+ }
180
+ }
181
+ export async function followHandle(vctx, pair) {
182
+ const { follower, followee } = pair;
183
+ if (follower === followee)
184
+ return Result.Err(new SelfFollowError(follower));
185
+ const t = vctx.sql.tables.socialEdges;
186
+ return await vctx.sql.db.transaction(async (tx) => {
187
+ await lockPair(withDb(vctx, tx), follower, followee);
188
+ const blocked = await isBlockedPair(withDb(vctx, tx), follower, followee);
189
+ if (blocked === true)
190
+ return Result.Err(new SocialBlockedError(follower, followee));
191
+ const existing = await tx
192
+ .select({ state: t.state })
193
+ .from(t)
194
+ .where(and(eq(t.followerHandle, follower), eq(t.followeeHandle, followee)))
195
+ .limit(1)
196
+ .then((r) => r[0]);
197
+ if (existing !== undefined)
198
+ return Result.Ok({ state: existing.state, created: false });
199
+ const priv = await isHandlePrivate(withDb(vctx, tx), followee);
200
+ const state = priv === true ? "requested" : "active";
201
+ const inserted = await insertEdgeGuarded(withDb(vctx, tx), { follower, followee, state });
202
+ if (inserted === false)
203
+ return Result.Err(new SocialBlockedError(follower, followee));
204
+ return Result.Ok({ state, created: true });
205
+ });
206
+ }
207
+ export async function approveFollower(vctx, pair) {
208
+ const { follower, followee } = pair;
209
+ const t = vctx.sql.tables.socialEdges;
210
+ await vctx.sql.db.transaction(async (tx) => {
211
+ const txCtx = withDb(vctx, tx);
212
+ await lockPair(txCtx, follower, followee);
213
+ await tx
214
+ .update(t)
215
+ .set({ state: "active", updated: now() })
216
+ .where(and(eq(t.followerHandle, follower), eq(t.followeeHandle, followee), eq(t.state, "requested"), notExists(blockPairSubquery(txCtx, follower, followee))));
217
+ });
218
+ return Result.Ok(undefined);
219
+ }
220
+ export async function establishMutualActiveEdges(vctx, a, b) {
221
+ if (a === b)
222
+ return Result.Err(new SelfFollowError(a));
223
+ const t = vctx.sql.tables.socialEdges;
224
+ return await vctx.sql.db.transaction(async (tx) => {
225
+ const txCtx = withDb(vctx, tx);
226
+ await lockPair(txCtx, a, b);
227
+ const activeEdges = [];
228
+ const directions = [
229
+ { follower: a, followee: b },
230
+ { follower: b, followee: a },
231
+ ];
232
+ for (const pair of directions) {
233
+ const existing = await tx
234
+ .select({ state: t.state })
235
+ .from(t)
236
+ .where(and(eq(t.followerHandle, pair.follower), eq(t.followeeHandle, pair.followee)))
237
+ .limit(1)
238
+ .then((r) => r[0]);
239
+ if (existing === undefined) {
240
+ const inserted = await insertEdgeGuarded(txCtx, { ...pair, state: "active" });
241
+ if (inserted === true)
242
+ activeEdges.push(pair);
243
+ }
244
+ else if (existing.state !== "active") {
245
+ const upgraded = await tx
246
+ .update(t)
247
+ .set({ state: "active", updated: now() })
248
+ .where(and(eq(t.followerHandle, pair.follower), eq(t.followeeHandle, pair.followee), eq(t.state, "requested"), notExists(blockPairSubquery(txCtx, pair.follower, pair.followee))))
249
+ .returning({ state: t.state });
250
+ if (upgraded.length > 0)
251
+ activeEdges.push(pair);
252
+ }
253
+ }
254
+ return Result.Ok({ activeEdges });
255
+ });
256
+ }
257
+ export async function unfollowHandle(vctx, pair) {
258
+ const t = vctx.sql.tables.socialEdges;
259
+ await vctx.sql.db.delete(t).where(and(eq(t.followerHandle, pair.follower), eq(t.followeeHandle, pair.followee)));
260
+ return Result.Ok(undefined);
261
+ }
262
+ export async function removeFollower(vctx, pair) {
263
+ return unfollowHandle(vctx, pair);
264
+ }
265
+ export async function blockHandle(vctx, pair) {
266
+ const { blocker, blocked } = pair;
267
+ const b = vctx.sql.tables.socialBlocks;
268
+ const e = vctx.sql.tables.socialEdges;
269
+ await vctx.sql.db.transaction(async (tx) => {
270
+ await lockPair(withDb(vctx, tx), blocker, blocked);
271
+ await tx.insert(b).values({ blockerHandle: blocker, blockedHandle: blocked, created: now() }).onConflictDoNothing();
272
+ await tx
273
+ .delete(e)
274
+ .where(or(and(eq(e.followerHandle, blocker), eq(e.followeeHandle, blocked)), and(eq(e.followerHandle, blocked), eq(e.followeeHandle, blocker))));
275
+ });
276
+ return Result.Ok(undefined);
277
+ }
278
+ export async function unblockHandle(vctx, pair) {
279
+ const b = vctx.sql.tables.socialBlocks;
280
+ await vctx.sql.db.delete(b).where(and(eq(b.blockerHandle, pair.blocker), eq(b.blockedHandle, pair.blocked)));
281
+ return Result.Ok(undefined);
282
+ }
283
+ export async function getRelationship(vctx, { self, other }) {
284
+ const t = vctx.sql.tables.socialEdges;
285
+ const rows = await vctx.sql.db
286
+ .select()
287
+ .from(t)
288
+ .where(or(and(eq(t.followerHandle, self), eq(t.followeeHandle, other)), and(eq(t.followerHandle, other), eq(t.followeeHandle, self))));
289
+ const fwd = rows.find((r) => r.followerHandle === self);
290
+ const rev = rows.find((r) => r.followerHandle === other);
291
+ return {
292
+ following: fwd?.state ?? null,
293
+ followedBy: rev?.state ?? null,
294
+ blocked: await isBlockedPair(vctx, self, other),
295
+ };
296
+ }
297
+ export async function listSocial(vctx, handle) {
298
+ const t = vctx.sql.tables.socialEdges;
299
+ const b = vctx.sql.tables.socialBlocks;
300
+ const out = await vctx.sql.db.select().from(t).where(eq(t.followerHandle, handle));
301
+ const inc = await vctx.sql.db.select().from(t).where(eq(t.followeeHandle, handle));
302
+ const blocks = await vctx.sql.db.select().from(b).where(eq(b.blockerHandle, handle));
303
+ const entry = (r, other) => ({
304
+ handle: r[other],
305
+ state: r.state,
306
+ created: r.created,
307
+ updated: r.updated,
308
+ });
309
+ return {
310
+ following: out.map((r) => entry(r, "followeeHandle")),
311
+ followers: inc.filter((r) => r.state === "active").map((r) => entry(r, "followerHandle")),
312
+ requests: inc.filter((r) => r.state === "requested").map((r) => entry(r, "followerHandle")),
313
+ blocked: blocks.map((r) => ({ handle: r.blockedHandle, created: r.created })),
314
+ };
315
+ }
316
+ export async function resolveAudienceMembership(vctx, { handle, subjects, ownerHandle, appSlug }) {
317
+ const followerOf = new Set();
318
+ const mutualWith = new Set();
319
+ if (subjects.length === 0)
320
+ return { followerOf, mutualWith };
321
+ if (subjects.includes(handle)) {
322
+ followerOf.add(handle);
323
+ mutualWith.add(handle);
324
+ }
325
+ const others = subjects.filter((s) => s !== handle);
326
+ if (others.length === 0)
327
+ return { followerOf, mutualWith };
328
+ const armed = await armedSubjects(vctx, { ownerHandle, appSlug, subjects: others });
329
+ const armedOthers = others.filter((s) => armed.has(s));
330
+ if (armedOthers.length === 0)
331
+ return { followerOf, mutualWith };
332
+ const t = vctx.sql.tables.socialEdges;
333
+ const fwd = await vctx.sql.db
334
+ .select({ followeeHandle: t.followeeHandle })
335
+ .from(t)
336
+ .where(and(eq(t.followerHandle, handle), inArray(t.followeeHandle, armedOthers), eq(t.state, "active")));
337
+ for (const r of fwd)
338
+ followerOf.add(r.followeeHandle);
339
+ if (followerOf.size > 0) {
340
+ const rev = await vctx.sql.db
341
+ .select({ followerHandle: t.followerHandle })
342
+ .from(t)
343
+ .where(and(inArray(t.followerHandle, [...followerOf]), eq(t.followeeHandle, handle), eq(t.state, "active")));
344
+ for (const r of rev)
345
+ mutualWith.add(r.followerHandle);
346
+ }
347
+ return { followerOf, mutualWith };
348
+ }
349
+ export async function resolveAudienceMembershipFailClosed(vctx, reader) {
350
+ const r = await exception2Result(() => resolveAudienceMembership(vctx, reader));
351
+ if (r.isErr()) {
352
+ console.error("audience membership resolution failed (fail closed, real channels only):", r.Err());
353
+ return { followerOf: new Set(), mutualWith: new Set() };
354
+ }
355
+ return r.Ok();
356
+ }
357
+ export async function importFriendEdges(vctx, scope) {
358
+ const t = vctx.sql.tables.appDocuments;
359
+ const rows = await vctx.sql.db
360
+ .select({ docId: t.docId, seq: t.seq, data: t.data, deleted: t.deleted })
361
+ .from(t)
362
+ .where(and(eq(t.ownerHandle, scope.ownerHandle), eq(t.appSlug, scope.appSlug), eq(t.dbName, scope.dbName)));
363
+ const latest = new Map();
364
+ for (const row of rows) {
365
+ const prev = latest.get(row.docId);
366
+ if (prev === undefined || row.seq > prev.seq)
367
+ latest.set(row.docId, row);
368
+ }
369
+ const counts = {
370
+ docsScanned: latest.size,
371
+ friendDocs: 0,
372
+ malformedDocs: 0,
373
+ pairs: 0,
374
+ edgesCreated: 0,
375
+ skippedExisting: 0,
376
+ skippedBlocked: 0,
377
+ skippedUnknownHandle: 0,
378
+ };
379
+ const candidatePairs = new Map();
380
+ for (const row of latest.values()) {
381
+ if (row.deleted === 1)
382
+ continue;
383
+ const doc = row.data;
384
+ if (doc === null || typeof doc !== "object" || doc.type !== "friend")
385
+ continue;
386
+ counts.friendDocs = counts.friendDocs + 1;
387
+ const a = typeof doc.userId === "string" ? doc.userId.trim() : "";
388
+ const b = typeof doc.friendSlug === "string" ? doc.friendSlug.trim() : "";
389
+ if (a.length === 0 || b.length === 0 || a === b) {
390
+ counts.malformedDocs = counts.malformedDocs + 1;
391
+ continue;
392
+ }
393
+ candidatePairs.set([a, b].sort().join(" "), { follower: a, followee: b });
394
+ }
395
+ const allHandles = new Set();
396
+ for (const p of candidatePairs.values()) {
397
+ allHandles.add(p.follower);
398
+ allHandles.add(p.followee);
399
+ }
400
+ const known = new Set();
401
+ if (allHandles.size > 0) {
402
+ const hb = vctx.sql.tables.handleBinding;
403
+ const handleRows = await vctx.sql.db
404
+ .select({ handle: hb.handle })
405
+ .from(hb)
406
+ .where(inArray(hb.handle, [...allHandles]));
407
+ for (const r of handleRows)
408
+ known.add(r.handle);
409
+ }
410
+ for (const pair of candidatePairs.values()) {
411
+ const { follower: a, followee: b } = pair;
412
+ if (known.has(a) === false || known.has(b) === false) {
413
+ counts.skippedUnknownHandle = counts.skippedUnknownHandle + 1;
414
+ continue;
415
+ }
416
+ counts.pairs = counts.pairs + 1;
417
+ if (scope.dryRun === true) {
418
+ const blocked = await isBlockedPair(vctx, a, b);
419
+ if (blocked === true) {
420
+ counts.skippedBlocked = counts.skippedBlocked + 1;
421
+ continue;
422
+ }
423
+ const touched = await pairHasAnyEdge(vctx, a, b);
424
+ if (touched === true) {
425
+ counts.skippedExisting = counts.skippedExisting + 1;
426
+ continue;
427
+ }
428
+ counts.edgesCreated = counts.edgesCreated + 2;
429
+ continue;
430
+ }
431
+ await vctx.sql.db.transaction(async (tx) => {
432
+ const txCtx = withDb(vctx, tx);
433
+ await lockPair(txCtx, a, b);
434
+ const blocked = await isBlockedPair(txCtx, a, b);
435
+ if (blocked === true) {
436
+ counts.skippedBlocked = counts.skippedBlocked + 1;
437
+ return;
438
+ }
439
+ const touched = await pairHasAnyEdge(txCtx, a, b);
440
+ if (touched === true) {
441
+ counts.skippedExisting = counts.skippedExisting + 1;
442
+ return;
443
+ }
444
+ for (const [f, g] of [
445
+ [a, b],
446
+ [b, a],
447
+ ]) {
448
+ const inserted = await insertEdgeGuarded(txCtx, { follower: f, followee: g, state: "active" });
449
+ if (inserted === true) {
450
+ counts.edgesCreated = counts.edgesCreated + 1;
451
+ }
452
+ else {
453
+ counts.skippedBlocked = counts.skippedBlocked + 1;
454
+ }
455
+ }
456
+ });
457
+ }
458
+ return counts;
459
+ }
460
+ async function pairHasAnyEdge(vctx, a, b) {
461
+ const t = vctx.sql.tables.socialEdges;
462
+ const rows = await vctx.sql.db
463
+ .select({ state: t.state })
464
+ .from(t)
465
+ .where(or(and(eq(t.followerHandle, a), eq(t.followeeHandle, b)), and(eq(t.followerHandle, b), eq(t.followeeHandle, a))))
466
+ .limit(1);
467
+ return rows.length > 0;
468
+ }
469
+ //# sourceMappingURL=social-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"social-store.js","sourceRoot":"","sources":["../../jsr/public/social-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,GAAG,EAAY,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EACL,WAAW,EAKX,sBAAsB,EACtB,cAAc,EACd,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAoDzD,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAEzB,CAAC;IACD,CAAC;IAFnB,YACkB,CAAS,EACT,CAAS;QAEzB,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;iBAHhB,CAAC;iBACD,CAAC;QAGjB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAGD,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACZ,MAAM;IAAlC,YAA4B,MAAc;QACxC,KAAK,CAAC,uBAAuB,MAAM,EAAE,CAAC,CAAC;sBADb,MAAM;QAEhC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,SAAS,GAAG;IACV,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAID,SAAS,MAAM,CAAC,IAAoB,EAAE,EAAe;IACnD,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAoB,EAAE,CAAS,EAAE,CAAS;IACrE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;IACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;SAC3B,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;SAC1C,IAAI,CAAC,CAAC,CAAC;SACP,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SACnH,KAAK,CAAC,CAAC,CAAC,CAAC;IACZ,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACzB,CAAC;AAID,SAAS,iBAAiB,CAAC,IAAoB,EAAE,CAAS,EAAE,CAAS;IACnE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;IACvC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE;SACf,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAA,GAAG,EAAE,CAAC;SACvB,IAAI,CAAC,CAAC,CAAC;SACP,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzH,CAAC;AASD,MAAM,UAAU,iBAAiB,CAAC,CAAS,EAAE,CAAS;IACpD,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAcD,KAAK,UAAU,QAAQ,CAAC,IAAoB,EAAE,CAAS,EAAE,CAAS;IAChE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,KAAK,IAAI;QAAE,OAAO;IAItC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAA4D,CAAC;IACnF,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAA,iDAAiD,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AACzG,CAAC;AAMD,SAAS,YAAY,CAAC,EAAe,EAAE,OAAyC,EAAE,IAAS;IACzF,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,EAA4D,CAAC;QAC1E,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,CAAC;AAID,SAAS,YAAY,CAAC,MAAe;IACnC,MAAM,CAAC,GAAG,MAA+D,CAAC;IAC1E,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC,IAAI,CAAC;IAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC;IAChD,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7C,CAAC;AAYD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAoB,EACpB,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAmC;IAE9D,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;IAGjB,MAAM,IAAI,GAAG,GAAG,CAAA;;aAEL,QAAQ,KAAK,QAAQ,KAAK,KAAK,KAAK,EAAE,KAAK,EAAE;;;iCAGzB,QAAQ,0BAA0B,QAAQ;iCAC1C,QAAQ,0BAA0B,QAAQ;;;GAGxE,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACzC,CAAC;AAID,SAAS,YAAY,CAAC,QAAiB;IACrC,MAAM,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAE,QAAsB,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC;IACnF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAoB,EAAE,MAAc;IACxE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC;IACzC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;SAC1B,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;SAChC,IAAI,CAAC,CAAC,CAAC;SACP,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC3B,KAAK,CAAC,CAAC,CAAC;SACR,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/D,OAAO,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;AAClC,CAAC;AAiBD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAoB,EACpB,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAuB;IAEtD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC;IACzC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;SAC1B,MAAM,EAAE;SACR,IAAI,CAAC,CAAC,CAAC;SACP,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC3B,KAAK,CAAC,CAAC,CAAC;SACR,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,OAAO,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpE,MAAM,IAAI,GAAiB,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACpE,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5G,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrG,CAAC;IACD,IAAI,SAAS,GAAoB,EAAE,CAAC;IACpC,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QAMnB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;QACtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;aAC3B,MAAM,CAAC,CAAC,CAAC;aACT,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;aACxC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;aAClE,SAAS,CAAC;YACT,cAAc,EAAE,CAAC,CAAC,cAAc;YAChC,cAAc,EAAE,CAAC,CAAC,cAAc;YAChC,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC;QACL,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAkB,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;AAClC,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAoB,EAAE,MAAc;IAC1E,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC;IACzC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;SAC1B,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;SAChC,IAAI,CAAC,CAAC,CAAC;SACP,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC3B,KAAK,CAAC,CAAC,CAAC;SACR,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACtE,OAAO,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAoB,EACpB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAA8D;IAEtF,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC;IACzC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;SAC1B,MAAM,EAAE;SACR,IAAI,CAAC,CAAC,CAAC;SACP,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC3B,KAAK,CAAC,CAAC,CAAC;SACR,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,OAAO,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpE,MAAM,IAAI,GAAyB,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,EAAE,CAAC;IAC9E,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IACtD,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5G,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrG,CAAC;AACH,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAoB,EAAE,IAAc;IACrE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACpC,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5E,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;IAKtC,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QAChD,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC1E,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QACpF,MAAM,QAAQ,GAAG,MAAM,EAAE;aACtB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;aAC1B,IAAI,CAAC,CAAC,CAAC;aACP,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;aAC1E,KAAK,CAAC,CAAC,CAAC;aACR,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACrG,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAc,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;QAChE,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAG1F,IAAI,QAAQ,KAAK,KAAK;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtF,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC;AAID,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAoB,EAAE,IAAc;IACxE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACpC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;IAKtC,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/B,MAAM,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC1C,MAAM,EAAE;aACL,MAAM,CAAC,CAAC,CAAC;aACT,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;aACxC,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,QAAQ,CAAC,EAC9B,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,QAAQ,CAAC,EAC9B,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,EACxB,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CACxD,CACF,CAAC;IACN,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAC9B,CAAC;AAiBD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,IAAoB,EACpB,CAAS,EACT,CAAS;IAET,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;IACtC,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QAChD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/B,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,MAAM,WAAW,GAAe,EAAE,CAAC;QACnC,MAAM,UAAU,GAAe;YAC7B,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;YAC5B,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;SAC7B,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,MAAM,EAAE;iBACtB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;iBAC1B,IAAI,CAAC,CAAC,CAAC;iBACP,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;iBACpF,KAAK,CAAC,CAAC,CAAC;iBACR,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC9E,IAAI,QAAQ,KAAK,IAAI;oBAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,CAAC;iBAAM,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAGvC,MAAM,QAAQ,GAAG,MAAM,EAAE;qBACtB,MAAM,CAAC,CAAC,CAAC;qBACT,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;qBACxC,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,EACnC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,EACnC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,EACxB,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAClE,CACF;qBACA,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBACjC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;oBAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAoB,EAAE,IAAc;IACvE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;IACtC,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjH,OAAO,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAC9B,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAoB,EAAE,IAAc;IACvE,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAoB,EAAE,IAAe;IACrE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAClC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;IACvC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;IAItC,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QACzC,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,mBAAmB,EAAE,CAAC;QACpH,MAAM,EAAE;aACL,MAAM,CAAC,CAAC,CAAC;aACT,KAAK,CACJ,EAAE,CACA,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,EACjE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAClE,CACF,CAAC;IACN,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAC9B,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAoB,EAAE,IAAe;IACvE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;IACvC,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7G,OAAO,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAC9B,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAoB,EACpB,EAAE,IAAI,EAAE,KAAK,EAAmC;IAEhD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;SAC3B,MAAM,EAAE;SACR,IAAI,CAAC,CAAC,CAAC;SACP,KAAK,CACJ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,CAC/H,CAAC;IACJ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC;IACzD,OAAO;QACL,SAAS,EAAG,GAAG,EAAE,KAAmB,IAAI,IAAI;QAC5C,UAAU,EAAG,GAAG,EAAE,KAAmB,IAAI,IAAI;QAC7C,OAAO,EAAE,MAAM,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;KAChD,CAAC;AACJ,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAoB,EAAE,MAAc;IACnE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;IACtC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;IACvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IACnF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;IACrF,MAAM,KAAK,GAAG,CAAC,CAAuB,EAAE,KAA0C,EAAmB,EAAE,CAAC,CAAC;QACvG,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC;QAChB,KAAK,EAAE,CAAC,CAAC,KAAkB;QAC3B,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,OAAO,EAAE,CAAC,CAAC,OAAO;KACnB,CAAC,CAAC;IACH,OAAO;QACL,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;QACrD,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;QACzF,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAC3F,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;KAC9E,CAAC;AACJ,CAAC;AAWD,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAAoB,EACpB,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAgF;IAExH,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IAC7D,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IAC3D,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACpF,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IAChE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;IACtC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;SAC1B,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC;SAC5C,IAAI,CAAC,CAAC,CAAC;SACP,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC3G,KAAK,MAAM,CAAC,IAAI,GAAG;QAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACtD,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;aAC1B,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC;aAC5C,IAAI,CAAC,CAAC,CAAC;aACP,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/G,KAAK,MAAM,CAAC,IAAI,GAAG;YAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACpC,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,mCAAmC,CACvD,IAAoB,EACpB,MAAoF;IAEpF,MAAM,CAAC,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAChF,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,0EAA0E,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACnG,OAAO,EAAE,UAAU,EAAE,IAAI,GAAG,EAAU,EAAE,UAAU,EAAE,IAAI,GAAG,EAAU,EAAE,CAAC;IAC1E,CAAC;IACD,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC;AAChB,CAAC;AA0CD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAoB,EAAE,KAA4B;IACxF,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;IACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;SAC3B,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;SACxE,IAAI,CAAC,CAAC,CAAC;SACP,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAI9G,MAAM,MAAM,GAAG,IAAI,GAAG,EAA2D,CAAC;IAClF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,MAAM,GAA4B;QACtC,WAAW,EAAE,MAAM,CAAC,IAAI;QACxB,UAAU,EAAE,CAAC;QACb,aAAa,EAAE,CAAC;QAChB,KAAK,EAAE,CAAC;QACR,YAAY,EAAE,CAAC;QACf,eAAe,EAAE,CAAC;QAClB,cAAc,EAAE,CAAC;QACjB,oBAAoB,EAAE,CAAC;KACxB,CAAC;IAIF,MAAM,cAAc,GAAG,IAAI,GAAG,EAAoB,CAAC;IACnD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAClC,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC;YAAE,SAAS;QAChC,MAAM,GAAG,GAAG,GAAG,CAAC,IAA8B,CAAC;QAC/C,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;YAAE,SAAS;QAC/E,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;QAC1C,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC;YAChD,SAAS;QACX,CAAC;QACD,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IAGD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;QACxC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC3B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC;QACzC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;aACjC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC;aAC7B,IAAI,CAAC,EAAE,CAAC;aACR,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,UAAU;YAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;QAC3C,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;QAC1C,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YACrD,MAAM,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,GAAG,CAAC,CAAC;YAC9D,SAAS;QACX,CAAC;QACD,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;QAEhC,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAChD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC;gBAClD,SAAS;YACX,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC;gBACpD,SAAS;YACX,CAAC;YACD,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;YAC9C,SAAS;QACX,CAAC;QAKD,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YACzC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/B,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC;gBAClD,OAAO;YACT,CAAC;YAUD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAClD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC;gBACpD,OAAO;YACT,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI;gBACnB,CAAC,CAAC,EAAE,CAAC,CAAC;gBACN,CAAC,CAAC,EAAE,CAAC,CAAC;aACE,EAAE,CAAC;gBACX,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC/F,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACtB,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBAGN,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAGD,KAAK,UAAU,cAAc,CAAC,IAAoB,EAAE,CAAS,EAAE,CAAS;IACtE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;SAC3B,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;SAC1B,IAAI,CAAC,CAAC,CAAC;SACP,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SACvH,KAAK,CAAC,CAAC,CAAC,CAAC;IACZ,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACzB,CAAC"}
@@ -4,6 +4,7 @@ import { isUserSettingProfile, } from "@vibes.diy/api-types";
4
4
  import { isReqVibeWhoAmI } from "@vibes.diy/vibe-types";
5
5
  import { and, eq } from "drizzle-orm";
6
6
  import { extractContribution, newSeededReduce } from "./grant-reduce.js";
7
+ import { resolveDeveloperHandles } from "./developer-grants.js";
7
8
  import { unwrapMsgBase } from "../unwrap-msg-base.js";
8
9
  import { optAuth } from "../check-auth.js";
9
10
  import { checkDocAccess } from "./access-helpers.js";
@@ -46,6 +47,7 @@ async function resolveGrants(vctx, ownerUserSlug, appSlug, viewerSlug) {
46
47
  arr.push(row);
47
48
  }
48
49
  const grants = {};
50
+ const devHandles = viewerSlug !== undefined ? await resolveDeveloperHandles(vctx, { ownerHandle: ownerUserSlug, appSlug }) : [];
49
51
  const buildEntry = (reduce) => {
50
52
  const channels = viewerSlug ? Array.from(reduce.resolveEffectiveChannels(viewerSlug)) : [];
51
53
  const publicChannels = Array.from(reduce.publicChannels);
@@ -59,7 +61,7 @@ async function resolveGrants(vctx, ownerUserSlug, appSlug, viewerSlug) {
59
61
  return { channels, publicChannels, roles };
60
62
  };
61
63
  for (const [dbName, rows] of outputsByDb) {
62
- const reduce = newSeededReduce(ownerUserSlug);
64
+ const reduce = newSeededReduce(ownerUserSlug, devHandles);
63
65
  for (const row of rows) {
64
66
  reduce.addDoc(row.docId, extractContribution(JSON.parse(row.output)));
65
67
  }
@@ -68,10 +70,10 @@ async function resolveGrants(vctx, ownerUserSlug, appSlug, viewerSlug) {
68
70
  for (const dbName of namedDbs) {
69
71
  if (grants[dbName])
70
72
  continue;
71
- grants[dbName] = buildEntry(newSeededReduce(ownerUserSlug));
73
+ grants[dbName] = buildEntry(newSeededReduce(ownerUserSlug, devHandles));
72
74
  }
73
75
  if (hasWildcard && !grants["*"]) {
74
- grants["*"] = buildEntry(newSeededReduce(ownerUserSlug));
76
+ grants["*"] = buildEntry(newSeededReduce(ownerUserSlug, devHandles));
75
77
  }
76
78
  return Object.keys(grants).length > 0 ? grants : undefined;
77
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"who-am-i.js","sourceRoot":"","sources":["../../jsr/public/who-am-i.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"who-am-i.js","sourceRoot":"","sources":["../../jsr/public/who-am-i.ts"],"names":[],"mappings":"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"}
@@ -11,8 +11,10 @@ export declare class WSSendProvider implements EventoSendProvider<W3CWebSocketEv
11
11
  readonly chatIds: Map<string, ChatIdCtx>;
12
12
  readonly subscribedDocKeys: Set<string>;
13
13
  readonly subscribedRequestGrantKeys: Set<string>;
14
+ readonly subscribedSocialKeys: Set<string>;
14
15
  readonly subscribedViewerGrantKeys: Set<string>;
15
16
  subscribedUserKey: string | undefined;
17
+ subscribedDocHandle: string | undefined;
16
18
  adminMode: boolean;
17
19
  readonly connId: string;
18
20
  constructor(ws: WebSocket, ende?: JSONEnDecoder);
@@ -7,8 +7,10 @@ export class WSSendProvider {
7
7
  chatIds = new Map();
8
8
  subscribedDocKeys = new Set();
9
9
  subscribedRequestGrantKeys = new Set();
10
+ subscribedSocialKeys = new Set();
10
11
  subscribedViewerGrantKeys = new Set();
11
12
  subscribedUserKey = undefined;
13
+ subscribedDocHandle = undefined;
12
14
  adminMode = false;
13
15
  connId = crypto.randomUUID();
14
16
  constructor(ws, ende) {
@@ -1 +1 @@
1
- {"version":3,"file":"svc-ws-send-provider.js","sourceRoot":"","sources":["../jsr/svc-ws-send-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,sBAAsB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACtH,OAAO,EAAE,OAAO,EAA4C,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAQ/B,MAAM,OAAO,cAAc;IAChB,EAAE,CAAY;IACd,IAAI,CAAgB;IACpB,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;IAQvC,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAGtC,0BAA0B,GAAG,IAAI,GAAG,EAAU,CAAC;IAG/C,yBAAyB,GAAG,IAAI,GAAG,EAAU,CAAC;IAIvD,iBAAiB,GAAuB,SAAS,CAAC;IAClD,SAAS,GAAG,KAAK,CAAC;IAKT,MAAM,GAAW,MAAM,CAAC,UAAU,EAAE,CAAC;IAC9C,YAAY,EAAa,EAAE,IAAoB;QAC7C,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,sBAAsB,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,IAAI,CAAI,GAA0D,EAAE,GAAY;QACpF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,GAAG,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC;YACzF,OAAO,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,OAAgB,CAAC;QACrB,IAAI,MAAM,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,GAAG;gBACR,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,GAAG,EAAE,EAAE;gBACP,OAAO,EAAE,GAAG;aACb,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,MAAM,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1C,OAAO,MAAM,CAAC,EAAE,CAAC,OAAuB,CAAC,CAAC;IAC5C,CAAC;CACF"}
1
+ {"version":3,"file":"svc-ws-send-provider.js","sourceRoot":"","sources":["../jsr/svc-ws-send-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,sBAAsB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACtH,OAAO,EAAE,OAAO,EAA4C,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAQ/B,MAAM,OAAO,cAAc;IAChB,EAAE,CAAY;IACd,IAAI,CAAgB;IACpB,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;IAQvC,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAGtC,0BAA0B,GAAG,IAAI,GAAG,EAAU,CAAC;IAG/C,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;IAGzC,yBAAyB,GAAG,IAAI,GAAG,EAAU,CAAC;IAIvD,iBAAiB,GAAuB,SAAS,CAAC;IAQlD,mBAAmB,GAAuB,SAAS,CAAC;IACpD,SAAS,GAAG,KAAK,CAAC;IAKT,MAAM,GAAW,MAAM,CAAC,UAAU,EAAE,CAAC;IAC9C,YAAY,EAAa,EAAE,IAAoB;QAC7C,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,sBAAsB,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,IAAI,CAAI,GAA0D,EAAE,GAAY;QACpF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,GAAG,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC;YACzF,OAAO,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,OAAgB,CAAC;QACrB,IAAI,MAAM,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,GAAG;gBACR,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,GAAG,EAAE,EAAE;gBACP,OAAO,EAAE,GAAG;aACb,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,MAAM,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1C,OAAO,MAAM,CAAC,EAAE,CAAC,OAAuB,CAAC,CAAC;IAC5C,CAAC;CACF"}