@vibes.diy/api-svc 12.1.0 → 12.1.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 (73) hide show
  1. package/evento-handler-manifest.js +5 -0
  2. package/evento-handler-manifest.js.map +1 -1
  3. package/index.d.ts +2 -0
  4. package/index.js +2 -0
  5. package/index.js.map +1 -1
  6. package/intern/attempt-backend-fetch.d.ts +4 -0
  7. package/intern/attempt-backend-fetch.js +13 -0
  8. package/intern/attempt-backend-fetch.js.map +1 -1
  9. package/intern/attempt-backend-onchange.d.ts +4 -0
  10. package/intern/attempt-backend-onchange.js +12 -0
  11. package/intern/attempt-backend-onchange.js.map +1 -1
  12. package/intern/attempt-backend-scheduled.d.ts +4 -0
  13. package/intern/attempt-backend-scheduled.js +12 -0
  14. package/intern/attempt-backend-scheduled.js.map +1 -1
  15. package/intern/backend-db-callback.d.ts +1 -0
  16. package/intern/backend-db-callback.js +54 -8
  17. package/intern/backend-db-callback.js.map +1 -1
  18. package/intern/backend-do-addr.d.ts +6 -0
  19. package/intern/backend-do-addr.js +10 -1
  20. package/intern/backend-do-addr.js.map +1 -1
  21. package/intern/backend-do-control-plane.d.ts +34 -0
  22. package/intern/backend-do-control-plane.js +68 -0
  23. package/intern/backend-do-control-plane.js.map +1 -0
  24. package/intern/backend-log-callback.d.ts +20 -0
  25. package/intern/backend-log-callback.js +47 -0
  26. package/intern/backend-log-callback.js.map +1 -0
  27. package/intern/backend-log-op.d.ts +1 -0
  28. package/intern/backend-log-op.js +2 -0
  29. package/intern/backend-log-op.js.map +1 -0
  30. package/intern/backend-log-rate.d.ts +12 -0
  31. package/intern/backend-log-rate.js +25 -0
  32. package/intern/backend-log-rate.js.map +1 -0
  33. package/intern/backend-tick-liveness.d.ts +20 -0
  34. package/intern/backend-tick-liveness.js +26 -0
  35. package/intern/backend-tick-liveness.js.map +1 -0
  36. package/intern/client-log-ingest.d.ts +35 -0
  37. package/intern/client-log-ingest.js +119 -0
  38. package/intern/client-log-ingest.js.map +1 -0
  39. package/intern/load-selected-backend.d.ts +1 -0
  40. package/intern/load-selected-backend.js +1 -1
  41. package/intern/load-selected-backend.js.map +1 -1
  42. package/intern/notify-tick-silent.d.ts +10 -0
  43. package/intern/notify-tick-silent.js +31 -0
  44. package/intern/notify-tick-silent.js.map +1 -0
  45. package/intern/prune-vibe-logs.d.ts +13 -0
  46. package/intern/prune-vibe-logs.js +26 -0
  47. package/intern/prune-vibe-logs.js.map +1 -0
  48. package/intern/swr-html-cache-orchestrator.d.ts +2 -2
  49. package/intern/swr-html-cache-orchestrator.js +23 -10
  50. package/intern/swr-html-cache-orchestrator.js.map +1 -1
  51. package/intern/swr-html-cache.d.ts +3 -1
  52. package/intern/swr-html-cache.js +4 -3
  53. package/intern/swr-html-cache.js.map +1 -1
  54. package/package.json +12 -11
  55. package/public/app-documents-query-filter.d.ts +1 -0
  56. package/public/app-documents-query-filter.js +34 -6
  57. package/public/app-documents-query-filter.js.map +1 -1
  58. package/public/app-documents.d.ts +1 -1
  59. package/public/app-documents.js +1 -1
  60. package/public/app-documents.js.map +1 -1
  61. package/public/app-logs.d.ts +4 -0
  62. package/public/app-logs.js +109 -0
  63. package/public/app-logs.js.map +1 -0
  64. package/public/app-tick.d.ts +4 -0
  65. package/public/app-tick.js +143 -0
  66. package/public/app-tick.js.map +1 -0
  67. package/public/root-html-live-inputs.d.ts +2 -1
  68. package/public/root-html-live-inputs.js +5 -2
  69. package/public/root-html-live-inputs.js.map +1 -1
  70. package/public/serv-entry-point.js +4 -1
  71. package/public/serv-entry-point.js.map +1 -1
  72. package/types.d.ts +2 -0
  73. package/types.js.map +1 -1
@@ -1,12 +1,18 @@
1
- import { CACHEABLE_MARKER_HEADER, CACHED_AT_HEADER, CACHE_STATE_HEADER, cachedAtOf, canonicalWorkspacePin, fromStoredResponse, isPlatformWorkspaceNpmUrl, swrDecision, toCacheableStoredResponse, } from "./swr-html-cache.js";
1
+ import { CACHEABLE_MARKER_HEADER, CACHED_AT_HEADER, CACHE_STATE_HEADER, cachedAtOf, canonicalWorkspacePin, fromStoredResponse, isPlatformWorkspaceNpmUrl, swrDecision, toCacheableStoredResponse, UNVERSIONED_CLIENT_CACHE_CONTROL, VERSIONED_CLIENT_CACHE_CONTROL, } from "./swr-html-cache.js";
2
2
  import { ROOT_HTML_CACHE_CONTRACT } from "./root-html-cache-contract.js";
3
3
  import { isTrackingParam } from "@vibes.diy/api-types";
4
4
  import { etagMatches } from "../public/etag-utils.js";
5
- export function bareRootHtmlSwrKey(origin, workspaceNpmUrl) {
6
- return `${origin}/?vibes-root-swr=ws-${encodeURIComponent(workspaceNpmUrl ?? "")}`;
5
+ export function bareRootHtmlSwrKey(origin, workspaceNpmUrl, fsId) {
6
+ return `${origin}${versionedKeyPrefix(fsId)}/?vibes-root-swr=ws-${encodeURIComponent(workspaceNpmUrl ?? "")}`;
7
7
  }
8
- export function pinnedRootHtmlSwrKey(origin, npmUrl) {
9
- return `${origin}/?npmUrl=${encodeURIComponent(canonicalWorkspacePin(npmUrl))}&contract=${ROOT_HTML_CACHE_CONTRACT}`;
8
+ function versionedKeyPrefix(fsId) {
9
+ return fsId === undefined ? "" : `/~${fsId}~`;
10
+ }
11
+ function versionedRootFsId(pathname) {
12
+ return /^\/~(z[a-zA-Z0-9]{8,})~(?:\/(?:index\.html)?)?$/.exec(pathname)?.[1];
13
+ }
14
+ export function pinnedRootHtmlSwrKey(origin, npmUrl, fsId) {
15
+ return `${origin}${versionedKeyPrefix(fsId)}/?npmUrl=${encodeURIComponent(canonicalWorkspacePin(npmUrl))}&contract=${ROOT_HTML_CACHE_CONTRACT}`;
10
16
  }
11
17
  const VIBE_PROTOCOL_PARAM = "vibesProto";
12
18
  function eligibleKey(req, workspaceNpmUrl) {
@@ -17,13 +23,14 @@ function eligibleKey(req, workspaceNpmUrl) {
17
23
  if ((req.headers.get("Cookie") ?? "").includes("Vibes-Npm-Url"))
18
24
  return undefined;
19
25
  const url = new URL(req.url);
20
- if (url.pathname !== "/" && url.pathname !== "/index.html")
26
+ const fsId = versionedRootFsId(url.pathname);
27
+ if (fsId === undefined && url.pathname !== "/" && url.pathname !== "/index.html")
21
28
  return undefined;
22
29
  const params = [...url.searchParams];
23
30
  if (params.some(([name]) => isTrackingParam(name)))
24
31
  return undefined;
25
32
  if (params.length === 0)
26
- return bareRootHtmlSwrKey(url.origin, workspaceNpmUrl);
33
+ return bareRootHtmlSwrKey(url.origin, workspaceNpmUrl, fsId);
27
34
  let npmUrl;
28
35
  let seenProto = false;
29
36
  for (const [name, value] of params) {
@@ -45,7 +52,7 @@ function eligibleKey(req, workspaceNpmUrl) {
45
52
  return undefined;
46
53
  if (workspaceNpmUrl === undefined || !isPlatformWorkspaceNpmUrl(npmUrl, workspaceNpmUrl))
47
54
  return undefined;
48
- return pinnedRootHtmlSwrKey(url.origin, npmUrl);
55
+ return pinnedRootHtmlSwrKey(url.origin, npmUrl, fsId);
49
56
  }
50
57
  function refreshRequest(req) {
51
58
  const headers = new Headers(req.headers);
@@ -74,6 +81,8 @@ export async function serveRootHtmlWithSwr(opts) {
74
81
  const key = eligibleKey(opts.request, opts.workspaceNpmUrl);
75
82
  if (key === undefined)
76
83
  return opts.inner(opts.request);
84
+ const isVersionedRoot = versionedRootFsId(new URL(opts.request.url).pathname) !== undefined;
85
+ const clientCacheControl = isVersionedRoot ? VERSIONED_CLIENT_CACHE_CONTROL : UNVERSIONED_CLIENT_CACHE_CONTROL;
77
86
  const cached = await opts.cache.match(key);
78
87
  if (cached !== undefined) {
79
88
  const state = swrDecision({ cachedAt: cachedAtOf(cached), now: opts.now() });
@@ -83,13 +92,17 @@ export async function serveRootHtmlWithSwr(opts) {
83
92
  }
84
93
  const serveState = state === "fresh" ? "hit-fresh" : "hit-stale-refreshing";
85
94
  if (wants304(opts.request, cached.headers.get("ETag"))) {
86
- const h = new Headers({ "Cache-Control": "public, no-cache, must-revalidate", [CACHE_STATE_HEADER]: serveState });
95
+ const h = new Headers({
96
+ "Cache-Control": clientCacheControl,
97
+ [CACHE_STATE_HEADER]: serveState,
98
+ "Access-Control-Allow-Origin": "*",
99
+ });
87
100
  const etag = cached.headers.get("ETag");
88
101
  if (etag !== null)
89
102
  h.set("ETag", etag);
90
103
  return new Response(null, { status: 304, headers: h });
91
104
  }
92
- return fromStoredResponse(cached, serveState);
105
+ return fromStoredResponse(cached, serveState, clientCacheControl);
93
106
  }
94
107
  }
95
108
  const res = await renderAndStore(opts, key);
@@ -1 +1 @@
1
- {"version":3,"file":"swr-html-cache-orchestrator.js","sourceRoot":"","sources":["../../jsr/intern/swr-html-cache-orchestrator.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,qBAAqB,EACrB,kBAAkB,EAClB,yBAAyB,EACzB,WAAW,EACX,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAoCtD,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,eAAmC;IACpF,OAAO,GAAG,MAAM,uBAAuB,kBAAkB,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,CAAC;AACrF,CAAC;AAwBD,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,MAAc;IACjE,OAAO,GAAG,MAAM,YAAY,kBAAkB,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,aAAa,wBAAwB,EAAE,CAAC;AACvH,CAAC;AAsBD,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAqBzC,SAAS,WAAW,CAAC,GAAY,EAAE,eAAmC;IACpE,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IAI3C,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IAGvE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,OAAO,SAAS,CAAC;IAClF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,IAAI,GAAG,CAAC,QAAQ,KAAK,aAAa;QAAE,OAAO,SAAS,CAAC;IAI7E,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IAKrE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAKhF,IAAI,MAA0B,CAAC;IAC/B,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACnC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC;YAC3C,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC;aAAM,IAAI,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACxC,IAAI,SAAS;gBAAE,OAAO,SAAS,CAAC;YAChC,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,eAAe,KAAK,SAAS,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,eAAe,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3G,OAAO,oBAAoB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAID,SAAS,cAAc,CAAC,GAAY;IAClC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAChC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACpC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,IAA8B,EAAE,GAAW;IACvE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,yBAAyB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAClE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QAKN,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAKD,SAAS,QAAQ,CAAC,GAAY,EAAE,IAAmB;IACjD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7C,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAChD,OAAO,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAA8B;IACvE,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5D,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC7E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;gBAGtB,IAAI,CAAC,SAAS,CACZ,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAC5B,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,SAAS,CAChB,CACF,CAAC;YACJ,CAAC;YACD,MAAM,UAAU,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,sBAAsB,CAAC;YAC5E,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBACvD,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,EAAE,eAAe,EAAE,mCAAmC,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;gBAClH,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACxC,IAAI,IAAI,KAAK,IAAI;oBAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACvC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,kBAAkB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACjC,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"swr-html-cache-orchestrator.js","sourceRoot":"","sources":["../../jsr/intern/swr-html-cache-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,10 @@ export declare function swrDecision(opts: {
9
9
  readonly cachedAt: number;
10
10
  readonly now: number;
11
11
  }): SwrState;
12
+ export declare const UNVERSIONED_CLIENT_CACHE_CONTROL = "public, no-cache, must-revalidate";
13
+ export declare const VERSIONED_CLIENT_CACHE_CONTROL = "public, max-age=86400";
12
14
  export declare function toCacheableStoredResponse(res: Response, now: number): Response | undefined;
13
- export declare function fromStoredResponse(stored: Response, state: CacheServeState): Response;
15
+ export declare function fromStoredResponse(stored: Response, state: CacheServeState, clientCacheControl?: string): Response;
14
16
  export declare function cachedAtOf(stored: Response): number;
15
17
  export declare function isPlatformWorkspaceNpmUrl(candidate: string, workspace: string): boolean;
16
18
  export declare function canonicalWorkspacePin(npmUrl: string): string;
@@ -12,7 +12,8 @@ export function swrDecision(opts) {
12
12
  return "fresh";
13
13
  return "stale";
14
14
  }
15
- const CLIENT_CACHE_CONTROL = "public, no-cache, must-revalidate";
15
+ export const UNVERSIONED_CLIENT_CACHE_CONTROL = "public, no-cache, must-revalidate";
16
+ export const VERSIONED_CLIENT_CACHE_CONTROL = "public, max-age=86400";
16
17
  const STORED_CACHE_CONTROL = "public, s-maxage=86400";
17
18
  export function toCacheableStoredResponse(res, now) {
18
19
  if (res.status !== 200)
@@ -28,10 +29,10 @@ export function toCacheableStoredResponse(res, now) {
28
29
  headers.set("Cache-Control", STORED_CACHE_CONTROL);
29
30
  return new Response(res.body, { status: res.status, headers });
30
31
  }
31
- export function fromStoredResponse(stored, state) {
32
+ export function fromStoredResponse(stored, state, clientCacheControl = UNVERSIONED_CLIENT_CACHE_CONTROL) {
32
33
  const headers = new Headers(stored.headers);
33
34
  headers.delete(CACHED_AT_HEADER);
34
- headers.set("Cache-Control", CLIENT_CACHE_CONTROL);
35
+ headers.set("Cache-Control", clientCacheControl);
35
36
  headers.set(CACHE_STATE_HEADER, state);
36
37
  return new Response(stored.body, { status: stored.status, headers });
37
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"swr-html-cache.js","sourceRoot":"","sources":["../../jsr/intern/swr-html-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swr-html-cache.js","sourceRoot":"","sources":["../../jsr/intern/swr-html-cache.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/api-svc",
3
- "version": "12.1.0",
3
+ "version": "12.1.2",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -22,18 +22,19 @@
22
22
  "@libsql/client": "~0.17.4",
23
23
  "@neondatabase/serverless": "~1.1.0",
24
24
  "@noble/hashes": "~2.2.0",
25
- "@vibes.diy/api-pkg": "12.1.0",
26
- "@vibes.diy/api-sql": "12.1.0",
27
- "@vibes.diy/api-types": "12.1.0",
28
- "@vibes.diy/call-ai-v2": "12.1.0",
29
- "@vibes.diy/identity": "12.1.0",
30
- "@vibes.diy/prompts": "12.1.0",
31
- "@vibes.diy/vibe-db-explorer": "12.1.0",
32
- "@vibes.diy/vibe-runtime": "12.1.0",
33
- "@vibes.diy/vibe-types": "12.1.0",
25
+ "@vibes.diy/api-pkg": "12.1.2",
26
+ "@vibes.diy/api-sql": "12.1.2",
27
+ "@vibes.diy/api-types": "12.1.2",
28
+ "@vibes.diy/call-ai-v2": "12.1.2",
29
+ "@vibes.diy/identity": "12.1.2",
30
+ "@vibes.diy/prompts": "12.1.2",
31
+ "@vibes.diy/vibe-db-explorer": "12.1.2",
32
+ "@vibes.diy/vibe-runtime": "12.1.2",
33
+ "@vibes.diy/vibe-types": "12.1.2",
34
34
  "acorn": "~8.17.0",
35
35
  "arktype": "~2.2.3",
36
- "call-ai": "12.1.0",
36
+ "call-ai": "12.1.2",
37
+ "charwise": "~3.0.1",
37
38
  "cookie": "~2.0.1",
38
39
  "csv-parse": "~7.0.1",
39
40
  "drizzle-orm": "~0.45.2",
@@ -1,4 +1,5 @@
1
1
  import { type QueryFilter } from "@vibes.diy/api-types";
2
+ export declare function encodeQueryKey(v: unknown): string;
2
3
  export declare function applyQueryFilter(docs: ({
3
4
  _id: string;
4
5
  } & Record<string, unknown>)[], filter: QueryFilter | undefined): ({
@@ -1,3 +1,5 @@
1
+ import { exception2Result } from "@adviser/cement";
2
+ import charwise from "charwise";
1
3
  function isInInclusiveRange(value, lo, hi) {
2
4
  if (typeof value === "string" && typeof lo === "string" && typeof hi === "string") {
3
5
  return value >= lo && value <= hi;
@@ -13,21 +15,47 @@ function isInInclusiveRange(value, lo, hi) {
13
15
  }
14
16
  return false;
15
17
  }
18
+ function stableStringify(v) {
19
+ if (v === null || typeof v !== "object")
20
+ return JSON.stringify(v) ?? "null";
21
+ if (Array.isArray(v))
22
+ return "[" + v.map(stableStringify).join(",") + "]";
23
+ const obj = v;
24
+ return ("{" +
25
+ Object.keys(obj)
26
+ .sort()
27
+ .map((k) => JSON.stringify(k) + ":" + stableStringify(obj[k]))
28
+ .join(",") +
29
+ "}");
30
+ }
31
+ export function encodeQueryKey(v) {
32
+ const r = exception2Result(() => charwise.encode(v));
33
+ return r.isErr() ? "￿obj:" + stableStringify(v) : r.Ok();
34
+ }
16
35
  export function applyQueryFilter(docs, filter) {
17
36
  if (!filter)
18
37
  return docs;
19
- const { field, key, keys, range } = filter;
38
+ const { field, key, keys, range, prefix } = filter;
39
+ let out = docs.filter((doc) => doc[field] !== undefined);
20
40
  if (key !== undefined) {
21
- return docs.filter((doc) => doc[field] === key);
41
+ const encodedKey = encodeQueryKey(key);
42
+ out = out.filter((doc) => encodeQueryKey(doc[field]) === encodedKey);
22
43
  }
23
44
  if (keys !== undefined) {
24
- const keySet = new Set(keys);
25
- return docs.filter((doc) => keySet.has(doc[field]));
45
+ const encodedKeys = new Set(keys.map((k) => encodeQueryKey(k)));
46
+ out = out.filter((doc) => encodedKeys.has(encodeQueryKey(doc[field])));
26
47
  }
27
48
  if (range !== undefined) {
28
49
  const [lo, hi] = range;
29
- return docs.filter((doc) => isInInclusiveRange(doc[field], lo, hi));
50
+ out = out.filter((doc) => isInInclusiveRange(doc[field], lo, hi));
51
+ }
52
+ if (prefix !== undefined) {
53
+ let encodedPrefix = encodeQueryKey(prefix);
54
+ if (Array.isArray(prefix) && encodedPrefix.endsWith("!")) {
55
+ encodedPrefix = encodedPrefix.slice(0, -1);
56
+ }
57
+ out = out.filter((doc) => encodeQueryKey(doc[field]).startsWith(encodedPrefix));
30
58
  }
31
- return docs;
59
+ return out;
32
60
  }
33
61
  //# sourceMappingURL=app-documents-query-filter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-documents-query-filter.js","sourceRoot":"","sources":["../../jsr/public/app-documents-query-filter.ts"],"names":[],"mappings":"AAEA,SAAS,kBAAkB,CAAC,KAAc,EAAE,EAAW,EAAE,EAAW;IAClE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAClF,OAAO,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC;IACpC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAClF,OAAO,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC;IACpC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAClF,OAAO,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC;IACpC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,EAAE,KAAK,SAAS,IAAI,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC;QACrF,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,IAAmD,EACnD,MAA+B;IAE/B,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAC3C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"app-documents-query-filter.js","sourceRoot":"","sources":["../../jsr/public/app-documents-query-filter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  export { putDocEvento, deleteDocEvento, broadcastEphemeralEvento } from "./app-documents-write-eventos.js";
2
2
  export { getDocEvento, queryDocsEvento, subscribeDocsEvento, subscribeViewerGrantsEvento, listDbNamesEvento, } from "./app-documents-read-eventos.js";
3
3
  export { listDmThreadsEvento, markDmReadEvento } from "./app-documents-dm-eventos.js";
4
- export { applyQueryFilter } from "./app-documents-query-filter.js";
4
+ export { applyQueryFilter, encodeQueryKey } from "./app-documents-query-filter.js";
@@ -1,5 +1,5 @@
1
1
  export { putDocEvento, deleteDocEvento, broadcastEphemeralEvento } from "./app-documents-write-eventos.js";
2
2
  export { getDocEvento, queryDocsEvento, subscribeDocsEvento, subscribeViewerGrantsEvento, listDbNamesEvento, } from "./app-documents-read-eventos.js";
3
3
  export { listDmThreadsEvento, markDmReadEvento } from "./app-documents-dm-eventos.js";
4
- export { applyQueryFilter } from "./app-documents-query-filter.js";
4
+ export { applyQueryFilter, encodeQueryKey } from "./app-documents-query-filter.js";
5
5
  //# sourceMappingURL=app-documents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-documents.js","sourceRoot":"","sources":["../../jsr/public/app-documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC3G,OAAO,EACL,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"app-documents.js","sourceRoot":"","sources":["../../jsr/public/app-documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC3G,OAAO,EACL,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { EventoHandler } from "@adviser/cement";
2
+ import { MsgBase, ReqAppLogs, ResAppLogs, VibesDiyError, W3CWebSocketEvent } from "@vibes.diy/api-types";
3
+ export declare function clampLogLimit(limit: number): number;
4
+ export declare const appLogsEvento: EventoHandler<W3CWebSocketEvent, MsgBase<ReqAppLogs>, ResAppLogs | VibesDiyError>;
@@ -0,0 +1,109 @@
1
+ import { Result, Option, EventoResult } from "@adviser/cement";
2
+ import { reqAppLogs, APP_LOGS_LIMIT_DEFAULT, APP_LOGS_LIMIT_MAX, logEventIdFloor, } from "@vibes.diy/api-types";
3
+ import { type } from "arktype";
4
+ import { and, eq, gt, gte } from "drizzle-orm/sql/expressions";
5
+ import { asc } from "drizzle-orm";
6
+ import { unwrapMsgBase } from "../unwrap-msg-base.js";
7
+ import { checkAuth } from "../check-auth.js";
8
+ import { authorizeSlugOwner } from "./authorize-slug-owner.js";
9
+ import { logAdminWriteOverride } from "./platform-admin.js";
10
+ async function authorized(vctx, args) {
11
+ const auth = await authorizeSlugOwner(vctx, args);
12
+ if (auth === undefined)
13
+ return false;
14
+ if (auth.isOwner)
15
+ return true;
16
+ if (auth.isAdmin) {
17
+ logAdminWriteOverride(vctx, {
18
+ op: "app-logs",
19
+ actingUserId: args.userId,
20
+ ownerHandle: args.ownerHandle,
21
+ appSlug: args.appSlug,
22
+ });
23
+ return true;
24
+ }
25
+ return false;
26
+ }
27
+ function denialError(ownerHandle, appSlug) {
28
+ return {
29
+ type: "vibes.diy.res-error",
30
+ error: {
31
+ message: `not found or not authorized to read the logs of ${ownerHandle}/${appSlug}`,
32
+ code: "app-logs-not-found",
33
+ },
34
+ };
35
+ }
36
+ export function clampLogLimit(limit) {
37
+ if (!Number.isFinite(limit) || limit <= 0)
38
+ return APP_LOGS_LIMIT_DEFAULT;
39
+ return Math.min(Math.floor(limit), APP_LOGS_LIMIT_MAX);
40
+ }
41
+ export const appLogsEvento = {
42
+ hash: "app-logs",
43
+ validate: unwrapMsgBase(async (msg) => {
44
+ const ret = reqAppLogs(msg.payload);
45
+ if (ret instanceof type.errors) {
46
+ return Result.Ok(Option.None());
47
+ }
48
+ return Result.Ok(Option.Some({ ...msg, payload: ret }));
49
+ }),
50
+ handle: checkAuth(async (ctx) => {
51
+ const req = ctx.validated.payload;
52
+ const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
53
+ const userId = req._auth.verifiedAuth.claims.userId;
54
+ if (!(await authorized(vctx, { ownerHandle: req.ownerHandle, appSlug: req.appSlug, userId }))) {
55
+ await ctx.send.send(ctx, denialError(req.ownerHandle, req.appSlug));
56
+ return Result.Ok(EventoResult.Continue);
57
+ }
58
+ const t = vctx.sql.tables.vibeLogEvents;
59
+ const limit = clampLogLimit(req.limit);
60
+ const conds = [eq(t.ownerHandle, req.ownerHandle), eq(t.appSlug, req.appSlug)];
61
+ if (req.sinceId !== undefined && req.sinceId !== "")
62
+ conds.push(gt(t.id, req.sinceId));
63
+ if (req.sinceTs !== undefined && req.sinceTs !== "") {
64
+ const sinceMs = Date.parse(req.sinceTs);
65
+ if (Number.isFinite(sinceMs))
66
+ conds.push(gte(t.id, logEventIdFloor(sinceMs)));
67
+ }
68
+ if (req.level !== undefined)
69
+ conds.push(eq(t.level, req.level));
70
+ const rows = await vctx.sql.db
71
+ .select({
72
+ id: t.id,
73
+ ts: t.ts,
74
+ lane: t.lane,
75
+ level: t.level,
76
+ trigger: t.trigger,
77
+ fsId: t.fsId,
78
+ body: t.body,
79
+ sessionId: t.sessionId,
80
+ viewerHandle: t.viewerHandle,
81
+ })
82
+ .from(t)
83
+ .where(and(...conds))
84
+ .orderBy(asc(t.id))
85
+ .limit(limit + 1);
86
+ const hasMore = rows.length > limit;
87
+ const page = hasMore ? rows.slice(0, limit) : rows;
88
+ const events = page.map((r) => ({
89
+ id: r.id,
90
+ ts: r.ts,
91
+ lane: r.lane,
92
+ level: r.level,
93
+ trigger: r.trigger,
94
+ fsId: r.fsId,
95
+ body: r.body,
96
+ sessionId: r.sessionId ?? null,
97
+ viewerHandle: r.viewerHandle ?? null,
98
+ }));
99
+ await ctx.send.send(ctx, {
100
+ type: "vibes.diy.res-app-logs",
101
+ ownerHandle: req.ownerHandle,
102
+ appSlug: req.appSlug,
103
+ events,
104
+ nextCursor: hasMore && page.length > 0 ? page[page.length - 1].id : null,
105
+ });
106
+ return Result.Ok(EventoResult.Continue);
107
+ }),
108
+ };
109
+ //# sourceMappingURL=app-logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-logs.js","sourceRoot":"","sources":["../../jsr/public/app-logs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { EventoHandler } from "@adviser/cement";
2
+ import { MsgBase, ReqAppTickStatus, ReqAppTickRearm, ResAppTickStatus, ResAppTickRearm, VibesDiyError, W3CWebSocketEvent } from "@vibes.diy/api-types";
3
+ export declare const appTickStatusEvento: EventoHandler<W3CWebSocketEvent, MsgBase<ReqAppTickStatus>, ResAppTickStatus | VibesDiyError>;
4
+ export declare const appTickRearmEvento: EventoHandler<W3CWebSocketEvent, MsgBase<ReqAppTickRearm>, ResAppTickRearm | VibesDiyError>;
@@ -0,0 +1,143 @@
1
+ import { Result, Option, EventoResult } from "@adviser/cement";
2
+ import { reqAppTickStatus, reqAppTickRearm, } 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 { authorizeSlugOwner } from "./authorize-slug-owner.js";
7
+ import { logAdminWriteOverride } from "./platform-admin.js";
8
+ import { notifyTickSilent } from "../intern/notify-tick-silent.js";
9
+ async function authorized(vctx, args) {
10
+ const auth = await authorizeSlugOwner(vctx, args);
11
+ if (auth === undefined)
12
+ return false;
13
+ if (auth.isOwner)
14
+ return true;
15
+ if (auth.isAdmin) {
16
+ logAdminWriteOverride(vctx, {
17
+ op: args.op,
18
+ actingUserId: args.userId,
19
+ ownerHandle: args.ownerHandle,
20
+ appSlug: args.appSlug,
21
+ });
22
+ return true;
23
+ }
24
+ return false;
25
+ }
26
+ function denialError(ownerHandle, appSlug) {
27
+ return {
28
+ type: "vibes.diy.res-error",
29
+ error: {
30
+ message: `not found or not authorized to manage the schedule of ${ownerHandle}/${appSlug}`,
31
+ code: "app-tick-not-found",
32
+ },
33
+ };
34
+ }
35
+ function unavailableError(message) {
36
+ return { type: "vibes.diy.res-error", error: { message, code: "app-tick-unavailable" } };
37
+ }
38
+ const isoOrNull = (ms) => (ms === null ? null : new Date(ms).toISOString());
39
+ export const appTickStatusEvento = {
40
+ hash: "app-tick-status",
41
+ validate: unwrapMsgBase(async (msg) => {
42
+ const ret = reqAppTickStatus(msg.payload);
43
+ if (ret instanceof type.errors) {
44
+ return Result.Ok(Option.None());
45
+ }
46
+ return Result.Ok(Option.Some({ ...msg, payload: ret }));
47
+ }),
48
+ handle: checkAuth(async (ctx) => {
49
+ const req = ctx.validated.payload;
50
+ const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
51
+ const userId = req._auth.verifiedAuth.claims.userId;
52
+ if (!(await authorized(vctx, { ownerHandle: req.ownerHandle, appSlug: req.appSlug, userId, op: "tick-status" }))) {
53
+ await ctx.send.send(ctx, denialError(req.ownerHandle, req.appSlug));
54
+ return Result.Ok(EventoResult.Continue);
55
+ }
56
+ const cp = vctx.backendControlPlane;
57
+ if (cp === undefined) {
58
+ await ctx.send.send(ctx, unavailableError("tick status is not available in this environment"));
59
+ return Result.Ok(EventoResult.Continue);
60
+ }
61
+ const rStatus = await cp.tickStatus(req.ownerHandle, req.appSlug);
62
+ if (rStatus.isErr()) {
63
+ await ctx.send.send(ctx, unavailableError(`tick status unavailable: ${rStatus.Err().message}`));
64
+ return Result.Ok(EventoResult.Continue);
65
+ }
66
+ const s = rStatus.Ok();
67
+ const notify = notifyTickSilent(vctx, {
68
+ ownerHandle: req.ownerHandle,
69
+ appSlug: req.appSlug,
70
+ state: s.state,
71
+ silenceMs: s.silenceMs,
72
+ }).catch((err) => {
73
+ vctx.logger.Error().Err(err).Msg("tick-silent notification failed");
74
+ });
75
+ if (vctx.waitUntil)
76
+ vctx.waitUntil(notify);
77
+ else
78
+ await notify;
79
+ await ctx.send.send(ctx, {
80
+ type: "vibes.diy.res-app-tick-status",
81
+ ownerHandle: req.ownerHandle,
82
+ appSlug: req.appSlug,
83
+ state: s.state,
84
+ intervalMs: s.intervalMs,
85
+ armedAt: s.armedAt,
86
+ lastAttemptAt: s.lastAttemptAt,
87
+ lastRunAt: s.lastRunAt,
88
+ lastErrorAt: s.lastErrorAt,
89
+ lastError: s.lastError,
90
+ attempt: s.attempt,
91
+ nextAlarmAt: isoOrNull(s.nextAlarmAt),
92
+ graceMs: s.graceMs,
93
+ overdueMs: s.overdueMs,
94
+ healed: s.healed,
95
+ });
96
+ return Result.Ok(EventoResult.Continue);
97
+ }),
98
+ };
99
+ export const appTickRearmEvento = {
100
+ hash: "app-tick-rearm",
101
+ validate: unwrapMsgBase(async (msg) => {
102
+ const ret = reqAppTickRearm(msg.payload);
103
+ if (ret instanceof type.errors) {
104
+ return Result.Ok(Option.None());
105
+ }
106
+ return Result.Ok(Option.Some({ ...msg, payload: ret }));
107
+ }),
108
+ handle: checkAuth(async (ctx) => {
109
+ const req = ctx.validated.payload;
110
+ const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
111
+ const userId = req._auth.verifiedAuth.claims.userId;
112
+ if (!(await authorized(vctx, { ownerHandle: req.ownerHandle, appSlug: req.appSlug, userId, op: "tick-rearm" }))) {
113
+ await ctx.send.send(ctx, denialError(req.ownerHandle, req.appSlug));
114
+ return Result.Ok(EventoResult.Continue);
115
+ }
116
+ const cp = vctx.backendControlPlane;
117
+ if (cp === undefined) {
118
+ await ctx.send.send(ctx, unavailableError("tick rearm is not available in this environment"));
119
+ return Result.Ok(EventoResult.Continue);
120
+ }
121
+ const rArm = await cp.arm(req.ownerHandle, req.appSlug);
122
+ if (rArm.isErr()) {
123
+ await ctx.send.send(ctx, unavailableError(`tick rearm failed: ${rArm.Err().message}`));
124
+ return Result.Ok(EventoResult.Continue);
125
+ }
126
+ const rStatus = await cp.tickStatus(req.ownerHandle, req.appSlug);
127
+ if (rStatus.isErr()) {
128
+ await ctx.send.send(ctx, unavailableError(`tick rearm status read failed: ${rStatus.Err().message}`));
129
+ return Result.Ok(EventoResult.Continue);
130
+ }
131
+ const s = rStatus.Ok();
132
+ await ctx.send.send(ctx, {
133
+ type: "vibes.diy.res-app-tick-rearm",
134
+ ownerHandle: req.ownerHandle,
135
+ appSlug: req.appSlug,
136
+ state: s.state,
137
+ intervalMs: s.intervalMs,
138
+ nextAlarmAt: isoOrNull(s.nextAlarmAt),
139
+ });
140
+ return Result.Ok(EventoResult.Continue);
141
+ }),
142
+ };
143
+ //# sourceMappingURL=app-tick.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-tick.js","sourceRoot":"","sources":["../../jsr/public/app-tick.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import type { loadVibeLiveSettings } from "../intern/load-vibe-env.js";
3
3
  export type RootHtmlLiveSettings = Awaited<ReturnType<typeof loadVibeLiveSettings>>;
4
4
  export interface RootHtmlLiveInputsOpts {
5
5
  readonly isUnversionedPublishedRootHtml: boolean;
6
+ readonly isVersionedRootHtml?: boolean;
6
7
  readonly loadPublicReadable: () => Promise<boolean>;
7
8
  readonly loadSeedDocs: () => Promise<SeedDocs | undefined>;
8
9
  readonly loadLiveSettings: () => Promise<RootHtmlLiveSettings>;
@@ -12,7 +13,7 @@ export interface RootHtmlLiveInputs {
12
13
  readonly seedDocs: SeedDocs | undefined;
13
14
  readonly liveSettings: RootHtmlLiveSettings | undefined;
14
15
  }
15
- export declare function loadRootHtmlLiveInputs({ isUnversionedPublishedRootHtml, loadPublicReadable, loadSeedDocs, loadLiveSettings, }: RootHtmlLiveInputsOpts): Promise<RootHtmlLiveInputs>;
16
+ export declare function loadRootHtmlLiveInputs({ isUnversionedPublishedRootHtml, isVersionedRootHtml, loadPublicReadable, loadSeedDocs, loadLiveSettings, }: RootHtmlLiveInputsOpts): Promise<RootHtmlLiveInputs>;
16
17
  export interface RootHtmlDbRegionOpts<Row> {
17
18
  readonly startAppsRow: () => Promise<Row | undefined>;
18
19
  readonly startLiveInputs: () => Promise<RootHtmlLiveInputs>;
@@ -1,6 +1,9 @@
1
- export async function loadRootHtmlLiveInputs({ isUnversionedPublishedRootHtml, loadPublicReadable, loadSeedDocs, loadLiveSettings, }) {
1
+ export async function loadRootHtmlLiveInputs({ isUnversionedPublishedRootHtml, isVersionedRootHtml, loadPublicReadable, loadSeedDocs, loadLiveSettings, }) {
2
2
  if (!isUnversionedPublishedRootHtml) {
3
- return { rootHtmlCacheable: false, seedDocs: undefined, liveSettings: undefined };
3
+ if (isVersionedRootHtml !== true) {
4
+ return { rootHtmlCacheable: false, seedDocs: undefined, liveSettings: undefined };
5
+ }
6
+ return { rootHtmlCacheable: await loadPublicReadable(), seedDocs: undefined, liveSettings: undefined };
4
7
  }
5
8
  const [publicReadable, liveSettings, seedDocs] = await Promise.all([loadPublicReadable(), loadLiveSettings(), loadSeedDocs()]);
6
9
  const rootHtmlCacheable = publicReadable;
@@ -1 +1 @@
1
- {"version":3,"file":"root-html-live-inputs.js","sourceRoot":"","sources":["../../jsr/public/root-html-live-inputs.ts"],"names":[],"mappings":"AA2DA,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAC3C,8BAA8B,EAC9B,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,GACO;IACvB,IAAI,CAAC,8BAA8B,EAAE,CAAC;QAGpC,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IACpF,CAAC;IAGD,MAAM,CAAC,cAAc,EAAE,YAAY,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,kBAAkB,EAAE,EAAE,gBAAgB,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAI/H,MAAM,iBAAiB,GAAG,cAAc,CAAC;IACzC,OAAO;QACL,iBAAiB;QAKjB,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAClD,YAAY;KACb,CAAC;AACJ,CAAC;AAuCD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAM,EAC9C,YAAY,EACZ,eAAe,GACW;IAC1B,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;IAC/B,MAAM,UAAU,GAAG,eAAe,EAAE,CAAC;IACrC,KAAK,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;IACzB,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;IAC/C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,UAAU,EAAE,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"root-html-live-inputs.js","sourceRoot":"","sources":["../../jsr/public/root-html-live-inputs.ts"],"names":[],"mappings":"AAqEA,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAC3C,8BAA8B,EAC9B,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,GACO;IACvB,IAAI,CAAC,8BAA8B,EAAE,CAAC;QAMpC,IAAI,mBAAmB,KAAK,IAAI,EAAE,CAAC;YACjC,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;QACpF,CAAC;QACD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IACzG,CAAC;IAGD,MAAM,CAAC,cAAc,EAAE,YAAY,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,kBAAkB,EAAE,EAAE,gBAAgB,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAI/H,MAAM,iBAAiB,GAAG,cAAc,CAAC;IACzC,OAAO;QACL,iBAAiB;QAKjB,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAClD,YAAY;KACb,CAAC;AACJ,CAAC;AAuCD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAM,EAC9C,YAAY,EACZ,eAAe,GACW;IAC1B,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;IAC/B,MAAM,UAAU,GAAG,eAAe,EAAE,CAAC;IACrC,KAAK,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;IACzB,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;IAC/C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,UAAU,EAAE,CAAC;AACxC,CAAC"}