@vibes.diy/api-svc 2.2.17 → 2.2.19

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 (47) hide show
  1. package/cf-serve.js +13 -0
  2. package/cf-serve.js.map +1 -1
  3. package/create-handler.js +1 -6
  4. package/create-handler.js.map +1 -1
  5. package/default-llm-request.d.ts +1 -1
  6. package/intern/components/vibe-page.js +1 -2
  7. package/intern/components/vibe-page.js.map +1 -1
  8. package/intern/ensure-application-chat-id.d.ts +1 -1
  9. package/intern/ensure-chat-id.d.ts +7 -0
  10. package/intern/ensure-chat-id.js +4 -1
  11. package/intern/ensure-chat-id.js.map +1 -1
  12. package/intern/import-map.d.ts +2 -2
  13. package/intern/recovery.d.ts +1 -1
  14. package/intern/render-vibe.d.ts +2 -2
  15. package/intern/render-vibe.js +21 -26
  16. package/intern/render-vibe.js.map +1 -1
  17. package/package.json +12 -12
  18. package/public/ensure-app-settings.js +15 -8
  19. package/public/ensure-app-settings.js.map +1 -1
  20. package/public/fork-app.js +19 -28
  21. package/public/fork-app.js.map +1 -1
  22. package/public/list-models.js +17 -5
  23. package/public/list-models.js.map +1 -1
  24. package/public/prompt-chat-section.d.ts +2 -2
  25. package/public/report-attribution-referrers.d.ts +3 -0
  26. package/public/report-attribution-referrers.js +51 -0
  27. package/public/report-attribution-referrers.js.map +1 -0
  28. package/public/report-cache.d.ts +8 -0
  29. package/public/report-cache.js +35 -0
  30. package/public/report-cache.js.map +1 -0
  31. package/public/report-growth-memberships.d.ts +3 -0
  32. package/public/report-growth-memberships.js +118 -0
  33. package/public/report-growth-memberships.js.map +1 -0
  34. package/public/report-growth-vibes-with-data.d.ts +3 -0
  35. package/public/report-growth-vibes-with-data.js +65 -0
  36. package/public/report-growth-vibes-with-data.js.map +1 -0
  37. package/public/request-flow.js +23 -2
  38. package/public/request-flow.js.map +1 -1
  39. package/public/serv-entry-point.js +3 -2
  40. package/public/serv-entry-point.js.map +1 -1
  41. package/public/who-am-i.js +2 -1
  42. package/public/who-am-i.js.map +1 -1
  43. package/usage-report/README.md +4 -3
  44. package/usage-report/inspect-db-report.js +1 -50
  45. package/usage-report/inspect-db-report.js.map +1 -1
  46. package/vibes-msg-evento.js +4 -1
  47. package/vibes-msg-evento.js.map +1 -1
@@ -160,33 +160,6 @@ export async function forkApp(vctx, req, userId, claims) {
160
160
  if (rBump.isErr()) {
161
161
  vctx.logger.Warn().Err(rBump).Msg("bumpAppRecency failed");
162
162
  }
163
- if (skipChat) {
164
- const rReqSet = await ensureAppSettings(vctx, {
165
- type: "vibes.diy.req-ensure-app-settings",
166
- appSlug: destAppSlug,
167
- userSlug: destUserSlug,
168
- request: { enable: true },
169
- }, userId);
170
- if (rReqSet.isErr())
171
- return Result.Err(`Failed to set clone access request: ${rReqSet.Err().message}`);
172
- const rPubSet = await ensureAppSettings(vctx, {
173
- type: "vibes.diy.req-ensure-app-settings",
174
- appSlug: destAppSlug,
175
- userSlug: destUserSlug,
176
- publicAccess: { enable: false },
177
- }, userId);
178
- if (rPubSet.isErr())
179
- return Result.Err(`Failed to disable clone public access: ${rPubSet.Err().message}`);
180
- return Result.Ok({
181
- type: "vibes.diy.res-fork-app",
182
- userSlug: destUserSlug,
183
- appSlug: destAppSlug,
184
- chatId,
185
- srcFsId: src.fsId,
186
- srcUserSlug: src.userSlug,
187
- srcAppSlug: src.appSlug,
188
- });
189
- }
190
163
  const fsItems = src.fileSystem;
191
164
  const srcEntry = fsItems.find((f) => f.entryPoint && f.fileName === "/App.jsx") ?? fsItems.find((f) => f.fileName === "/App.jsx");
192
165
  if (srcEntry) {
@@ -202,13 +175,31 @@ export async function forkApp(vctx, req, userId, claims) {
202
175
  promptId,
203
176
  blockId,
204
177
  streamId: blockId,
205
- userText: `Remix of ${src.userSlug}/${src.appSlug}`,
178
+ userText: `${skipChat ? "Clone" : "Remix"} of ${src.userSlug}/${src.appSlug}`,
206
179
  files: [{ path: srcEntry.fileName, lang: "jsx", content }],
207
180
  fsRef: { appSlug: destAppSlug, userSlug: destUserSlug, mode: destMode, fsId: src.fsId },
208
181
  });
209
182
  if (rSeed.isErr())
210
183
  return Result.Err(rSeed);
211
184
  }
185
+ if (skipChat) {
186
+ const rReqSet = await ensureAppSettings(vctx, {
187
+ type: "vibes.diy.req-ensure-app-settings",
188
+ appSlug: destAppSlug,
189
+ userSlug: destUserSlug,
190
+ request: { enable: true },
191
+ }, userId);
192
+ if (rReqSet.isErr())
193
+ return Result.Err(`Failed to set clone access request: ${rReqSet.Err().message}`);
194
+ const rPubSet = await ensureAppSettings(vctx, {
195
+ type: "vibes.diy.req-ensure-app-settings",
196
+ appSlug: destAppSlug,
197
+ userSlug: destUserSlug,
198
+ publicAccess: { enable: false },
199
+ }, userId);
200
+ if (rPubSet.isErr())
201
+ return Result.Err(`Failed to disable clone public access: ${rPubSet.Err().message}`);
202
+ }
212
203
  return Result.Ok({
213
204
  type: "vibes.diy.res-fork-app",
214
205
  userSlug: destUserSlug,
@@ -1 +1 @@
1
- {"version":3,"file":"fork-app.js","sourceRoot":"","sources":["../../jsr/public/fork-app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fork-app.js","sourceRoot":"","sources":["../../jsr/public/fork-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,EAAsC,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACpI,OAAO,EAEL,UAAU,EAQV,4BAA4B,EAC5B,6BAA6B,EAC7B,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC7H,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,GAAG;SACP,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAQD,SAAS,mBAAmB,CAAC,UAAkB,EAAE,IAAY;IAC3D,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;IAC/C,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,IAAI,OAAO,KAAK,GAAG;QAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/D,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE;YAAE,SAAS;QACxC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,IAAoB,EACpB,GAAe,EACf,MAAc,EACd,MAA0E;IAG1E,IAAI,GAAyD,CAAC;IAC9D,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;aACpB,MAAM,EAAE;aACR,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;aAC1B,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,EAC1C,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,EAChD,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,CACnD,CACF;aACA,KAAK,CAAC,CAAC,CAAC;aACR,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE;aAC9B,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;aAC5G,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;aAC1B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;aAChH,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;aAClC,EAAE,CAAC,IAAI,CAAC,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;aAC3B,MAAM,CAAC;YACN,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;YACrC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM;YACnC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ;YACvC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU;YAC3C,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;YAC/B,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;YAC7B,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU;YAC3C,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;YAC/B,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;YAC/B,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;SACtC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;aAC1B,SAAS,CACR,aAAa,EACb,GAAG,CACD,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,EACjD,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,EAC1D,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,EAClD,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,CACjD,CACF;aACA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACrC,CAAC;IAQD,MAAM,OAAO,GAAG,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC;IACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE;YAC5C,IAAI,EAAE,mCAAmC;YACzC,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,KAAK,EAAE;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC;QACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC;QAClF,IAAI,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;YACnH,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,4BAA4B,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;gBAAE,OAAO,GAAG,IAAI,CAAC;QACnF,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;YACnH,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,6BAA6B,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBAAE,OAAO,GAAG,IAAI,CAAC;QAC9E,CAAC;QACD,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAClF,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,OAAO;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;IAGD,IAAI,YAAoB,CAAC;IACzB,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxD,IAAI,QAAQ,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,mCAAmC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACrG,MAAM,cAAc,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC;IACrC,IAAI,cAAc,EAAE,CAAC;QACnB,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5D,IAAI,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,8BAA8B,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QACxF,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC;QAClC,MAAM,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAC3D,CAAC;IAQD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC;IACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAC1C,MAAM,OAAO,GAAI,GAAG,CAAC,IAA+B,IAAI,EAAE,CAAC;IAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAA6C,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IACrG,MAAM,WAAW,GAAG,SAAS,EAAE,KAAK,IAAI,GAAG,CAAC,UAAU,CAAC;IACvD,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE;QACrC,MAAM;QACN,QAAQ,EAAE,YAAY;QACtB,cAAc,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;KACzE,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,6BAA6B,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACvF,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC;IAStC,MAAM,QAAQ,GAAe,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACxH,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CACvC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QAC9C,OAAO,EAAE,WAAW;QACpB,MAAM;QACN,QAAQ,EAAE,YAAY;QACtB,UAAU,EAAE,CAAC;QACb,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KAClC,CAAC,CACH,CAAC;IACF,IAAI,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,gCAAgC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAG1F,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;IACzC,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CACxC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;QACtD,MAAM;QACN,MAAM;QACN,OAAO,EAAE,WAAW;QACpB,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KAClC,CAAC,CACH,CAAC;IACF,IAAI,KAAK,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,iCAAiC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAE7F,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IAC3F,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAC7D,CAAC;IAQD,MAAM,OAAO,GAAG,GAAG,CAAC,UAA8B,CAAC;IACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC;IAClI,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,GAAG,CAAC,uBAAuB,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvF,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,IAA2B,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE;YACxC,MAAM;YACN,QAAQ;YACR,OAAO;YACP,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,OAAO,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,EAAE;YAC7E,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YAC1D,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE;SACxF,CAAC,CAAC;QACH,IAAI,KAAK,CAAC,KAAK,EAAE;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAKD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,MAAM,iBAAiB,CACrC,IAAI,EACJ;YACE,IAAI,EAAE,mCAAmC;YACzC,OAAO,EAAE,WAAW;YACpB,QAAQ,EAAE,YAAY;YACtB,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SAC1B,EACD,MAAM,CACP,CAAC;QACF,IAAI,OAAO,CAAC,KAAK,EAAE;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,uCAAuC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QACvG,MAAM,OAAO,GAAG,MAAM,iBAAiB,CACrC,IAAI,EACJ;YACE,IAAI,EAAE,mCAAmC;YACzC,OAAO,EAAE,WAAW;YACpB,QAAQ,EAAE,YAAY;YACtB,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;SAChC,EACD,MAAM,CACP,CAAC;QACF,IAAI,OAAO,CAAC,KAAK,EAAE;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,0CAA0C,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5G,CAAC;IAED,OAAO,MAAM,CAAC,EAAE,CAAC;QACf,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,WAAW;QACpB,MAAM;QACN,OAAO,EAAE,GAAG,CAAC,IAAI;QACjB,WAAW,EAAE,GAAG,CAAC,QAAQ;QACzB,UAAU,EAAE,GAAG,CAAC,OAAO;KACH,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAsF;IAC9G,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,aAAa,CAAC,KAAK,EAAE,GAAY,EAAE,EAAE;QAC7C,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,GAAG,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CACd,MAAM,CAAC,IAAI,CAAC;YACV,GAAG,GAAG;YACN,OAAO,EAAE,GAAG;SACb,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,EAAE,SAAS,CACf,KAAK,EACH,GAA8G,EAC3E,EAAE;QACrC,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC;QAClC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAiB,aAAa,CAAC,CAAC;QAE/D,MAAM,IAAI,GAAG,MAAM,OAAO,CACxB,IAAI,EACJ,GAA4B,EAC5B,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EACpC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAC9B,CAAC;QACF,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACpC,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC,CACF;CACF,CAAC"}
@@ -1,18 +1,30 @@
1
- import { Result, Option, EventoResult, Lazy, stream2string, BuildURI, } from "@adviser/cement";
1
+ import { Result, Option, EventoResult, Lazy, stream2string, BuildURI, exception2Result, } from "@adviser/cement";
2
2
  import { isReqListModels, Model, parseArrayWarning, } from "@vibes.diy/api-types";
3
3
  import { ensureLogger } from "@fireproof/core-runtime";
4
4
  import { unwrapMsgBase } from "../unwrap-msg-base.js";
5
5
  export const loadModels = Lazy(async (vctx) => {
6
+ const logger = ensureLogger(vctx.sthis, "loadModels");
6
7
  const vibePkgModelsUrl = BuildURI.from(vctx.params.pkgRepos.workspace)
7
8
  .appendRelative("@vibes.diy/api-svc/models.json")
8
9
  .toString();
10
+ const startMs = Date.now();
9
11
  const rAsset = await vctx.fetchAsset(vibePkgModelsUrl);
10
- if (rAsset.isErr())
12
+ const fetchMs = Date.now() - startMs;
13
+ if (rAsset.isErr()) {
14
+ logger.Warn().Any({ url: vibePkgModelsUrl, fetchMs, error: rAsset.Err() }).Msg("fetchAsset failed");
11
15
  return Result.Err(rAsset);
12
- const raw = JSON.parse(await stream2string(rAsset.Ok()));
13
- const { filtered: models, warning: modelsWarning } = parseArrayWarning(raw, Model);
16
+ }
17
+ const rRaw = await exception2Result(async () => JSON.parse(await stream2string(rAsset.Ok())));
18
+ if (rRaw.isErr()) {
19
+ logger.Warn().Any({ url: vibePkgModelsUrl, fetchMs, error: rRaw.Err() }).Msg("models.json parse failed");
20
+ return Result.Err(rRaw);
21
+ }
22
+ const { filtered: models, warning: modelsWarning } = parseArrayWarning(rRaw.Ok(), Model);
14
23
  if (modelsWarning.length > 0) {
15
- ensureLogger(vctx.sthis, "loadModels").Warn().Any({ parseErrors: modelsWarning }).Msg("skip");
24
+ logger.Warn().Any({ parseErrors: modelsWarning }).Msg("skip");
25
+ }
26
+ if (fetchMs > 500) {
27
+ logger.Warn().Any({ url: vibePkgModelsUrl, fetchMs, count: models.length }).Msg("slow models.json fetch");
16
28
  }
17
29
  return Result.Ok({
18
30
  type: "vibes.diy.res-list-models",
@@ -1 +1 @@
1
- {"version":3,"file":"list-models.js","sourceRoot":"","sources":["../../jsr/public/list-models.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EACN,MAAM,EAGN,YAAY,EACZ,IAAI,EACJ,aAAa,EACb,QAAQ,GACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EACf,KAAK,EAEL,iBAAiB,GAKlB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAC5B,KAAK,EAAE,IAAoB,EAAkC,EAAE;IAC7D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;SACnE,cAAc,CAAC,gCAAgC,CAAC;SAChD,QAAQ,EAAE,CAAC;IAEd,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAEvD,IAAI,MAAM,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACzD,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAEnF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,MAAM,CAAC,EAAE,CAAC;QACf,IAAI,EAAE,2BAA2B;QACjC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;KACpC,CAAC,CAAC;AAC7B,CAAC,EACD,EAAE,UAAU,EAAE,KAAK,EAAE,CACtB,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAA4F;IACvH,IAAI,EAAE,aAAa;IACnB,QAAQ,EAAE,aAAa,CAAC,KAAK,EAAE,GAAY,EAAE,EAAE;QAC7C,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAwB,EAAE,CAAC,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC;IACF,MAAM,EAAE,KAAK,EACX,GAA+F,EAC5D,EAAE;QACrC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAiB,aAAa,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,OAAO,CAAC,KAAK,EAAE;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"list-models.js","sourceRoot":"","sources":["../../jsr/public/list-models.ts"],"names":[],"mappings":"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"}
@@ -54,7 +54,7 @@ export interface BlockAccumulator {
54
54
  export declare function createBlockAccumulator(): BlockAccumulator;
55
55
  export declare function logApplyError(logger: Logger, evt: ApplyErrorEvent): void;
56
56
  export type { ApplyEditsError, FenceParseError };
57
- export declare function handlePromptContext({ vctx, req, resChat, promptId, blockSeq, value, collectedMsgs: iCollectedMsgs, blockChunks, fileSystem }: {
57
+ export declare function handlePromptContext({ vctx, req, resChat, promptId, blockSeq, value, collectedMsgs: iCollectedMsgs, blockChunks, fileSystem, }: {
58
58
  vctx: VibesApiSQLCtx;
59
59
  req: ReqWithVerifiedAuth<ReqPromptChatSection>;
60
60
  resChat: ResChat;
@@ -90,7 +90,7 @@ interface ResChat {
90
90
  userSlug: string;
91
91
  mode: PromptStyle;
92
92
  }
93
- export declare function handleFSPrompt({ scope, vctx, resChat, req, ctx, promptId }: {
93
+ export declare function handleFSPrompt({ scope, vctx, resChat, req, ctx, promptId, }: {
94
94
  scope: Scope;
95
95
  vctx: VibesApiSQLCtx;
96
96
  req: ReqWithVerifiedAuth<ReqPromptFSChatSection>;
@@ -0,0 +1,3 @@
1
+ import { EventoHandler } from "@adviser/cement";
2
+ import { MsgBase, ReqReportAttributionReferrers, ResReportAttributionReferrers, VibesDiyError, W3CWebSocketEvent } from "@vibes.diy/api-types";
3
+ export declare const reportAttributionReferrersEvento: EventoHandler<W3CWebSocketEvent, MsgBase<ReqReportAttributionReferrers>, ResReportAttributionReferrers | VibesDiyError>;
@@ -0,0 +1,51 @@
1
+ import { Result, Option, EventoResult } from "@adviser/cement";
2
+ import { reqReportAttributionReferrers, resReportAttributionReferrers, } from "@vibes.diy/api-types";
3
+ import { type } from "arktype";
4
+ import { sql, desc } from "drizzle-orm";
5
+ import { unwrapMsgBase } from "../unwrap-msg-base.js";
6
+ import { checkAuth } from "../check-auth.js";
7
+ import { cachedReport, hasReport } from "./report-cache.js";
8
+ async function computeAttributionReferrers(vctx) {
9
+ const t = vctx.sql.tables;
10
+ const rows = await vctx.sql.db
11
+ .select({
12
+ refHost: t.refererEvents.refHost,
13
+ refPath: t.refererEvents.refPath,
14
+ total: sql `cast(count(*) as int)`,
15
+ conversions: sql `cast(count(*) filter (where ${t.refererEvents.reqPath} like '/api/%' or ${t.refererEvents.reqPath} like '/new%' or ${t.refererEvents.reqPath} like '/vibe/%') as int)`,
16
+ })
17
+ .from(t.refererEvents)
18
+ .groupBy(t.refererEvents.refHost, t.refererEvents.refPath)
19
+ .orderBy(desc(sql `count(*)`))
20
+ .limit(100);
21
+ return {
22
+ type: "vibes.diy.res-report-attribution-referrers",
23
+ generatedAt: new Date().toISOString(),
24
+ rows: rows.map((r) => ({ ...r, browse: r.total - r.conversions })),
25
+ };
26
+ }
27
+ export const reportAttributionReferrersEvento = {
28
+ hash: "vibes.diy.req-report-attribution-referrers",
29
+ validate: unwrapMsgBase(async (msg) => {
30
+ const ret = reqReportAttributionReferrers(msg.payload);
31
+ if (ret instanceof type.errors)
32
+ return Result.Ok(Option.None());
33
+ return Result.Ok(Option.Some({ ...msg, payload: ret }));
34
+ }),
35
+ handle: checkAuth(async (ctx) => {
36
+ const req = ctx.validated.payload;
37
+ const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
38
+ if (hasReport(req._auth.verifiedAuth.claims, "attribution") === false) {
39
+ await ctx.send.send(ctx, {
40
+ type: "vibes.diy.error",
41
+ message: "not authorized for attribution report",
42
+ code: "report-not-authorized",
43
+ });
44
+ return Result.Ok(EventoResult.Continue);
45
+ }
46
+ const res = await cachedReport(vctx, "attribution-referrers", resReportAttributionReferrers, () => computeAttributionReferrers(vctx));
47
+ await ctx.send.send(ctx, res);
48
+ return Result.Ok(EventoResult.Continue);
49
+ }),
50
+ };
51
+ //# sourceMappingURL=report-attribution-referrers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-attribution-referrers.js","sourceRoot":"","sources":["../../jsr/public/report-attribution-referrers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Type } from "arktype";
2
+ import { VibesApiSQLCtx } from "../types.js";
3
+ export declare function hasReport(claims: {
4
+ params?: {
5
+ public_meta?: unknown;
6
+ };
7
+ }, name: string): boolean;
8
+ export declare function cachedReport<S extends Type<unknown>>(vctx: VibesApiSQLCtx, key: string, schema: S, compute: () => Promise<S["infer"]>): Promise<S["infer"]>;
@@ -0,0 +1,35 @@
1
+ import { type } from "arktype";
2
+ const reportsClaim = type({ "reports?": "(string)[]" });
3
+ export function hasReport(claims, name) {
4
+ const parsed = reportsClaim(claims.params?.public_meta);
5
+ if (parsed instanceof type.errors)
6
+ return false;
7
+ const list = parsed.reports;
8
+ if (list === undefined)
9
+ return false;
10
+ return list.includes("*") || list.includes(name);
11
+ }
12
+ const CACHE_TTL_SECONDS = 600;
13
+ const CACHE_HOST = "reports-cache.internal";
14
+ export async function cachedReport(vctx, key, schema, compute) {
15
+ const url = `https://${CACHE_HOST}/${encodeURIComponent(key)}`;
16
+ const hit = await vctx.cache.match(url);
17
+ if (hit !== undefined) {
18
+ const raw = await hit.json();
19
+ const parsed = schema(raw);
20
+ if (parsed instanceof type.errors) {
21
+ }
22
+ else {
23
+ return parsed;
24
+ }
25
+ }
26
+ const data = await compute();
27
+ await vctx.cache.put(url, new Response(JSON.stringify(data), {
28
+ headers: {
29
+ "Cache-Control": `max-age=${CACHE_TTL_SECONDS}`,
30
+ "Content-Type": "application/json",
31
+ },
32
+ }));
33
+ return data;
34
+ }
35
+ //# sourceMappingURL=report-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-cache.js","sourceRoot":"","sources":["../../jsr/public/report-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAQ,MAAM,SAAS,CAAC;AAUrC,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC;AAExD,MAAM,UAAU,SAAS,CAAC,MAA8C,EAAE,IAAY;IACpF,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACxD,IAAI,MAAM,YAAY,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAChD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;IAC5B,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC;AAcD,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAC9B,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAoB,EACpB,GAAW,EACX,MAAS,EACT,OAAkC;IAElC,MAAM,GAAG,GAAG,WAAW,UAAU,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;IAC/D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,GAAG,GAAY,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,MAAM,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;QAEpC,CAAC;aAAM,CAAC;YACN,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAC;IAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAClB,GAAG,EACH,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;QACjC,OAAO,EAAE;YACP,eAAe,EAAE,WAAW,iBAAiB,EAAE;YAC/C,cAAc,EAAE,kBAAkB;SACnC;KACF,CAAC,CACH,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { EventoHandler } from "@adviser/cement";
2
+ import { MsgBase, ReqReportGrowthMemberships, ResReportGrowthMemberships, VibesDiyError, W3CWebSocketEvent } from "@vibes.diy/api-types";
3
+ export declare const reportGrowthMembershipsEvento: EventoHandler<W3CWebSocketEvent, MsgBase<ReqReportGrowthMemberships>, ResReportGrowthMemberships | VibesDiyError>;
@@ -0,0 +1,118 @@
1
+ import { Result, Option, EventoResult } from "@adviser/cement";
2
+ import { reqReportGrowthMemberships, resReportGrowthMemberships, } from "@vibes.diy/api-types";
3
+ import { type } from "arktype";
4
+ import { eq, inArray } from "drizzle-orm";
5
+ import { unwrapMsgBase } from "../unwrap-msg-base.js";
6
+ import { checkAuth } from "../check-auth.js";
7
+ import { cachedReport, hasReport } from "./report-cache.js";
8
+ function last30DaysUTC() {
9
+ const days = [];
10
+ const now = new Date();
11
+ for (let i = 29; i >= 0; i--) {
12
+ const d = new Date(Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate() - i));
13
+ days.push(d.toISOString().slice(0, 10));
14
+ }
15
+ return days;
16
+ }
17
+ async function computeMemberships(vctx) {
18
+ const t = vctx.sql.tables;
19
+ const reqRows = await vctx.sql.db
20
+ .select({
21
+ created: t.requestGrants.created,
22
+ memberId: t.requestGrants.foreignUserId,
23
+ userSlug: t.requestGrants.userSlug,
24
+ appSlug: t.requestGrants.appSlug,
25
+ })
26
+ .from(t.requestGrants)
27
+ .where(eq(t.requestGrants.state, "approved"));
28
+ const invRows = await vctx.sql.db
29
+ .select({
30
+ created: t.inviteGrants.created,
31
+ memberId: t.inviteGrants.tokenOrGrantUserId,
32
+ userSlug: t.inviteGrants.userSlug,
33
+ appSlug: t.inviteGrants.appSlug,
34
+ })
35
+ .from(t.inviteGrants)
36
+ .where(eq(t.inviteGrants.state, "accepted"));
37
+ const earliest = new Map();
38
+ for (const r of [...reqRows, ...invRows]) {
39
+ const key = `${r.memberId} ${r.userSlug} ${r.appSlug}`;
40
+ const prev = earliest.get(key);
41
+ if (prev === undefined || r.created < prev)
42
+ earliest.set(key, r.created);
43
+ }
44
+ const days = last30DaysUTC();
45
+ const firstDay = days[0];
46
+ const lastDay = days[days.length - 1];
47
+ const dayEnd = `${lastDay}T23:59:59.999Z`;
48
+ let totalThroughLastDay = 0;
49
+ const newByDay = new Map();
50
+ const memberIdsNeedingSlug = new Set();
51
+ for (const [key, created] of earliest) {
52
+ if (created > dayEnd)
53
+ continue;
54
+ totalThroughLastDay += 1;
55
+ const day = created.slice(0, 10);
56
+ if (day < firstDay)
57
+ continue;
58
+ const memberId = key.slice(0, key.indexOf(" "));
59
+ let bucket = newByDay.get(day);
60
+ if (bucket === undefined) {
61
+ bucket = new Set();
62
+ newByDay.set(day, bucket);
63
+ }
64
+ bucket.add(memberId);
65
+ memberIdsNeedingSlug.add(memberId);
66
+ }
67
+ const slugById = new Map();
68
+ if (memberIdsNeedingSlug.size > 0) {
69
+ const bindings = await vctx.sql.db
70
+ .select({ userId: t.userSlugBinding.userId, userSlug: t.userSlugBinding.userSlug })
71
+ .from(t.userSlugBinding)
72
+ .where(inArray(t.userSlugBinding.userId, [...memberIdsNeedingSlug]));
73
+ for (const b of bindings)
74
+ slugById.set(b.userId, b.userSlug);
75
+ }
76
+ const earliestList = [...earliest.values()].sort();
77
+ const result = [];
78
+ let idx = 0;
79
+ for (const day of days) {
80
+ const end = `${day}T23:59:59.999Z`;
81
+ while (idx < earliestList.length && earliestList[idx] <= end)
82
+ idx += 1;
83
+ const bucket = newByDay.get(day);
84
+ const newMembers = bucket ? [...bucket].map((id) => slugById.get(id) ?? id).sort() : [];
85
+ result.push({ day, memberships: idx, newMembers });
86
+ }
87
+ return {
88
+ type: "vibes.diy.res-report-growth-memberships",
89
+ generatedAt: new Date().toISOString(),
90
+ total: totalThroughLastDay,
91
+ days: result,
92
+ };
93
+ }
94
+ export const reportGrowthMembershipsEvento = {
95
+ hash: "vibes.diy.req-report-growth-memberships",
96
+ validate: unwrapMsgBase(async (msg) => {
97
+ const ret = reqReportGrowthMemberships(msg.payload);
98
+ if (ret instanceof type.errors)
99
+ return Result.Ok(Option.None());
100
+ return Result.Ok(Option.Some({ ...msg, payload: ret }));
101
+ }),
102
+ handle: checkAuth(async (ctx) => {
103
+ const req = ctx.validated.payload;
104
+ const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
105
+ if (hasReport(req._auth.verifiedAuth.claims, "growth") === false) {
106
+ await ctx.send.send(ctx, {
107
+ type: "vibes.diy.error",
108
+ message: "not authorized for growth report",
109
+ code: "report-not-authorized",
110
+ });
111
+ return Result.Ok(EventoResult.Continue);
112
+ }
113
+ const res = await cachedReport(vctx, "growth-memberships", resReportGrowthMemberships, () => computeMemberships(vctx));
114
+ await ctx.send.send(ctx, res);
115
+ return Result.Ok(EventoResult.Continue);
116
+ }),
117
+ };
118
+ //# sourceMappingURL=report-growth-memberships.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-growth-memberships.js","sourceRoot":"","sources":["../../jsr/public/report-growth-memberships.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,EAAsC,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClH,OAAO,EAQL,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE5D,SAAS,aAAa;IACpB,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,IAAoB;IACpD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;IAG1B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;SAC9B,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,aAAa,CAAC,OAAO;QAChC,QAAQ,EAAE,CAAC,CAAC,aAAa,CAAC,aAAa;QACvC,QAAQ,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ;QAClC,OAAO,EAAE,CAAC,CAAC,aAAa,CAAC,OAAO;KACjC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC;SACrB,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;IAGhD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;SAC9B,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,OAAO;QAC/B,QAAQ,EAAE,CAAC,CAAC,YAAY,CAAC,kBAAkB;QAC3C,QAAQ,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ;QACjC,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,OAAO;KAChC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;SACpB,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;IAK/C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,GAAG,IAAI;YAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,GAAG,OAAO,gBAAgB,CAAC;IAE1C,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAChD,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;QACtC,IAAI,OAAO,GAAG,MAAM;YAAE,SAAS;QAC/B,mBAAmB,IAAI,CAAC,CAAC;QACzB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI,GAAG,GAAG,QAAQ;YAAE,SAAS;QAC7B,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACnB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrB,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAID,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,IAAI,oBAAoB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;aAC/B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;aAClF,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC;aACvB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;QACvE,KAAK,MAAM,CAAC,IAAI,QAAQ;YAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,MAAM,MAAM,GAAiE,EAAE,CAAC;IAChF,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,GAAG,GAAG,gBAAgB,CAAC;QACnC,OAAO,GAAG,GAAG,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,GAAG;YAAE,GAAG,IAAI,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,OAAO;QACL,IAAI,EAAE,yCAAyC;QAC/C,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,KAAK,EAAE,mBAAmB;QAC1B,IAAI,EAAE,MAAM;KACb,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,6BAA6B,GAItC;IACF,IAAI,EAAE,yCAAyC;IAC/C,QAAQ,EAAE,aAAa,CAAC,KAAK,EAAE,GAAY,EAAE,EAAE;QAC7C,MAAM,GAAG,GAAG,0BAA0B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,GAAG,YAAY,IAAI,CAAC,MAAM;YAAE,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC;IACF,MAAM,EAAE,SAAS,CACf,KAAK,EACH,GAIC,EACkC,EAAE;QACrC,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC;QAClC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAiB,aAAa,CAAC,CAAC;QAE/D,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,KAAK,EAAE,CAAC;YACjE,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACvB,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,kCAAkC;gBAC3C,IAAI,EAAE,uBAAuB;aACX,CAAC,CAAC;YACtB,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QACvH,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9B,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC,CACF;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { EventoHandler } from "@adviser/cement";
2
+ import { MsgBase, ReqReportGrowthVibesWithData, ResReportGrowthVibesWithData, VibesDiyError, W3CWebSocketEvent } from "@vibes.diy/api-types";
3
+ export declare const reportGrowthVibesWithDataEvento: EventoHandler<W3CWebSocketEvent, MsgBase<ReqReportGrowthVibesWithData>, ResReportGrowthVibesWithData | VibesDiyError>;
@@ -0,0 +1,65 @@
1
+ import { Result, Option, EventoResult } from "@adviser/cement";
2
+ import { reqReportGrowthVibesWithData, resReportGrowthVibesWithData, } from "@vibes.diy/api-types";
3
+ import { type } from "arktype";
4
+ import { unwrapMsgBase } from "../unwrap-msg-base.js";
5
+ import { checkAuth } from "../check-auth.js";
6
+ import { cachedReport, hasReport } from "./report-cache.js";
7
+ function last30DaysUTC() {
8
+ const days = [];
9
+ const now = new Date();
10
+ for (let i = 29; i >= 0; i--) {
11
+ const d = new Date(Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate() - i));
12
+ days.push(d.toISOString().slice(0, 10));
13
+ }
14
+ return days;
15
+ }
16
+ async function computeVibesWithData(vctx) {
17
+ const t = vctx.sql.tables;
18
+ const rows = await vctx.sql.db.select({ created: t.appSlugBinding.created }).from(t.appSlugBinding);
19
+ const days = last30DaysUTC();
20
+ const lastDay = days[days.length - 1];
21
+ const dayEnd = `${lastDay}T23:59:59.999Z`;
22
+ const createdSorted = rows
23
+ .map((r) => r.created)
24
+ .filter((c) => c <= dayEnd)
25
+ .sort();
26
+ const result = [];
27
+ let idx = 0;
28
+ for (const day of days) {
29
+ const end = `${day}T23:59:59.999Z`;
30
+ while (idx < createdSorted.length && createdSorted[idx] <= end)
31
+ idx += 1;
32
+ result.push({ day, vibes: idx });
33
+ }
34
+ return {
35
+ type: "vibes.diy.res-report-growth-vibes-with-data",
36
+ generatedAt: new Date().toISOString(),
37
+ total: createdSorted.length,
38
+ days: result,
39
+ };
40
+ }
41
+ export const reportGrowthVibesWithDataEvento = {
42
+ hash: "vibes.diy.req-report-growth-vibes-with-data",
43
+ validate: unwrapMsgBase(async (msg) => {
44
+ const ret = reqReportGrowthVibesWithData(msg.payload);
45
+ if (ret instanceof type.errors)
46
+ return Result.Ok(Option.None());
47
+ return Result.Ok(Option.Some({ ...msg, payload: ret }));
48
+ }),
49
+ handle: checkAuth(async (ctx) => {
50
+ const req = ctx.validated.payload;
51
+ const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
52
+ if (hasReport(req._auth.verifiedAuth.claims, "growth") === false) {
53
+ await ctx.send.send(ctx, {
54
+ type: "vibes.diy.error",
55
+ message: "not authorized for growth report",
56
+ code: "report-not-authorized",
57
+ });
58
+ return Result.Ok(EventoResult.Continue);
59
+ }
60
+ const res = await cachedReport(vctx, "growth-vibes-with-data", resReportGrowthVibesWithData, () => computeVibesWithData(vctx));
61
+ await ctx.send.send(ctx, res);
62
+ return Result.Ok(EventoResult.Continue);
63
+ }),
64
+ };
65
+ //# sourceMappingURL=report-growth-vibes-with-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-growth-vibes-with-data.js","sourceRoot":"","sources":["../../jsr/public/report-growth-vibes-with-data.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { Result, Option, EventoResult, exception2Result } from "@adviser/cement"
2
2
  import { ResListRequestGrants, isReqListRequestGrants, isReqSubscribeRequestGrants, isReqRequestAccess, isReqApproveRequest, isReqRequestSetRole, isReqRevokeRequest, isReqHasAccessRequest, isEnableRequest, isResHasAccessRequestPending, isResHasAccessRequestApproved, isResHasAccessRequestRevoked, Role, } from "@vibes.diy/api-types";
3
3
  import { unwrapMsgBase } from "../unwrap-msg-base.js";
4
4
  import { checkAuth } from "../check-auth.js";
5
- import { eq, and, lt, desc } from "drizzle-orm/sql/expressions";
5
+ import { eq, and, lt, desc, inArray } from "drizzle-orm/sql/expressions";
6
6
  import { type } from "arktype";
7
7
  function clientWsSend(ctx) {
8
8
  return ctx.send.provider;
@@ -259,11 +259,32 @@ export const listRequestGrantsEvento = {
259
259
  .limit(limit + 1);
260
260
  const hasMore = rows.length > limit;
261
261
  const items = hasMore ? rows.slice(0, limit) : rows;
262
+ const foreignUserIds = Array.from(new Set(items.map((item) => item.foreignUserId)));
263
+ const slugByUserId = new Map();
264
+ if (foreignUserIds.length > 0) {
265
+ const slugRows = await vctx.sql.db
266
+ .select({
267
+ userId: vctx.sql.tables.userSlugBinding.userId,
268
+ userSlug: vctx.sql.tables.userSlugBinding.userSlug,
269
+ })
270
+ .from(vctx.sql.tables.userSlugBinding)
271
+ .where(inArray(vctx.sql.tables.userSlugBinding.userId, foreignUserIds))
272
+ .orderBy(desc(vctx.sql.tables.userSlugBinding.created));
273
+ for (const row of slugRows) {
274
+ if (!slugByUserId.has(row.userId)) {
275
+ slugByUserId.set(row.userId, row.userSlug);
276
+ }
277
+ }
278
+ }
279
+ const itemsWithSlugs = items.map((item) => ({
280
+ ...item,
281
+ ...(slugByUserId.has(item.foreignUserId) ? { foreignUserSlug: slugByUserId.get(item.foreignUserId) } : {}),
282
+ }));
262
283
  const possible = ResListRequestGrants({
263
284
  type: "vibes.diy.res-list-request-grants",
264
285
  appSlug: req.appSlug,
265
286
  userSlug: req.userSlug,
266
- items: items,
287
+ items: itemsWithSlugs,
267
288
  ...(hasMore ? { nextCursor: items[items.length - 1].created } : {}),
268
289
  });
269
290
  if (possible instanceof type.errors) {