@keystrokehq/scrapfly 0.1.0 → 0.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 (101) hide show
  1. package/dist/action.cjs.map +1 -1
  2. package/dist/action.mjs.map +1 -1
  3. package/dist/actions/capture-screenshot-head.cjs +2 -2
  4. package/dist/actions/capture-screenshot-head.cjs.map +1 -1
  5. package/dist/actions/capture-screenshot-head.d.cts +50 -3
  6. package/dist/actions/capture-screenshot-head.d.cts.map +1 -1
  7. package/dist/actions/capture-screenshot-head.d.mts +50 -3
  8. package/dist/actions/capture-screenshot-head.d.mts.map +1 -1
  9. package/dist/actions/capture-screenshot-head.mjs +2 -2
  10. package/dist/actions/capture-screenshot-head.mjs.map +1 -1
  11. package/dist/actions/capture-screenshot.cjs +3 -3
  12. package/dist/actions/capture-screenshot.cjs.map +1 -1
  13. package/dist/actions/capture-screenshot.d.cts +44 -3
  14. package/dist/actions/capture-screenshot.d.cts.map +1 -1
  15. package/dist/actions/capture-screenshot.d.mts +44 -3
  16. package/dist/actions/capture-screenshot.d.mts.map +1 -1
  17. package/dist/actions/capture-screenshot.mjs +3 -3
  18. package/dist/actions/capture-screenshot.mjs.map +1 -1
  19. package/dist/actions/create-crawler.cjs +1 -1
  20. package/dist/actions/create-crawler.cjs.map +1 -1
  21. package/dist/actions/create-crawler.d.cts +31 -3
  22. package/dist/actions/create-crawler.d.cts.map +1 -1
  23. package/dist/actions/create-crawler.d.mts +31 -3
  24. package/dist/actions/create-crawler.d.mts.map +1 -1
  25. package/dist/actions/create-crawler.mjs +1 -1
  26. package/dist/actions/create-crawler.mjs.map +1 -1
  27. package/dist/actions/extract-data.cjs.map +1 -1
  28. package/dist/actions/extract-data.d.cts +53 -3
  29. package/dist/actions/extract-data.d.cts.map +1 -1
  30. package/dist/actions/extract-data.d.mts +53 -3
  31. package/dist/actions/extract-data.d.mts.map +1 -1
  32. package/dist/actions/extract-data.mjs.map +1 -1
  33. package/dist/actions/get-account-info.cjs +26 -26
  34. package/dist/actions/get-account-info.cjs.map +1 -1
  35. package/dist/actions/get-account-info.d.cts +73 -3
  36. package/dist/actions/get-account-info.d.cts.map +1 -1
  37. package/dist/actions/get-account-info.d.mts +73 -3
  38. package/dist/actions/get-account-info.d.mts.map +1 -1
  39. package/dist/actions/get-account-info.mjs +26 -26
  40. package/dist/actions/get-account-info.mjs.map +1 -1
  41. package/dist/actions/get-crawler-artifact.cjs +3 -3
  42. package/dist/actions/get-crawler-artifact.cjs.map +1 -1
  43. package/dist/actions/get-crawler-artifact.d.cts +18 -3
  44. package/dist/actions/get-crawler-artifact.d.cts.map +1 -1
  45. package/dist/actions/get-crawler-artifact.d.mts +18 -3
  46. package/dist/actions/get-crawler-artifact.d.mts.map +1 -1
  47. package/dist/actions/get-crawler-artifact.mjs +3 -3
  48. package/dist/actions/get-crawler-artifact.mjs.map +1 -1
  49. package/dist/actions/get-crawler-contents.cjs.map +1 -1
  50. package/dist/actions/get-crawler-contents.d.cts +24 -3
  51. package/dist/actions/get-crawler-contents.d.cts.map +1 -1
  52. package/dist/actions/get-crawler-contents.d.mts +24 -3
  53. package/dist/actions/get-crawler-contents.d.mts.map +1 -1
  54. package/dist/actions/get-crawler-contents.mjs.map +1 -1
  55. package/dist/actions/get-crawler-status.cjs +10 -10
  56. package/dist/actions/get-crawler-status.cjs.map +1 -1
  57. package/dist/actions/get-crawler-status.d.cts +22 -3
  58. package/dist/actions/get-crawler-status.d.cts.map +1 -1
  59. package/dist/actions/get-crawler-status.d.mts +22 -3
  60. package/dist/actions/get-crawler-status.d.mts.map +1 -1
  61. package/dist/actions/get-crawler-status.mjs +10 -10
  62. package/dist/actions/get-crawler-status.mjs.map +1 -1
  63. package/dist/actions/get-crawler-urls.cjs +3 -3
  64. package/dist/actions/get-crawler-urls.cjs.map +1 -1
  65. package/dist/actions/get-crawler-urls.d.cts +18 -3
  66. package/dist/actions/get-crawler-urls.d.cts.map +1 -1
  67. package/dist/actions/get-crawler-urls.d.mts +18 -3
  68. package/dist/actions/get-crawler-urls.d.mts.map +1 -1
  69. package/dist/actions/get-crawler-urls.mjs +3 -3
  70. package/dist/actions/get-crawler-urls.mjs.map +1 -1
  71. package/dist/actions/scrape-post.cjs +3 -3
  72. package/dist/actions/scrape-post.cjs.map +1 -1
  73. package/dist/actions/scrape-post.d.cts +38 -3
  74. package/dist/actions/scrape-post.d.cts.map +1 -1
  75. package/dist/actions/scrape-post.d.mts +38 -3
  76. package/dist/actions/scrape-post.d.mts.map +1 -1
  77. package/dist/actions/scrape-post.mjs +3 -3
  78. package/dist/actions/scrape-post.mjs.map +1 -1
  79. package/dist/actions/scrape-with-put.cjs +3 -3
  80. package/dist/actions/scrape-with-put.cjs.map +1 -1
  81. package/dist/actions/scrape-with-put.d.cts +38 -3
  82. package/dist/actions/scrape-with-put.d.cts.map +1 -1
  83. package/dist/actions/scrape-with-put.d.mts +38 -3
  84. package/dist/actions/scrape-with-put.d.mts.map +1 -1
  85. package/dist/actions/scrape-with-put.mjs +3 -3
  86. package/dist/actions/scrape-with-put.mjs.map +1 -1
  87. package/dist/actions/scrape.cjs +3 -3
  88. package/dist/actions/scrape.cjs.map +1 -1
  89. package/dist/actions/scrape.d.cts +48 -3
  90. package/dist/actions/scrape.d.cts.map +1 -1
  91. package/dist/actions/scrape.d.mts +48 -3
  92. package/dist/actions/scrape.d.mts.map +1 -1
  93. package/dist/actions/scrape.mjs +3 -3
  94. package/dist/actions/scrape.mjs.map +1 -1
  95. package/dist/catalog.cjs +7 -1
  96. package/dist/catalog.cjs.map +1 -1
  97. package/dist/catalog.d.cts +8 -0
  98. package/dist/catalog.d.mts +8 -0
  99. package/dist/catalog.mjs +7 -1
  100. package/dist/catalog.mjs.map +1 -1
  101. package/package.json +2 -2
@@ -1,9 +1,24 @@
1
1
  import { z } from "zod";
2
2
 
3
3
  //#region src/actions/get-crawler-urls.d.ts
4
- declare const ScrapflyGetCrawlerUrlsInput: z.ZodTypeAny;
5
- declare const ScrapflyGetCrawlerUrlsOutput: z.ZodTypeAny;
6
- declare const scrapflyGetCrawlerUrls: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
4
+ declare const ScrapflyGetCrawlerUrlsInput: z.ZodObject<{
5
+ page: z.ZodOptional<z.ZodNumber>;
6
+ status: z.ZodOptional<z.ZodString>;
7
+ per_page: z.ZodOptional<z.ZodNumber>;
8
+ crawler_uuid: z.ZodString;
9
+ }, z.core.$strip>;
10
+ declare const ScrapflyGetCrawlerUrlsOutput: z.ZodObject<{
11
+ page: z.ZodNullable<z.ZodNumber>;
12
+ urls: z.ZodArray<z.ZodString>;
13
+ total: z.ZodNullable<z.ZodNumber>;
14
+ per_page: z.ZodNullable<z.ZodNumber>;
15
+ }, z.core.$strip>;
16
+ declare const scrapflyGetCrawlerUrls: import("@keystrokehq/action").WorkflowActionDefinition<{
17
+ crawler_uuid: string;
18
+ page?: number | undefined;
19
+ status?: string | undefined;
20
+ per_page?: number | undefined;
21
+ }, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
7
22
  //#endregion
8
23
  export { scrapflyGetCrawlerUrls };
9
24
  //# sourceMappingURL=get-crawler-urls.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-crawler-urls.d.mts","names":[],"sources":["../../src/actions/get-crawler-urls.ts"],"mappings":";;;cAIa,2BAAA,EAA6B,CAAA,CAAE,UAKuD;AAAA,cACtF,4BAAA,EAA8B,CAAA,CAAE,UAKwC;AAAA,cAExE,sBAAA,gCAAsB,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
1
+ {"version":3,"file":"get-crawler-urls.d.mts","names":[],"sources":["../../src/actions/get-crawler-urls.ts"],"mappings":";;;cAIa,2BAAA,EAA2B,CAAA,CAAA,SAAA;;;;;;cAM3B,4BAAA,EAA4B,CAAA,CAAA,SAAA;;;;;;cAO5B,sBAAA,gCAAsB,wBAAA"}
@@ -11,10 +11,10 @@ const scrapflyGetCrawlerUrls = action("SCRAPFLY_GET_CRAWLER_URLS", {
11
11
  crawler_uuid: z.string().describe("The unique identifier (UUID) of the crawler whose URLs you want to retrieve.")
12
12
  }).describe("Request model for retrieving the list of discovered and crawled URLs from a crawler."),
13
13
  output: z.object({
14
- page: z.number().int().describe("Current page number."),
14
+ page: z.number().int().describe("Current page number.").nullable(),
15
15
  urls: z.array(z.string()).describe("List of crawled URLs matching the filter criteria."),
16
- total: z.number().int().describe("Total number of URLs available."),
17
- per_page: z.number().int().describe("Number of URLs returned per page.")
16
+ total: z.number().int().describe("Total number of URLs available.").nullable(),
17
+ per_page: z.number().int().describe("Number of URLs returned per page.").nullable()
18
18
  }).describe("Response model for the crawler URLs endpoint with pagination metadata.")
19
19
  });
20
20
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"get-crawler-urls.mjs","names":[],"sources":["../../src/actions/get-crawler-urls.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const ScrapflyGetCrawlerUrlsInput: z.ZodTypeAny = z.object({\n page: z.number().int().describe(\"Page number for pagination (default: 1).\").optional(),\n status: z.string().describe(\"Filter results by status. Use 'visited' for successfully crawled URLs or 'failed' to get URLs that failed with error codes.\").optional(),\n per_page: z.number().int().describe(\"Number of URLs to return per page (default: 100, max: 1000).\").optional(),\n crawler_uuid: z.string().describe(\"The unique identifier (UUID) of the crawler whose URLs you want to retrieve.\"),\n}).describe(\"Request model for retrieving the list of discovered and crawled URLs from a crawler.\");\nexport const ScrapflyGetCrawlerUrlsOutput: z.ZodTypeAny = z.object({\n page: z.number().int().describe(\"Current page number.\"),\n urls: z.array(z.string()).describe(\"List of crawled URLs matching the filter criteria.\"),\n total: z.number().int().describe(\"Total number of URLs available.\"),\n per_page: z.number().int().describe(\"Number of URLs returned per page.\"),\n}).describe(\"Response model for the crawler URLs endpoint with pagination metadata.\");\n\nexport const scrapflyGetCrawlerUrls = action(\"SCRAPFLY_GET_CRAWLER_URLS\", {\n slug: \"scrapfly-get-crawler-urls\",\n name: \"Get Crawler URLs\",\n description: \"Tool to retrieve the list of discovered and crawled URLs from a crawler. Use when you need to get all URLs found during a crawl or filter by status to analyze failed URLs with error codes. Supports pagination for large result sets.\",\n input: ScrapflyGetCrawlerUrlsInput,\n output: ScrapflyGetCrawlerUrlsOutput,\n});\n"],"mappings":";;AAiBA,MAAa,yBAAyB,OAAO,6BAA6B;CACxE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAjBuD,EAAE,OAAO;EAChE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,0CAA0C,CAAC,CAAC,SAAS;EACrF,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,6HAA6H,CAAC,CAAC,SAAS;EACpK,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,8DAA8D,CAAC,CAAC,SAAS;EAC7G,cAAc,EAAE,OAAO,CAAC,CAAC,SAAS,8EAA8E;CAClH,CAAC,CAAC,CAAC,SAAS,sFAYH;CACP,QAZwD,EAAE,OAAO;EACjE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,sBAAsB;EACtD,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,oDAAoD;EACvF,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,iCAAiC;EAClE,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,mCAAmC;CACzE,CAAC,CAAC,CAAC,SAAS,wEAOF;AACV,CAAC"}
1
+ {"version":3,"file":"get-crawler-urls.mjs","names":[],"sources":["../../src/actions/get-crawler-urls.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const ScrapflyGetCrawlerUrlsInput = z.object({\n page: z.number().int().describe(\"Page number for pagination (default: 1).\").optional(),\n status: z.string().describe(\"Filter results by status. Use 'visited' for successfully crawled URLs or 'failed' to get URLs that failed with error codes.\").optional(),\n per_page: z.number().int().describe(\"Number of URLs to return per page (default: 100, max: 1000).\").optional(),\n crawler_uuid: z.string().describe(\"The unique identifier (UUID) of the crawler whose URLs you want to retrieve.\"),\n}).describe(\"Request model for retrieving the list of discovered and crawled URLs from a crawler.\");\nexport const ScrapflyGetCrawlerUrlsOutput = z.object({\n page: z.number().int().describe(\"Current page number.\").nullable(),\n urls: z.array(z.string()).describe(\"List of crawled URLs matching the filter criteria.\"),\n total: z.number().int().describe(\"Total number of URLs available.\").nullable(),\n per_page: z.number().int().describe(\"Number of URLs returned per page.\").nullable(),\n}).describe(\"Response model for the crawler URLs endpoint with pagination metadata.\");\n\nexport const scrapflyGetCrawlerUrls = action(\"SCRAPFLY_GET_CRAWLER_URLS\", {\n slug: \"scrapfly-get-crawler-urls\",\n name: \"Get Crawler URLs\",\n description: \"Tool to retrieve the list of discovered and crawled URLs from a crawler. Use when you need to get all URLs found during a crawl or filter by status to analyze failed URLs with error codes. Supports pagination for large result sets.\",\n input: ScrapflyGetCrawlerUrlsInput,\n output: ScrapflyGetCrawlerUrlsOutput,\n});\n"],"mappings":";;AAiBA,MAAa,yBAAyB,OAAO,6BAA6B;CACxE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAjByC,EAAE,OAAO;EAClD,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,0CAA0C,CAAC,CAAC,SAAS;EACrF,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,6HAA6H,CAAC,CAAC,SAAS;EACpK,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,8DAA8D,CAAC,CAAC,SAAS;EAC7G,cAAc,EAAE,OAAO,CAAC,CAAC,SAAS,8EAA8E;CAClH,CAAC,CAAC,CAAC,SAAS,sFAYH;CACP,QAZ0C,EAAE,OAAO;EACnD,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,sBAAsB,CAAC,CAAC,SAAS;EACjE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,oDAAoD;EACvF,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,iCAAiC,CAAC,CAAC,SAAS;EAC7E,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,mCAAmC,CAAC,CAAC,SAAS;CACpF,CAAC,CAAC,CAAC,SAAS,wEAOF;AACV,CAAC"}
@@ -16,12 +16,12 @@ const ScrapflyScrapePostInput = zod.z.object({
16
16
  extract_rules: zod.z.record(zod.z.string(), zod.z.unknown()).describe("Extraction rules using JMESPath, CSS selector, or JSONPath for structured data extraction.").optional()
17
17
  }).describe("Request model for scraping web pages using POST method with data payload.");
18
18
  const ScrapflyScrapePostOutput = zod.z.object({
19
- url: zod.z.string().describe("Final URL after any redirects."),
19
+ url: zod.z.string().describe("Final URL after any redirects.").nullable(),
20
20
  config: zod.z.record(zod.z.string(), zod.z.unknown()).describe("Configuration parameters used for the scrape request."),
21
21
  result: zod.z.record(zod.z.string(), zod.z.unknown()).describe("Container for metadata and extraction results."),
22
- content: zod.z.string().describe("Raw response body from target (HTML, JSON, text, etc.)."),
22
+ content: zod.z.string().describe("Raw response body from target (HTML, JSON, text, etc.).").nullable(),
23
23
  context: zod.z.record(zod.z.string(), zod.z.unknown()).describe("Context information including proxy details, cost, and usage."),
24
- status_code: zod.z.number().int().describe("HTTP status code returned by the target URL."),
24
+ status_code: zod.z.number().int().describe("HTTP status code returned by the target URL.").nullable(),
25
25
  extracted_data: zod.z.record(zod.z.string(), zod.z.unknown()).describe("User-specified extraction results (populated if extract_rules were provided).").nullable().optional(),
26
26
  response_headers: zod.z.record(zod.z.string(), zod.z.unknown()).describe("HTTP response headers returned by the target.")
27
27
  }).describe("Response model for the Scrapfly POST scrape API.");
@@ -1 +1 @@
1
- {"version":3,"file":"scrape-post.cjs","names":["z","action"],"sources":["../../src/actions/scrape-post.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const ScrapflyScrapePostInput: z.ZodTypeAny = z.object({\n asp: z.boolean().describe(\"Enable anti-scraping protection bypass.\").optional(),\n url: z.string().describe(\"The target URL to scrape with POST request.\"),\n body: z.record(z.string(), z.unknown()).describe(\"POST request body payload as JSON object. This data will be sent in the request body to the target URL.\"),\n tags: z.array(z.string()).describe(\"Custom labels for analytics and monitoring.\").optional(),\n cache: z.boolean().describe(\"Enable result caching to avoid repeated requests.\").optional(),\n retry: z.number().int().default(2).describe(\"Number of retries on failure (default is 2).\").optional(),\n country: z.string().describe(\"Target country for the proxy using ISO 3166-1 alpha-2 codes (e.g., 'US', 'FR', 'DE').\").optional(),\n headers: z.object({}).describe(\"Custom HTTP request headers to send to the target URL. Note: Content-Type defaults to application/json for POST requests.\").optional(),\n session: z.string().describe(\"Proxy session ID for sticky sessions and persistent cookies.\").optional(),\n timeout: z.number().int().default(60).describe(\"Timeout for the scrape request in seconds (default is 60).\").optional(),\n render_js: z.boolean().describe(\"Enable JavaScript rendering for sites requiring browser execution.\").optional(),\n extract_rules: z.record(z.string(), z.unknown()).describe(\"Extraction rules using JMESPath, CSS selector, or JSONPath for structured data extraction.\").optional(),\n}).describe(\"Request model for scraping web pages using POST method with data payload.\");\nexport const ScrapflyScrapePostOutput: z.ZodTypeAny = z.object({\n url: z.string().describe(\"Final URL after any redirects.\"),\n config: z.record(z.string(), z.unknown()).describe(\"Configuration parameters used for the scrape request.\"),\n result: z.record(z.string(), z.unknown()).describe(\"Container for metadata and extraction results.\"),\n content: z.string().describe(\"Raw response body from target (HTML, JSON, text, etc.).\"),\n context: z.record(z.string(), z.unknown()).describe(\"Context information including proxy details, cost, and usage.\"),\n status_code: z.number().int().describe(\"HTTP status code returned by the target URL.\"),\n extracted_data: z.record(z.string(), z.unknown()).describe(\"User-specified extraction results (populated if extract_rules were provided).\").nullable().optional(),\n response_headers: z.record(z.string(), z.unknown()).describe(\"HTTP response headers returned by the target.\"),\n}).describe(\"Response model for the Scrapfly POST scrape API.\");\n\nexport const scrapflyScrapePost = action(\"SCRAPFLY_SCRAPE_POST\", {\n slug: \"scrapfly-scrape-post\",\n name: \"Scrapfly Scrape POST\",\n description: \"Tool to scrape web pages using POST method to send data in the request body. Use when you need to scrape endpoints that require POST requests, such as form submissions or APIs that expect data payload.\",\n input: ScrapflyScrapePostInput,\n output: ScrapflyScrapePostOutput,\n});\n"],"mappings":";;;AAIA,MAAa,0BAAwCA,IAAAA,EAAE,OAAO;CAC5D,KAAKA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,yCAAyC,CAAC,CAAC,SAAS;CAC9E,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6CAA6C;CACtE,MAAMA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,yGAAyG;CAC1J,MAAMA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,6CAA6C,CAAC,CAAC,SAAS;CAC3F,OAAOA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,mDAAmD,CAAC,CAAC,SAAS;CAC1F,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS;CACrG,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uFAAuF,CAAC,CAAC,SAAS;CAC/H,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,2HAA2H,CAAC,CAAC,SAAS;CACrK,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8DAA8D,CAAC,CAAC,SAAS;CACtG,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,4DAA4D,CAAC,CAAC,SAAS;CACtH,WAAWA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,oEAAoE,CAAC,CAAC,SAAS;CAC/G,eAAeA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,4FAA4F,CAAC,CAAC,SAAS;AACnK,CAAC,CAAC,CAAC,SAAS,2EAA2E;AACvF,MAAa,2BAAyCA,IAAAA,EAAE,OAAO;CAC7D,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,gCAAgC;CACzD,QAAQA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,uDAAuD;CAC1G,QAAQA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,gDAAgD;CACnG,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yDAAyD;CACtF,SAASA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,+DAA+D;CACnH,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,8CAA8C;CACrF,gBAAgBA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,+EAA+E,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAChK,kBAAkBA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,+CAA+C;AAC9G,CAAC,CAAC,CAAC,SAAS,kDAAkD;AAE9D,MAAa,qBAAqBC,eAAAA,OAAO,wBAAwB;CAC/D,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
1
+ {"version":3,"file":"scrape-post.cjs","names":["z","action"],"sources":["../../src/actions/scrape-post.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const ScrapflyScrapePostInput = z.object({\n asp: z.boolean().describe(\"Enable anti-scraping protection bypass.\").optional(),\n url: z.string().describe(\"The target URL to scrape with POST request.\"),\n body: z.record(z.string(), z.unknown()).describe(\"POST request body payload as JSON object. This data will be sent in the request body to the target URL.\"),\n tags: z.array(z.string()).describe(\"Custom labels for analytics and monitoring.\").optional(),\n cache: z.boolean().describe(\"Enable result caching to avoid repeated requests.\").optional(),\n retry: z.number().int().default(2).describe(\"Number of retries on failure (default is 2).\").optional(),\n country: z.string().describe(\"Target country for the proxy using ISO 3166-1 alpha-2 codes (e.g., 'US', 'FR', 'DE').\").optional(),\n headers: z.object({}).describe(\"Custom HTTP request headers to send to the target URL. Note: Content-Type defaults to application/json for POST requests.\").optional(),\n session: z.string().describe(\"Proxy session ID for sticky sessions and persistent cookies.\").optional(),\n timeout: z.number().int().default(60).describe(\"Timeout for the scrape request in seconds (default is 60).\").optional(),\n render_js: z.boolean().describe(\"Enable JavaScript rendering for sites requiring browser execution.\").optional(),\n extract_rules: z.record(z.string(), z.unknown()).describe(\"Extraction rules using JMESPath, CSS selector, or JSONPath for structured data extraction.\").optional(),\n}).describe(\"Request model for scraping web pages using POST method with data payload.\");\nexport const ScrapflyScrapePostOutput = z.object({\n url: z.string().describe(\"Final URL after any redirects.\").nullable(),\n config: z.record(z.string(), z.unknown()).describe(\"Configuration parameters used for the scrape request.\"),\n result: z.record(z.string(), z.unknown()).describe(\"Container for metadata and extraction results.\"),\n content: z.string().describe(\"Raw response body from target (HTML, JSON, text, etc.).\").nullable(),\n context: z.record(z.string(), z.unknown()).describe(\"Context information including proxy details, cost, and usage.\"),\n status_code: z.number().int().describe(\"HTTP status code returned by the target URL.\").nullable(),\n extracted_data: z.record(z.string(), z.unknown()).describe(\"User-specified extraction results (populated if extract_rules were provided).\").nullable().optional(),\n response_headers: z.record(z.string(), z.unknown()).describe(\"HTTP response headers returned by the target.\"),\n}).describe(\"Response model for the Scrapfly POST scrape API.\");\n\nexport const scrapflyScrapePost = action(\"SCRAPFLY_SCRAPE_POST\", {\n slug: \"scrapfly-scrape-post\",\n name: \"Scrapfly Scrape POST\",\n description: \"Tool to scrape web pages using POST method to send data in the request body. Use when you need to scrape endpoints that require POST requests, such as form submissions or APIs that expect data payload.\",\n input: ScrapflyScrapePostInput,\n output: ScrapflyScrapePostOutput,\n});\n"],"mappings":";;;AAIA,MAAa,0BAA0BA,IAAAA,EAAE,OAAO;CAC9C,KAAKA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,yCAAyC,CAAC,CAAC,SAAS;CAC9E,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6CAA6C;CACtE,MAAMA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,yGAAyG;CAC1J,MAAMA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,6CAA6C,CAAC,CAAC,SAAS;CAC3F,OAAOA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,mDAAmD,CAAC,CAAC,SAAS;CAC1F,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS;CACrG,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uFAAuF,CAAC,CAAC,SAAS;CAC/H,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,2HAA2H,CAAC,CAAC,SAAS;CACrK,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8DAA8D,CAAC,CAAC,SAAS;CACtG,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,4DAA4D,CAAC,CAAC,SAAS;CACtH,WAAWA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,oEAAoE,CAAC,CAAC,SAAS;CAC/G,eAAeA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,4FAA4F,CAAC,CAAC,SAAS;AACnK,CAAC,CAAC,CAAC,SAAS,2EAA2E;AACvF,MAAa,2BAA2BA,IAAAA,EAAE,OAAO;CAC/C,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,gCAAgC,CAAC,CAAC,SAAS;CACpE,QAAQA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,uDAAuD;CAC1G,QAAQA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,gDAAgD;CACnG,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yDAAyD,CAAC,CAAC,SAAS;CACjG,SAASA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,+DAA+D;CACnH,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS;CAChG,gBAAgBA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,+EAA+E,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAChK,kBAAkBA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,+CAA+C;AAC9G,CAAC,CAAC,CAAC,SAAS,kDAAkD;AAE9D,MAAa,qBAAqBC,eAAAA,OAAO,wBAAwB;CAC/D,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
@@ -1,9 +1,44 @@
1
1
  import { z } from "zod";
2
2
 
3
3
  //#region src/actions/scrape-post.d.ts
4
- declare const ScrapflyScrapePostInput: z.ZodTypeAny;
5
- declare const ScrapflyScrapePostOutput: z.ZodTypeAny;
6
- declare const scrapflyScrapePost: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
4
+ declare const ScrapflyScrapePostInput: z.ZodObject<{
5
+ asp: z.ZodOptional<z.ZodBoolean>;
6
+ url: z.ZodString;
7
+ body: z.ZodRecord<z.ZodString, z.ZodUnknown>;
8
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
9
+ cache: z.ZodOptional<z.ZodBoolean>;
10
+ retry: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
11
+ country: z.ZodOptional<z.ZodString>;
12
+ headers: z.ZodOptional<z.ZodObject<{}, z.core.$strip>>;
13
+ session: z.ZodOptional<z.ZodString>;
14
+ timeout: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
15
+ render_js: z.ZodOptional<z.ZodBoolean>;
16
+ extract_rules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
17
+ }, z.core.$strip>;
18
+ declare const ScrapflyScrapePostOutput: z.ZodObject<{
19
+ url: z.ZodNullable<z.ZodString>;
20
+ config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
21
+ result: z.ZodRecord<z.ZodString, z.ZodUnknown>;
22
+ content: z.ZodNullable<z.ZodString>;
23
+ context: z.ZodRecord<z.ZodString, z.ZodUnknown>;
24
+ status_code: z.ZodNullable<z.ZodNumber>;
25
+ extracted_data: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
26
+ response_headers: z.ZodRecord<z.ZodString, z.ZodUnknown>;
27
+ }, z.core.$strip>;
28
+ declare const scrapflyScrapePost: import("@keystrokehq/action").WorkflowActionDefinition<{
29
+ url: string;
30
+ body: Record<string, unknown>;
31
+ asp?: boolean | undefined;
32
+ tags?: string[] | undefined;
33
+ cache?: boolean | undefined;
34
+ retry?: number | undefined;
35
+ country?: string | undefined;
36
+ headers?: Record<string, never> | undefined;
37
+ session?: string | undefined;
38
+ timeout?: number | undefined;
39
+ render_js?: boolean | undefined;
40
+ extract_rules?: Record<string, unknown> | undefined;
41
+ }, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
7
42
  //#endregion
8
43
  export { scrapflyScrapePost };
9
44
  //# sourceMappingURL=scrape-post.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scrape-post.d.cts","names":[],"sources":["../../src/actions/scrape-post.ts"],"mappings":";;;cAIa,uBAAA,EAAyB,CAAA,CAAE,UAagD;AAAA,cAC3E,wBAAA,EAA0B,CAAA,CAAE,UASsB;AAAA,cAElD,kBAAA,gCAAkB,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
1
+ {"version":3,"file":"scrape-post.d.cts","names":[],"sources":["../../src/actions/scrape-post.ts"],"mappings":";;;cAIa,uBAAA,EAAuB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;cAcvB,wBAAA,EAAwB,CAAA,CAAA,SAAA;;;;;;;;;;cAWxB,kBAAA,gCAAkB,wBAAA"}
@@ -1,9 +1,44 @@
1
1
  import { z } from "zod";
2
2
 
3
3
  //#region src/actions/scrape-post.d.ts
4
- declare const ScrapflyScrapePostInput: z.ZodTypeAny;
5
- declare const ScrapflyScrapePostOutput: z.ZodTypeAny;
6
- declare const scrapflyScrapePost: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
4
+ declare const ScrapflyScrapePostInput: z.ZodObject<{
5
+ asp: z.ZodOptional<z.ZodBoolean>;
6
+ url: z.ZodString;
7
+ body: z.ZodRecord<z.ZodString, z.ZodUnknown>;
8
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
9
+ cache: z.ZodOptional<z.ZodBoolean>;
10
+ retry: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
11
+ country: z.ZodOptional<z.ZodString>;
12
+ headers: z.ZodOptional<z.ZodObject<{}, z.core.$strip>>;
13
+ session: z.ZodOptional<z.ZodString>;
14
+ timeout: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
15
+ render_js: z.ZodOptional<z.ZodBoolean>;
16
+ extract_rules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
17
+ }, z.core.$strip>;
18
+ declare const ScrapflyScrapePostOutput: z.ZodObject<{
19
+ url: z.ZodNullable<z.ZodString>;
20
+ config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
21
+ result: z.ZodRecord<z.ZodString, z.ZodUnknown>;
22
+ content: z.ZodNullable<z.ZodString>;
23
+ context: z.ZodRecord<z.ZodString, z.ZodUnknown>;
24
+ status_code: z.ZodNullable<z.ZodNumber>;
25
+ extracted_data: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
26
+ response_headers: z.ZodRecord<z.ZodString, z.ZodUnknown>;
27
+ }, z.core.$strip>;
28
+ declare const scrapflyScrapePost: import("@keystrokehq/action").WorkflowActionDefinition<{
29
+ url: string;
30
+ body: Record<string, unknown>;
31
+ asp?: boolean | undefined;
32
+ tags?: string[] | undefined;
33
+ cache?: boolean | undefined;
34
+ retry?: number | undefined;
35
+ country?: string | undefined;
36
+ headers?: Record<string, never> | undefined;
37
+ session?: string | undefined;
38
+ timeout?: number | undefined;
39
+ render_js?: boolean | undefined;
40
+ extract_rules?: Record<string, unknown> | undefined;
41
+ }, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
7
42
  //#endregion
8
43
  export { scrapflyScrapePost };
9
44
  //# sourceMappingURL=scrape-post.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scrape-post.d.mts","names":[],"sources":["../../src/actions/scrape-post.ts"],"mappings":";;;cAIa,uBAAA,EAAyB,CAAA,CAAE,UAagD;AAAA,cAC3E,wBAAA,EAA0B,CAAA,CAAE,UASsB;AAAA,cAElD,kBAAA,gCAAkB,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
1
+ {"version":3,"file":"scrape-post.d.mts","names":[],"sources":["../../src/actions/scrape-post.ts"],"mappings":";;;cAIa,uBAAA,EAAuB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;cAcvB,wBAAA,EAAwB,CAAA,CAAA,SAAA;;;;;;;;;;cAWxB,kBAAA,gCAAkB,wBAAA"}
@@ -19,12 +19,12 @@ const scrapflyScrapePost = action("SCRAPFLY_SCRAPE_POST", {
19
19
  extract_rules: z.record(z.string(), z.unknown()).describe("Extraction rules using JMESPath, CSS selector, or JSONPath for structured data extraction.").optional()
20
20
  }).describe("Request model for scraping web pages using POST method with data payload."),
21
21
  output: z.object({
22
- url: z.string().describe("Final URL after any redirects."),
22
+ url: z.string().describe("Final URL after any redirects.").nullable(),
23
23
  config: z.record(z.string(), z.unknown()).describe("Configuration parameters used for the scrape request."),
24
24
  result: z.record(z.string(), z.unknown()).describe("Container for metadata and extraction results."),
25
- content: z.string().describe("Raw response body from target (HTML, JSON, text, etc.)."),
25
+ content: z.string().describe("Raw response body from target (HTML, JSON, text, etc.).").nullable(),
26
26
  context: z.record(z.string(), z.unknown()).describe("Context information including proxy details, cost, and usage."),
27
- status_code: z.number().int().describe("HTTP status code returned by the target URL."),
27
+ status_code: z.number().int().describe("HTTP status code returned by the target URL.").nullable(),
28
28
  extracted_data: z.record(z.string(), z.unknown()).describe("User-specified extraction results (populated if extract_rules were provided).").nullable().optional(),
29
29
  response_headers: z.record(z.string(), z.unknown()).describe("HTTP response headers returned by the target.")
30
30
  }).describe("Response model for the Scrapfly POST scrape API.")
@@ -1 +1 @@
1
- {"version":3,"file":"scrape-post.mjs","names":[],"sources":["../../src/actions/scrape-post.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const ScrapflyScrapePostInput: z.ZodTypeAny = z.object({\n asp: z.boolean().describe(\"Enable anti-scraping protection bypass.\").optional(),\n url: z.string().describe(\"The target URL to scrape with POST request.\"),\n body: z.record(z.string(), z.unknown()).describe(\"POST request body payload as JSON object. This data will be sent in the request body to the target URL.\"),\n tags: z.array(z.string()).describe(\"Custom labels for analytics and monitoring.\").optional(),\n cache: z.boolean().describe(\"Enable result caching to avoid repeated requests.\").optional(),\n retry: z.number().int().default(2).describe(\"Number of retries on failure (default is 2).\").optional(),\n country: z.string().describe(\"Target country for the proxy using ISO 3166-1 alpha-2 codes (e.g., 'US', 'FR', 'DE').\").optional(),\n headers: z.object({}).describe(\"Custom HTTP request headers to send to the target URL. Note: Content-Type defaults to application/json for POST requests.\").optional(),\n session: z.string().describe(\"Proxy session ID for sticky sessions and persistent cookies.\").optional(),\n timeout: z.number().int().default(60).describe(\"Timeout for the scrape request in seconds (default is 60).\").optional(),\n render_js: z.boolean().describe(\"Enable JavaScript rendering for sites requiring browser execution.\").optional(),\n extract_rules: z.record(z.string(), z.unknown()).describe(\"Extraction rules using JMESPath, CSS selector, or JSONPath for structured data extraction.\").optional(),\n}).describe(\"Request model for scraping web pages using POST method with data payload.\");\nexport const ScrapflyScrapePostOutput: z.ZodTypeAny = z.object({\n url: z.string().describe(\"Final URL after any redirects.\"),\n config: z.record(z.string(), z.unknown()).describe(\"Configuration parameters used for the scrape request.\"),\n result: z.record(z.string(), z.unknown()).describe(\"Container for metadata and extraction results.\"),\n content: z.string().describe(\"Raw response body from target (HTML, JSON, text, etc.).\"),\n context: z.record(z.string(), z.unknown()).describe(\"Context information including proxy details, cost, and usage.\"),\n status_code: z.number().int().describe(\"HTTP status code returned by the target URL.\"),\n extracted_data: z.record(z.string(), z.unknown()).describe(\"User-specified extraction results (populated if extract_rules were provided).\").nullable().optional(),\n response_headers: z.record(z.string(), z.unknown()).describe(\"HTTP response headers returned by the target.\"),\n}).describe(\"Response model for the Scrapfly POST scrape API.\");\n\nexport const scrapflyScrapePost = action(\"SCRAPFLY_SCRAPE_POST\", {\n slug: \"scrapfly-scrape-post\",\n name: \"Scrapfly Scrape POST\",\n description: \"Tool to scrape web pages using POST method to send data in the request body. Use when you need to scrape endpoints that require POST requests, such as form submissions or APIs that expect data payload.\",\n input: ScrapflyScrapePostInput,\n output: ScrapflyScrapePostOutput,\n});\n"],"mappings":";;AA6BA,MAAa,qBAAqB,OAAO,wBAAwB;CAC/D,MAAM;CACN,MAAM;CACN,aAAa;CACb,OA7BmD,EAAE,OAAO;EAC5D,KAAK,EAAE,QAAQ,CAAC,CAAC,SAAS,yCAAyC,CAAC,CAAC,SAAS;EAC9E,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,6CAA6C;EACtE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,yGAAyG;EAC1J,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,6CAA6C,CAAC,CAAC,SAAS;EAC3F,OAAO,EAAE,QAAQ,CAAC,CAAC,SAAS,mDAAmD,CAAC,CAAC,SAAS;EAC1F,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS;EACrG,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,uFAAuF,CAAC,CAAC,SAAS;EAC/H,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,2HAA2H,CAAC,CAAC,SAAS;EACrK,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,8DAA8D,CAAC,CAAC,SAAS;EACtG,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,4DAA4D,CAAC,CAAC,SAAS;EACtH,WAAW,EAAE,QAAQ,CAAC,CAAC,SAAS,oEAAoE,CAAC,CAAC,SAAS;EAC/G,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,4FAA4F,CAAC,CAAC,SAAS;CACnK,CAAC,CAAC,CAAC,SAAS,2EAgBH;CACP,QAhBoD,EAAE,OAAO;EAC7D,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,gCAAgC;EACzD,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,uDAAuD;EAC1G,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,gDAAgD;EACnG,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,yDAAyD;EACtF,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,+DAA+D;EACnH,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,8CAA8C;EACrF,gBAAgB,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,+EAA+E,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAChK,kBAAkB,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,+CAA+C;CAC9G,CAAC,CAAC,CAAC,SAAS,kDAOF;AACV,CAAC"}
1
+ {"version":3,"file":"scrape-post.mjs","names":[],"sources":["../../src/actions/scrape-post.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const ScrapflyScrapePostInput = z.object({\n asp: z.boolean().describe(\"Enable anti-scraping protection bypass.\").optional(),\n url: z.string().describe(\"The target URL to scrape with POST request.\"),\n body: z.record(z.string(), z.unknown()).describe(\"POST request body payload as JSON object. This data will be sent in the request body to the target URL.\"),\n tags: z.array(z.string()).describe(\"Custom labels for analytics and monitoring.\").optional(),\n cache: z.boolean().describe(\"Enable result caching to avoid repeated requests.\").optional(),\n retry: z.number().int().default(2).describe(\"Number of retries on failure (default is 2).\").optional(),\n country: z.string().describe(\"Target country for the proxy using ISO 3166-1 alpha-2 codes (e.g., 'US', 'FR', 'DE').\").optional(),\n headers: z.object({}).describe(\"Custom HTTP request headers to send to the target URL. Note: Content-Type defaults to application/json for POST requests.\").optional(),\n session: z.string().describe(\"Proxy session ID for sticky sessions and persistent cookies.\").optional(),\n timeout: z.number().int().default(60).describe(\"Timeout for the scrape request in seconds (default is 60).\").optional(),\n render_js: z.boolean().describe(\"Enable JavaScript rendering for sites requiring browser execution.\").optional(),\n extract_rules: z.record(z.string(), z.unknown()).describe(\"Extraction rules using JMESPath, CSS selector, or JSONPath for structured data extraction.\").optional(),\n}).describe(\"Request model for scraping web pages using POST method with data payload.\");\nexport const ScrapflyScrapePostOutput = z.object({\n url: z.string().describe(\"Final URL after any redirects.\").nullable(),\n config: z.record(z.string(), z.unknown()).describe(\"Configuration parameters used for the scrape request.\"),\n result: z.record(z.string(), z.unknown()).describe(\"Container for metadata and extraction results.\"),\n content: z.string().describe(\"Raw response body from target (HTML, JSON, text, etc.).\").nullable(),\n context: z.record(z.string(), z.unknown()).describe(\"Context information including proxy details, cost, and usage.\"),\n status_code: z.number().int().describe(\"HTTP status code returned by the target URL.\").nullable(),\n extracted_data: z.record(z.string(), z.unknown()).describe(\"User-specified extraction results (populated if extract_rules were provided).\").nullable().optional(),\n response_headers: z.record(z.string(), z.unknown()).describe(\"HTTP response headers returned by the target.\"),\n}).describe(\"Response model for the Scrapfly POST scrape API.\");\n\nexport const scrapflyScrapePost = action(\"SCRAPFLY_SCRAPE_POST\", {\n slug: \"scrapfly-scrape-post\",\n name: \"Scrapfly Scrape POST\",\n description: \"Tool to scrape web pages using POST method to send data in the request body. Use when you need to scrape endpoints that require POST requests, such as form submissions or APIs that expect data payload.\",\n input: ScrapflyScrapePostInput,\n output: ScrapflyScrapePostOutput,\n});\n"],"mappings":";;AA6BA,MAAa,qBAAqB,OAAO,wBAAwB;CAC/D,MAAM;CACN,MAAM;CACN,aAAa;CACb,OA7BqC,EAAE,OAAO;EAC9C,KAAK,EAAE,QAAQ,CAAC,CAAC,SAAS,yCAAyC,CAAC,CAAC,SAAS;EAC9E,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,6CAA6C;EACtE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,yGAAyG;EAC1J,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,6CAA6C,CAAC,CAAC,SAAS;EAC3F,OAAO,EAAE,QAAQ,CAAC,CAAC,SAAS,mDAAmD,CAAC,CAAC,SAAS;EAC1F,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS;EACrG,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,uFAAuF,CAAC,CAAC,SAAS;EAC/H,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,2HAA2H,CAAC,CAAC,SAAS;EACrK,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,8DAA8D,CAAC,CAAC,SAAS;EACtG,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,4DAA4D,CAAC,CAAC,SAAS;EACtH,WAAW,EAAE,QAAQ,CAAC,CAAC,SAAS,oEAAoE,CAAC,CAAC,SAAS;EAC/G,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,4FAA4F,CAAC,CAAC,SAAS;CACnK,CAAC,CAAC,CAAC,SAAS,2EAgBH;CACP,QAhBsC,EAAE,OAAO;EAC/C,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,gCAAgC,CAAC,CAAC,SAAS;EACpE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,uDAAuD;EAC1G,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,gDAAgD;EACnG,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,yDAAyD,CAAC,CAAC,SAAS;EACjG,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,+DAA+D;EACnH,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS;EAChG,gBAAgB,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,+EAA+E,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAChK,kBAAkB,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,+CAA+C;CAC9G,CAAC,CAAC,CAAC,SAAS,kDAOF;AACV,CAAC"}
@@ -16,12 +16,12 @@ const ScrapflyScrapeWithPutInput = zod.z.object({
16
16
  extract_rules: zod.z.record(zod.z.string(), zod.z.unknown()).describe("Extraction rules (JMESPath, CSS selector, or JSONPath).").optional()
17
17
  }).describe("Request model for scraping a web page using PUT method with body payload.");
18
18
  const ScrapflyScrapeWithPutOutput = zod.z.object({
19
- url: zod.z.string().describe("Final URL after redirects."),
19
+ url: zod.z.string().describe("Final URL after redirects.").nullable(),
20
20
  config: zod.z.record(zod.z.string(), zod.z.unknown()).describe("Configuration used for the scrape request."),
21
21
  result: zod.z.record(zod.z.string(), zod.z.unknown()).describe("Container for metadata and extraction results."),
22
- content: zod.z.string().describe("Raw response body (HTML, JSON, etc.)."),
22
+ content: zod.z.string().describe("Raw response body (HTML, JSON, etc.).").nullable(),
23
23
  context: zod.z.record(zod.z.string(), zod.z.unknown()).describe("Context information including proxy, cost, etc."),
24
- status_code: zod.z.number().int().describe("HTTP status code returned by the target URL."),
24
+ status_code: zod.z.number().int().describe("HTTP status code returned by the target URL.").nullable(),
25
25
  extracted_data: zod.z.record(zod.z.string(), zod.z.unknown()).describe("User-specified extraction results (if extract_rules were provided).").nullable().optional(),
26
26
  response_headers: zod.z.record(zod.z.string(), zod.z.unknown()).describe("HTTP response headers from the target.")
27
27
  }).describe("Response model for the Scrapfly scrape PUT API.");
@@ -1 +1 @@
1
- {"version":3,"file":"scrape-with-put.cjs","names":["z","action"],"sources":["../../src/actions/scrape-with-put.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const ScrapflyScrapeWithPutInput: z.ZodTypeAny = z.object({\n asp: z.boolean().describe(\"Enable anti-scraping protection bypass.\").optional(),\n url: z.string().describe(\"The target URL to scrape with PUT request.\"),\n body: z.string().describe(\"Request body payload to send with the PUT request. Should be JSON string for JSON payloads.\"),\n tags: z.array(z.string()).describe(\"Custom labels for analytics.\").optional(),\n cache: z.boolean().describe(\"Enable result caching.\").optional(),\n retry: z.number().int().default(2).describe(\"Number of retries on failure (default is 2).\").optional(),\n country: z.string().describe(\"Target country for the proxy (e.g., 'US', 'FR', 'DE').\").optional(),\n headers: z.object({}).describe(\"Custom HTTP request headers to send. For JSON body, include 'content-type': 'application/json'.\").optional(),\n session: z.string().describe(\"Proxy session ID for sticky sessions.\").optional(),\n timeout: z.number().int().default(60).describe(\"Timeout for the scrape request in seconds (default is 60).\").optional(),\n render_js: z.boolean().describe(\"Enable JavaScript rendering for sites requiring it.\").optional(),\n extract_rules: z.record(z.string(), z.unknown()).describe(\"Extraction rules (JMESPath, CSS selector, or JSONPath).\").optional(),\n}).describe(\"Request model for scraping a web page using PUT method with body payload.\");\nexport const ScrapflyScrapeWithPutOutput: z.ZodTypeAny = z.object({\n url: z.string().describe(\"Final URL after redirects.\"),\n config: z.record(z.string(), z.unknown()).describe(\"Configuration used for the scrape request.\"),\n result: z.record(z.string(), z.unknown()).describe(\"Container for metadata and extraction results.\"),\n content: z.string().describe(\"Raw response body (HTML, JSON, etc.).\"),\n context: z.record(z.string(), z.unknown()).describe(\"Context information including proxy, cost, etc.\"),\n status_code: z.number().int().describe(\"HTTP status code returned by the target URL.\"),\n extracted_data: z.record(z.string(), z.unknown()).describe(\"User-specified extraction results (if extract_rules were provided).\").nullable().optional(),\n response_headers: z.record(z.string(), z.unknown()).describe(\"HTTP response headers from the target.\"),\n}).describe(\"Response model for the Scrapfly scrape PUT API.\");\n\nexport const scrapflyScrapeWithPut = action(\"SCRAPFLY_SCRAPE_WITH_PUT\", {\n slug: \"scrapfly-scrape-with-put\",\n name: \"Scrape With PUT\",\n description: \"Tool to scrape web pages using PUT method with body payload. Use when the target API requires PUT requests with data in the request body. Forwards PUT request with custom body to the target URL. If not specified, content-type defaults to application/x-www-form-urlencoded.\",\n input: ScrapflyScrapeWithPutInput,\n output: ScrapflyScrapeWithPutOutput,\n});\n"],"mappings":";;;AAIA,MAAa,6BAA2CA,IAAAA,EAAE,OAAO;CAC/D,KAAKA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,yCAAyC,CAAC,CAAC,SAAS;CAC9E,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4CAA4C;CACrE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6FAA6F;CACvH,MAAMA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,8BAA8B,CAAC,CAAC,SAAS;CAC5E,OAAOA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,wBAAwB,CAAC,CAAC,SAAS;CAC/D,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS;CACrG,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wDAAwD,CAAC,CAAC,SAAS;CAChG,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,iGAAiG,CAAC,CAAC,SAAS;CAC3I,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uCAAuC,CAAC,CAAC,SAAS;CAC/E,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,4DAA4D,CAAC,CAAC,SAAS;CACtH,WAAWA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;CAChG,eAAeA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,yDAAyD,CAAC,CAAC,SAAS;AAChI,CAAC,CAAC,CAAC,SAAS,2EAA2E;AACvF,MAAa,8BAA4CA,IAAAA,EAAE,OAAO;CAChE,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B;CACrD,QAAQA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,4CAA4C;CAC/F,QAAQA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,gDAAgD;CACnG,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uCAAuC;CACpE,SAASA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,iDAAiD;CACrG,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,8CAA8C;CACrF,gBAAgBA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,qEAAqE,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACtJ,kBAAkBA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,wCAAwC;AACvG,CAAC,CAAC,CAAC,SAAS,iDAAiD;AAE7D,MAAa,wBAAwBC,eAAAA,OAAO,4BAA4B;CACtE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
1
+ {"version":3,"file":"scrape-with-put.cjs","names":["z","action"],"sources":["../../src/actions/scrape-with-put.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const ScrapflyScrapeWithPutInput = z.object({\n asp: z.boolean().describe(\"Enable anti-scraping protection bypass.\").optional(),\n url: z.string().describe(\"The target URL to scrape with PUT request.\"),\n body: z.string().describe(\"Request body payload to send with the PUT request. Should be JSON string for JSON payloads.\"),\n tags: z.array(z.string()).describe(\"Custom labels for analytics.\").optional(),\n cache: z.boolean().describe(\"Enable result caching.\").optional(),\n retry: z.number().int().default(2).describe(\"Number of retries on failure (default is 2).\").optional(),\n country: z.string().describe(\"Target country for the proxy (e.g., 'US', 'FR', 'DE').\").optional(),\n headers: z.object({}).describe(\"Custom HTTP request headers to send. For JSON body, include 'content-type': 'application/json'.\").optional(),\n session: z.string().describe(\"Proxy session ID for sticky sessions.\").optional(),\n timeout: z.number().int().default(60).describe(\"Timeout for the scrape request in seconds (default is 60).\").optional(),\n render_js: z.boolean().describe(\"Enable JavaScript rendering for sites requiring it.\").optional(),\n extract_rules: z.record(z.string(), z.unknown()).describe(\"Extraction rules (JMESPath, CSS selector, or JSONPath).\").optional(),\n}).describe(\"Request model for scraping a web page using PUT method with body payload.\");\nexport const ScrapflyScrapeWithPutOutput = z.object({\n url: z.string().describe(\"Final URL after redirects.\").nullable(),\n config: z.record(z.string(), z.unknown()).describe(\"Configuration used for the scrape request.\"),\n result: z.record(z.string(), z.unknown()).describe(\"Container for metadata and extraction results.\"),\n content: z.string().describe(\"Raw response body (HTML, JSON, etc.).\").nullable(),\n context: z.record(z.string(), z.unknown()).describe(\"Context information including proxy, cost, etc.\"),\n status_code: z.number().int().describe(\"HTTP status code returned by the target URL.\").nullable(),\n extracted_data: z.record(z.string(), z.unknown()).describe(\"User-specified extraction results (if extract_rules were provided).\").nullable().optional(),\n response_headers: z.record(z.string(), z.unknown()).describe(\"HTTP response headers from the target.\"),\n}).describe(\"Response model for the Scrapfly scrape PUT API.\");\n\nexport const scrapflyScrapeWithPut = action(\"SCRAPFLY_SCRAPE_WITH_PUT\", {\n slug: \"scrapfly-scrape-with-put\",\n name: \"Scrape With PUT\",\n description: \"Tool to scrape web pages using PUT method with body payload. Use when the target API requires PUT requests with data in the request body. Forwards PUT request with custom body to the target URL. If not specified, content-type defaults to application/x-www-form-urlencoded.\",\n input: ScrapflyScrapeWithPutInput,\n output: ScrapflyScrapeWithPutOutput,\n});\n"],"mappings":";;;AAIA,MAAa,6BAA6BA,IAAAA,EAAE,OAAO;CACjD,KAAKA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,yCAAyC,CAAC,CAAC,SAAS;CAC9E,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4CAA4C;CACrE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6FAA6F;CACvH,MAAMA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,8BAA8B,CAAC,CAAC,SAAS;CAC5E,OAAOA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,wBAAwB,CAAC,CAAC,SAAS;CAC/D,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS;CACrG,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wDAAwD,CAAC,CAAC,SAAS;CAChG,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,iGAAiG,CAAC,CAAC,SAAS;CAC3I,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uCAAuC,CAAC,CAAC,SAAS;CAC/E,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,4DAA4D,CAAC,CAAC,SAAS;CACtH,WAAWA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;CAChG,eAAeA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,yDAAyD,CAAC,CAAC,SAAS;AAChI,CAAC,CAAC,CAAC,SAAS,2EAA2E;AACvF,MAAa,8BAA8BA,IAAAA,EAAE,OAAO;CAClD,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B,CAAC,CAAC,SAAS;CAChE,QAAQA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,4CAA4C;CAC/F,QAAQA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,gDAAgD;CACnG,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uCAAuC,CAAC,CAAC,SAAS;CAC/E,SAASA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,iDAAiD;CACrG,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS;CAChG,gBAAgBA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,qEAAqE,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACtJ,kBAAkBA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,wCAAwC;AACvG,CAAC,CAAC,CAAC,SAAS,iDAAiD;AAE7D,MAAa,wBAAwBC,eAAAA,OAAO,4BAA4B;CACtE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
@@ -1,9 +1,44 @@
1
1
  import { z } from "zod";
2
2
 
3
3
  //#region src/actions/scrape-with-put.d.ts
4
- declare const ScrapflyScrapeWithPutInput: z.ZodTypeAny;
5
- declare const ScrapflyScrapeWithPutOutput: z.ZodTypeAny;
6
- declare const scrapflyScrapeWithPut: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
4
+ declare const ScrapflyScrapeWithPutInput: z.ZodObject<{
5
+ asp: z.ZodOptional<z.ZodBoolean>;
6
+ url: z.ZodString;
7
+ body: z.ZodString;
8
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
9
+ cache: z.ZodOptional<z.ZodBoolean>;
10
+ retry: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
11
+ country: z.ZodOptional<z.ZodString>;
12
+ headers: z.ZodOptional<z.ZodObject<{}, z.core.$strip>>;
13
+ session: z.ZodOptional<z.ZodString>;
14
+ timeout: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
15
+ render_js: z.ZodOptional<z.ZodBoolean>;
16
+ extract_rules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
17
+ }, z.core.$strip>;
18
+ declare const ScrapflyScrapeWithPutOutput: z.ZodObject<{
19
+ url: z.ZodNullable<z.ZodString>;
20
+ config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
21
+ result: z.ZodRecord<z.ZodString, z.ZodUnknown>;
22
+ content: z.ZodNullable<z.ZodString>;
23
+ context: z.ZodRecord<z.ZodString, z.ZodUnknown>;
24
+ status_code: z.ZodNullable<z.ZodNumber>;
25
+ extracted_data: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
26
+ response_headers: z.ZodRecord<z.ZodString, z.ZodUnknown>;
27
+ }, z.core.$strip>;
28
+ declare const scrapflyScrapeWithPut: import("@keystrokehq/action").WorkflowActionDefinition<{
29
+ url: string;
30
+ body: string;
31
+ asp?: boolean | undefined;
32
+ tags?: string[] | undefined;
33
+ cache?: boolean | undefined;
34
+ retry?: number | undefined;
35
+ country?: string | undefined;
36
+ headers?: Record<string, never> | undefined;
37
+ session?: string | undefined;
38
+ timeout?: number | undefined;
39
+ render_js?: boolean | undefined;
40
+ extract_rules?: Record<string, unknown> | undefined;
41
+ }, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
7
42
  //#endregion
8
43
  export { scrapflyScrapeWithPut };
9
44
  //# sourceMappingURL=scrape-with-put.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scrape-with-put.d.cts","names":[],"sources":["../../src/actions/scrape-with-put.ts"],"mappings":";;;cAIa,0BAAA,EAA4B,CAAA,CAAE,UAa6C;AAAA,cAC3E,2BAAA,EAA6B,CAAA,CAAE,UASkB;AAAA,cAEjD,qBAAA,gCAAqB,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
1
+ {"version":3,"file":"scrape-with-put.d.cts","names":[],"sources":["../../src/actions/scrape-with-put.ts"],"mappings":";;;cAIa,0BAAA,EAA0B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;cAc1B,2BAAA,EAA2B,CAAA,CAAA,SAAA;;;;;;;;;;cAW3B,qBAAA,gCAAqB,wBAAA;;;;;;;;YAMhC,MAAA;;;;kBAAA,MAAA;AAAA"}
@@ -1,9 +1,44 @@
1
1
  import { z } from "zod";
2
2
 
3
3
  //#region src/actions/scrape-with-put.d.ts
4
- declare const ScrapflyScrapeWithPutInput: z.ZodTypeAny;
5
- declare const ScrapflyScrapeWithPutOutput: z.ZodTypeAny;
6
- declare const scrapflyScrapeWithPut: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
4
+ declare const ScrapflyScrapeWithPutInput: z.ZodObject<{
5
+ asp: z.ZodOptional<z.ZodBoolean>;
6
+ url: z.ZodString;
7
+ body: z.ZodString;
8
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
9
+ cache: z.ZodOptional<z.ZodBoolean>;
10
+ retry: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
11
+ country: z.ZodOptional<z.ZodString>;
12
+ headers: z.ZodOptional<z.ZodObject<{}, z.core.$strip>>;
13
+ session: z.ZodOptional<z.ZodString>;
14
+ timeout: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
15
+ render_js: z.ZodOptional<z.ZodBoolean>;
16
+ extract_rules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
17
+ }, z.core.$strip>;
18
+ declare const ScrapflyScrapeWithPutOutput: z.ZodObject<{
19
+ url: z.ZodNullable<z.ZodString>;
20
+ config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
21
+ result: z.ZodRecord<z.ZodString, z.ZodUnknown>;
22
+ content: z.ZodNullable<z.ZodString>;
23
+ context: z.ZodRecord<z.ZodString, z.ZodUnknown>;
24
+ status_code: z.ZodNullable<z.ZodNumber>;
25
+ extracted_data: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
26
+ response_headers: z.ZodRecord<z.ZodString, z.ZodUnknown>;
27
+ }, z.core.$strip>;
28
+ declare const scrapflyScrapeWithPut: import("@keystrokehq/action").WorkflowActionDefinition<{
29
+ url: string;
30
+ body: string;
31
+ asp?: boolean | undefined;
32
+ tags?: string[] | undefined;
33
+ cache?: boolean | undefined;
34
+ retry?: number | undefined;
35
+ country?: string | undefined;
36
+ headers?: Record<string, never> | undefined;
37
+ session?: string | undefined;
38
+ timeout?: number | undefined;
39
+ render_js?: boolean | undefined;
40
+ extract_rules?: Record<string, unknown> | undefined;
41
+ }, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
7
42
  //#endregion
8
43
  export { scrapflyScrapeWithPut };
9
44
  //# sourceMappingURL=scrape-with-put.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scrape-with-put.d.mts","names":[],"sources":["../../src/actions/scrape-with-put.ts"],"mappings":";;;cAIa,0BAAA,EAA4B,CAAA,CAAE,UAa6C;AAAA,cAC3E,2BAAA,EAA6B,CAAA,CAAE,UASkB;AAAA,cAEjD,qBAAA,gCAAqB,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
1
+ {"version":3,"file":"scrape-with-put.d.mts","names":[],"sources":["../../src/actions/scrape-with-put.ts"],"mappings":";;;cAIa,0BAAA,EAA0B,CAAA,CAAA,SAAA;;;;;;;;;;;;;;cAc1B,2BAAA,EAA2B,CAAA,CAAA,SAAA;;;;;;;;;;cAW3B,qBAAA,gCAAqB,wBAAA;;;;;;;;YAMhC,MAAA;;;;kBAAA,MAAA;AAAA"}
@@ -19,12 +19,12 @@ const scrapflyScrapeWithPut = action("SCRAPFLY_SCRAPE_WITH_PUT", {
19
19
  extract_rules: z.record(z.string(), z.unknown()).describe("Extraction rules (JMESPath, CSS selector, or JSONPath).").optional()
20
20
  }).describe("Request model for scraping a web page using PUT method with body payload."),
21
21
  output: z.object({
22
- url: z.string().describe("Final URL after redirects."),
22
+ url: z.string().describe("Final URL after redirects.").nullable(),
23
23
  config: z.record(z.string(), z.unknown()).describe("Configuration used for the scrape request."),
24
24
  result: z.record(z.string(), z.unknown()).describe("Container for metadata and extraction results."),
25
- content: z.string().describe("Raw response body (HTML, JSON, etc.)."),
25
+ content: z.string().describe("Raw response body (HTML, JSON, etc.).").nullable(),
26
26
  context: z.record(z.string(), z.unknown()).describe("Context information including proxy, cost, etc."),
27
- status_code: z.number().int().describe("HTTP status code returned by the target URL."),
27
+ status_code: z.number().int().describe("HTTP status code returned by the target URL.").nullable(),
28
28
  extracted_data: z.record(z.string(), z.unknown()).describe("User-specified extraction results (if extract_rules were provided).").nullable().optional(),
29
29
  response_headers: z.record(z.string(), z.unknown()).describe("HTTP response headers from the target.")
30
30
  }).describe("Response model for the Scrapfly scrape PUT API.")
@@ -1 +1 @@
1
- {"version":3,"file":"scrape-with-put.mjs","names":[],"sources":["../../src/actions/scrape-with-put.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const ScrapflyScrapeWithPutInput: z.ZodTypeAny = z.object({\n asp: z.boolean().describe(\"Enable anti-scraping protection bypass.\").optional(),\n url: z.string().describe(\"The target URL to scrape with PUT request.\"),\n body: z.string().describe(\"Request body payload to send with the PUT request. Should be JSON string for JSON payloads.\"),\n tags: z.array(z.string()).describe(\"Custom labels for analytics.\").optional(),\n cache: z.boolean().describe(\"Enable result caching.\").optional(),\n retry: z.number().int().default(2).describe(\"Number of retries on failure (default is 2).\").optional(),\n country: z.string().describe(\"Target country for the proxy (e.g., 'US', 'FR', 'DE').\").optional(),\n headers: z.object({}).describe(\"Custom HTTP request headers to send. For JSON body, include 'content-type': 'application/json'.\").optional(),\n session: z.string().describe(\"Proxy session ID for sticky sessions.\").optional(),\n timeout: z.number().int().default(60).describe(\"Timeout for the scrape request in seconds (default is 60).\").optional(),\n render_js: z.boolean().describe(\"Enable JavaScript rendering for sites requiring it.\").optional(),\n extract_rules: z.record(z.string(), z.unknown()).describe(\"Extraction rules (JMESPath, CSS selector, or JSONPath).\").optional(),\n}).describe(\"Request model for scraping a web page using PUT method with body payload.\");\nexport const ScrapflyScrapeWithPutOutput: z.ZodTypeAny = z.object({\n url: z.string().describe(\"Final URL after redirects.\"),\n config: z.record(z.string(), z.unknown()).describe(\"Configuration used for the scrape request.\"),\n result: z.record(z.string(), z.unknown()).describe(\"Container for metadata and extraction results.\"),\n content: z.string().describe(\"Raw response body (HTML, JSON, etc.).\"),\n context: z.record(z.string(), z.unknown()).describe(\"Context information including proxy, cost, etc.\"),\n status_code: z.number().int().describe(\"HTTP status code returned by the target URL.\"),\n extracted_data: z.record(z.string(), z.unknown()).describe(\"User-specified extraction results (if extract_rules were provided).\").nullable().optional(),\n response_headers: z.record(z.string(), z.unknown()).describe(\"HTTP response headers from the target.\"),\n}).describe(\"Response model for the Scrapfly scrape PUT API.\");\n\nexport const scrapflyScrapeWithPut = action(\"SCRAPFLY_SCRAPE_WITH_PUT\", {\n slug: \"scrapfly-scrape-with-put\",\n name: \"Scrape With PUT\",\n description: \"Tool to scrape web pages using PUT method with body payload. Use when the target API requires PUT requests with data in the request body. Forwards PUT request with custom body to the target URL. If not specified, content-type defaults to application/x-www-form-urlencoded.\",\n input: ScrapflyScrapeWithPutInput,\n output: ScrapflyScrapeWithPutOutput,\n});\n"],"mappings":";;AA6BA,MAAa,wBAAwB,OAAO,4BAA4B;CACtE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OA7BsD,EAAE,OAAO;EAC/D,KAAK,EAAE,QAAQ,CAAC,CAAC,SAAS,yCAAyC,CAAC,CAAC,SAAS;EAC9E,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,4CAA4C;EACrE,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,6FAA6F;EACvH,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,8BAA8B,CAAC,CAAC,SAAS;EAC5E,OAAO,EAAE,QAAQ,CAAC,CAAC,SAAS,wBAAwB,CAAC,CAAC,SAAS;EAC/D,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS;EACrG,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,wDAAwD,CAAC,CAAC,SAAS;EAChG,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,iGAAiG,CAAC,CAAC,SAAS;EAC3I,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,uCAAuC,CAAC,CAAC,SAAS;EAC/E,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,4DAA4D,CAAC,CAAC,SAAS;EACtH,WAAW,EAAE,QAAQ,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;EAChG,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,yDAAyD,CAAC,CAAC,SAAS;CAChI,CAAC,CAAC,CAAC,SAAS,2EAgBH;CACP,QAhBuD,EAAE,OAAO;EAChE,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B;EACrD,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,4CAA4C;EAC/F,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,gDAAgD;EACnG,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,uCAAuC;EACpE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,iDAAiD;EACrG,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,8CAA8C;EACrF,gBAAgB,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,qEAAqE,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EACtJ,kBAAkB,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,wCAAwC;CACvG,CAAC,CAAC,CAAC,SAAS,iDAOF;AACV,CAAC"}
1
+ {"version":3,"file":"scrape-with-put.mjs","names":[],"sources":["../../src/actions/scrape-with-put.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const ScrapflyScrapeWithPutInput = z.object({\n asp: z.boolean().describe(\"Enable anti-scraping protection bypass.\").optional(),\n url: z.string().describe(\"The target URL to scrape with PUT request.\"),\n body: z.string().describe(\"Request body payload to send with the PUT request. Should be JSON string for JSON payloads.\"),\n tags: z.array(z.string()).describe(\"Custom labels for analytics.\").optional(),\n cache: z.boolean().describe(\"Enable result caching.\").optional(),\n retry: z.number().int().default(2).describe(\"Number of retries on failure (default is 2).\").optional(),\n country: z.string().describe(\"Target country for the proxy (e.g., 'US', 'FR', 'DE').\").optional(),\n headers: z.object({}).describe(\"Custom HTTP request headers to send. For JSON body, include 'content-type': 'application/json'.\").optional(),\n session: z.string().describe(\"Proxy session ID for sticky sessions.\").optional(),\n timeout: z.number().int().default(60).describe(\"Timeout for the scrape request in seconds (default is 60).\").optional(),\n render_js: z.boolean().describe(\"Enable JavaScript rendering for sites requiring it.\").optional(),\n extract_rules: z.record(z.string(), z.unknown()).describe(\"Extraction rules (JMESPath, CSS selector, or JSONPath).\").optional(),\n}).describe(\"Request model for scraping a web page using PUT method with body payload.\");\nexport const ScrapflyScrapeWithPutOutput = z.object({\n url: z.string().describe(\"Final URL after redirects.\").nullable(),\n config: z.record(z.string(), z.unknown()).describe(\"Configuration used for the scrape request.\"),\n result: z.record(z.string(), z.unknown()).describe(\"Container for metadata and extraction results.\"),\n content: z.string().describe(\"Raw response body (HTML, JSON, etc.).\").nullable(),\n context: z.record(z.string(), z.unknown()).describe(\"Context information including proxy, cost, etc.\"),\n status_code: z.number().int().describe(\"HTTP status code returned by the target URL.\").nullable(),\n extracted_data: z.record(z.string(), z.unknown()).describe(\"User-specified extraction results (if extract_rules were provided).\").nullable().optional(),\n response_headers: z.record(z.string(), z.unknown()).describe(\"HTTP response headers from the target.\"),\n}).describe(\"Response model for the Scrapfly scrape PUT API.\");\n\nexport const scrapflyScrapeWithPut = action(\"SCRAPFLY_SCRAPE_WITH_PUT\", {\n slug: \"scrapfly-scrape-with-put\",\n name: \"Scrape With PUT\",\n description: \"Tool to scrape web pages using PUT method with body payload. Use when the target API requires PUT requests with data in the request body. Forwards PUT request with custom body to the target URL. If not specified, content-type defaults to application/x-www-form-urlencoded.\",\n input: ScrapflyScrapeWithPutInput,\n output: ScrapflyScrapeWithPutOutput,\n});\n"],"mappings":";;AA6BA,MAAa,wBAAwB,OAAO,4BAA4B;CACtE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OA7BwC,EAAE,OAAO;EACjD,KAAK,EAAE,QAAQ,CAAC,CAAC,SAAS,yCAAyC,CAAC,CAAC,SAAS;EAC9E,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,4CAA4C;EACrE,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,6FAA6F;EACvH,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,8BAA8B,CAAC,CAAC,SAAS;EAC5E,OAAO,EAAE,QAAQ,CAAC,CAAC,SAAS,wBAAwB,CAAC,CAAC,SAAS;EAC/D,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS;EACrG,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,wDAAwD,CAAC,CAAC,SAAS;EAChG,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,iGAAiG,CAAC,CAAC,SAAS;EAC3I,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,uCAAuC,CAAC,CAAC,SAAS;EAC/E,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,4DAA4D,CAAC,CAAC,SAAS;EACtH,WAAW,EAAE,QAAQ,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;EAChG,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,yDAAyD,CAAC,CAAC,SAAS;CAChI,CAAC,CAAC,CAAC,SAAS,2EAgBH;CACP,QAhByC,EAAE,OAAO;EAClD,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B,CAAC,CAAC,SAAS;EAChE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,4CAA4C;EAC/F,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,gDAAgD;EACnG,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,uCAAuC,CAAC,CAAC,SAAS;EAC/E,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,iDAAiD;EACrG,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS;EAChG,gBAAgB,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,qEAAqE,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EACtJ,kBAAkB,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,wCAAwC;CACvG,CAAC,CAAC,CAAC,SAAS,iDAOF;AACV,CAAC"}
@@ -25,12 +25,12 @@ const ScrapflyScrapeInput = zod.z.object({
25
25
  extract_rules: zod.z.record(zod.z.string(), zod.z.unknown()).describe("Extraction rules (JMESPath, CSS selector, or JSONPath).").optional()
26
26
  }).describe("Request model for initiating a web scrape task.");
27
27
  const ScrapflyScrapeOutput = zod.z.object({
28
- url: zod.z.string().describe("Final URL after redirects."),
28
+ url: zod.z.string().describe("Final URL after redirects.").nullable(),
29
29
  config: zod.z.record(zod.z.string(), zod.z.unknown()).describe("Configuration used for the scrape request."),
30
30
  result: zod.z.record(zod.z.string(), zod.z.unknown()).describe("Container for metadata and extraction results."),
31
- content: zod.z.string().describe("Raw response body (HTML, JSON, etc.)."),
31
+ content: zod.z.string().describe("Raw response body (HTML, JSON, etc.).").nullable(),
32
32
  context: zod.z.record(zod.z.string(), zod.z.unknown()).describe("Context information including proxy, cost, etc."),
33
- status_code: zod.z.number().int().describe("HTTP status code returned by the target URL."),
33
+ status_code: zod.z.number().int().describe("HTTP status code returned by the target URL.").nullable(),
34
34
  extracted_data: zod.z.record(zod.z.string(), zod.z.unknown()).describe("User-specified extraction results (if extract_rules were provided).").nullable().optional(),
35
35
  response_headers: zod.z.record(zod.z.string(), zod.z.unknown()).describe("HTTP response headers from the target.")
36
36
  }).describe("Response model for the Scrapfly scrape API.");
@@ -1 +1 @@
1
- {"version":3,"file":"scrape.cjs","names":["z","action"],"sources":["../../src/actions/scrape.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const ScrapflyScrapeInput: z.ZodTypeAny = z.object({\n asp: z.boolean().describe(\"Enable anti-scraping protection bypass.\").optional(),\n url: z.string().describe(\"The URL to scrape.\"),\n body: z.string().describe(\"Request body payload for POST/PUT requests.\").optional(),\n tags: z.array(z.string()).describe(\"Custom labels for analytics.\").optional(),\n cache: z.boolean().describe(\"Enable result caching.\").optional(),\n retry: z.number().int().default(2).describe(\"Number of retries on failure (default is 2).\").optional(),\n method: z.enum([\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\", \"HEAD\", \"OPTIONS\"]).describe(\"HTTP method to use for request, default is GET.\").optional(),\n country: z.string().describe(\"Target country for the proxy (e.g., 'US', 'FR', 'DE'). Matching the target site's region can improve success rates against geo-restricted or anti-bot measures.\").optional(),\n headers: z.object({}).describe(\"Custom HTTP request headers to send.\").optional(),\n session: z.string().describe(\"Proxy session ID for sticky sessions.\").optional(),\n timeout: z.number().int().default(60).describe(\"Timeout for the scrape request in seconds (default is 60).\").optional(),\n render_js: z.boolean().describe(\"Enable JavaScript rendering for sites requiring it. Default returns static HTML only; dynamic/SPA content requires this set to true.\").optional(),\n extract_rules: z.record(z.string(), z.unknown()).describe(\"Extraction rules (JMESPath, CSS selector, or JSONPath).\").optional(),\n}).describe(\"Request model for initiating a web scrape task.\");\nexport const ScrapflyScrapeOutput: z.ZodTypeAny = z.object({\n url: z.string().describe(\"Final URL after redirects.\"),\n config: z.record(z.string(), z.unknown()).describe(\"Configuration used for the scrape request.\"),\n result: z.record(z.string(), z.unknown()).describe(\"Container for metadata and extraction results.\"),\n content: z.string().describe(\"Raw response body (HTML, JSON, etc.).\"),\n context: z.record(z.string(), z.unknown()).describe(\"Context information including proxy, cost, etc.\"),\n status_code: z.number().int().describe(\"HTTP status code returned by the target URL.\"),\n extracted_data: z.record(z.string(), z.unknown()).describe(\"User-specified extraction results (if extract_rules were provided).\").nullable().optional(),\n response_headers: z.record(z.string(), z.unknown()).describe(\"HTTP response headers from the target.\"),\n}).describe(\"Response model for the Scrapfly scrape API.\");\n\nexport const scrapflyScrape = action(\"SCRAPFLY_SCRAPE\", {\n slug: \"scrapfly-scrape\",\n name: \"Scrapfly Scrape\",\n description: \"Tool to perform a web scraping request. Use when you need to fetch a page with custom configuration like JS rendering, proxies, and extraction.\",\n input: ScrapflyScrapeInput,\n output: ScrapflyScrapeOutput,\n});\n"],"mappings":";;;AAIA,MAAa,sBAAoCA,IAAAA,EAAE,OAAO;CACxD,KAAKA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,yCAAyC,CAAC,CAAC,SAAS;CAC9E,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oBAAoB;CAC7C,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6CAA6C,CAAC,CAAC,SAAS;CAClF,MAAMA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,8BAA8B,CAAC,CAAC,SAAS;CAC5E,OAAOA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,wBAAwB,CAAC,CAAC,SAAS;CAC/D,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS;CACrG,QAAQA,IAAAA,EAAE,KAAK;EAAC;EAAO;EAAQ;EAAO;EAAS;EAAU;EAAQ;CAAS,CAAC,CAAC,CAAC,SAAS,iDAAiD,CAAC,CAAC,SAAS;CAClJ,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,iKAAiK,CAAC,CAAC,SAAS;CACzM,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS;CAChF,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uCAAuC,CAAC,CAAC,SAAS;CAC/E,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,4DAA4D,CAAC,CAAC,SAAS;CACtH,WAAWA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,sIAAsI,CAAC,CAAC,SAAS;CACjL,eAAeA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,yDAAyD,CAAC,CAAC,SAAS;AAChI,CAAC,CAAC,CAAC,SAAS,iDAAiD;AAC7D,MAAa,uBAAqCA,IAAAA,EAAE,OAAO;CACzD,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B;CACrD,QAAQA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,4CAA4C;CAC/F,QAAQA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,gDAAgD;CACnG,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uCAAuC;CACpE,SAASA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,iDAAiD;CACrG,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,8CAA8C;CACrF,gBAAgBA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,qEAAqE,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACtJ,kBAAkBA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,wCAAwC;AACvG,CAAC,CAAC,CAAC,SAAS,6CAA6C;AAEzD,MAAa,iBAAiBC,eAAAA,OAAO,mBAAmB;CACtD,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
1
+ {"version":3,"file":"scrape.cjs","names":["z","action"],"sources":["../../src/actions/scrape.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const ScrapflyScrapeInput = z.object({\n asp: z.boolean().describe(\"Enable anti-scraping protection bypass.\").optional(),\n url: z.string().describe(\"The URL to scrape.\"),\n body: z.string().describe(\"Request body payload for POST/PUT requests.\").optional(),\n tags: z.array(z.string()).describe(\"Custom labels for analytics.\").optional(),\n cache: z.boolean().describe(\"Enable result caching.\").optional(),\n retry: z.number().int().default(2).describe(\"Number of retries on failure (default is 2).\").optional(),\n method: z.enum([\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\", \"HEAD\", \"OPTIONS\"]).describe(\"HTTP method to use for request, default is GET.\").optional(),\n country: z.string().describe(\"Target country for the proxy (e.g., 'US', 'FR', 'DE'). Matching the target site's region can improve success rates against geo-restricted or anti-bot measures.\").optional(),\n headers: z.object({}).describe(\"Custom HTTP request headers to send.\").optional(),\n session: z.string().describe(\"Proxy session ID for sticky sessions.\").optional(),\n timeout: z.number().int().default(60).describe(\"Timeout for the scrape request in seconds (default is 60).\").optional(),\n render_js: z.boolean().describe(\"Enable JavaScript rendering for sites requiring it. Default returns static HTML only; dynamic/SPA content requires this set to true.\").optional(),\n extract_rules: z.record(z.string(), z.unknown()).describe(\"Extraction rules (JMESPath, CSS selector, or JSONPath).\").optional(),\n}).describe(\"Request model for initiating a web scrape task.\");\nexport const ScrapflyScrapeOutput = z.object({\n url: z.string().describe(\"Final URL after redirects.\").nullable(),\n config: z.record(z.string(), z.unknown()).describe(\"Configuration used for the scrape request.\"),\n result: z.record(z.string(), z.unknown()).describe(\"Container for metadata and extraction results.\"),\n content: z.string().describe(\"Raw response body (HTML, JSON, etc.).\").nullable(),\n context: z.record(z.string(), z.unknown()).describe(\"Context information including proxy, cost, etc.\"),\n status_code: z.number().int().describe(\"HTTP status code returned by the target URL.\").nullable(),\n extracted_data: z.record(z.string(), z.unknown()).describe(\"User-specified extraction results (if extract_rules were provided).\").nullable().optional(),\n response_headers: z.record(z.string(), z.unknown()).describe(\"HTTP response headers from the target.\"),\n}).describe(\"Response model for the Scrapfly scrape API.\");\n\nexport const scrapflyScrape = action(\"SCRAPFLY_SCRAPE\", {\n slug: \"scrapfly-scrape\",\n name: \"Scrapfly Scrape\",\n description: \"Tool to perform a web scraping request. Use when you need to fetch a page with custom configuration like JS rendering, proxies, and extraction.\",\n input: ScrapflyScrapeInput,\n output: ScrapflyScrapeOutput,\n});\n"],"mappings":";;;AAIA,MAAa,sBAAsBA,IAAAA,EAAE,OAAO;CAC1C,KAAKA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,yCAAyC,CAAC,CAAC,SAAS;CAC9E,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oBAAoB;CAC7C,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6CAA6C,CAAC,CAAC,SAAS;CAClF,MAAMA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,8BAA8B,CAAC,CAAC,SAAS;CAC5E,OAAOA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,wBAAwB,CAAC,CAAC,SAAS;CAC/D,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS;CACrG,QAAQA,IAAAA,EAAE,KAAK;EAAC;EAAO;EAAQ;EAAO;EAAS;EAAU;EAAQ;CAAS,CAAC,CAAC,CAAC,SAAS,iDAAiD,CAAC,CAAC,SAAS;CAClJ,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,iKAAiK,CAAC,CAAC,SAAS;CACzM,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,SAAS;CAChF,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uCAAuC,CAAC,CAAC,SAAS;CAC/E,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,4DAA4D,CAAC,CAAC,SAAS;CACtH,WAAWA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,sIAAsI,CAAC,CAAC,SAAS;CACjL,eAAeA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,yDAAyD,CAAC,CAAC,SAAS;AAChI,CAAC,CAAC,CAAC,SAAS,iDAAiD;AAC7D,MAAa,uBAAuBA,IAAAA,EAAE,OAAO;CAC3C,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B,CAAC,CAAC,SAAS;CAChE,QAAQA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,4CAA4C;CAC/F,QAAQA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,gDAAgD;CACnG,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uCAAuC,CAAC,CAAC,SAAS;CAC/E,SAASA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,iDAAiD;CACrG,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS;CAChG,gBAAgBA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,qEAAqE,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACtJ,kBAAkBA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,wCAAwC;AACvG,CAAC,CAAC,CAAC,SAAS,6CAA6C;AAEzD,MAAa,iBAAiBC,eAAAA,OAAO,mBAAmB;CACtD,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
@@ -1,9 +1,54 @@
1
1
  import { z } from "zod";
2
2
 
3
3
  //#region src/actions/scrape.d.ts
4
- declare const ScrapflyScrapeInput: z.ZodTypeAny;
5
- declare const ScrapflyScrapeOutput: z.ZodTypeAny;
6
- declare const scrapflyScrape: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
4
+ declare const ScrapflyScrapeInput: z.ZodObject<{
5
+ asp: z.ZodOptional<z.ZodBoolean>;
6
+ url: z.ZodString;
7
+ body: z.ZodOptional<z.ZodString>;
8
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
9
+ cache: z.ZodOptional<z.ZodBoolean>;
10
+ retry: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
11
+ method: z.ZodOptional<z.ZodEnum<{
12
+ GET: "GET";
13
+ POST: "POST";
14
+ PUT: "PUT";
15
+ PATCH: "PATCH";
16
+ DELETE: "DELETE";
17
+ HEAD: "HEAD";
18
+ OPTIONS: "OPTIONS";
19
+ }>>;
20
+ country: z.ZodOptional<z.ZodString>;
21
+ headers: z.ZodOptional<z.ZodObject<{}, z.core.$strip>>;
22
+ session: z.ZodOptional<z.ZodString>;
23
+ timeout: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
24
+ render_js: z.ZodOptional<z.ZodBoolean>;
25
+ extract_rules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
26
+ }, z.core.$strip>;
27
+ declare const ScrapflyScrapeOutput: z.ZodObject<{
28
+ url: z.ZodNullable<z.ZodString>;
29
+ config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
30
+ result: z.ZodRecord<z.ZodString, z.ZodUnknown>;
31
+ content: z.ZodNullable<z.ZodString>;
32
+ context: z.ZodRecord<z.ZodString, z.ZodUnknown>;
33
+ status_code: z.ZodNullable<z.ZodNumber>;
34
+ extracted_data: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
35
+ response_headers: z.ZodRecord<z.ZodString, z.ZodUnknown>;
36
+ }, z.core.$strip>;
37
+ declare const scrapflyScrape: import("@keystrokehq/action").WorkflowActionDefinition<{
38
+ url: string;
39
+ asp?: boolean | undefined;
40
+ body?: string | undefined;
41
+ tags?: string[] | undefined;
42
+ cache?: boolean | undefined;
43
+ retry?: number | undefined;
44
+ method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "OPTIONS" | undefined;
45
+ country?: string | undefined;
46
+ headers?: Record<string, never> | undefined;
47
+ session?: string | undefined;
48
+ timeout?: number | undefined;
49
+ render_js?: boolean | undefined;
50
+ extract_rules?: Record<string, unknown> | undefined;
51
+ }, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
7
52
  //#endregion
8
53
  export { scrapflyScrape };
9
54
  //# sourceMappingURL=scrape.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scrape.d.cts","names":[],"sources":["../../src/actions/scrape.ts"],"mappings":";;;cAIa,mBAAA,EAAqB,CAAA,CAAE,UAc0B;AAAA,cACjD,oBAAA,EAAsB,CAAA,CAAE,UASqB;AAAA,cAE7C,cAAA,gCAAc,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
1
+ {"version":3,"file":"scrape.d.cts","names":[],"sources":["../../src/actions/scrape.ts"],"mappings":";;;cAIa,mBAAA,EAAmB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;cAenB,oBAAA,EAAoB,CAAA,CAAA,SAAA;;;;;;;;;;cAWpB,cAAA,gCAAc,wBAAA;;;;;;;;;YAMzB,MAAA;;;;kBAAA,MAAA;AAAA"}