@vibes.diy/api-svc 14.3.208 → 14.3.210
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/create-handler.js +6 -0
- package/create-handler.js.map +1 -1
- package/evento-handler-manifest.js +2 -0
- package/evento-handler-manifest.js.map +1 -1
- package/intern/agent-belt.js +1 -1
- package/intern/agent-belt.js.map +1 -1
- package/intern/agent-session-instruction.d.ts +3 -3
- package/intern/agent-session-instruction.js +11 -9
- package/intern/agent-session-instruction.js.map +1 -1
- package/intern/grouped-vibe-import-map.d.ts +2 -0
- package/intern/grouped-vibe-import-map.js +2 -0
- package/intern/grouped-vibe-import-map.js.map +1 -1
- package/intern/opens-check.js +1 -0
- package/intern/opens-check.js.map +1 -1
- package/intern/places-free.d.ts +103 -0
- package/intern/places-free.js +546 -0
- package/intern/places-free.js.map +1 -0
- package/package.json +18 -18
- package/public/search-places.d.ts +7 -0
- package/public/search-places.js +60 -0
- package/public/search-places.js.map +1 -0
- package/types.d.ts +3 -0
- package/types.js.map +1 -1
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Result, Option, EventoResult } from "@adviser/cement";
|
|
2
|
+
import { reqSearchPlaces, } from "@vibes.diy/api-types";
|
|
3
|
+
import { ensureLogger } from "@vibes.diy/identity";
|
|
4
|
+
import { type } from "arktype";
|
|
5
|
+
import { unwrapMsgBase } from "../unwrap-msg-base.js";
|
|
6
|
+
import { optAuth } from "../check-auth.js";
|
|
7
|
+
import { callerCanReadApp } from "./list-app-models.js";
|
|
8
|
+
import { choosePlacesMode, placesQueryProblems, searchPlacesFree } from "../intern/places-free.js";
|
|
9
|
+
export const SEARCH_PLACES_NOT_VISIBLE = "search-places-not-visible";
|
|
10
|
+
export const SEARCH_PLACES_INVALID = "search-places-invalid";
|
|
11
|
+
export const SEARCH_PLACES_UPSTREAM = "search-places-upstream";
|
|
12
|
+
export const SEARCH_PLACES_UPSTREAM_MESSAGE = "The place search did not answer this time. Try again in a moment.";
|
|
13
|
+
export const searchPlacesEvento = {
|
|
14
|
+
hash: "search-places",
|
|
15
|
+
validate: unwrapMsgBase(async (msg) => {
|
|
16
|
+
const ret = reqSearchPlaces(msg.payload);
|
|
17
|
+
if (ret instanceof type.errors) {
|
|
18
|
+
return Result.Ok(Option.None());
|
|
19
|
+
}
|
|
20
|
+
return Result.Ok(Option.Some({ ...msg, payload: ret }));
|
|
21
|
+
}),
|
|
22
|
+
handle: optAuth(async (ctx) => {
|
|
23
|
+
const req = ctx.validated.payload;
|
|
24
|
+
const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
|
|
25
|
+
const sendError = (message, code) => ctx.send.send(ctx, { type: "vibes.diy.res-error", error: { message, code } });
|
|
26
|
+
const visible = await callerCanReadApp(vctx, {
|
|
27
|
+
ownerHandle: req.ownerHandle,
|
|
28
|
+
appSlug: req.appSlug,
|
|
29
|
+
callerUserId: req._auth?.verifiedAuth.claims.userId,
|
|
30
|
+
});
|
|
31
|
+
if (visible === false) {
|
|
32
|
+
await sendError("This app's place search is not available to you.", SEARCH_PLACES_NOT_VISIBLE);
|
|
33
|
+
return Result.Ok(EventoResult.Continue);
|
|
34
|
+
}
|
|
35
|
+
const problems = placesQueryProblems(req.query);
|
|
36
|
+
if (problems.length > 0) {
|
|
37
|
+
await sendError(problems.join("; "), SEARCH_PLACES_INVALID);
|
|
38
|
+
return Result.Ok(EventoResult.Continue);
|
|
39
|
+
}
|
|
40
|
+
const decision = choosePlacesMode({ googlePlacesKey: vctx.googlePlacesKey });
|
|
41
|
+
const rResult = await searchPlacesFree({
|
|
42
|
+
fetch: (input, init) => fetch(input, init),
|
|
43
|
+
query: req.query,
|
|
44
|
+
geoapifyKey: vctx.geoapifyKey,
|
|
45
|
+
});
|
|
46
|
+
if (rResult.isErr()) {
|
|
47
|
+
ensureLogger(vctx.sthis, "searchPlaces")
|
|
48
|
+
.Warn()
|
|
49
|
+
.Str("reason", decision.reason)
|
|
50
|
+
.Str("app", `${req.ownerHandle}/${req.appSlug}`)
|
|
51
|
+
.Err(rResult.Err())
|
|
52
|
+
.Msg("place search failed");
|
|
53
|
+
await sendError(SEARCH_PLACES_UPSTREAM_MESSAGE, SEARCH_PLACES_UPSTREAM);
|
|
54
|
+
return Result.Ok(EventoResult.Continue);
|
|
55
|
+
}
|
|
56
|
+
await ctx.send.send(ctx, { type: "vibes.diy.res-search-places", result: rResult.Ok() });
|
|
57
|
+
return Result.Ok(EventoResult.Continue);
|
|
58
|
+
}),
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=search-places.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-places.js","sourceRoot":"","sources":["../../jsr/public/search-places.ts"],"names":[],"mappings":"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"}
|
package/types.d.ts
CHANGED
|
@@ -73,6 +73,9 @@ export interface VibesApiSQLCtx {
|
|
|
73
73
|
posthogKey?: string;
|
|
74
74
|
posthogHost?: string;
|
|
75
75
|
prodiaToken?: string;
|
|
76
|
+
geoapifyKey?: string;
|
|
77
|
+
googlePlacesKey?: string;
|
|
78
|
+
googleMapsBrowserKey?: string;
|
|
76
79
|
inceptionApiKey?: string;
|
|
77
80
|
clerkSecretKey?: string;
|
|
78
81
|
verifySessionToken?: VerifySessionToken;
|
package/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../jsr/types.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAQ/B,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../jsr/types.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAQ/B,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAka1D,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,EAAE,CACzC,IAAI,CAAC;IACH,IAAI,EAAE,+BAA+B;IACrC,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,QAAQ;IACrB,MAAM,EAAE,QAAQ;CACjB,CAAC,CACH,CAAC;AAGF,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,EAAE,CAC1C,IAAI,CAAC;IACH,IAAI,EAAE,8BAA8B;IACpC,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,QAAQ;IAOhB,cAAc,EAAE,SAAS;CAC1B,CAAC,CACH,CAAC;AAGF,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC3C,OAAO,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,EAAE,CAC5C,IAAI,CAAC;IACH,IAAI,EAAE,mCAAmC;IACzC,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,cAAc;CACxB,CAAC,CACH,CAAC;AAGF,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC7C,OAAO,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC"}
|