@kky42/pievo-server 2.4.12 → 2.4.14

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 (88) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/assets/SignIn-CIFwnZtF.js +1 -0
  3. package/.output/public/assets/{ui-s5IMg6RF.js → actionUi-5PtES4q0.js} +1 -1
  4. package/.output/public/assets/app-DvHMhs7S.css +2 -0
  5. package/.output/public/assets/index-CRX2pu0W.js +10 -0
  6. package/.output/public/assets/loops._loopId-BsuV-Rmf.js +67 -0
  7. package/.output/public/assets/loops._loopId_.runs._runId-DpK_fzmZ.js +3 -0
  8. package/.output/public/assets/{preload-helper-Bs7oCAsw.js → preload-helper-sAZOZb3G.js} +3 -3
  9. package/.output/public/assets/routes-Dm_3J2aV.js +1 -0
  10. package/.output/public/assets/routes-DxF_s3cD.js +1 -0
  11. package/.output/server/_libs/@tanstack/react-router+[...].mjs +1 -1
  12. package/.output/server/_ssr/{MachinesModal-BhRw7oOx.mjs → MachinesModal-BaEtzycr.mjs} +24 -57
  13. package/.output/server/_ssr/{SignIn-BhoZIOUp.mjs → SignIn-sHQaBQJC.mjs} +3 -3
  14. package/.output/server/_ssr/{ui-DGz-q9MT.mjs → actionUi-5HOCZnom.mjs} +115 -4
  15. package/.output/server/_ssr/{artifactFiles-ChuJ4PzC.mjs → artifactFiles-DO43wwXA.mjs} +4 -3
  16. package/.output/server/_ssr/{artifactKind-DXumOv7c.mjs → artifactKind-DwDr8IYc.mjs} +6 -14
  17. package/.output/server/_ssr/artifacts-Cd7Qx3Qp.mjs +2 -0
  18. package/.output/server/_ssr/{auth-LwPp_iim.mjs → auth-0AamrwHo.mjs} +44 -124
  19. package/.output/server/_ssr/{SocialLinks-DVCLmql0.mjs → auth-client-lSMb_Idt.mjs} +143 -109
  20. package/.output/server/_ssr/boot-C472kLwY.mjs +3947 -0
  21. package/.output/server/_ssr/{bun-sqlite-dialect-BW9W1_Ps-CHMDkKqA.mjs → bun-sqlite-dialect-BW9W1_Ps-DLIXocA0.mjs} +2 -2
  22. package/.output/server/_ssr/{d1-sqlite-dialect-BLC8LXE6-DYum6qky.mjs → d1-sqlite-dialect-BLC8LXE6-BoFMIPr_.mjs} +2 -2
  23. package/.output/server/_ssr/db-BzvMQ2kx.mjs +2 -0
  24. package/.output/server/_ssr/{dist-bWqs5sTy.mjs → dist-ClzqkwxD.mjs} +2 -2
  25. package/.output/server/_ssr/{factory-pBwrjVTI.mjs → factory-ixUjZqJn.mjs} +2 -2
  26. package/.output/server/_ssr/{kysely-adapter-DMf5pFTf.mjs → kysely-adapter-DkZbmKgV.mjs} +1 -1
  27. package/.output/server/_ssr/logger-DDjsYB2X.mjs +2 -0
  28. package/.output/server/_ssr/{loopApi-Im6JSK0p.mjs → loopApi-DT751TJA.mjs} +30 -90
  29. package/.output/server/_ssr/{loopProjection-DIpGR6rp.mjs → loopProjection-qaD2I48a.mjs} +5 -2
  30. package/.output/server/_ssr/loopTags-CXx5UdGf.mjs +3356 -0
  31. package/.output/server/_ssr/{loops._loopId-B5iPseDG.mjs → loops._loopId-CXgw2Rz1.mjs} +144 -46
  32. package/.output/server/_ssr/{loops._loopId_.runs._runId-DVtG0xYb.mjs → loops._loopId_.runs._runId-Dk94Z0Jq.mjs} +6 -13
  33. package/.output/server/_ssr/{loops._loopId_.runs._runId-BA-P6sGA.mjs → loops._loopId_.runs._runId-SASSqOfy.mjs} +31 -23
  34. package/.output/server/_ssr/{machineFns-Bb9KNXun.mjs → machineFns-BSrIgn3f.mjs} +42 -108
  35. package/.output/server/_ssr/{node-sqlite-dialect-Dho9YjXb.mjs → node-sqlite-dialect-BbUqnnYv.mjs} +2 -2
  36. package/.output/server/_ssr/{router-C8iotXtk.mjs → router-BlLlhfJe.mjs} +26 -40
  37. package/.output/server/_ssr/routes-Cr-9yDEH.mjs +491 -0
  38. package/.output/server/_ssr/{routes-FO0MFfYK.mjs → routes-DRBS4Zi4.mjs} +4 -9
  39. package/.output/server/_ssr/routes-DTBltabU.mjs +27 -0
  40. package/.output/server/_ssr/ssr.mjs +28 -88
  41. package/.output/server/_ssr/store-vDZ9INSa.mjs +2 -0
  42. package/.output/server/_ssr/tokens-BHiCElYD.mjs +2 -0
  43. package/.output/server/_tanstack-start-manifest_v-DxLIQ0cc.mjs +52 -0
  44. package/.output/server/drizzle/0002_remove_teams.sql +15 -0
  45. package/.output/server/drizzle/0003_add_loop_tags.sql +5 -0
  46. package/.output/server/drizzle/meta/_journal.json +14 -0
  47. package/.output/server/index.mjs +47 -96
  48. package/drizzle/0002_remove_teams.sql +15 -0
  49. package/drizzle/0003_add_loop_tags.sql +5 -0
  50. package/drizzle/meta/_journal.json +14 -0
  51. package/package.json +2 -2
  52. package/.output/public/assets/MachinesModal-ByHejech.js +0 -1
  53. package/.output/public/assets/SignIn-Cf4HOpdF.js +0 -1
  54. package/.output/public/assets/actionUi-yYVvoOTn.js +0 -1
  55. package/.output/public/assets/app-D5Hy4BcS.css +0 -2
  56. package/.output/public/assets/index-D504r3X9.js +0 -10
  57. package/.output/public/assets/invite._token-B0EKVyrU.js +0 -1
  58. package/.output/public/assets/invite._token-BSnGRyUw.js +0 -1
  59. package/.output/public/assets/lifecycleUi-C0DaC6NM.js +0 -1
  60. package/.output/public/assets/loops._loopId-j5EB2PLW.js +0 -67
  61. package/.output/public/assets/loops._loopId_.runs._runId-BICo_pRz.js +0 -3
  62. package/.output/public/assets/routes-4N6mrQK_.js +0 -1
  63. package/.output/public/assets/routes-DZU0Tqka.js +0 -1
  64. package/.output/public/assets/t._teamId-CAUjvMZ6.js +0 -1
  65. package/.output/public/assets/t._teamId-Cqzd69sO.js +0 -1
  66. package/.output/server/_ssr/DashboardView-DrKNkmcX.mjs +0 -867
  67. package/.output/server/_ssr/actionUi-Cf6DuEC2.mjs +0 -119
  68. package/.output/server/_ssr/artifacts-DOLHJHcd.mjs +0 -2
  69. package/.output/server/_ssr/boot-BIxtZHU-.mjs +0 -7466
  70. package/.output/server/_ssr/boot-D8cj4uZj.mjs +0 -2
  71. package/.output/server/_ssr/db-BphSJs66.mjs +0 -2
  72. package/.output/server/_ssr/invite._token-CPSvdDox.mjs +0 -27
  73. package/.output/server/_ssr/invite._token-CRBsTSTZ.mjs +0 -84
  74. package/.output/server/_ssr/invite._token-CaTLt92a.mjs +0 -20
  75. package/.output/server/_ssr/lifecycleUi-DauKavgx.mjs +0 -50
  76. package/.output/server/_ssr/logger-EinA2J6y.mjs +0 -2
  77. package/.output/server/_ssr/routes-CsV1weub.mjs +0 -26
  78. package/.output/server/_ssr/routes-fiMzFtcP.mjs +0 -39
  79. package/.output/server/_ssr/runDiff-BLdot9mi.mjs +0 -2
  80. package/.output/server/_ssr/store-CFCp_ggC.mjs +0 -2
  81. package/.output/server/_ssr/t._teamId-BYA4Dnjp.mjs +0 -43
  82. package/.output/server/_ssr/t._teamId-CKsrgN86.mjs +0 -32
  83. package/.output/server/_ssr/t._teamId-D1BTwhWf.mjs +0 -31
  84. package/.output/server/_ssr/teamCookie-B7hLOIie.mjs +0 -10
  85. package/.output/server/_ssr/teamFns-DfqtuBW2.mjs +0 -451
  86. package/.output/server/_ssr/teamFns-cI_tsiCv.mjs +0 -32
  87. package/.output/server/_ssr/tokens-CUz4LDLm.mjs +0 -2
  88. package/.output/server/_tanstack-start-manifest_v-xSxVtI1J.mjs +0 -86
@@ -1,15 +1,13 @@
1
1
  import { j as sql } from "../_libs/drizzle-orm+postgres.mjs";
2
- import { A as ensureServer, Dt as readJsonBody, Et as readByteBody, Qt as validPollWireId, Xt as validOptionalPollString, Zt as validPollCurrentRun, d as POLL_HTTP_BODY_FIELDS, l as MACHINE_BODY_CAP } from "./boot-BIxtZHU-.mjs";
2
+ import { c as readByteBody, f as validOptionalPollString, l as readJsonBody, m as validPollWireId, o as ensureServer, p as validPollCurrentRun, r as POLL_HTTP_BODY_FIELDS, t as MACHINE_BODY_CAP } from "./boot-C472kLwY.mjs";
3
3
  import { h as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
4
4
  import { c as createFileRoute, i as HeadContent, l as createRootRoute, o as createRouter, r as Scripts } from "../_libs/@tanstack/react-router+[...].mjs";
5
- import { t as Route$12 } from "./invite._token-CPSvdDox.mjs";
6
- import { r as imageMime, t as Route$13 } from "./artifactKind-DXumOv7c.mjs";
7
- import { t as Route$14 } from "./loops._loopId_.runs._runId-DVtG0xYb.mjs";
8
- import { t as Route$15 } from "./routes-fiMzFtcP.mjs";
9
- import { t as Route$16 } from "./t._teamId-BYA4Dnjp.mjs";
10
- //#region node_modules/.nitro/vite/services/ssr/assets/router-C8iotXtk.js
5
+ import { r as imageMime, t as Route$12 } from "./artifactKind-DwDr8IYc.mjs";
6
+ import { t as Route$13 } from "./loops._loopId_.runs._runId-Dk94Z0Jq.mjs";
7
+ import { n as Route$14 } from "./routes-Cr-9yDEH.mjs";
8
+ //#region node_modules/.nitro/vite/services/ssr/assets/router-BlLlhfJe.js
11
9
  var import_jsx_runtime = require_jsx_runtime();
12
- var app_default = "/assets/app-D5Hy4BcS.css";
10
+ var app_default = "/assets/app-DvHMhs7S.css";
13
11
  var Route$11 = createRootRoute({
14
12
  head: () => ({
15
13
  meta: [
@@ -169,7 +167,7 @@ var Route$10 = createFileRoute("/machine/report")({ server: { handlers: { POST:
169
167
  const parsed = await readJsonBody(request, MACHINE_BODY_CAP);
170
168
  if (parsed.kind === "too-large") return Response.json({ error: "body too large" }, { status: 413 });
171
169
  const body = parsed.kind === "ok" && parsed.body && typeof parsed.body === "object" ? parsed.body : {};
172
- const { getGateway } = await import("./boot-D8cj4uZj.mjs");
170
+ const { getGateway } = await import("./boot-C472kLwY.mjs").then((n) => n.i).then((n) => n.t);
173
171
  const r = await (await getGateway()).report(token, body);
174
172
  return Response.json(r.body, { status: r.status });
175
173
  } } } });
@@ -209,13 +207,13 @@ var Route$7 = createFileRoute("/api/machine/sync")({ server: { handlers: { POST:
209
207
  const auth = request.headers.get("authorization") ?? "";
210
208
  const token = auth.startsWith("Bearer ") ? auth.slice(7) : "";
211
209
  if (!token) return Response.json({ error: "missing device token" }, { status: 401 });
212
- const { SYNC_BODY_CAP, parseArtifactSyncBody } = await import("./artifacts-DOLHJHcd.mjs");
210
+ const { SYNC_BODY_CAP, parseArtifactSyncBody } = await import("./artifacts-Cd7Qx3Qp.mjs");
213
211
  const parsed = await readJsonBody(request, SYNC_BODY_CAP);
214
212
  if (parsed.kind === "too-large") return Response.json({ error: "sync body too large" }, { status: 413 });
215
213
  if (parsed.kind === "invalid") return Response.json({ error: "invalid JSON" }, { status: 400 });
216
214
  const body = parseArtifactSyncBody(parsed.body);
217
215
  if (!body) return Response.json({ error: "invalid sync body" }, { status: 400 });
218
- const { getArtifactSync } = await import("./boot-D8cj4uZj.mjs");
216
+ const { getArtifactSync } = await import("./boot-C472kLwY.mjs").then((n) => n.i).then((n) => n.t);
219
217
  const r = await (await getArtifactSync()).sync(token, body);
220
218
  return Response.json(r.body, { status: r.status });
221
219
  } } } });
@@ -225,7 +223,7 @@ var Route$6 = createFileRoute("/api/machine/status")({ server: { handlers: { GET
225
223
  const limited = machineRouteLimit(request, token || void 0);
226
224
  if (limited) return limited;
227
225
  if (!token) return Response.json({ error: "missing device token" }, { status: 401 });
228
- const { getGateway } = await import("./boot-D8cj4uZj.mjs");
226
+ const { getGateway } = await import("./boot-C472kLwY.mjs").then((n) => n.i).then((n) => n.t);
229
227
  const r = await (await getGateway()).status(token);
230
228
  return Response.json(r.body, { status: r.status });
231
229
  } } } });
@@ -267,7 +265,7 @@ var Route$5 = createFileRoute("/api/machine/poll")({ server: { handlers: { POST:
267
265
  if (parsed.kind !== "ok") return Response.json({ error: "invalid JSON body" }, { status: 400 });
268
266
  const body = parsePollBody(parsed.body);
269
267
  if (!body) return Response.json({ error: "unknown or invalid poll body fields" }, { status: 400 });
270
- const { getGateway } = await import("./boot-D8cj4uZj.mjs");
268
+ const { getGateway } = await import("./boot-C472kLwY.mjs").then((n) => n.i).then((n) => n.t);
271
269
  const r = await (await getGateway()).pollV4Wait(token, gatewayPollRequest(body));
272
270
  return Response.json(r.body, { status: r.status });
273
271
  } } } });
@@ -294,7 +292,7 @@ var Route$4 = createFileRoute("/api/machine/cli")({ server: { handlers: { POST:
294
292
  if (parsed.kind === "too-large") return Response.json({ error: "body too large" }, { status: 413 });
295
293
  const body = parsed.kind === "ok" ? parseCliBody(parsed.body) : null;
296
294
  if (!body) return Response.json({ error: "body must be exactly {argv:string[]}" }, { status: 400 });
297
- const { getCliGateway } = await import("./boot-D8cj4uZj.mjs");
295
+ const { getCliGateway } = await import("./boot-C472kLwY.mjs").then((n) => n.i).then((n) => n.t);
298
296
  const r = await (await getCliGateway()).cli(token, body.argv);
299
297
  return Response.json(r.body, { status: r.status });
300
298
  } } } });
@@ -323,7 +321,7 @@ var Route$4 = createFileRoute("/api/machine/cli")({ server: { handlers: { POST:
323
321
  var PROBE_TIMEOUT_MS = 5e3;
324
322
  var Route$3 = createFileRoute("/api/health/db")({ server: { handlers: { GET: async () => {
325
323
  try {
326
- const { db } = await import("./db-BphSJs66.mjs");
324
+ const { db } = await import("./db-BzvMQ2kx.mjs");
327
325
  const ping = db.execute(sql`select 1`);
328
326
  const timeout = new Promise((_, reject) => {
329
327
  setTimeout(() => reject(/* @__PURE__ */ new Error(`db ping timed out after ${PROBE_TIMEOUT_MS}ms`)), PROBE_TIMEOUT_MS).unref?.();
@@ -342,8 +340,8 @@ var Route$3 = createFileRoute("/api/health/db")({ server: { handlers: { GET: asy
342
340
  }
343
341
  } } } });
344
342
  var Route$2 = createFileRoute("/api/auth/$")({ server: { handlers: {
345
- GET: async ({ request }) => (await import("./auth-LwPp_iim.mjs")).auth.handler(request),
346
- POST: async ({ request }) => (await import("./auth-LwPp_iim.mjs")).auth.handler(request)
343
+ GET: async ({ request }) => (await import("./auth-0AamrwHo.mjs")).auth.handler(request),
344
+ POST: async ({ request }) => (await import("./auth-0AamrwHo.mjs")).auth.handler(request)
347
345
  } } });
348
346
  /**
349
347
  * `decodeURIComponent` that returns null on malformed percent-encoding instead
@@ -377,12 +375,12 @@ var Route$1 = createFileRoute("/api/machine/blob/$hash")({ server: { handlers: {
377
375
  if (!token) return Response.json({ error: "missing device token" }, { status: 401 });
378
376
  const hash = safeDecode(new URL(request.url).pathname.split("/").pop() ?? "");
379
377
  if (hash === null) return Response.json({ error: "bad hash" }, { status: 400 });
380
- const { BLOB_CAP } = await import("./artifacts-DOLHJHcd.mjs");
378
+ const { BLOB_CAP } = await import("./artifacts-Cd7Qx3Qp.mjs");
381
379
  const body = await readByteBody(request, BLOB_CAP);
382
380
  if (body.kind === "too-large") return Response.json({ error: "blob exceeds size cap" }, { status: 413 });
383
381
  if (body.kind === "invalid") return Response.json({ error: "could not read blob body" }, { status: 400 });
384
382
  const buf = Buffer.from(body.bytes.buffer, body.bytes.byteOffset, body.bytes.byteLength);
385
- const { getArtifactSync } = await import("./boot-D8cj4uZj.mjs");
383
+ const { getArtifactSync } = await import("./boot-C472kLwY.mjs").then((n) => n.i).then((n) => n.t);
386
384
  const r = await (await getArtifactSync()).putBlob(token, hash, buf);
387
385
  return Response.json(r.body, { status: r.status });
388
386
  } } } });
@@ -399,8 +397,8 @@ var Route$1 = createFileRoute("/api/machine/blob/$hash")({ server: { handlers: {
399
397
  * scripts - so an inline SVG can't run script against the session even if the
400
398
  * URL is opened directly. Non-image inline requests fall back to attachment.
401
399
  *
402
- * Authed via the WEB SESSION (not a machine token) and scoped to the loop's team,
403
- * mirroring the server fns' `ownedLoop` gate. Path-safe: the relative path is
400
+ * Authed via the web session (not a machine token) and scoped to the loop owner,
401
+ * mirroring the server functions' `ownedLoop` gate. Path-safe: the relative path is
404
402
  * normalized + traversal-rejected before it ever reaches a blob, and blob keys
405
403
  * are content hashes, never the user path. Reads stream from the BlobStore
406
404
  * (local by default, R2 when configured); the route never writes.
@@ -417,11 +415,11 @@ var Route = createFileRoute("/api/artifact/$loopId/$")({ server: { handlers: { G
417
415
  const segments = after.slice(slash + 1).split("/").map((s) => safeDecode(s));
418
416
  if (segments.some((s) => s === null)) return Response.json({ error: "bad path" }, { status: 400 });
419
417
  const relPath = segments.join("/");
420
- const loop = await (await import("./store-CFCp_ggC.mjs")).getLoop(loopId);
418
+ const loop = await (await import("./store-vDZ9INSa.mjs")).getLoop(loopId);
421
419
  if (!loop) return Response.json({ error: "not found" }, { status: 404 });
422
- const { requestScope, canAccessLoop } = await import("./auth-LwPp_iim.mjs");
423
- if (!await canAccessLoop(loop.teamId, await requestScope())) return Response.json({ error: "not found" }, { status: 404 });
424
- const { readLoopArtifactBytes } = await import("./artifactFiles-ChuJ4PzC.mjs");
420
+ const { requestScope, canAccessLoop } = await import("./auth-0AamrwHo.mjs");
421
+ if (!canAccessLoop(loop.userId, await requestScope())) return Response.json({ error: "not found" }, { status: 404 });
422
+ const { readLoopArtifactBytes } = await import("./artifactFiles-DO43wwXA.mjs");
425
423
  const r = await readLoopArtifactBytes(loopId, relPath);
426
424
  if (r.status !== 200 || !r.bytes) return Response.json({ error: "not found" }, { status: r.status });
427
425
  const filename = (r.filename || "file").replace(/["\\\r\n]/g, "_");
@@ -447,31 +445,21 @@ var Route = createFileRoute("/api/artifact/$loopId/$")({ server: { handlers: { G
447
445
  }
448
446
  });
449
447
  } } } });
450
- var IndexRoute = Route$15.update({
448
+ var IndexRoute = Route$14.update({
451
449
  id: "/",
452
450
  path: "/",
453
451
  getParentRoute: () => Route$11
454
452
  });
455
- var TTeamIdRoute = Route$16.update({
456
- id: "/t/$teamId",
457
- path: "/t/$teamId",
458
- getParentRoute: () => Route$11
459
- });
460
453
  var MachineReportRoute = Route$10.update({
461
454
  id: "/machine/report",
462
455
  path: "/machine/report",
463
456
  getParentRoute: () => Route$11
464
457
  });
465
- var LoopsLoopIdRoute = Route$13.update({
458
+ var LoopsLoopIdRoute = Route$12.update({
466
459
  id: "/loops/$loopId",
467
460
  path: "/loops/$loopId",
468
461
  getParentRoute: () => Route$11
469
462
  });
470
- var InviteTokenRoute = Route$12.update({
471
- id: "/invite/$token",
472
- path: "/invite/$token",
473
- getParentRoute: () => Route$11
474
- });
475
463
  var ApiReadyRoute = Route$9.update({
476
464
  id: "/api/ready",
477
465
  path: "/api/ready",
@@ -512,7 +500,7 @@ var ApiAuthSplatRoute = Route$2.update({
512
500
  path: "/api/auth/$",
513
501
  getParentRoute: () => Route$11
514
502
  });
515
- var LoopsLoopIdRunsRunIdRoute = Route$14.update({
503
+ var LoopsLoopIdRunsRunIdRoute = Route$13.update({
516
504
  id: "/loops/$loopId_/runs/$runId",
517
505
  path: "/loops/$loopId/runs/$runId",
518
506
  getParentRoute: () => Route$11
@@ -532,10 +520,8 @@ var rootRouteChildren = {
532
520
  IndexRoute,
533
521
  ApiHealthRoute: ApiHealthRoute._addFileChildren(ApiHealthRouteChildren),
534
522
  ApiReadyRoute,
535
- InviteTokenRoute,
536
523
  LoopsLoopIdRoute,
537
524
  MachineReportRoute,
538
- TTeamIdRoute,
539
525
  ApiAuthSplatRoute,
540
526
  ApiMachineCliRoute,
541
527
  ApiMachinePollRoute,