Skip to content

Commit 245dcf9

Browse files
committed
more handlers
1 parent c33e5a7 commit 245dcf9

8 files changed

Lines changed: 337 additions & 0 deletions

File tree

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import type { RouteOptions } from "fastify";
2+
import type { FastifyZodOpenApiSchema } from "fastify-zod-openapi";
3+
4+
import {
5+
BrowserSessionAddCookiesActionSchema,
6+
BrowserSessionAddCookiesRequestSchema,
7+
BrowserSessionAddCookiesResponseSchema,
8+
BrowserSessionHeadersSchema,
9+
} from "../../../schemas/v4/browserSession.js";
10+
import {
11+
browserSessionActionErrorResponses,
12+
createBrowserSessionActionHandler,
13+
} from "./shared.js";
14+
15+
const addCookiesRoute: RouteOptions = {
16+
method: "POST",
17+
url: "/browsersession/addCookies",
18+
schema: {
19+
operationId: "BrowserSessionAddCookies",
20+
summary: "browserSession.addCookies",
21+
headers: BrowserSessionHeadersSchema,
22+
body: BrowserSessionAddCookiesRequestSchema,
23+
response: {
24+
200: BrowserSessionAddCookiesResponseSchema,
25+
...browserSessionActionErrorResponses,
26+
},
27+
} satisfies FastifyZodOpenApiSchema,
28+
handler: createBrowserSessionActionHandler({
29+
method: "addCookies",
30+
actionSchema: BrowserSessionAddCookiesActionSchema,
31+
execute: async ({ stagehand, params }) => {
32+
await stagehand.context.addCookies(params.cookies);
33+
return {
34+
result: {
35+
added: params.cookies.length,
36+
},
37+
};
38+
},
39+
}),
40+
};
41+
42+
export default addCookiesRoute;
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import type { RouteOptions } from "fastify";
2+
import type { FastifyZodOpenApiSchema } from "fastify-zod-openapi";
3+
4+
import {
5+
BrowserSessionBrowserbaseDebugURLActionSchema,
6+
BrowserSessionBrowserbaseDebugURLRequestSchema,
7+
BrowserSessionBrowserbaseDebugURLResponseSchema,
8+
BrowserSessionHeadersSchema,
9+
} from "../../../schemas/v4/browserSession.js";
10+
import {
11+
browserSessionActionErrorResponses,
12+
createBrowserSessionActionHandler,
13+
} from "./shared.js";
14+
15+
const browserbaseDebugURLRoute: RouteOptions = {
16+
method: "POST",
17+
url: "/browsersession/browserbaseDebugURL",
18+
schema: {
19+
operationId: "BrowserSessionBrowserbaseDebugURL",
20+
summary: "browserSession.browserbaseDebugURL",
21+
headers: BrowserSessionHeadersSchema,
22+
body: BrowserSessionBrowserbaseDebugURLRequestSchema,
23+
response: {
24+
200: BrowserSessionBrowserbaseDebugURLResponseSchema,
25+
...browserSessionActionErrorResponses,
26+
},
27+
} satisfies FastifyZodOpenApiSchema,
28+
handler: createBrowserSessionActionHandler({
29+
method: "browserbaseDebugURL",
30+
actionSchema: BrowserSessionBrowserbaseDebugURLActionSchema,
31+
execute: async ({ stagehand }) => {
32+
return {
33+
result: {
34+
browserbaseDebugURL: stagehand.browserbaseDebugURL ?? null,
35+
},
36+
};
37+
},
38+
}),
39+
};
40+
41+
export default browserbaseDebugURLRoute;
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import type { RouteOptions } from "fastify";
2+
import type { FastifyZodOpenApiSchema } from "fastify-zod-openapi";
3+
4+
import {
5+
BrowserSessionBrowserbaseSessionIDActionSchema,
6+
BrowserSessionBrowserbaseSessionIDRequestSchema,
7+
BrowserSessionBrowserbaseSessionIDResponseSchema,
8+
BrowserSessionHeadersSchema,
9+
} from "../../../schemas/v4/browserSession.js";
10+
import {
11+
browserSessionActionErrorResponses,
12+
createBrowserSessionActionHandler,
13+
} from "./shared.js";
14+
15+
const browserbaseSessionIDRoute: RouteOptions = {
16+
method: "POST",
17+
url: "/browsersession/browserbaseSessionID",
18+
schema: {
19+
operationId: "BrowserSessionBrowserbaseSessionID",
20+
summary: "browserSession.browserbaseSessionID",
21+
headers: BrowserSessionHeadersSchema,
22+
body: BrowserSessionBrowserbaseSessionIDRequestSchema,
23+
response: {
24+
200: BrowserSessionBrowserbaseSessionIDResponseSchema,
25+
...browserSessionActionErrorResponses,
26+
},
27+
} satisfies FastifyZodOpenApiSchema,
28+
handler: createBrowserSessionActionHandler({
29+
method: "browserbaseSessionID",
30+
actionSchema: BrowserSessionBrowserbaseSessionIDActionSchema,
31+
execute: async ({ stagehand }) => {
32+
return {
33+
result: {
34+
browserbaseSessionID: stagehand.browserbaseSessionID ?? null,
35+
},
36+
};
37+
},
38+
}),
39+
};
40+
41+
export default browserbaseSessionIDRoute;
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import type { RouteOptions } from "fastify";
2+
import type { FastifyZodOpenApiSchema } from "fastify-zod-openapi";
3+
4+
import {
5+
BrowserSessionBrowserbaseSessionURLActionSchema,
6+
BrowserSessionBrowserbaseSessionURLRequestSchema,
7+
BrowserSessionBrowserbaseSessionURLResponseSchema,
8+
BrowserSessionHeadersSchema,
9+
} from "../../../schemas/v4/browserSession.js";
10+
import {
11+
browserSessionActionErrorResponses,
12+
createBrowserSessionActionHandler,
13+
} from "./shared.js";
14+
15+
const browserbaseSessionURLRoute: RouteOptions = {
16+
method: "POST",
17+
url: "/browsersession/browserbaseSessionURL",
18+
schema: {
19+
operationId: "BrowserSessionBrowserbaseSessionURL",
20+
summary: "browserSession.browserbaseSessionURL",
21+
headers: BrowserSessionHeadersSchema,
22+
body: BrowserSessionBrowserbaseSessionURLRequestSchema,
23+
response: {
24+
200: BrowserSessionBrowserbaseSessionURLResponseSchema,
25+
...browserSessionActionErrorResponses,
26+
},
27+
} satisfies FastifyZodOpenApiSchema,
28+
handler: createBrowserSessionActionHandler({
29+
method: "browserbaseSessionURL",
30+
actionSchema: BrowserSessionBrowserbaseSessionURLActionSchema,
31+
execute: async ({ stagehand }) => {
32+
return {
33+
result: {
34+
browserbaseSessionURL: stagehand.browserbaseSessionURL ?? null,
35+
},
36+
};
37+
},
38+
}),
39+
};
40+
41+
export default browserbaseSessionURLRoute;
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import type { RouteOptions } from "fastify";
2+
import type { FastifyZodOpenApiSchema } from "fastify-zod-openapi";
3+
4+
import {
5+
BrowserSessionClearCookiesActionSchema,
6+
BrowserSessionClearCookiesRequestSchema,
7+
BrowserSessionClearCookiesResponseSchema,
8+
BrowserSessionHeadersSchema,
9+
} from "../../../schemas/v4/browserSession.js";
10+
import {
11+
browserSessionActionErrorResponses,
12+
createBrowserSessionActionHandler,
13+
toStringOrRegExp,
14+
} from "./shared.js";
15+
16+
const clearCookiesRoute: RouteOptions = {
17+
method: "POST",
18+
url: "/browsersession/clearCookies",
19+
schema: {
20+
operationId: "BrowserSessionClearCookies",
21+
summary: "browserSession.clearCookies",
22+
headers: BrowserSessionHeadersSchema,
23+
body: BrowserSessionClearCookiesRequestSchema,
24+
response: {
25+
200: BrowserSessionClearCookiesResponseSchema,
26+
...browserSessionActionErrorResponses,
27+
},
28+
} satisfies FastifyZodOpenApiSchema,
29+
handler: createBrowserSessionActionHandler({
30+
method: "clearCookies",
31+
actionSchema: BrowserSessionClearCookiesActionSchema,
32+
execute: async ({ stagehand, params }) => {
33+
const options =
34+
params.name || params.domain || params.path
35+
? {
36+
name: toStringOrRegExp(params.name),
37+
domain: toStringOrRegExp(params.domain),
38+
path: toStringOrRegExp(params.path),
39+
}
40+
: undefined;
41+
await stagehand.context.clearCookies(options);
42+
return {
43+
result: {
44+
cleared: true,
45+
},
46+
};
47+
},
48+
}),
49+
};
50+
51+
export default clearCookiesRoute;
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import type { RouteOptions } from "fastify";
2+
import type { FastifyZodOpenApiSchema } from "fastify-zod-openapi";
3+
4+
import {
5+
BrowserSessionConfiguredViewportActionSchema,
6+
BrowserSessionConfiguredViewportRequestSchema,
7+
BrowserSessionConfiguredViewportResponseSchema,
8+
BrowserSessionHeadersSchema,
9+
} from "../../../schemas/v4/browserSession.js";
10+
import {
11+
browserSessionActionErrorResponses,
12+
createBrowserSessionActionHandler,
13+
} from "./shared.js";
14+
15+
const configuredViewportRoute: RouteOptions = {
16+
method: "POST",
17+
url: "/browsersession/configuredViewport",
18+
schema: {
19+
operationId: "BrowserSessionConfiguredViewport",
20+
summary: "browserSession.configuredViewport",
21+
headers: BrowserSessionHeadersSchema,
22+
body: BrowserSessionConfiguredViewportRequestSchema,
23+
response: {
24+
200: BrowserSessionConfiguredViewportResponseSchema,
25+
...browserSessionActionErrorResponses,
26+
},
27+
} satisfies FastifyZodOpenApiSchema,
28+
handler: createBrowserSessionActionHandler({
29+
method: "configuredViewport",
30+
actionSchema: BrowserSessionConfiguredViewportActionSchema,
31+
execute: async ({ stagehand }) => {
32+
return {
33+
result: stagehand.configuredViewport,
34+
};
35+
},
36+
}),
37+
};
38+
39+
export default configuredViewportRoute;
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import type { RouteOptions } from "fastify";
2+
import type { FastifyZodOpenApiSchema } from "fastify-zod-openapi";
3+
4+
import {
5+
BrowserSessionConnectURLActionSchema,
6+
BrowserSessionConnectURLRequestSchema,
7+
BrowserSessionConnectURLResponseSchema,
8+
BrowserSessionHeadersSchema,
9+
} from "../../../schemas/v4/browserSession.js";
10+
import {
11+
browserSessionActionErrorResponses,
12+
createBrowserSessionActionHandler,
13+
} from "./shared.js";
14+
15+
const connectURLRoute: RouteOptions = {
16+
method: "POST",
17+
url: "/browsersession/connectURL",
18+
schema: {
19+
operationId: "BrowserSessionConnectURL",
20+
summary: "browserSession.connectURL",
21+
headers: BrowserSessionHeadersSchema,
22+
body: BrowserSessionConnectURLRequestSchema,
23+
response: {
24+
200: BrowserSessionConnectURLResponseSchema,
25+
...browserSessionActionErrorResponses,
26+
},
27+
} satisfies FastifyZodOpenApiSchema,
28+
handler: createBrowserSessionActionHandler({
29+
method: "connectURL",
30+
actionSchema: BrowserSessionConnectURLActionSchema,
31+
execute: async ({ stagehand }) => {
32+
return {
33+
result: {
34+
connectURL: stagehand.connectURL(),
35+
},
36+
};
37+
},
38+
}),
39+
};
40+
41+
export default connectURLRoute;
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import type { RouteOptions } from "fastify";
2+
import type { FastifyZodOpenApiSchema } from "fastify-zod-openapi";
3+
4+
import {
5+
BrowserSessionCookiesActionSchema,
6+
BrowserSessionCookiesRequestSchema,
7+
BrowserSessionCookiesResponseSchema,
8+
BrowserSessionHeadersSchema,
9+
} from "../../../schemas/v4/browserSession.js";
10+
import {
11+
browserSessionActionErrorResponses,
12+
createBrowserSessionActionHandler,
13+
} from "./shared.js";
14+
15+
const cookiesRoute: RouteOptions = {
16+
method: "POST",
17+
url: "/browsersession/cookies",
18+
schema: {
19+
operationId: "BrowserSessionCookies",
20+
summary: "browserSession.cookies",
21+
headers: BrowserSessionHeadersSchema,
22+
body: BrowserSessionCookiesRequestSchema,
23+
response: {
24+
200: BrowserSessionCookiesResponseSchema,
25+
...browserSessionActionErrorResponses,
26+
},
27+
} satisfies FastifyZodOpenApiSchema,
28+
handler: createBrowserSessionActionHandler({
29+
method: "cookies",
30+
actionSchema: BrowserSessionCookiesActionSchema,
31+
execute: async ({ stagehand, params }) => {
32+
return {
33+
result: {
34+
cookies: await stagehand.context.cookies(params.urls),
35+
},
36+
};
37+
},
38+
}),
39+
};
40+
41+
export default cookiesRoute;

0 commit comments

Comments
 (0)