@keystrokehq/serpdog 0.1.5 → 0.1.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"action.cjs","names":["serpdog","executeSerpdogTool"],"sources":["../src/action.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { serpdog } from \"./app\";\nimport { executeSerpdogTool } from \"./execute\";\n\n/** Bind one gateway tool to a typed app action; the call's output is parsed against `def.output`. */\nexport function action<TInput extends z.ZodType>(\n tool: string,\n def: {\n slug: string;\n name: string;\n description: string;\n input: TInput;\n output: z.ZodType;\n },\n) {\n return serpdog.action({\n slug: def.slug,\n name: def.name,\n description: def.description,\n input: def.input,\n output: def.output as z.ZodTypeAny,\n async run(input) {\n return def.output.parse(await executeSerpdogTool(tool, input as Record<string, unknown>));\n },\n });\n}\n"],"mappings":";;;;;AAMA,SAAgB,OACd,MACA,KAOA;CACA,OAAOA,YAAAA,QAAQ,OAAO;EACpB,MAAM,IAAI;EACV,MAAM,IAAI;EACV,aAAa,IAAI;EACjB,OAAO,IAAI;EACX,QAAQ,IAAI;EACZ,MAAM,IAAI,OAAO;GACf,OAAO,IAAI,OAAO,MAAM,MAAMC,gBAAAA,mBAAmB,MAAM,KAAgC,CAAC;EAC1F;CACF,CAAC;AACH"}
1
+ {"version":3,"file":"action.cjs","names":["serpdog","executeSerpdogTool"],"sources":["../src/action.ts"],"sourcesContent":["import type { AppAction } from \"@keystrokehq/keystroke/app\";\nimport { z } from \"zod\";\n\nimport { serpdog } from \"./app\";\nimport { executeSerpdogTool } from \"./execute\";\n\n/** Bind one gateway tool to a typed app action; the call's output is parsed against `def.output`. */\nexport function action<TInput extends z.ZodType, TOutput extends z.ZodType>(\n tool: string,\n def: {\n slug: string;\n name: string;\n description: string;\n input: TInput;\n output: TOutput;\n },\n): AppAction<TInput, TOutput, typeof serpdog.credential> {\n return serpdog.action({\n slug: def.slug,\n name: def.name,\n description: def.description,\n input: def.input,\n output: def.output,\n async run(input) {\n return def.output.parse(await executeSerpdogTool(tool, input as Record<string, unknown>));\n },\n });\n}\n"],"mappings":";;;;;AAOA,SAAgB,OACd,MACA,KAOuD;CACvD,OAAOA,YAAAA,QAAQ,OAAO;EACpB,MAAM,IAAI;EACV,MAAM,IAAI;EACV,aAAa,IAAI;EACjB,OAAO,IAAI;EACX,QAAQ,IAAI;EACZ,MAAM,IAAI,OAAO;GACf,OAAO,IAAI,OAAO,MAAM,MAAMC,gBAAAA,mBAAmB,MAAM,KAAgC,CAAC;EAC1F;CACF,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"action.mjs","names":[],"sources":["../src/action.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { serpdog } from \"./app\";\nimport { executeSerpdogTool } from \"./execute\";\n\n/** Bind one gateway tool to a typed app action; the call's output is parsed against `def.output`. */\nexport function action<TInput extends z.ZodType>(\n tool: string,\n def: {\n slug: string;\n name: string;\n description: string;\n input: TInput;\n output: z.ZodType;\n },\n) {\n return serpdog.action({\n slug: def.slug,\n name: def.name,\n description: def.description,\n input: def.input,\n output: def.output as z.ZodTypeAny,\n async run(input) {\n return def.output.parse(await executeSerpdogTool(tool, input as Record<string, unknown>));\n },\n });\n}\n"],"mappings":";;;;;AAMA,SAAgB,OACd,MACA,KAOA;CACA,OAAO,QAAQ,OAAO;EACpB,MAAM,IAAI;EACV,MAAM,IAAI;EACV,aAAa,IAAI;EACjB,OAAO,IAAI;EACX,QAAQ,IAAI;EACZ,MAAM,IAAI,OAAO;GACf,OAAO,IAAI,OAAO,MAAM,MAAM,mBAAmB,MAAM,KAAgC,CAAC;EAC1F;CACF,CAAC;AACH"}
1
+ {"version":3,"file":"action.mjs","names":[],"sources":["../src/action.ts"],"sourcesContent":["import type { AppAction } from \"@keystrokehq/keystroke/app\";\nimport { z } from \"zod\";\n\nimport { serpdog } from \"./app\";\nimport { executeSerpdogTool } from \"./execute\";\n\n/** Bind one gateway tool to a typed app action; the call's output is parsed against `def.output`. */\nexport function action<TInput extends z.ZodType, TOutput extends z.ZodType>(\n tool: string,\n def: {\n slug: string;\n name: string;\n description: string;\n input: TInput;\n output: TOutput;\n },\n): AppAction<TInput, TOutput, typeof serpdog.credential> {\n return serpdog.action({\n slug: def.slug,\n name: def.name,\n description: def.description,\n input: def.input,\n output: def.output,\n async run(input) {\n return def.output.parse(await executeSerpdogTool(tool, input as Record<string, unknown>));\n },\n });\n}\n"],"mappings":";;;;;AAOA,SAAgB,OACd,MACA,KAOuD;CACvD,OAAO,QAAQ,OAAO;EACpB,MAAM,IAAI;EACV,MAAM,IAAI;EACV,aAAa,IAAI;EACjB,OAAO,IAAI;EACX,QAAQ,IAAI;EACZ,MAAM,IAAI,OAAO;GACf,OAAO,IAAI,OAAO,MAAM,MAAM,mBAAmB,MAAM,KAAgC,CAAC;EAC1F;CACF,CAAC;AACH"}
@@ -1,3 +1,4 @@
1
+ require("../app.cjs");
1
2
  const require_action = require("../action.cjs");
2
3
  let zod = require("zod");
3
4
  //#region src/actions/screenshot-api.ts
@@ -1 +1 @@
1
- {"version":3,"file":"screenshot-api.cjs","names":["z","action"],"sources":["../../src/actions/screenshot-api.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SerpdogScreenshotApiInput = z.object({\n url: z.string().describe(\"Fully-qualified URL of the page to capture.\"),\n delay: z.number().int().describe(\"Seconds to wait before capturing the screenshot (optional).\").optional(),\n device: z.enum([\"desktop\", \"tablet\", \"mobile\"]).describe(\"Device emulation: 'desktop', 'tablet', or 'mobile'.\").optional(),\n output: z.enum([\"json\", \"image\"]).default(\"image\").describe(\"Response format: 'json' returns base64-encoded PNG in JSON; 'image' returns raw PNG bytes.\").optional(),\n dark_mode: z.boolean().default(false).describe(\"Capture in dark mode if supported (default: false).\").optional(),\n full_page: z.boolean().default(false).describe(\"Capture the entire scrollable page (default: false).\").optional(),\n window_width: z.number().int().describe(\"Viewport width in pixels (optional).\").optional(),\n window_height: z.number().int().describe(\"Viewport height in pixels (optional).\").optional(),\n no_cookie_banners: z.boolean().default(false).describe(\"Hide cookie banners if possible (default: false).\").optional(),\n}).describe(\"Parameters for taking a webpage screenshot via SerpDog.\");\nexport const SerpdogScreenshotApiOutput = z.object({\n raw: z.string().describe(\"Raw PNG image bytes when output='image'.\").nullable().optional(),\n image: z.string().describe(\"Base64-encoded PNG image when output='json'.\").nullable().optional(),\n}).passthrough().describe(\"Response schema for SerpDog Screenshot API.\");\n\nexport const serpdogScreenshotApi = action(\"SERPDOG_SCREENSHOT_API\", {\n slug: \"serpdog-screenshot-api\",\n name: \"Screenshot API\",\n description: \"Tool to capture a screenshot of a webpage. Use when you need a visual snapshot of a page; supports full-page, device emulation, delays, and dark mode.\",\n input: SerpdogScreenshotApiInput,\n output: SerpdogScreenshotApiOutput,\n});\n"],"mappings":";;;AAIA,MAAa,4BAA4BA,IAAAA,EAAE,OAAO;CAChD,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6CAA6C;CACtE,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,6DAA6D,CAAC,CAAC,SAAS;CACzG,QAAQA,IAAAA,EAAE,KAAK;EAAC;EAAW;EAAU;CAAQ,CAAC,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;CACzH,QAAQA,IAAAA,EAAE,KAAK,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,4FAA4F,CAAC,CAAC,SAAS;CACnK,WAAWA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;CAC/G,WAAWA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,sDAAsD,CAAC,CAAC,SAAS;CAChH,cAAcA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS;CACzF,eAAeA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,uCAAuC,CAAC,CAAC,SAAS;CAC3F,mBAAmBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,mDAAmD,CAAC,CAAC,SAAS;AACvH,CAAC,CAAC,CAAC,SAAS,yDAAyD;AACrE,MAAa,6BAA6BA,IAAAA,EAAE,OAAO;CACjD,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,0CAA0C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACzF,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AACjG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,6CAA6C;AAEvE,MAAa,uBAAuBC,eAAAA,OAAO,0BAA0B;CACnE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
1
+ {"version":3,"file":"screenshot-api.cjs","names":["z","action"],"sources":["../../src/actions/screenshot-api.ts"],"sourcesContent":["import type { AppAction } from \"@keystrokehq/keystroke/app\";\nimport { z } from \"zod\";\n\nimport { action } from \"../action\";\nimport { serpdog } from \"../app\";\n\nexport const SerpdogScreenshotApiInput = z.object({\n url: z.string().describe(\"Fully-qualified URL of the page to capture.\"),\n delay: z.number().int().describe(\"Seconds to wait before capturing the screenshot (optional).\").optional(),\n device: z.enum([\"desktop\", \"tablet\", \"mobile\"]).describe(\"Device emulation: 'desktop', 'tablet', or 'mobile'.\").optional(),\n output: z.enum([\"json\", \"image\"]).default(\"image\").describe(\"Response format: 'json' returns base64-encoded PNG in JSON; 'image' returns raw PNG bytes.\").optional(),\n dark_mode: z.boolean().default(false).describe(\"Capture in dark mode if supported (default: false).\").optional(),\n full_page: z.boolean().default(false).describe(\"Capture the entire scrollable page (default: false).\").optional(),\n window_width: z.number().int().describe(\"Viewport width in pixels (optional).\").optional(),\n window_height: z.number().int().describe(\"Viewport height in pixels (optional).\").optional(),\n no_cookie_banners: z.boolean().default(false).describe(\"Hide cookie banners if possible (default: false).\").optional(),\n}).describe(\"Parameters for taking a webpage screenshot via SerpDog.\");\nexport const SerpdogScreenshotApiOutput = z.object({\n raw: z.string().describe(\"Raw PNG image bytes when output='image'.\").nullable().optional(),\n image: z.string().describe(\"Base64-encoded PNG image when output='json'.\").nullable().optional(),\n}).passthrough().describe(\"Response schema for SerpDog Screenshot API.\");\n\nexport const serpdogScreenshotApi: AppAction<\n typeof SerpdogScreenshotApiInput,\n typeof SerpdogScreenshotApiOutput,\n typeof serpdog.credential\n> = action(\"SERPDOG_SCREENSHOT_API\", {\n slug: \"serpdog-screenshot-api\",\n name: \"Screenshot API\",\n description: \"Tool to capture a screenshot of a webpage. Use when you need a visual snapshot of a page; supports full-page, device emulation, delays, and dark mode.\",\n input: SerpdogScreenshotApiInput,\n output: SerpdogScreenshotApiOutput,\n});\n"],"mappings":";;;;AAMA,MAAa,4BAA4BA,IAAAA,EAAE,OAAO;CAChD,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6CAA6C;CACtE,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,6DAA6D,CAAC,CAAC,SAAS;CACzG,QAAQA,IAAAA,EAAE,KAAK;EAAC;EAAW;EAAU;CAAQ,CAAC,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;CACzH,QAAQA,IAAAA,EAAE,KAAK,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,4FAA4F,CAAC,CAAC,SAAS;CACnK,WAAWA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;CAC/G,WAAWA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,sDAAsD,CAAC,CAAC,SAAS;CAChH,cAAcA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS;CACzF,eAAeA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,uCAAuC,CAAC,CAAC,SAAS;CAC3F,mBAAmBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,mDAAmD,CAAC,CAAC,SAAS;AACvH,CAAC,CAAC,CAAC,SAAS,yDAAyD;AACrE,MAAa,6BAA6BA,IAAAA,EAAE,OAAO;CACjD,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,0CAA0C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACzF,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AACjG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,6CAA6C;AAEvE,MAAa,uBAITC,eAAAA,OAAO,0BAA0B;CACnC,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
@@ -1,3 +1,5 @@
1
+ import { serpdog } from "../app.cjs";
2
+ import { AppAction } from "@keystrokehq/keystroke/app";
1
3
  import { z } from "zod";
2
4
 
3
5
  //#region src/actions/screenshot-api.d.ts
@@ -23,29 +25,7 @@ declare const SerpdogScreenshotApiOutput: z.ZodObject<{
23
25
  raw: z.ZodOptional<z.ZodNullable<z.ZodString>>;
24
26
  image: z.ZodOptional<z.ZodNullable<z.ZodString>>;
25
27
  }, z.core.$loose>;
26
- declare const serpdogScreenshotApi: import("@keystrokehq/action").WorkflowActionDefinition<{
27
- url: string;
28
- delay?: number | undefined;
29
- device?: "desktop" | "tablet" | "mobile" | undefined;
30
- output?: "json" | "image" | undefined;
31
- dark_mode?: boolean | undefined;
32
- full_page?: boolean | undefined;
33
- window_width?: number | undefined;
34
- window_height?: number | undefined;
35
- no_cookie_banners?: boolean | undefined;
36
- }, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential<"serpdog", z.ZodObject<{
37
- connectionId: z.ZodString;
38
- entityId: z.ZodString;
39
- instanceId: z.ZodString;
40
- }, z.core.$strip>, z.ZodObject<{
41
- generic_api_key: z.ZodString;
42
- }, z.core.$strip>>]>, readonly [import("@keystrokehq/shared").Credential<"serpdog", z.ZodObject<{
43
- connectionId: z.ZodString;
44
- entityId: z.ZodString;
45
- instanceId: z.ZodString;
46
- }, z.core.$strip>, z.ZodObject<{
47
- generic_api_key: z.ZodString;
48
- }, z.core.$strip>>]>;
28
+ declare const serpdogScreenshotApi: AppAction<typeof SerpdogScreenshotApiInput, typeof SerpdogScreenshotApiOutput, typeof serpdog.credential>;
49
29
  //#endregion
50
30
  export { serpdogScreenshotApi };
51
31
  //# sourceMappingURL=screenshot-api.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"screenshot-api.d.cts","names":[],"sources":["../../src/actions/screenshot-api.ts"],"mappings":";;;cAIa,yBAAA,EAAyB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;cAWzB,0BAAA,EAA0B,CAAA,CAAA,SAAA;;;;cAK1B,oBAAA,gCAAoB,wBAAA"}
1
+ {"version":3,"file":"screenshot-api.d.cts","names":[],"sources":["../../src/actions/screenshot-api.ts"],"mappings":";;;;;cAMa,yBAAA,EAAyB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;cAWzB,0BAAA,EAA0B,CAAA,CAAA,SAAA;;;;cAK1B,oBAAA,EAAsB,SAAA,QAC1B,yBAAA,SACA,0BAAA,SACA,OAAA,CAAQ,UAAA"}
@@ -1,3 +1,5 @@
1
+ import { serpdog } from "../app.mjs";
2
+ import { AppAction } from "@keystrokehq/keystroke/app";
1
3
  import { z } from "zod";
2
4
 
3
5
  //#region src/actions/screenshot-api.d.ts
@@ -23,29 +25,7 @@ declare const SerpdogScreenshotApiOutput: z.ZodObject<{
23
25
  raw: z.ZodOptional<z.ZodNullable<z.ZodString>>;
24
26
  image: z.ZodOptional<z.ZodNullable<z.ZodString>>;
25
27
  }, z.core.$loose>;
26
- declare const serpdogScreenshotApi: import("@keystrokehq/action").WorkflowActionDefinition<{
27
- url: string;
28
- delay?: number | undefined;
29
- device?: "desktop" | "tablet" | "mobile" | undefined;
30
- output?: "json" | "image" | undefined;
31
- dark_mode?: boolean | undefined;
32
- full_page?: boolean | undefined;
33
- window_width?: number | undefined;
34
- window_height?: number | undefined;
35
- no_cookie_banners?: boolean | undefined;
36
- }, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential<"serpdog", z.ZodObject<{
37
- connectionId: z.ZodString;
38
- entityId: z.ZodString;
39
- instanceId: z.ZodString;
40
- }, z.core.$strip>, z.ZodObject<{
41
- generic_api_key: z.ZodString;
42
- }, z.core.$strip>>]>, readonly [import("@keystrokehq/shared").Credential<"serpdog", z.ZodObject<{
43
- connectionId: z.ZodString;
44
- entityId: z.ZodString;
45
- instanceId: z.ZodString;
46
- }, z.core.$strip>, z.ZodObject<{
47
- generic_api_key: z.ZodString;
48
- }, z.core.$strip>>]>;
28
+ declare const serpdogScreenshotApi: AppAction<typeof SerpdogScreenshotApiInput, typeof SerpdogScreenshotApiOutput, typeof serpdog.credential>;
49
29
  //#endregion
50
30
  export { serpdogScreenshotApi };
51
31
  //# sourceMappingURL=screenshot-api.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"screenshot-api.d.mts","names":[],"sources":["../../src/actions/screenshot-api.ts"],"mappings":";;;cAIa,yBAAA,EAAyB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;cAWzB,0BAAA,EAA0B,CAAA,CAAA,SAAA;;;;cAK1B,oBAAA,gCAAoB,wBAAA"}
1
+ {"version":3,"file":"screenshot-api.d.mts","names":[],"sources":["../../src/actions/screenshot-api.ts"],"mappings":";;;;;cAMa,yBAAA,EAAyB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;cAWzB,0BAAA,EAA0B,CAAA,CAAA,SAAA;;;;cAK1B,oBAAA,EAAsB,SAAA,QAC1B,yBAAA,SACA,0BAAA,SACA,OAAA,CAAQ,UAAA"}
@@ -1,3 +1,4 @@
1
+ import "../app.mjs";
1
2
  import { action } from "../action.mjs";
2
3
  import { z } from "zod";
3
4
  const serpdogScreenshotApi = action("SERPDOG_SCREENSHOT_API", {
@@ -1 +1 @@
1
- {"version":3,"file":"screenshot-api.mjs","names":[],"sources":["../../src/actions/screenshot-api.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SerpdogScreenshotApiInput = z.object({\n url: z.string().describe(\"Fully-qualified URL of the page to capture.\"),\n delay: z.number().int().describe(\"Seconds to wait before capturing the screenshot (optional).\").optional(),\n device: z.enum([\"desktop\", \"tablet\", \"mobile\"]).describe(\"Device emulation: 'desktop', 'tablet', or 'mobile'.\").optional(),\n output: z.enum([\"json\", \"image\"]).default(\"image\").describe(\"Response format: 'json' returns base64-encoded PNG in JSON; 'image' returns raw PNG bytes.\").optional(),\n dark_mode: z.boolean().default(false).describe(\"Capture in dark mode if supported (default: false).\").optional(),\n full_page: z.boolean().default(false).describe(\"Capture the entire scrollable page (default: false).\").optional(),\n window_width: z.number().int().describe(\"Viewport width in pixels (optional).\").optional(),\n window_height: z.number().int().describe(\"Viewport height in pixels (optional).\").optional(),\n no_cookie_banners: z.boolean().default(false).describe(\"Hide cookie banners if possible (default: false).\").optional(),\n}).describe(\"Parameters for taking a webpage screenshot via SerpDog.\");\nexport const SerpdogScreenshotApiOutput = z.object({\n raw: z.string().describe(\"Raw PNG image bytes when output='image'.\").nullable().optional(),\n image: z.string().describe(\"Base64-encoded PNG image when output='json'.\").nullable().optional(),\n}).passthrough().describe(\"Response schema for SerpDog Screenshot API.\");\n\nexport const serpdogScreenshotApi = action(\"SERPDOG_SCREENSHOT_API\", {\n slug: \"serpdog-screenshot-api\",\n name: \"Screenshot API\",\n description: \"Tool to capture a screenshot of a webpage. Use when you need a visual snapshot of a page; supports full-page, device emulation, delays, and dark mode.\",\n input: SerpdogScreenshotApiInput,\n output: SerpdogScreenshotApiOutput,\n});\n"],"mappings":";;AAoBA,MAAa,uBAAuB,OAAO,0BAA0B;CACnE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OApBuC,EAAE,OAAO;EAChD,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,6CAA6C;EACtE,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,6DAA6D,CAAC,CAAC,SAAS;EACzG,QAAQ,EAAE,KAAK;GAAC;GAAW;GAAU;EAAQ,CAAC,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;EACzH,QAAQ,EAAE,KAAK,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,4FAA4F,CAAC,CAAC,SAAS;EACnK,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;EAC/G,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,sDAAsD,CAAC,CAAC,SAAS;EAChH,cAAc,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS;EACzF,eAAe,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,uCAAuC,CAAC,CAAC,SAAS;EAC3F,mBAAmB,EAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,mDAAmD,CAAC,CAAC,SAAS;CACvH,CAAC,CAAC,CAAC,SAAS,yDAUH;CACP,QAVwC,EAAE,OAAO;EACjD,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,0CAA0C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EACzF,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACjG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,6CAOhB;AACV,CAAC"}
1
+ {"version":3,"file":"screenshot-api.mjs","names":[],"sources":["../../src/actions/screenshot-api.ts"],"sourcesContent":["import type { AppAction } from \"@keystrokehq/keystroke/app\";\nimport { z } from \"zod\";\n\nimport { action } from \"../action\";\nimport { serpdog } from \"../app\";\n\nexport const SerpdogScreenshotApiInput = z.object({\n url: z.string().describe(\"Fully-qualified URL of the page to capture.\"),\n delay: z.number().int().describe(\"Seconds to wait before capturing the screenshot (optional).\").optional(),\n device: z.enum([\"desktop\", \"tablet\", \"mobile\"]).describe(\"Device emulation: 'desktop', 'tablet', or 'mobile'.\").optional(),\n output: z.enum([\"json\", \"image\"]).default(\"image\").describe(\"Response format: 'json' returns base64-encoded PNG in JSON; 'image' returns raw PNG bytes.\").optional(),\n dark_mode: z.boolean().default(false).describe(\"Capture in dark mode if supported (default: false).\").optional(),\n full_page: z.boolean().default(false).describe(\"Capture the entire scrollable page (default: false).\").optional(),\n window_width: z.number().int().describe(\"Viewport width in pixels (optional).\").optional(),\n window_height: z.number().int().describe(\"Viewport height in pixels (optional).\").optional(),\n no_cookie_banners: z.boolean().default(false).describe(\"Hide cookie banners if possible (default: false).\").optional(),\n}).describe(\"Parameters for taking a webpage screenshot via SerpDog.\");\nexport const SerpdogScreenshotApiOutput = z.object({\n raw: z.string().describe(\"Raw PNG image bytes when output='image'.\").nullable().optional(),\n image: z.string().describe(\"Base64-encoded PNG image when output='json'.\").nullable().optional(),\n}).passthrough().describe(\"Response schema for SerpDog Screenshot API.\");\n\nexport const serpdogScreenshotApi: AppAction<\n typeof SerpdogScreenshotApiInput,\n typeof SerpdogScreenshotApiOutput,\n typeof serpdog.credential\n> = action(\"SERPDOG_SCREENSHOT_API\", {\n slug: \"serpdog-screenshot-api\",\n name: \"Screenshot API\",\n description: \"Tool to capture a screenshot of a webpage. Use when you need a visual snapshot of a page; supports full-page, device emulation, delays, and dark mode.\",\n input: SerpdogScreenshotApiInput,\n output: SerpdogScreenshotApiOutput,\n});\n"],"mappings":";;;AAsBA,MAAa,uBAIT,OAAO,0BAA0B;CACnC,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAxBuC,EAAE,OAAO;EAChD,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,6CAA6C;EACtE,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,6DAA6D,CAAC,CAAC,SAAS;EACzG,QAAQ,EAAE,KAAK;GAAC;GAAW;GAAU;EAAQ,CAAC,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;EACzH,QAAQ,EAAE,KAAK,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,4FAA4F,CAAC,CAAC,SAAS;EACnK,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;EAC/G,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,sDAAsD,CAAC,CAAC,SAAS;EAChH,cAAc,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS;EACzF,eAAe,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,uCAAuC,CAAC,CAAC,SAAS;EAC3F,mBAAmB,EAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,mDAAmD,CAAC,CAAC,SAAS;CACvH,CAAC,CAAC,CAAC,SAAS,yDAcH;CACP,QAdwC,EAAE,OAAO;EACjD,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,0CAA0C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EACzF,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACjG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,6CAWhB;AACV,CAAC"}
package/dist/app.cjs CHANGED
@@ -1,10 +1,10 @@
1
1
  let _keystrokehq_keystroke_app = require("@keystrokehq/keystroke/app");
2
- let zod = require("zod");
3
2
  //#region src/app.ts
3
+ const credential = { generic_api_key: require("zod").z.string() };
4
4
  const serpdog = (0, _keystrokehq_keystroke_app.defineApp)({
5
5
  slug: "serpdog",
6
6
  auth: "keystroke",
7
- credential: { generic_api_key: zod.z.string() }
7
+ credential
8
8
  });
9
9
  //#endregion
10
10
  exports.serpdog = serpdog;
package/dist/app.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.cjs","names":["z"],"sources":["../src/app.ts"],"sourcesContent":["import { defineApp } from \"@keystrokehq/keystroke/app\";\nimport { z } from \"zod\";\n\nexport const serpdog = defineApp({\n slug: \"serpdog\",\n auth: \"keystroke\",\n credential: {\n generic_api_key: z.string(),\n },\n});\n"],"mappings":";;;AAGA,MAAa,WAAA,GAAA,2BAAA,UAAA,CAAoB;CAC/B,MAAM;CACN,MAAM;CACN,YAAY,EACV,iBAAiBA,IAAAA,EAAE,OAAO,EAC5B;AACF,CAAC"}
1
+ {"version":3,"file":"app.cjs","names":["z"],"sources":["../src/app.ts"],"sourcesContent":["import { defineApp, type KeystrokeApp } from \"@keystrokehq/keystroke/app\";\nimport { z } from \"zod\";\n\nconst credential = {\n generic_api_key: z.string(),\n};\n\nexport const serpdog: KeystrokeApp<\"serpdog\", typeof credential> = defineApp({\n slug: \"serpdog\",\n auth: \"keystroke\",\n credential,\n});\n"],"mappings":";;AAGA,MAAM,aAAa,EACjB,8BAAiBA,CAAAA,CAAAA,EAAE,OAAO,EAC5B;AAEA,MAAa,WAAA,GAAA,2BAAA,UAAA,CAAgE;CAC3E,MAAM;CACN,MAAM;CACN;AACF,CAAC"}
package/dist/app.d.cts CHANGED
@@ -1,13 +1,11 @@
1
+ import { KeystrokeApp } from "@keystrokehq/keystroke/app";
1
2
  import { z } from "zod";
2
3
 
3
4
  //#region src/app.d.ts
4
- declare const serpdog: import("@keystrokehq/app").App<import("@keystrokehq/shared").Credential<"serpdog", z.ZodObject<{
5
- connectionId: z.ZodString;
6
- entityId: z.ZodString;
7
- instanceId: z.ZodString;
8
- }, z.core.$strip>, z.ZodObject<{
5
+ declare const credential: {
9
6
  generic_api_key: z.ZodString;
10
- }, z.core.$strip>>>;
7
+ };
8
+ declare const serpdog: KeystrokeApp<"serpdog", typeof credential>;
11
9
  //#endregion
12
10
  export { serpdog };
13
11
  //# sourceMappingURL=app.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.cts","names":[],"sources":["../src/app.ts"],"mappings":";;;cAGa,OAAA,6BAAO,GAAA,+BAAA,UAAA,YAAA,CAAA,CAAA,SAAA"}
1
+ {"version":3,"file":"app.d.cts","names":[],"sources":["../src/app.ts"],"mappings":";;;;cAGM,UAAA;mBAEL,CAAA,CAAA,SAAA;AAAA;AAAA,cAEY,OAAA,EAAS,YAAY,mBAAmB,UAAA"}
package/dist/app.d.mts CHANGED
@@ -1,13 +1,11 @@
1
+ import { KeystrokeApp } from "@keystrokehq/keystroke/app";
1
2
  import { z } from "zod";
2
3
 
3
4
  //#region src/app.d.ts
4
- declare const serpdog: import("@keystrokehq/app").App<import("@keystrokehq/shared").Credential<"serpdog", z.ZodObject<{
5
- connectionId: z.ZodString;
6
- entityId: z.ZodString;
7
- instanceId: z.ZodString;
8
- }, z.core.$strip>, z.ZodObject<{
5
+ declare const credential: {
9
6
  generic_api_key: z.ZodString;
10
- }, z.core.$strip>>>;
7
+ };
8
+ declare const serpdog: KeystrokeApp<"serpdog", typeof credential>;
11
9
  //#endregion
12
10
  export { serpdog };
13
11
  //# sourceMappingURL=app.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.mts","names":[],"sources":["../src/app.ts"],"mappings":";;;cAGa,OAAA,6BAAO,GAAA,+BAAA,UAAA,YAAA,CAAA,CAAA,SAAA"}
1
+ {"version":3,"file":"app.d.mts","names":[],"sources":["../src/app.ts"],"mappings":";;;;cAGM,UAAA;mBAEL,CAAA,CAAA,SAAA;AAAA;AAAA,cAEY,OAAA,EAAS,YAAY,mBAAmB,UAAA"}
package/dist/app.mjs CHANGED
@@ -1,6 +1,5 @@
1
1
  import { defineApp } from "@keystrokehq/keystroke/app";
2
2
  import { z } from "zod";
3
- //#region src/app.ts
4
3
  const serpdog = defineApp({
5
4
  slug: "serpdog",
6
5
  auth: "keystroke",
package/dist/app.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.mjs","names":[],"sources":["../src/app.ts"],"sourcesContent":["import { defineApp } from \"@keystrokehq/keystroke/app\";\nimport { z } from \"zod\";\n\nexport const serpdog = defineApp({\n slug: \"serpdog\",\n auth: \"keystroke\",\n credential: {\n generic_api_key: z.string(),\n },\n});\n"],"mappings":";;;AAGA,MAAa,UAAU,UAAU;CAC/B,MAAM;CACN,MAAM;CACN,YAAY,EACV,iBAAiB,EAAE,OAAO,EAC5B;AACF,CAAC"}
1
+ {"version":3,"file":"app.mjs","names":[],"sources":["../src/app.ts"],"sourcesContent":["import { defineApp, type KeystrokeApp } from \"@keystrokehq/keystroke/app\";\nimport { z } from \"zod\";\n\nconst credential = {\n generic_api_key: z.string(),\n};\n\nexport const serpdog: KeystrokeApp<\"serpdog\", typeof credential> = defineApp({\n slug: \"serpdog\",\n auth: \"keystroke\",\n credential,\n});\n"],"mappings":";;AAOA,MAAa,UAAsD,UAAU;CAC3E,MAAM;CACN,MAAM;CACN,cANA,iBAAiB,EAAE,OAAO,EAM1B;AACF,CAAC"}
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { serpdogScreenshotApi } from "./actions/screenshot-api.cjs";
2
1
  import { serpdog } from "./app.cjs";
2
+ import { serpdogScreenshotApi } from "./actions/screenshot-api.cjs";
3
3
  import { serpdogCatalog } from "./catalog.cjs";
4
4
  export { serpdog, serpdogCatalog, serpdogScreenshotApi };
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { serpdogScreenshotApi } from "./actions/screenshot-api.mjs";
2
1
  import { serpdog } from "./app.mjs";
2
+ import { serpdogScreenshotApi } from "./actions/screenshot-api.mjs";
3
3
  import { serpdogCatalog } from "./catalog.mjs";
4
4
  export { serpdog, serpdogCatalog, serpdogScreenshotApi };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keystrokehq/serpdog",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -31,7 +31,7 @@
31
31
  }
32
32
  },
33
33
  "peerDependencies": {
34
- "@keystrokehq/keystroke": ">=0.1.4",
34
+ "@keystrokehq/keystroke": ">=0.1.104",
35
35
  "zod": "^4.4.3"
36
36
  },
37
37
  "devDependencies": {