@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.
- package/evento-handler-manifest.js +5 -0
- package/evento-handler-manifest.js.map +1 -1
- package/index.d.ts +2 -0
- package/index.js +2 -0
- package/index.js.map +1 -1
- package/intern/attempt-backend-fetch.d.ts +4 -0
- package/intern/attempt-backend-fetch.js +13 -0
- package/intern/attempt-backend-fetch.js.map +1 -1
- package/intern/attempt-backend-onchange.d.ts +4 -0
- package/intern/attempt-backend-onchange.js +12 -0
- package/intern/attempt-backend-onchange.js.map +1 -1
- package/intern/attempt-backend-scheduled.d.ts +4 -0
- package/intern/attempt-backend-scheduled.js +12 -0
- package/intern/attempt-backend-scheduled.js.map +1 -1
- package/intern/backend-db-callback.d.ts +1 -0
- package/intern/backend-db-callback.js +54 -8
- package/intern/backend-db-callback.js.map +1 -1
- package/intern/backend-do-addr.d.ts +6 -0
- package/intern/backend-do-addr.js +10 -1
- package/intern/backend-do-addr.js.map +1 -1
- package/intern/backend-do-control-plane.d.ts +34 -0
- package/intern/backend-do-control-plane.js +68 -0
- package/intern/backend-do-control-plane.js.map +1 -0
- package/intern/backend-log-callback.d.ts +20 -0
- package/intern/backend-log-callback.js +47 -0
- package/intern/backend-log-callback.js.map +1 -0
- package/intern/backend-log-op.d.ts +1 -0
- package/intern/backend-log-op.js +2 -0
- package/intern/backend-log-op.js.map +1 -0
- package/intern/backend-log-rate.d.ts +12 -0
- package/intern/backend-log-rate.js +25 -0
- package/intern/backend-log-rate.js.map +1 -0
- package/intern/backend-tick-liveness.d.ts +20 -0
- package/intern/backend-tick-liveness.js +26 -0
- package/intern/backend-tick-liveness.js.map +1 -0
- package/intern/client-log-ingest.d.ts +35 -0
- package/intern/client-log-ingest.js +119 -0
- package/intern/client-log-ingest.js.map +1 -0
- package/intern/load-selected-backend.d.ts +1 -0
- package/intern/load-selected-backend.js +1 -1
- package/intern/load-selected-backend.js.map +1 -1
- package/intern/notify-tick-silent.d.ts +10 -0
- package/intern/notify-tick-silent.js +31 -0
- package/intern/notify-tick-silent.js.map +1 -0
- package/intern/prune-vibe-logs.d.ts +13 -0
- package/intern/prune-vibe-logs.js +26 -0
- package/intern/prune-vibe-logs.js.map +1 -0
- package/intern/swr-html-cache-orchestrator.d.ts +2 -2
- package/intern/swr-html-cache-orchestrator.js +23 -10
- package/intern/swr-html-cache-orchestrator.js.map +1 -1
- package/intern/swr-html-cache.d.ts +3 -1
- package/intern/swr-html-cache.js +4 -3
- package/intern/swr-html-cache.js.map +1 -1
- package/package.json +12 -11
- package/public/app-documents-query-filter.d.ts +1 -0
- package/public/app-documents-query-filter.js +34 -6
- package/public/app-documents-query-filter.js.map +1 -1
- package/public/app-documents.d.ts +1 -1
- package/public/app-documents.js +1 -1
- package/public/app-documents.js.map +1 -1
- package/public/app-logs.d.ts +4 -0
- package/public/app-logs.js +109 -0
- package/public/app-logs.js.map +1 -0
- package/public/app-tick.d.ts +4 -0
- package/public/app-tick.js +143 -0
- package/public/app-tick.js.map +1 -0
- package/public/root-html-live-inputs.d.ts +2 -1
- package/public/root-html-live-inputs.js +5 -2
- package/public/root-html-live-inputs.js.map +1 -1
- package/public/serv-entry-point.js +4 -1
- package/public/serv-entry-point.js.map +1 -1
- package/types.d.ts +2 -0
- 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
|
-
|
|
9
|
-
return
|
|
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
|
-
|
|
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({
|
|
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,
|
|
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;
|
package/intern/swr-html-cache.js
CHANGED
|
@@ -12,7 +12,8 @@ export function swrDecision(opts) {
|
|
|
12
12
|
return "fresh";
|
|
13
13
|
return "stale";
|
|
14
14
|
}
|
|
15
|
-
const
|
|
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",
|
|
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":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAYtC,MAAM,CAAC,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAEhE,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAEpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAKlD,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3C,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAKlD,MAAM,UAAU,WAAW,CAAC,IAAyD;IACnF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;IAGrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,cAAc;QAAE,OAAO,SAAS,CAAC;IACrE,IAAI,GAAG,GAAG,YAAY;QAAE,OAAO,OAAO,CAAC;IACvC,OAAO,OAAO,CAAC;AACjB,CAAC;AAKD,MAAM,
|
|
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.
|
|
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.
|
|
26
|
-
"@vibes.diy/api-sql": "12.1.
|
|
27
|
-
"@vibes.diy/api-types": "12.1.
|
|
28
|
-
"@vibes.diy/call-ai-v2": "12.1.
|
|
29
|
-
"@vibes.diy/identity": "12.1.
|
|
30
|
-
"@vibes.diy/prompts": "12.1.
|
|
31
|
-
"@vibes.diy/vibe-db-explorer": "12.1.
|
|
32
|
-
"@vibes.diy/vibe-runtime": "12.1.
|
|
33
|
-
"@vibes.diy/vibe-types": "12.1.
|
|
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.
|
|
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,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
|
-
|
|
41
|
+
const encodedKey = encodeQueryKey(key);
|
|
42
|
+
out = out.filter((doc) => encodeQueryKey(doc[field]) === encodedKey);
|
|
22
43
|
}
|
|
23
44
|
if (keys !== undefined) {
|
|
24
|
-
const
|
|
25
|
-
|
|
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
|
-
|
|
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
|
|
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":"
|
|
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";
|
package/public/app-documents.js
CHANGED
|
@@ -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
|
-
|
|
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":"
|
|
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"}
|