@keystrokehq/serpapi 0.1.2 → 0.1.3

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 (289) hide show
  1. package/dist/actions/baidu-search.cjs +1 -1
  2. package/dist/actions/baidu-search.cjs.map +1 -1
  3. package/dist/actions/baidu-search.d.cts +1 -1
  4. package/dist/actions/baidu-search.d.mts +1 -1
  5. package/dist/actions/baidu-search.mjs +1 -1
  6. package/dist/actions/baidu-search.mjs.map +1 -1
  7. package/dist/actions/bing-maps.cjs +15 -15
  8. package/dist/actions/bing-maps.cjs.map +1 -1
  9. package/dist/actions/bing-maps.d.cts +16 -16
  10. package/dist/actions/bing-maps.d.mts +16 -16
  11. package/dist/actions/bing-maps.mjs +15 -15
  12. package/dist/actions/bing-maps.mjs.map +1 -1
  13. package/dist/actions/bing-search.cjs +1 -1
  14. package/dist/actions/bing-search.cjs.map +1 -1
  15. package/dist/actions/bing-search.d.cts +1 -1
  16. package/dist/actions/bing-search.d.mts +1 -1
  17. package/dist/actions/bing-search.mjs +1 -1
  18. package/dist/actions/bing-search.mjs.map +1 -1
  19. package/dist/actions/duck-duck-go-light-search.cjs +7 -7
  20. package/dist/actions/duck-duck-go-light-search.cjs.map +1 -1
  21. package/dist/actions/duck-duck-go-light-search.d.cts +7 -7
  22. package/dist/actions/duck-duck-go-light-search.d.mts +7 -7
  23. package/dist/actions/duck-duck-go-light-search.mjs +7 -7
  24. package/dist/actions/duck-duck-go-light-search.mjs.map +1 -1
  25. package/dist/actions/duck-duck-go-maps.cjs +9 -9
  26. package/dist/actions/duck-duck-go-maps.cjs.map +1 -1
  27. package/dist/actions/duck-duck-go-maps.d.cts +9 -9
  28. package/dist/actions/duck-duck-go-maps.d.mts +9 -9
  29. package/dist/actions/duck-duck-go-maps.mjs +9 -9
  30. package/dist/actions/duck-duck-go-maps.mjs.map +1 -1
  31. package/dist/actions/duck-duck-go-search.cjs +15 -15
  32. package/dist/actions/duck-duck-go-search.cjs.map +1 -1
  33. package/dist/actions/duck-duck-go-search.d.cts +16 -16
  34. package/dist/actions/duck-duck-go-search.d.mts +16 -16
  35. package/dist/actions/duck-duck-go-search.mjs +15 -15
  36. package/dist/actions/duck-duck-go-search.mjs.map +1 -1
  37. package/dist/actions/ebay-search.cjs +12 -12
  38. package/dist/actions/ebay-search.cjs.map +1 -1
  39. package/dist/actions/ebay-search.d.cts +13 -13
  40. package/dist/actions/ebay-search.d.mts +13 -13
  41. package/dist/actions/ebay-search.mjs +12 -12
  42. package/dist/actions/ebay-search.mjs.map +1 -1
  43. package/dist/actions/event-search.cjs +10 -10
  44. package/dist/actions/event-search.cjs.map +1 -1
  45. package/dist/actions/event-search.d.cts +10 -10
  46. package/dist/actions/event-search.d.mts +10 -10
  47. package/dist/actions/event-search.mjs +10 -10
  48. package/dist/actions/event-search.mjs.map +1 -1
  49. package/dist/actions/finance-search.cjs +28 -28
  50. package/dist/actions/finance-search.cjs.map +1 -1
  51. package/dist/actions/finance-search.d.cts +44 -44
  52. package/dist/actions/finance-search.d.mts +44 -44
  53. package/dist/actions/finance-search.mjs +28 -28
  54. package/dist/actions/finance-search.mjs.map +1 -1
  55. package/dist/actions/get-available-location-options-for-google-searches.cjs +2 -2
  56. package/dist/actions/get-available-location-options-for-google-searches.cjs.map +1 -1
  57. package/dist/actions/get-available-location-options-for-google-searches.d.cts +2 -2
  58. package/dist/actions/get-available-location-options-for-google-searches.d.mts +2 -2
  59. package/dist/actions/get-available-location-options-for-google-searches.mjs +2 -2
  60. package/dist/actions/get-available-location-options-for-google-searches.mjs.map +1 -1
  61. package/dist/actions/get-facebook-profile.cjs +11 -11
  62. package/dist/actions/get-facebook-profile.cjs.map +1 -1
  63. package/dist/actions/get-facebook-profile.d.cts +11 -11
  64. package/dist/actions/get-facebook-profile.d.mts +11 -11
  65. package/dist/actions/get-facebook-profile.mjs +11 -11
  66. package/dist/actions/get-facebook-profile.mjs.map +1 -1
  67. package/dist/actions/get-google-about-this-result.cjs +14 -14
  68. package/dist/actions/get-google-about-this-result.cjs.map +1 -1
  69. package/dist/actions/get-google-about-this-result.d.cts +14 -14
  70. package/dist/actions/get-google-about-this-result.d.mts +14 -14
  71. package/dist/actions/get-google-about-this-result.mjs +14 -14
  72. package/dist/actions/get-google-about-this-result.mjs.map +1 -1
  73. package/dist/actions/get-google-hotels-autocomplete-suggestions.cjs +4 -4
  74. package/dist/actions/get-google-hotels-autocomplete-suggestions.cjs.map +1 -1
  75. package/dist/actions/get-google-hotels-autocomplete-suggestions.d.cts +4 -4
  76. package/dist/actions/get-google-hotels-autocomplete-suggestions.d.mts +4 -4
  77. package/dist/actions/get-google-hotels-autocomplete-suggestions.mjs +4 -4
  78. package/dist/actions/get-google-hotels-autocomplete-suggestions.mjs.map +1 -1
  79. package/dist/actions/get-google-images-related-content.cjs +5 -5
  80. package/dist/actions/get-google-images-related-content.cjs.map +1 -1
  81. package/dist/actions/get-google-images-related-content.d.cts +5 -5
  82. package/dist/actions/get-google-images-related-content.d.mts +5 -5
  83. package/dist/actions/get-google-images-related-content.mjs +5 -5
  84. package/dist/actions/get-google-images-related-content.mjs.map +1 -1
  85. package/dist/actions/get-google-patent-details.cjs +14 -14
  86. package/dist/actions/get-google-patent-details.cjs.map +1 -1
  87. package/dist/actions/get-google-patent-details.d.cts +15 -15
  88. package/dist/actions/get-google-patent-details.d.mts +15 -15
  89. package/dist/actions/get-google-patent-details.mjs +14 -14
  90. package/dist/actions/get-google-patent-details.mjs.map +1 -1
  91. package/dist/actions/get-search-archive.cjs +10 -10
  92. package/dist/actions/get-search-archive.cjs.map +1 -1
  93. package/dist/actions/get-search-archive.d.cts +10 -10
  94. package/dist/actions/get-search-archive.d.mts +10 -10
  95. package/dist/actions/get-search-archive.mjs +10 -10
  96. package/dist/actions/get-search-archive.mjs.map +1 -1
  97. package/dist/actions/google-domains-list.cjs +2 -2
  98. package/dist/actions/google-domains-list.cjs.map +1 -1
  99. package/dist/actions/google-domains-list.d.cts +2 -2
  100. package/dist/actions/google-domains-list.d.mts +2 -2
  101. package/dist/actions/google-domains-list.mjs +2 -2
  102. package/dist/actions/google-domains-list.mjs.map +1 -1
  103. package/dist/actions/google-forums-search.cjs +13 -13
  104. package/dist/actions/google-forums-search.cjs.map +1 -1
  105. package/dist/actions/google-forums-search.d.cts +13 -13
  106. package/dist/actions/google-forums-search.d.mts +13 -13
  107. package/dist/actions/google-forums-search.mjs +13 -13
  108. package/dist/actions/google-forums-search.mjs.map +1 -1
  109. package/dist/actions/google-jobs-search.cjs +10 -10
  110. package/dist/actions/google-jobs-search.cjs.map +1 -1
  111. package/dist/actions/google-jobs-search.d.cts +10 -10
  112. package/dist/actions/google-jobs-search.d.mts +10 -10
  113. package/dist/actions/google-jobs-search.mjs +10 -10
  114. package/dist/actions/google-jobs-search.mjs.map +1 -1
  115. package/dist/actions/google-lens-search.cjs +6 -6
  116. package/dist/actions/google-lens-search.cjs.map +1 -1
  117. package/dist/actions/google-lens-search.d.cts +6 -6
  118. package/dist/actions/google-lens-search.d.mts +6 -6
  119. package/dist/actions/google-lens-search.mjs +6 -6
  120. package/dist/actions/google-lens-search.mjs.map +1 -1
  121. package/dist/actions/google-light-search.cjs +9 -9
  122. package/dist/actions/google-light-search.cjs.map +1 -1
  123. package/dist/actions/google-light-search.d.cts +9 -9
  124. package/dist/actions/google-light-search.d.mts +9 -9
  125. package/dist/actions/google-light-search.mjs +9 -9
  126. package/dist/actions/google-light-search.mjs.map +1 -1
  127. package/dist/actions/google-maps-posts.cjs +5 -5
  128. package/dist/actions/google-maps-posts.cjs.map +1 -1
  129. package/dist/actions/google-maps-posts.d.cts +5 -5
  130. package/dist/actions/google-maps-posts.d.mts +5 -5
  131. package/dist/actions/google-maps-posts.mjs +5 -5
  132. package/dist/actions/google-maps-posts.mjs.map +1 -1
  133. package/dist/actions/google-maps-search.cjs +14 -14
  134. package/dist/actions/google-maps-search.cjs.map +1 -1
  135. package/dist/actions/google-maps-search.d.cts +15 -15
  136. package/dist/actions/google-maps-search.d.mts +15 -15
  137. package/dist/actions/google-maps-search.mjs +14 -14
  138. package/dist/actions/google-maps-search.mjs.map +1 -1
  139. package/dist/actions/google-play-product.cjs +20 -20
  140. package/dist/actions/google-play-product.cjs.map +1 -1
  141. package/dist/actions/google-play-product.d.cts +21 -21
  142. package/dist/actions/google-play-product.d.mts +21 -21
  143. package/dist/actions/google-play-product.mjs +20 -20
  144. package/dist/actions/google-play-product.mjs.map +1 -1
  145. package/dist/actions/google-scholar-author.cjs +13 -13
  146. package/dist/actions/google-scholar-author.cjs.map +1 -1
  147. package/dist/actions/google-scholar-author.d.cts +13 -13
  148. package/dist/actions/google-scholar-author.d.mts +13 -13
  149. package/dist/actions/google-scholar-author.mjs +13 -13
  150. package/dist/actions/google-scholar-author.mjs.map +1 -1
  151. package/dist/actions/google-scholar-cite.cjs +5 -5
  152. package/dist/actions/google-scholar-cite.cjs.map +1 -1
  153. package/dist/actions/google-scholar-cite.d.cts +5 -5
  154. package/dist/actions/google-scholar-cite.d.mts +5 -5
  155. package/dist/actions/google-scholar-cite.mjs +5 -5
  156. package/dist/actions/google-scholar-cite.mjs.map +1 -1
  157. package/dist/actions/google-videos-light.cjs +9 -9
  158. package/dist/actions/google-videos-light.cjs.map +1 -1
  159. package/dist/actions/google-videos-light.d.cts +10 -10
  160. package/dist/actions/google-videos-light.d.mts +10 -10
  161. package/dist/actions/google-videos-light.mjs +9 -9
  162. package/dist/actions/google-videos-light.mjs.map +1 -1
  163. package/dist/actions/hotel-search.cjs +1 -1
  164. package/dist/actions/hotel-search.cjs.map +1 -1
  165. package/dist/actions/hotel-search.d.cts +1 -1
  166. package/dist/actions/hotel-search.d.mts +1 -1
  167. package/dist/actions/hotel-search.mjs +1 -1
  168. package/dist/actions/hotel-search.mjs.map +1 -1
  169. package/dist/actions/image-search.cjs +1 -1
  170. package/dist/actions/image-search.cjs.map +1 -1
  171. package/dist/actions/image-search.d.cts +1 -1
  172. package/dist/actions/image-search.d.mts +1 -1
  173. package/dist/actions/image-search.mjs +1 -1
  174. package/dist/actions/image-search.mjs.map +1 -1
  175. package/dist/actions/naver-search.cjs +16 -16
  176. package/dist/actions/naver-search.cjs.map +1 -1
  177. package/dist/actions/naver-search.d.cts +16 -16
  178. package/dist/actions/naver-search.d.mts +16 -16
  179. package/dist/actions/naver-search.mjs +16 -16
  180. package/dist/actions/naver-search.mjs.map +1 -1
  181. package/dist/actions/news-search.cjs +1 -1
  182. package/dist/actions/news-search.cjs.map +1 -1
  183. package/dist/actions/news-search.d.cts +1 -1
  184. package/dist/actions/news-search.d.mts +1 -1
  185. package/dist/actions/news-search.mjs +1 -1
  186. package/dist/actions/news-search.mjs.map +1 -1
  187. package/dist/actions/open-table-reviews.cjs +15 -15
  188. package/dist/actions/open-table-reviews.cjs.map +1 -1
  189. package/dist/actions/open-table-reviews.d.cts +15 -15
  190. package/dist/actions/open-table-reviews.d.mts +15 -15
  191. package/dist/actions/open-table-reviews.mjs +15 -15
  192. package/dist/actions/open-table-reviews.mjs.map +1 -1
  193. package/dist/actions/play-search.cjs +1 -1
  194. package/dist/actions/play-search.cjs.map +1 -1
  195. package/dist/actions/play-search.d.cts +1 -1
  196. package/dist/actions/play-search.d.mts +1 -1
  197. package/dist/actions/play-search.mjs +1 -1
  198. package/dist/actions/play-search.mjs.map +1 -1
  199. package/dist/actions/scholar-search.cjs +1 -1
  200. package/dist/actions/scholar-search.cjs.map +1 -1
  201. package/dist/actions/scholar-search.d.cts +1 -1
  202. package/dist/actions/scholar-search.d.mts +1 -1
  203. package/dist/actions/scholar-search.mjs +1 -1
  204. package/dist/actions/scholar-search.mjs.map +1 -1
  205. package/dist/actions/search-apple-app-store.cjs +7 -7
  206. package/dist/actions/search-apple-app-store.cjs.map +1 -1
  207. package/dist/actions/search-apple-app-store.d.cts +7 -7
  208. package/dist/actions/search-apple-app-store.d.mts +7 -7
  209. package/dist/actions/search-apple-app-store.mjs +7 -7
  210. package/dist/actions/search-apple-app-store.mjs.map +1 -1
  211. package/dist/actions/search-google-images-light.cjs +6 -6
  212. package/dist/actions/search-google-images-light.cjs.map +1 -1
  213. package/dist/actions/search-google-images-light.d.cts +6 -6
  214. package/dist/actions/search-google-images-light.d.mts +6 -6
  215. package/dist/actions/search-google-images-light.mjs +6 -6
  216. package/dist/actions/search-google-images-light.mjs.map +1 -1
  217. package/dist/actions/search-google-local-services.cjs +5 -5
  218. package/dist/actions/search-google-local-services.cjs.map +1 -1
  219. package/dist/actions/search-google-local-services.d.cts +5 -5
  220. package/dist/actions/search-google-local-services.d.mts +5 -5
  221. package/dist/actions/search-google-local-services.mjs +5 -5
  222. package/dist/actions/search-google-local-services.mjs.map +1 -1
  223. package/dist/actions/search-yelp.cjs +2 -2
  224. package/dist/actions/search-yelp.cjs.map +1 -1
  225. package/dist/actions/search-yelp.d.cts +2 -2
  226. package/dist/actions/search-yelp.d.mts +2 -2
  227. package/dist/actions/search-yelp.mjs +2 -2
  228. package/dist/actions/search-yelp.mjs.map +1 -1
  229. package/dist/actions/search.cjs +3 -3
  230. package/dist/actions/search.cjs.map +1 -1
  231. package/dist/actions/search.d.cts +3 -3
  232. package/dist/actions/search.d.mts +3 -3
  233. package/dist/actions/search.mjs +3 -3
  234. package/dist/actions/search.mjs.map +1 -1
  235. package/dist/actions/shopping-search.cjs +1 -1
  236. package/dist/actions/shopping-search.cjs.map +1 -1
  237. package/dist/actions/shopping-search.d.cts +1 -1
  238. package/dist/actions/shopping-search.d.mts +1 -1
  239. package/dist/actions/shopping-search.mjs +1 -1
  240. package/dist/actions/shopping-search.mjs.map +1 -1
  241. package/dist/actions/trends-search.cjs +15 -15
  242. package/dist/actions/trends-search.cjs.map +1 -1
  243. package/dist/actions/trends-search.d.cts +18 -18
  244. package/dist/actions/trends-search.d.mts +18 -18
  245. package/dist/actions/trends-search.mjs +15 -15
  246. package/dist/actions/trends-search.mjs.map +1 -1
  247. package/dist/actions/walmart-product-reviews.cjs +11 -11
  248. package/dist/actions/walmart-product-reviews.cjs.map +1 -1
  249. package/dist/actions/walmart-product-reviews.d.cts +14 -14
  250. package/dist/actions/walmart-product-reviews.d.mts +14 -14
  251. package/dist/actions/walmart-product-reviews.mjs +11 -11
  252. package/dist/actions/walmart-product-reviews.mjs.map +1 -1
  253. package/dist/actions/walmart-search.cjs +1 -1
  254. package/dist/actions/walmart-search.cjs.map +1 -1
  255. package/dist/actions/walmart-search.d.cts +1 -1
  256. package/dist/actions/walmart-search.d.mts +1 -1
  257. package/dist/actions/walmart-search.mjs +1 -1
  258. package/dist/actions/walmart-search.mjs.map +1 -1
  259. package/dist/actions/yahoo-search.cjs +1 -1
  260. package/dist/actions/yahoo-search.cjs.map +1 -1
  261. package/dist/actions/yahoo-search.d.cts +1 -1
  262. package/dist/actions/yahoo-search.d.mts +1 -1
  263. package/dist/actions/yahoo-search.mjs +1 -1
  264. package/dist/actions/yahoo-search.mjs.map +1 -1
  265. package/dist/actions/yahoo-videos.cjs +8 -8
  266. package/dist/actions/yahoo-videos.cjs.map +1 -1
  267. package/dist/actions/yahoo-videos.d.cts +8 -8
  268. package/dist/actions/yahoo-videos.d.mts +8 -8
  269. package/dist/actions/yahoo-videos.mjs +8 -8
  270. package/dist/actions/yahoo-videos.mjs.map +1 -1
  271. package/dist/actions/yandex-images-search.cjs +8 -8
  272. package/dist/actions/yandex-images-search.cjs.map +1 -1
  273. package/dist/actions/yandex-images-search.d.cts +8 -8
  274. package/dist/actions/yandex-images-search.d.mts +8 -8
  275. package/dist/actions/yandex-images-search.mjs +8 -8
  276. package/dist/actions/yandex-images-search.mjs.map +1 -1
  277. package/dist/actions/yandex-search.cjs +1 -1
  278. package/dist/actions/yandex-search.cjs.map +1 -1
  279. package/dist/actions/yandex-search.d.cts +1 -1
  280. package/dist/actions/yandex-search.d.mts +1 -1
  281. package/dist/actions/yandex-search.mjs +1 -1
  282. package/dist/actions/yandex-search.mjs.map +1 -1
  283. package/dist/actions/you-tube-search.cjs +1 -1
  284. package/dist/actions/you-tube-search.cjs.map +1 -1
  285. package/dist/actions/you-tube-search.d.cts +1 -1
  286. package/dist/actions/you-tube-search.d.mts +1 -1
  287. package/dist/actions/you-tube-search.mjs +1 -1
  288. package/dist/actions/you-tube-search.mjs.map +1 -1
  289. package/package.json +1 -1
@@ -22,7 +22,7 @@ const SerpapiSearchGoogleLocalServices_LocalAdSchema = zod.z.object({
22
22
  link: zod.z.string().describe("Link to the business details.").nullable().optional(),
23
23
  type: zod.z.string().describe("Type of service provider.").nullable().optional(),
24
24
  badge: zod.z.string().describe("Badge status (e.g., 'GOOGLE GUARANTEED').").nullable().optional(),
25
- hours: zod.z.object({}).describe("Operating hours by day. Contains 'currently' (str) and 'week' (list of day dictionaries).").nullable().optional(),
25
+ hours: zod.z.record(zod.z.string(), zod.z.unknown()).describe("Operating hours by day. Contains 'currently' (str) and 'week' (list of day dictionaries).").nullable().optional(),
26
26
  phone: zod.z.string().describe("Business phone number.").nullable().optional(),
27
27
  title: zod.z.string().describe("Business name or title.").nullable().optional(),
28
28
  rating: zod.z.number().describe("Average rating of the business.").nullable().optional(),
@@ -32,20 +32,20 @@ const SerpapiSearchGoogleLocalServices_LocalAdSchema = zod.z.object({
32
32
  service_area: zod.z.string().describe("Geographic service area.").nullable().optional(),
33
33
  bookings_nearby: zod.z.number().int().describe("Number of nearby bookings.").nullable().optional(),
34
34
  years_in_business: zod.z.number().int().describe("Number of years in business.").nullable().optional()
35
- });
35
+ }).passthrough();
36
36
  const SerpapiSearchGoogleLocalServices_SearchMetadataSchema = zod.z.object({
37
37
  id: zod.z.string().describe("Search identifier.").nullable().optional(),
38
38
  status: zod.z.string().describe("Processing status (Processing, Success, or Error).").nullable().optional(),
39
39
  created_at: zod.z.string().describe("Timestamp of search creation.").nullable().optional(),
40
40
  json_endpoint: zod.z.string().describe("URL to JSON results.").nullable().optional(),
41
41
  total_time_taken: zod.z.number().describe("Execution duration in seconds.").nullable().optional()
42
- });
42
+ }).passthrough();
43
43
  const SerpapiSearchGoogleLocalServicesOutput = zod.z.object({
44
44
  error: zod.z.string().describe("Error message if the search failed.").nullable().optional(),
45
45
  local_ads: zod.z.array(SerpapiSearchGoogleLocalServices_LocalAdSchema).describe("List of local service providers found in the search. Each entry contains details like title, link, rating, reviews, phone, badge (e.g., 'GOOGLE GUARANTEED'), service area, years in business, and more.").nullable().optional(),
46
46
  search_metadata: SerpapiSearchGoogleLocalServices_SearchMetadataSchema.nullable().optional(),
47
- search_parameters: zod.z.object({}).describe("Parameters used for the search including engine, query, data_cid, and other request parameters.").nullable().optional()
48
- });
47
+ search_parameters: zod.z.record(zod.z.string(), zod.z.unknown()).describe("Parameters used for the search including engine, query, data_cid, and other request parameters.").nullable().optional()
48
+ }).passthrough();
49
49
  const serpapiSearchGoogleLocalServices = require_action.action("SERPAPI_SEARCH_GOOGLE_LOCAL_SERVICES", {
50
50
  slug: "serpapi-search-google-local-services",
51
51
  name: "Search Google Local Services",
@@ -1 +1 @@
1
- {"version":3,"file":"search-google-local-services.cjs","names":["z","action"],"sources":["../../src/actions/search-google-local-services.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SerpapiSearchGoogleLocalServicesInput = z.object({\n q: z.string().describe(\"Parameter defines the service you want to search for (e.g., 'electrician', 'plumber', 'hvac repair').\"),\n hl: z.string().describe(\"Parameter defines the language to use for the search. It's a two-letter language code (e.g., 'en' for English, 'es' for Spanish, 'fr' for French).\").optional(),\n bid: z.string().describe(\"Unique business identifier. Used together with cid and pid parameters to identify a specific business.\").optional(),\n cid: z.string().describe(\"Unique business place ID from API response. Used to get details for a specific business.\").optional(),\n pid: z.string().describe(\"Unique place identifier. Used together with cid and bid parameters to identify a specific business.\").optional(),\n async: z.boolean().describe(\"Parameter defines the way you want to submit your search to SerpApi. Set to true to submit the search asynchronously.\").optional(),\n output: z.string().describe(\"Parameter defines the final output format. Can be set to 'json' (default) to get structured JSON results, or 'html' to get raw HTML.\").optional(),\n data_cid: z.string().describe(\"Google customer identifier for location. This is a unique identifier that specifies the geographic area for the search.\"),\n job_type: z.string().describe(\"Parameter defines the service subcategory or specific job type within the main service category (e.g., 'restore_power' for electrician searches).\").optional(),\n no_cache: z.boolean().describe(\"Parameter will force SerpApi to fetch the Google Local Services results even if a cached version is already present. Set to true to get fresh results.\").optional(),\n zero_trace: z.boolean().describe(\"Enterprise only. Parameter enables ZeroTrace mode to skip storing search metadata. Set to true to enable.\").optional(),\n json_restrictor: z.string().describe(\"Parameter restricts the output fields to reduce response size. Specify field paths to include in the response.\").optional(),\n});\nconst SerpapiSearchGoogleLocalServices_LocalAdSchema = z.object({\n bid: z.string().describe(\"Business identifier.\").nullable().optional(),\n cid: z.string().describe(\"Business customer identifier.\").nullable().optional(),\n pid: z.string().describe(\"Place identifier.\").nullable().optional(),\n link: z.string().describe(\"Link to the business details.\").nullable().optional(),\n type: z.string().describe(\"Type of service provider.\").nullable().optional(),\n badge: z.string().describe(\"Badge status (e.g., 'GOOGLE GUARANTEED').\").nullable().optional(),\n hours: z.object({}).describe(\"Operating hours by day. Contains 'currently' (str) and 'week' (list of day dictionaries).\").nullable().optional(),\n phone: z.string().describe(\"Business phone number.\").nullable().optional(),\n title: z.string().describe(\"Business name or title.\").nullable().optional(),\n rating: z.number().describe(\"Average rating of the business.\").nullable().optional(),\n reviews: z.number().int().describe(\"Number of reviews.\").nullable().optional(),\n thumbnail: z.string().describe(\"Thumbnail image URL.\").nullable().optional(),\n serpapi_link: z.string().describe(\"Direct SerpAPI search URL.\").nullable().optional(),\n service_area: z.string().describe(\"Geographic service area.\").nullable().optional(),\n bookings_nearby: z.number().int().describe(\"Number of nearby bookings.\").nullable().optional(),\n years_in_business: z.number().int().describe(\"Number of years in business.\").nullable().optional(),\n});\nconst SerpapiSearchGoogleLocalServices_SearchMetadataSchema = z.object({\n id: z.string().describe(\"Search identifier.\").nullable().optional(),\n status: z.string().describe(\"Processing status (Processing, Success, or Error).\").nullable().optional(),\n created_at: z.string().describe(\"Timestamp of search creation.\").nullable().optional(),\n json_endpoint: z.string().describe(\"URL to JSON results.\").nullable().optional(),\n total_time_taken: z.number().describe(\"Execution duration in seconds.\").nullable().optional(),\n});\nexport const SerpapiSearchGoogleLocalServicesOutput = z.object({\n error: z.string().describe(\"Error message if the search failed.\").nullable().optional(),\n local_ads: z.array(SerpapiSearchGoogleLocalServices_LocalAdSchema).describe(\"List of local service providers found in the search. Each entry contains details like title, link, rating, reviews, phone, badge (e.g., 'GOOGLE GUARANTEED'), service area, years in business, and more.\").nullable().optional(),\n search_metadata: SerpapiSearchGoogleLocalServices_SearchMetadataSchema.nullable().optional(),\n search_parameters: z.object({}).describe(\"Parameters used for the search including engine, query, data_cid, and other request parameters.\").nullable().optional(),\n});\n\nexport const serpapiSearchGoogleLocalServices = action(\"SERPAPI_SEARCH_GOOGLE_LOCAL_SERVICES\", {\n slug: \"serpapi-search-google-local-services\",\n name: \"Search Google Local Services\",\n description: \"Search Google Local Services for service providers like electricians, plumbers, HVAC technicians, and more. Use when you need to find local service professionals with Google's guaranteed badge and verified business information.\",\n input: SerpapiSearchGoogleLocalServicesInput,\n output: SerpapiSearchGoogleLocalServicesOutput,\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"search-google-local-services.cjs","names":["z","action"],"sources":["../../src/actions/search-google-local-services.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SerpapiSearchGoogleLocalServicesInput = z.object({\n q: z.string().describe(\"Parameter defines the service you want to search for (e.g., 'electrician', 'plumber', 'hvac repair').\"),\n hl: z.string().describe(\"Parameter defines the language to use for the search. It's a two-letter language code (e.g., 'en' for English, 'es' for Spanish, 'fr' for French).\").optional(),\n bid: z.string().describe(\"Unique business identifier. Used together with cid and pid parameters to identify a specific business.\").optional(),\n cid: z.string().describe(\"Unique business place ID from API response. Used to get details for a specific business.\").optional(),\n pid: z.string().describe(\"Unique place identifier. Used together with cid and bid parameters to identify a specific business.\").optional(),\n async: z.boolean().describe(\"Parameter defines the way you want to submit your search to SerpApi. Set to true to submit the search asynchronously.\").optional(),\n output: z.string().describe(\"Parameter defines the final output format. Can be set to 'json' (default) to get structured JSON results, or 'html' to get raw HTML.\").optional(),\n data_cid: z.string().describe(\"Google customer identifier for location. This is a unique identifier that specifies the geographic area for the search.\"),\n job_type: z.string().describe(\"Parameter defines the service subcategory or specific job type within the main service category (e.g., 'restore_power' for electrician searches).\").optional(),\n no_cache: z.boolean().describe(\"Parameter will force SerpApi to fetch the Google Local Services results even if a cached version is already present. Set to true to get fresh results.\").optional(),\n zero_trace: z.boolean().describe(\"Enterprise only. Parameter enables ZeroTrace mode to skip storing search metadata. Set to true to enable.\").optional(),\n json_restrictor: z.string().describe(\"Parameter restricts the output fields to reduce response size. Specify field paths to include in the response.\").optional(),\n});\nconst SerpapiSearchGoogleLocalServices_LocalAdSchema = z.object({\n bid: z.string().describe(\"Business identifier.\").nullable().optional(),\n cid: z.string().describe(\"Business customer identifier.\").nullable().optional(),\n pid: z.string().describe(\"Place identifier.\").nullable().optional(),\n link: z.string().describe(\"Link to the business details.\").nullable().optional(),\n type: z.string().describe(\"Type of service provider.\").nullable().optional(),\n badge: z.string().describe(\"Badge status (e.g., 'GOOGLE GUARANTEED').\").nullable().optional(),\n hours: z.record(z.string(), z.unknown()).describe(\"Operating hours by day. Contains 'currently' (str) and 'week' (list of day dictionaries).\").nullable().optional(),\n phone: z.string().describe(\"Business phone number.\").nullable().optional(),\n title: z.string().describe(\"Business name or title.\").nullable().optional(),\n rating: z.number().describe(\"Average rating of the business.\").nullable().optional(),\n reviews: z.number().int().describe(\"Number of reviews.\").nullable().optional(),\n thumbnail: z.string().describe(\"Thumbnail image URL.\").nullable().optional(),\n serpapi_link: z.string().describe(\"Direct SerpAPI search URL.\").nullable().optional(),\n service_area: z.string().describe(\"Geographic service area.\").nullable().optional(),\n bookings_nearby: z.number().int().describe(\"Number of nearby bookings.\").nullable().optional(),\n years_in_business: z.number().int().describe(\"Number of years in business.\").nullable().optional(),\n}).passthrough();\nconst SerpapiSearchGoogleLocalServices_SearchMetadataSchema = z.object({\n id: z.string().describe(\"Search identifier.\").nullable().optional(),\n status: z.string().describe(\"Processing status (Processing, Success, or Error).\").nullable().optional(),\n created_at: z.string().describe(\"Timestamp of search creation.\").nullable().optional(),\n json_endpoint: z.string().describe(\"URL to JSON results.\").nullable().optional(),\n total_time_taken: z.number().describe(\"Execution duration in seconds.\").nullable().optional(),\n}).passthrough();\nexport const SerpapiSearchGoogleLocalServicesOutput = z.object({\n error: z.string().describe(\"Error message if the search failed.\").nullable().optional(),\n local_ads: z.array(SerpapiSearchGoogleLocalServices_LocalAdSchema).describe(\"List of local service providers found in the search. Each entry contains details like title, link, rating, reviews, phone, badge (e.g., 'GOOGLE GUARANTEED'), service area, years in business, and more.\").nullable().optional(),\n search_metadata: SerpapiSearchGoogleLocalServices_SearchMetadataSchema.nullable().optional(),\n search_parameters: z.record(z.string(), z.unknown()).describe(\"Parameters used for the search including engine, query, data_cid, and other request parameters.\").nullable().optional(),\n}).passthrough();\n\nexport const serpapiSearchGoogleLocalServices = action(\"SERPAPI_SEARCH_GOOGLE_LOCAL_SERVICES\", {\n slug: \"serpapi-search-google-local-services\",\n name: \"Search Google Local Services\",\n description: \"Search Google Local Services for service providers like electricians, plumbers, HVAC technicians, and more. Use when you need to find local service professionals with Google's guaranteed badge and verified business information.\",\n input: SerpapiSearchGoogleLocalServicesInput,\n output: SerpapiSearchGoogleLocalServicesOutput,\n});\n"],"mappings":";;;AAIA,MAAa,wCAAwCA,IAAAA,EAAE,OAAO;CAC5D,GAAGA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uGAAuG;CAC9H,IAAIA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oJAAoJ,CAAC,CAAC,SAAS;CACvL,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wGAAwG,CAAC,CAAC,SAAS;CAC5I,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,0FAA0F,CAAC,CAAC,SAAS;CAC9H,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,qGAAqG,CAAC,CAAC,SAAS;CACzI,OAAOA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,uHAAuH,CAAC,CAAC,SAAS;CAC9J,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,sIAAsI,CAAC,CAAC,SAAS;CAC7K,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yHAAyH;CACvJ,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,mJAAmJ,CAAC,CAAC,SAAS;CAC5L,UAAUA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,wJAAwJ,CAAC,CAAC,SAAS;CAClM,YAAYA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,2GAA2G,CAAC,CAAC,SAAS;CACvJ,iBAAiBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,gHAAgH,CAAC,CAAC,SAAS;AAClK,CAAC;AACD,MAAM,iDAAiDA,IAAAA,EAAE,OAAO;CAC9D,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACrE,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,+BAA+B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC9E,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAClE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,+BAA+B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC/E,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,2BAA2B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC3E,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,2CAA2C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC5F,OAAOA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,2FAA2F,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACnK,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wBAAwB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACzE,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yBAAyB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC1E,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,iCAAiC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACnF,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC7E,WAAWA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC3E,cAAcA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACpF,cAAcA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAClF,iBAAiBA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,4BAA4B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC7F,mBAAmBA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,8BAA8B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AACnG,CAAC,CAAC,CAAC,YAAY;AACf,MAAM,wDAAwDA,IAAAA,EAAE,OAAO;CACrE,IAAIA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAClE,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oDAAoD,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACtG,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,+BAA+B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACrF,eAAeA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC/E,kBAAkBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,gCAAgC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AAC9F,CAAC,CAAC,CAAC,YAAY;AACf,MAAa,yCAAyCA,IAAAA,EAAE,OAAO;CAC7D,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,qCAAqC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACtF,WAAWA,IAAAA,EAAE,MAAM,8CAA8C,CAAC,CAAC,SAAS,0MAA0M,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC5S,iBAAiB,sDAAsD,SAAS,CAAC,CAAC,SAAS;CAC3F,mBAAmBA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,iGAAiG,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AACvL,CAAC,CAAC,CAAC,YAAY;AAEf,MAAa,mCAAmCC,eAAAA,OAAO,wCAAwC;CAC7F,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
@@ -24,7 +24,7 @@ declare const SerpapiSearchGoogleLocalServicesOutput: z.ZodObject<{
24
24
  link: z.ZodOptional<z.ZodNullable<z.ZodString>>;
25
25
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26
26
  badge: z.ZodOptional<z.ZodNullable<z.ZodString>>;
27
- hours: z.ZodOptional<z.ZodNullable<z.ZodObject<{}, z.core.$strip>>>;
27
+ hours: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
28
28
  phone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
29
29
  title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
30
30
  rating: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -34,16 +34,16 @@ declare const SerpapiSearchGoogleLocalServicesOutput: z.ZodObject<{
34
34
  service_area: z.ZodOptional<z.ZodNullable<z.ZodString>>;
35
35
  bookings_nearby: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
36
36
  years_in_business: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
37
- }, z.core.$strip>>>>;
37
+ }, z.core.$loose>>>>;
38
38
  search_metadata: z.ZodOptional<z.ZodNullable<z.ZodObject<{
39
39
  id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
40
40
  status: z.ZodOptional<z.ZodNullable<z.ZodString>>;
41
41
  created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
42
42
  json_endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
43
43
  total_time_taken: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
44
- }, z.core.$strip>>>;
45
- search_parameters: z.ZodOptional<z.ZodNullable<z.ZodObject<{}, z.core.$strip>>>;
46
- }, z.core.$strip>;
44
+ }, z.core.$loose>>>;
45
+ search_parameters: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
46
+ }, z.core.$loose>;
47
47
  declare const serpapiSearchGoogleLocalServices: import("@keystrokehq/action").WorkflowActionDefinition<{
48
48
  q: string;
49
49
  data_cid: string;
@@ -24,7 +24,7 @@ declare const SerpapiSearchGoogleLocalServicesOutput: z.ZodObject<{
24
24
  link: z.ZodOptional<z.ZodNullable<z.ZodString>>;
25
25
  type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26
26
  badge: z.ZodOptional<z.ZodNullable<z.ZodString>>;
27
- hours: z.ZodOptional<z.ZodNullable<z.ZodObject<{}, z.core.$strip>>>;
27
+ hours: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
28
28
  phone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
29
29
  title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
30
30
  rating: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -34,16 +34,16 @@ declare const SerpapiSearchGoogleLocalServicesOutput: z.ZodObject<{
34
34
  service_area: z.ZodOptional<z.ZodNullable<z.ZodString>>;
35
35
  bookings_nearby: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
36
36
  years_in_business: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
37
- }, z.core.$strip>>>>;
37
+ }, z.core.$loose>>>>;
38
38
  search_metadata: z.ZodOptional<z.ZodNullable<z.ZodObject<{
39
39
  id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
40
40
  status: z.ZodOptional<z.ZodNullable<z.ZodString>>;
41
41
  created_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
42
42
  json_endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
43
43
  total_time_taken: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
44
- }, z.core.$strip>>>;
45
- search_parameters: z.ZodOptional<z.ZodNullable<z.ZodObject<{}, z.core.$strip>>>;
46
- }, z.core.$strip>;
44
+ }, z.core.$loose>>>;
45
+ search_parameters: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
46
+ }, z.core.$loose>;
47
47
  declare const serpapiSearchGoogleLocalServices: import("@keystrokehq/action").WorkflowActionDefinition<{
48
48
  q: string;
49
49
  data_cid: string;
@@ -22,7 +22,7 @@ const SerpapiSearchGoogleLocalServices_LocalAdSchema = z.object({
22
22
  link: z.string().describe("Link to the business details.").nullable().optional(),
23
23
  type: z.string().describe("Type of service provider.").nullable().optional(),
24
24
  badge: z.string().describe("Badge status (e.g., 'GOOGLE GUARANTEED').").nullable().optional(),
25
- hours: z.object({}).describe("Operating hours by day. Contains 'currently' (str) and 'week' (list of day dictionaries).").nullable().optional(),
25
+ hours: z.record(z.string(), z.unknown()).describe("Operating hours by day. Contains 'currently' (str) and 'week' (list of day dictionaries).").nullable().optional(),
26
26
  phone: z.string().describe("Business phone number.").nullable().optional(),
27
27
  title: z.string().describe("Business name or title.").nullable().optional(),
28
28
  rating: z.number().describe("Average rating of the business.").nullable().optional(),
@@ -32,14 +32,14 @@ const SerpapiSearchGoogleLocalServices_LocalAdSchema = z.object({
32
32
  service_area: z.string().describe("Geographic service area.").nullable().optional(),
33
33
  bookings_nearby: z.number().int().describe("Number of nearby bookings.").nullable().optional(),
34
34
  years_in_business: z.number().int().describe("Number of years in business.").nullable().optional()
35
- });
35
+ }).passthrough();
36
36
  const SerpapiSearchGoogleLocalServices_SearchMetadataSchema = z.object({
37
37
  id: z.string().describe("Search identifier.").nullable().optional(),
38
38
  status: z.string().describe("Processing status (Processing, Success, or Error).").nullable().optional(),
39
39
  created_at: z.string().describe("Timestamp of search creation.").nullable().optional(),
40
40
  json_endpoint: z.string().describe("URL to JSON results.").nullable().optional(),
41
41
  total_time_taken: z.number().describe("Execution duration in seconds.").nullable().optional()
42
- });
42
+ }).passthrough();
43
43
  const serpapiSearchGoogleLocalServices = action("SERPAPI_SEARCH_GOOGLE_LOCAL_SERVICES", {
44
44
  slug: "serpapi-search-google-local-services",
45
45
  name: "Search Google Local Services",
@@ -49,8 +49,8 @@ const serpapiSearchGoogleLocalServices = action("SERPAPI_SEARCH_GOOGLE_LOCAL_SER
49
49
  error: z.string().describe("Error message if the search failed.").nullable().optional(),
50
50
  local_ads: z.array(SerpapiSearchGoogleLocalServices_LocalAdSchema).describe("List of local service providers found in the search. Each entry contains details like title, link, rating, reviews, phone, badge (e.g., 'GOOGLE GUARANTEED'), service area, years in business, and more.").nullable().optional(),
51
51
  search_metadata: SerpapiSearchGoogleLocalServices_SearchMetadataSchema.nullable().optional(),
52
- search_parameters: z.object({}).describe("Parameters used for the search including engine, query, data_cid, and other request parameters.").nullable().optional()
53
- })
52
+ search_parameters: z.record(z.string(), z.unknown()).describe("Parameters used for the search including engine, query, data_cid, and other request parameters.").nullable().optional()
53
+ }).passthrough()
54
54
  });
55
55
  //#endregion
56
56
  export { serpapiSearchGoogleLocalServices };
@@ -1 +1 @@
1
- {"version":3,"file":"search-google-local-services.mjs","names":[],"sources":["../../src/actions/search-google-local-services.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SerpapiSearchGoogleLocalServicesInput = z.object({\n q: z.string().describe(\"Parameter defines the service you want to search for (e.g., 'electrician', 'plumber', 'hvac repair').\"),\n hl: z.string().describe(\"Parameter defines the language to use for the search. It's a two-letter language code (e.g., 'en' for English, 'es' for Spanish, 'fr' for French).\").optional(),\n bid: z.string().describe(\"Unique business identifier. Used together with cid and pid parameters to identify a specific business.\").optional(),\n cid: z.string().describe(\"Unique business place ID from API response. Used to get details for a specific business.\").optional(),\n pid: z.string().describe(\"Unique place identifier. Used together with cid and bid parameters to identify a specific business.\").optional(),\n async: z.boolean().describe(\"Parameter defines the way you want to submit your search to SerpApi. Set to true to submit the search asynchronously.\").optional(),\n output: z.string().describe(\"Parameter defines the final output format. Can be set to 'json' (default) to get structured JSON results, or 'html' to get raw HTML.\").optional(),\n data_cid: z.string().describe(\"Google customer identifier for location. This is a unique identifier that specifies the geographic area for the search.\"),\n job_type: z.string().describe(\"Parameter defines the service subcategory or specific job type within the main service category (e.g., 'restore_power' for electrician searches).\").optional(),\n no_cache: z.boolean().describe(\"Parameter will force SerpApi to fetch the Google Local Services results even if a cached version is already present. Set to true to get fresh results.\").optional(),\n zero_trace: z.boolean().describe(\"Enterprise only. Parameter enables ZeroTrace mode to skip storing search metadata. Set to true to enable.\").optional(),\n json_restrictor: z.string().describe(\"Parameter restricts the output fields to reduce response size. Specify field paths to include in the response.\").optional(),\n});\nconst SerpapiSearchGoogleLocalServices_LocalAdSchema = z.object({\n bid: z.string().describe(\"Business identifier.\").nullable().optional(),\n cid: z.string().describe(\"Business customer identifier.\").nullable().optional(),\n pid: z.string().describe(\"Place identifier.\").nullable().optional(),\n link: z.string().describe(\"Link to the business details.\").nullable().optional(),\n type: z.string().describe(\"Type of service provider.\").nullable().optional(),\n badge: z.string().describe(\"Badge status (e.g., 'GOOGLE GUARANTEED').\").nullable().optional(),\n hours: z.object({}).describe(\"Operating hours by day. Contains 'currently' (str) and 'week' (list of day dictionaries).\").nullable().optional(),\n phone: z.string().describe(\"Business phone number.\").nullable().optional(),\n title: z.string().describe(\"Business name or title.\").nullable().optional(),\n rating: z.number().describe(\"Average rating of the business.\").nullable().optional(),\n reviews: z.number().int().describe(\"Number of reviews.\").nullable().optional(),\n thumbnail: z.string().describe(\"Thumbnail image URL.\").nullable().optional(),\n serpapi_link: z.string().describe(\"Direct SerpAPI search URL.\").nullable().optional(),\n service_area: z.string().describe(\"Geographic service area.\").nullable().optional(),\n bookings_nearby: z.number().int().describe(\"Number of nearby bookings.\").nullable().optional(),\n years_in_business: z.number().int().describe(\"Number of years in business.\").nullable().optional(),\n});\nconst SerpapiSearchGoogleLocalServices_SearchMetadataSchema = z.object({\n id: z.string().describe(\"Search identifier.\").nullable().optional(),\n status: z.string().describe(\"Processing status (Processing, Success, or Error).\").nullable().optional(),\n created_at: z.string().describe(\"Timestamp of search creation.\").nullable().optional(),\n json_endpoint: z.string().describe(\"URL to JSON results.\").nullable().optional(),\n total_time_taken: z.number().describe(\"Execution duration in seconds.\").nullable().optional(),\n});\nexport const SerpapiSearchGoogleLocalServicesOutput = z.object({\n error: z.string().describe(\"Error message if the search failed.\").nullable().optional(),\n local_ads: z.array(SerpapiSearchGoogleLocalServices_LocalAdSchema).describe(\"List of local service providers found in the search. Each entry contains details like title, link, rating, reviews, phone, badge (e.g., 'GOOGLE GUARANTEED'), service area, years in business, and more.\").nullable().optional(),\n search_metadata: SerpapiSearchGoogleLocalServices_SearchMetadataSchema.nullable().optional(),\n search_parameters: z.object({}).describe(\"Parameters used for the search including engine, query, data_cid, and other request parameters.\").nullable().optional(),\n});\n\nexport const serpapiSearchGoogleLocalServices = action(\"SERPAPI_SEARCH_GOOGLE_LOCAL_SERVICES\", {\n slug: \"serpapi-search-google-local-services\",\n name: \"Search Google Local Services\",\n description: \"Search Google Local Services for service providers like electricians, plumbers, HVAC technicians, and more. Use when you need to find local service professionals with Google's guaranteed badge and verified business information.\",\n input: SerpapiSearchGoogleLocalServicesInput,\n output: SerpapiSearchGoogleLocalServicesOutput,\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"search-google-local-services.mjs","names":[],"sources":["../../src/actions/search-google-local-services.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SerpapiSearchGoogleLocalServicesInput = z.object({\n q: z.string().describe(\"Parameter defines the service you want to search for (e.g., 'electrician', 'plumber', 'hvac repair').\"),\n hl: z.string().describe(\"Parameter defines the language to use for the search. It's a two-letter language code (e.g., 'en' for English, 'es' for Spanish, 'fr' for French).\").optional(),\n bid: z.string().describe(\"Unique business identifier. Used together with cid and pid parameters to identify a specific business.\").optional(),\n cid: z.string().describe(\"Unique business place ID from API response. Used to get details for a specific business.\").optional(),\n pid: z.string().describe(\"Unique place identifier. Used together with cid and bid parameters to identify a specific business.\").optional(),\n async: z.boolean().describe(\"Parameter defines the way you want to submit your search to SerpApi. Set to true to submit the search asynchronously.\").optional(),\n output: z.string().describe(\"Parameter defines the final output format. Can be set to 'json' (default) to get structured JSON results, or 'html' to get raw HTML.\").optional(),\n data_cid: z.string().describe(\"Google customer identifier for location. This is a unique identifier that specifies the geographic area for the search.\"),\n job_type: z.string().describe(\"Parameter defines the service subcategory or specific job type within the main service category (e.g., 'restore_power' for electrician searches).\").optional(),\n no_cache: z.boolean().describe(\"Parameter will force SerpApi to fetch the Google Local Services results even if a cached version is already present. Set to true to get fresh results.\").optional(),\n zero_trace: z.boolean().describe(\"Enterprise only. Parameter enables ZeroTrace mode to skip storing search metadata. Set to true to enable.\").optional(),\n json_restrictor: z.string().describe(\"Parameter restricts the output fields to reduce response size. Specify field paths to include in the response.\").optional(),\n});\nconst SerpapiSearchGoogleLocalServices_LocalAdSchema = z.object({\n bid: z.string().describe(\"Business identifier.\").nullable().optional(),\n cid: z.string().describe(\"Business customer identifier.\").nullable().optional(),\n pid: z.string().describe(\"Place identifier.\").nullable().optional(),\n link: z.string().describe(\"Link to the business details.\").nullable().optional(),\n type: z.string().describe(\"Type of service provider.\").nullable().optional(),\n badge: z.string().describe(\"Badge status (e.g., 'GOOGLE GUARANTEED').\").nullable().optional(),\n hours: z.record(z.string(), z.unknown()).describe(\"Operating hours by day. Contains 'currently' (str) and 'week' (list of day dictionaries).\").nullable().optional(),\n phone: z.string().describe(\"Business phone number.\").nullable().optional(),\n title: z.string().describe(\"Business name or title.\").nullable().optional(),\n rating: z.number().describe(\"Average rating of the business.\").nullable().optional(),\n reviews: z.number().int().describe(\"Number of reviews.\").nullable().optional(),\n thumbnail: z.string().describe(\"Thumbnail image URL.\").nullable().optional(),\n serpapi_link: z.string().describe(\"Direct SerpAPI search URL.\").nullable().optional(),\n service_area: z.string().describe(\"Geographic service area.\").nullable().optional(),\n bookings_nearby: z.number().int().describe(\"Number of nearby bookings.\").nullable().optional(),\n years_in_business: z.number().int().describe(\"Number of years in business.\").nullable().optional(),\n}).passthrough();\nconst SerpapiSearchGoogleLocalServices_SearchMetadataSchema = z.object({\n id: z.string().describe(\"Search identifier.\").nullable().optional(),\n status: z.string().describe(\"Processing status (Processing, Success, or Error).\").nullable().optional(),\n created_at: z.string().describe(\"Timestamp of search creation.\").nullable().optional(),\n json_endpoint: z.string().describe(\"URL to JSON results.\").nullable().optional(),\n total_time_taken: z.number().describe(\"Execution duration in seconds.\").nullable().optional(),\n}).passthrough();\nexport const SerpapiSearchGoogleLocalServicesOutput = z.object({\n error: z.string().describe(\"Error message if the search failed.\").nullable().optional(),\n local_ads: z.array(SerpapiSearchGoogleLocalServices_LocalAdSchema).describe(\"List of local service providers found in the search. Each entry contains details like title, link, rating, reviews, phone, badge (e.g., 'GOOGLE GUARANTEED'), service area, years in business, and more.\").nullable().optional(),\n search_metadata: SerpapiSearchGoogleLocalServices_SearchMetadataSchema.nullable().optional(),\n search_parameters: z.record(z.string(), z.unknown()).describe(\"Parameters used for the search including engine, query, data_cid, and other request parameters.\").nullable().optional(),\n}).passthrough();\n\nexport const serpapiSearchGoogleLocalServices = action(\"SERPAPI_SEARCH_GOOGLE_LOCAL_SERVICES\", {\n slug: \"serpapi-search-google-local-services\",\n name: \"Search Google Local Services\",\n description: \"Search Google Local Services for service providers like electricians, plumbers, HVAC technicians, and more. Use when you need to find local service professionals with Google's guaranteed badge and verified business information.\",\n input: SerpapiSearchGoogleLocalServicesInput,\n output: SerpapiSearchGoogleLocalServicesOutput,\n});\n"],"mappings":"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"}
@@ -28,12 +28,12 @@ const SerpapiSearchYelp_YelpBusinessSchema = zod.z.object({
28
28
  thumbnail: zod.z.string().describe("URL to the business thumbnail image.").nullable().optional(),
29
29
  categories: zod.z.union([zod.z.array(zod.z.string()), zod.z.array(zod.z.record(zod.z.string(), zod.z.unknown()))]).nullable().optional(),
30
30
  neighborhoods: zod.z.union([zod.z.string(), zod.z.array(zod.z.string())]).nullable().optional()
31
- });
31
+ }).passthrough();
32
32
  const SerpapiSearchYelpOutput = zod.z.object({
33
33
  organic_results: zod.z.array(SerpapiSearchYelp_YelpBusinessSchema).describe("List of businesses matching the search criteria, with ratings, reviews, contact info, and other details.").nullable().optional(),
34
34
  search_metadata: zod.z.record(zod.z.string(), zod.z.unknown()).describe("Metadata about the search request, including request ID, status, and processing time.").nullable().optional(),
35
35
  search_parameters: zod.z.record(zod.z.string(), zod.z.unknown()).describe("Echo of the search parameters used in this request.").nullable().optional()
36
- });
36
+ }).passthrough();
37
37
  const serpapiSearchYelp = require_action.action("SERPAPI_SEARCH_YELP", {
38
38
  slug: "serpapi-search-yelp",
39
39
  name: "Search Yelp businesses",
@@ -1 +1 @@
1
- {"version":3,"file":"search-yelp.cjs","names":["z","action"],"sources":["../../src/actions/search-yelp.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SerpapiSearchYelpInput = z.object({\n attrs: z.string().describe(\"Attribute filters to refine search (e.g., 'HotAndNew' for new businesses, 'Deals' for businesses with offers). Can be comma-separated for multiple filters.\").optional(),\n start: z.number().int().describe(\"Result offset for pagination. Use to fetch additional results beyond the first page. Each page typically contains 10 results.\").optional(),\n sortby: z.enum([\"recommended\", \"rating\", \"review_count\"]).describe(\"Sort order for results. 'recommended' shows Yelp's recommended matches, 'rating' shows highest-rated first, 'review_count' shows most-reviewed first.\").optional(),\n find_loc: z.string().describe(\"Location to search in (e.g., 'San Francisco, CA', 'New York, NY', '10001'). Can be a city, state, address, or ZIP code.\"),\n no_cache: z.boolean().describe(\"Set to true to force fresh results from Yelp, bypassing SerpApi's cache. Useful when you need real-time data.\").optional(),\n find_desc: z.string().describe(\"Search query describing what to find (e.g., 'pizza', 'coffee shop', 'italian restaurant'). This is the business type or service you're looking for.\"),\n yelp_domain: z.string().describe(\"Yelp domain to search on (e.g., 'yelp.com' for US, 'yelp.ca' for Canada, 'yelp.co.uk' for UK). Defaults to yelp.com if not specified.\").optional(),\n});\nconst SerpapiSearchYelp_YelpBusinessSchema = z.object({\n link: z.string().describe(\"URL to the Yelp page for this business.\").nullable().optional(),\n phone: z.string().describe(\"Phone number of the business.\").nullable().optional(),\n price: z.string().describe(\"Price range indicator (e.g., '$', '$$', '$$$', '$$$$').\").nullable().optional(),\n title: z.string().describe(\"Name of the business.\").nullable().optional(),\n rating: z.number().describe(\"Average rating (typically 1.0 to 5.0).\").nullable().optional(),\n address: z.string().describe(\"Full street address of the business.\").nullable().optional(),\n reviews: z.number().int().describe(\"Total number of reviews.\").nullable().optional(),\n snippet: z.string().describe(\"Brief description or highlight from reviews.\").nullable().optional(),\n position: z.number().int().describe(\"Position of this result in the search results (1-indexed).\").nullable().optional(),\n place_ids: z.array(z.string()).describe(\"Yelp place IDs associated with this business.\").nullable().optional(),\n thumbnail: z.string().describe(\"URL to the business thumbnail image.\").nullable().optional(),\n categories: z.union([z.array(z.string()), z.array(z.record(z.string(), z.unknown()))]).nullable().optional(),\n neighborhoods: z.union([z.string(), z.array(z.string())]).nullable().optional(),\n});\nexport const SerpapiSearchYelpOutput = z.object({\n organic_results: z.array(SerpapiSearchYelp_YelpBusinessSchema).describe(\"List of businesses matching the search criteria, with ratings, reviews, contact info, and other details.\").nullable().optional(),\n search_metadata: z.record(z.string(), z.unknown()).describe(\"Metadata about the search request, including request ID, status, and processing time.\").nullable().optional(),\n search_parameters: z.record(z.string(), z.unknown()).describe(\"Echo of the search parameters used in this request.\").nullable().optional(),\n});\n\nexport const serpapiSearchYelp = action(\"SERPAPI_SEARCH_YELP\", {\n slug: \"serpapi-search-yelp\",\n name: \"Search Yelp businesses\",\n description: \"Tool to search Yelp for businesses and places using SerpApi. Returns business listings with ratings, reviews, hours, contact information, and location details. Use when you need to find local businesses, restaurants, services, or read customer reviews.\",\n input: SerpapiSearchYelpInput,\n output: SerpapiSearchYelpOutput,\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"search-yelp.cjs","names":["z","action"],"sources":["../../src/actions/search-yelp.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SerpapiSearchYelpInput = z.object({\n attrs: z.string().describe(\"Attribute filters to refine search (e.g., 'HotAndNew' for new businesses, 'Deals' for businesses with offers). Can be comma-separated for multiple filters.\").optional(),\n start: z.number().int().describe(\"Result offset for pagination. Use to fetch additional results beyond the first page. Each page typically contains 10 results.\").optional(),\n sortby: z.enum([\"recommended\", \"rating\", \"review_count\"]).describe(\"Sort order for results. 'recommended' shows Yelp's recommended matches, 'rating' shows highest-rated first, 'review_count' shows most-reviewed first.\").optional(),\n find_loc: z.string().describe(\"Location to search in (e.g., 'San Francisco, CA', 'New York, NY', '10001'). Can be a city, state, address, or ZIP code.\"),\n no_cache: z.boolean().describe(\"Set to true to force fresh results from Yelp, bypassing SerpApi's cache. Useful when you need real-time data.\").optional(),\n find_desc: z.string().describe(\"Search query describing what to find (e.g., 'pizza', 'coffee shop', 'italian restaurant'). This is the business type or service you're looking for.\"),\n yelp_domain: z.string().describe(\"Yelp domain to search on (e.g., 'yelp.com' for US, 'yelp.ca' for Canada, 'yelp.co.uk' for UK). Defaults to yelp.com if not specified.\").optional(),\n});\nconst SerpapiSearchYelp_YelpBusinessSchema = z.object({\n link: z.string().describe(\"URL to the Yelp page for this business.\").nullable().optional(),\n phone: z.string().describe(\"Phone number of the business.\").nullable().optional(),\n price: z.string().describe(\"Price range indicator (e.g., '$', '$$', '$$$', '$$$$').\").nullable().optional(),\n title: z.string().describe(\"Name of the business.\").nullable().optional(),\n rating: z.number().describe(\"Average rating (typically 1.0 to 5.0).\").nullable().optional(),\n address: z.string().describe(\"Full street address of the business.\").nullable().optional(),\n reviews: z.number().int().describe(\"Total number of reviews.\").nullable().optional(),\n snippet: z.string().describe(\"Brief description or highlight from reviews.\").nullable().optional(),\n position: z.number().int().describe(\"Position of this result in the search results (1-indexed).\").nullable().optional(),\n place_ids: z.array(z.string()).describe(\"Yelp place IDs associated with this business.\").nullable().optional(),\n thumbnail: z.string().describe(\"URL to the business thumbnail image.\").nullable().optional(),\n categories: z.union([z.array(z.string()), z.array(z.record(z.string(), z.unknown()))]).nullable().optional(),\n neighborhoods: z.union([z.string(), z.array(z.string())]).nullable().optional(),\n}).passthrough();\nexport const SerpapiSearchYelpOutput = z.object({\n organic_results: z.array(SerpapiSearchYelp_YelpBusinessSchema).describe(\"List of businesses matching the search criteria, with ratings, reviews, contact info, and other details.\").nullable().optional(),\n search_metadata: z.record(z.string(), z.unknown()).describe(\"Metadata about the search request, including request ID, status, and processing time.\").nullable().optional(),\n search_parameters: z.record(z.string(), z.unknown()).describe(\"Echo of the search parameters used in this request.\").nullable().optional(),\n}).passthrough();\n\nexport const serpapiSearchYelp = action(\"SERPAPI_SEARCH_YELP\", {\n slug: \"serpapi-search-yelp\",\n name: \"Search Yelp businesses\",\n description: \"Tool to search Yelp for businesses and places using SerpApi. Returns business listings with ratings, reviews, hours, contact information, and location details. Use when you need to find local businesses, restaurants, services, or read customer reviews.\",\n input: SerpapiSearchYelpInput,\n output: SerpapiSearchYelpOutput,\n});\n"],"mappings":"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"}
@@ -29,10 +29,10 @@ declare const SerpapiSearchYelpOutput: z.ZodObject<{
29
29
  thumbnail: z.ZodOptional<z.ZodNullable<z.ZodString>>;
30
30
  categories: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>]>>>;
31
31
  neighborhoods: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
32
- }, z.core.$strip>>>>;
32
+ }, z.core.$loose>>>>;
33
33
  search_metadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
34
34
  search_parameters: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
35
- }, z.core.$strip>;
35
+ }, z.core.$loose>;
36
36
  declare const serpapiSearchYelp: import("@keystrokehq/action").WorkflowActionDefinition<{
37
37
  find_loc: string;
38
38
  find_desc: string;
@@ -29,10 +29,10 @@ declare const SerpapiSearchYelpOutput: z.ZodObject<{
29
29
  thumbnail: z.ZodOptional<z.ZodNullable<z.ZodString>>;
30
30
  categories: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>]>>>;
31
31
  neighborhoods: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
32
- }, z.core.$strip>>>>;
32
+ }, z.core.$loose>>>>;
33
33
  search_metadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
34
34
  search_parameters: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
35
- }, z.core.$strip>;
35
+ }, z.core.$loose>;
36
36
  declare const serpapiSearchYelp: import("@keystrokehq/action").WorkflowActionDefinition<{
37
37
  find_loc: string;
38
38
  find_desc: string;
@@ -28,7 +28,7 @@ const SerpapiSearchYelp_YelpBusinessSchema = z.object({
28
28
  thumbnail: z.string().describe("URL to the business thumbnail image.").nullable().optional(),
29
29
  categories: z.union([z.array(z.string()), z.array(z.record(z.string(), z.unknown()))]).nullable().optional(),
30
30
  neighborhoods: z.union([z.string(), z.array(z.string())]).nullable().optional()
31
- });
31
+ }).passthrough();
32
32
  const serpapiSearchYelp = action("SERPAPI_SEARCH_YELP", {
33
33
  slug: "serpapi-search-yelp",
34
34
  name: "Search Yelp businesses",
@@ -38,7 +38,7 @@ const serpapiSearchYelp = action("SERPAPI_SEARCH_YELP", {
38
38
  organic_results: z.array(SerpapiSearchYelp_YelpBusinessSchema).describe("List of businesses matching the search criteria, with ratings, reviews, contact info, and other details.").nullable().optional(),
39
39
  search_metadata: z.record(z.string(), z.unknown()).describe("Metadata about the search request, including request ID, status, and processing time.").nullable().optional(),
40
40
  search_parameters: z.record(z.string(), z.unknown()).describe("Echo of the search parameters used in this request.").nullable().optional()
41
- })
41
+ }).passthrough()
42
42
  });
43
43
  //#endregion
44
44
  export { serpapiSearchYelp };
@@ -1 +1 @@
1
- {"version":3,"file":"search-yelp.mjs","names":[],"sources":["../../src/actions/search-yelp.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SerpapiSearchYelpInput = z.object({\n attrs: z.string().describe(\"Attribute filters to refine search (e.g., 'HotAndNew' for new businesses, 'Deals' for businesses with offers). Can be comma-separated for multiple filters.\").optional(),\n start: z.number().int().describe(\"Result offset for pagination. Use to fetch additional results beyond the first page. Each page typically contains 10 results.\").optional(),\n sortby: z.enum([\"recommended\", \"rating\", \"review_count\"]).describe(\"Sort order for results. 'recommended' shows Yelp's recommended matches, 'rating' shows highest-rated first, 'review_count' shows most-reviewed first.\").optional(),\n find_loc: z.string().describe(\"Location to search in (e.g., 'San Francisco, CA', 'New York, NY', '10001'). Can be a city, state, address, or ZIP code.\"),\n no_cache: z.boolean().describe(\"Set to true to force fresh results from Yelp, bypassing SerpApi's cache. Useful when you need real-time data.\").optional(),\n find_desc: z.string().describe(\"Search query describing what to find (e.g., 'pizza', 'coffee shop', 'italian restaurant'). This is the business type or service you're looking for.\"),\n yelp_domain: z.string().describe(\"Yelp domain to search on (e.g., 'yelp.com' for US, 'yelp.ca' for Canada, 'yelp.co.uk' for UK). Defaults to yelp.com if not specified.\").optional(),\n});\nconst SerpapiSearchYelp_YelpBusinessSchema = z.object({\n link: z.string().describe(\"URL to the Yelp page for this business.\").nullable().optional(),\n phone: z.string().describe(\"Phone number of the business.\").nullable().optional(),\n price: z.string().describe(\"Price range indicator (e.g., '$', '$$', '$$$', '$$$$').\").nullable().optional(),\n title: z.string().describe(\"Name of the business.\").nullable().optional(),\n rating: z.number().describe(\"Average rating (typically 1.0 to 5.0).\").nullable().optional(),\n address: z.string().describe(\"Full street address of the business.\").nullable().optional(),\n reviews: z.number().int().describe(\"Total number of reviews.\").nullable().optional(),\n snippet: z.string().describe(\"Brief description or highlight from reviews.\").nullable().optional(),\n position: z.number().int().describe(\"Position of this result in the search results (1-indexed).\").nullable().optional(),\n place_ids: z.array(z.string()).describe(\"Yelp place IDs associated with this business.\").nullable().optional(),\n thumbnail: z.string().describe(\"URL to the business thumbnail image.\").nullable().optional(),\n categories: z.union([z.array(z.string()), z.array(z.record(z.string(), z.unknown()))]).nullable().optional(),\n neighborhoods: z.union([z.string(), z.array(z.string())]).nullable().optional(),\n});\nexport const SerpapiSearchYelpOutput = z.object({\n organic_results: z.array(SerpapiSearchYelp_YelpBusinessSchema).describe(\"List of businesses matching the search criteria, with ratings, reviews, contact info, and other details.\").nullable().optional(),\n search_metadata: z.record(z.string(), z.unknown()).describe(\"Metadata about the search request, including request ID, status, and processing time.\").nullable().optional(),\n search_parameters: z.record(z.string(), z.unknown()).describe(\"Echo of the search parameters used in this request.\").nullable().optional(),\n});\n\nexport const serpapiSearchYelp = action(\"SERPAPI_SEARCH_YELP\", {\n slug: \"serpapi-search-yelp\",\n name: \"Search Yelp businesses\",\n description: \"Tool to search Yelp for businesses and places using SerpApi. Returns business listings with ratings, reviews, hours, contact information, and location details. Use when you need to find local businesses, restaurants, services, or read customer reviews.\",\n input: SerpapiSearchYelpInput,\n output: SerpapiSearchYelpOutput,\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"search-yelp.mjs","names":[],"sources":["../../src/actions/search-yelp.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SerpapiSearchYelpInput = z.object({\n attrs: z.string().describe(\"Attribute filters to refine search (e.g., 'HotAndNew' for new businesses, 'Deals' for businesses with offers). Can be comma-separated for multiple filters.\").optional(),\n start: z.number().int().describe(\"Result offset for pagination. Use to fetch additional results beyond the first page. Each page typically contains 10 results.\").optional(),\n sortby: z.enum([\"recommended\", \"rating\", \"review_count\"]).describe(\"Sort order for results. 'recommended' shows Yelp's recommended matches, 'rating' shows highest-rated first, 'review_count' shows most-reviewed first.\").optional(),\n find_loc: z.string().describe(\"Location to search in (e.g., 'San Francisco, CA', 'New York, NY', '10001'). Can be a city, state, address, or ZIP code.\"),\n no_cache: z.boolean().describe(\"Set to true to force fresh results from Yelp, bypassing SerpApi's cache. Useful when you need real-time data.\").optional(),\n find_desc: z.string().describe(\"Search query describing what to find (e.g., 'pizza', 'coffee shop', 'italian restaurant'). This is the business type or service you're looking for.\"),\n yelp_domain: z.string().describe(\"Yelp domain to search on (e.g., 'yelp.com' for US, 'yelp.ca' for Canada, 'yelp.co.uk' for UK). Defaults to yelp.com if not specified.\").optional(),\n});\nconst SerpapiSearchYelp_YelpBusinessSchema = z.object({\n link: z.string().describe(\"URL to the Yelp page for this business.\").nullable().optional(),\n phone: z.string().describe(\"Phone number of the business.\").nullable().optional(),\n price: z.string().describe(\"Price range indicator (e.g., '$', '$$', '$$$', '$$$$').\").nullable().optional(),\n title: z.string().describe(\"Name of the business.\").nullable().optional(),\n rating: z.number().describe(\"Average rating (typically 1.0 to 5.0).\").nullable().optional(),\n address: z.string().describe(\"Full street address of the business.\").nullable().optional(),\n reviews: z.number().int().describe(\"Total number of reviews.\").nullable().optional(),\n snippet: z.string().describe(\"Brief description or highlight from reviews.\").nullable().optional(),\n position: z.number().int().describe(\"Position of this result in the search results (1-indexed).\").nullable().optional(),\n place_ids: z.array(z.string()).describe(\"Yelp place IDs associated with this business.\").nullable().optional(),\n thumbnail: z.string().describe(\"URL to the business thumbnail image.\").nullable().optional(),\n categories: z.union([z.array(z.string()), z.array(z.record(z.string(), z.unknown()))]).nullable().optional(),\n neighborhoods: z.union([z.string(), z.array(z.string())]).nullable().optional(),\n}).passthrough();\nexport const SerpapiSearchYelpOutput = z.object({\n organic_results: z.array(SerpapiSearchYelp_YelpBusinessSchema).describe(\"List of businesses matching the search criteria, with ratings, reviews, contact info, and other details.\").nullable().optional(),\n search_metadata: z.record(z.string(), z.unknown()).describe(\"Metadata about the search request, including request ID, status, and processing time.\").nullable().optional(),\n search_parameters: z.record(z.string(), z.unknown()).describe(\"Echo of the search parameters used in this request.\").nullable().optional(),\n}).passthrough();\n\nexport const serpapiSearchYelp = action(\"SERPAPI_SEARCH_YELP\", {\n slug: \"serpapi-search-yelp\",\n name: \"Search Yelp businesses\",\n description: \"Tool to search Yelp for businesses and places using SerpApi. Returns business listings with ratings, reviews, hours, contact information, and location details. Use when you need to find local businesses, restaurants, services, or read customer reviews.\",\n input: SerpapiSearchYelpInput,\n output: SerpapiSearchYelpOutput,\n});\n"],"mappings":"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"}
@@ -6,9 +6,9 @@ const SerpapiSearch_OrganicResultItemSchema = zod.z.object({
6
6
  link: zod.z.string().describe("URL of the search result").nullable().optional(),
7
7
  title: zod.z.string().describe("Title of the search result").nullable().optional(),
8
8
  position: zod.z.number().int().describe("Ranking position of the result").nullable().optional()
9
- }).describe("Single organic search result from Google.");
10
- const SerpapiSearch_SearchResultsSchema = zod.z.object({ organic_results: zod.z.array(SerpapiSearch_OrganicResultItemSchema).describe("List of organic search results (top 5)") }).describe("Container for search results.");
11
- const SerpapiSearchOutput = zod.z.object({ results: SerpapiSearch_SearchResultsSchema.nullable() });
9
+ }).passthrough().describe("Single organic search result from Google.");
10
+ const SerpapiSearch_SearchResultsSchema = zod.z.object({ organic_results: zod.z.array(SerpapiSearch_OrganicResultItemSchema).describe("List of organic search results (top 5)") }).passthrough().describe("Container for search results.");
11
+ const SerpapiSearchOutput = zod.z.object({ results: SerpapiSearch_SearchResultsSchema.nullable() }).passthrough();
12
12
  const serpapiSearch = require_action.action("SERPAPI_SEARCH", {
13
13
  slug: "serpapi-search",
14
14
  name: "Serp API search",
@@ -1 +1 @@
1
- {"version":3,"file":"search.cjs","names":["z","action"],"sources":["../../src/actions/search.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SerpapiSearchInput = z.object({\n query: z.string().describe(\"User's search query; should be a clear, concise question or keyword phrase.\"),\n});\nconst SerpapiSearch_OrganicResultItemSchema = z.object({\n link: z.string().describe(\"URL of the search result\").nullable().optional(),\n title: z.string().describe(\"Title of the search result\").nullable().optional(),\n position: z.number().int().describe(\"Ranking position of the result\").nullable().optional(),\n}).describe(\"Single organic search result from Google.\");\nconst SerpapiSearch_SearchResultsSchema = z.object({\n organic_results: z.array(SerpapiSearch_OrganicResultItemSchema).describe(\"List of organic search results (top 5)\"),\n}).describe(\"Container for search results.\");\nexport const SerpapiSearchOutput = z.object({\n results: SerpapiSearch_SearchResultsSchema.nullable(),\n});\n\nexport const serpapiSearch = action(\"SERPAPI_SEARCH\", {\n slug: \"serpapi-search\",\n name: \"Serp API search\",\n description: \"Performs a real-time Google search via the SerpAPI connection (must be active; if unavailable, use COMPOSIO_SEARCH_WEB or other COMPOSIO_SEARCH_* tools). Returns ~10 organic results per page nested under results.organic_results — not a flat list; handle missing/empty arrays. Paginate via start offset or serpapi_pagination.next; max num=100; stop when domains plateau to avoid quota exhaustion. Rate-limited: throttle to 1–2 req/s; HTTP 429 on bursts — apply exponential backoff (1s, 2s, 4s). Derive result rank from array index (absolute rank = start + index; no explicit rank field). Lacks date-bound controls — embed recency terms in query or use SERPAPI_NEWS_SEARCH for time-sensitive queries. Results may include ads and sponsored content; prefer authoritative domains. Use vertical tools (SERPAPI_IMAGE_SEARCH, SERPAPI_NEWS_SEARCH, SERPAPI_YOU_TUBE_SEARCH, SERPAPI_GOOGLE_JOBS_SEARCH) for specialized query types.\",\n input: SerpapiSearchInput,\n output: SerpapiSearchOutput,\n});\n"],"mappings":";;;AAIA,MAAa,qBAAqBA,IAAAA,EAAE,OAAO,EACzC,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6EAA6E,EAC1G,CAAC;AACD,MAAM,wCAAwCA,IAAAA,EAAE,OAAO;CACrD,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC1E,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC7E,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,gCAAgC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AAC5F,CAAC,CAAC,CAAC,SAAS,2CAA2C;AACvD,MAAM,oCAAoCA,IAAAA,EAAE,OAAO,EACjD,iBAAiBA,IAAAA,EAAE,MAAM,qCAAqC,CAAC,CAAC,SAAS,wCAAwC,EACnH,CAAC,CAAC,CAAC,SAAS,+BAA+B;AAC3C,MAAa,sBAAsBA,IAAAA,EAAE,OAAO,EAC1C,SAAS,kCAAkC,SAAS,EACtD,CAAC;AAED,MAAa,gBAAgBC,eAAAA,OAAO,kBAAkB;CACpD,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
1
+ {"version":3,"file":"search.cjs","names":["z","action"],"sources":["../../src/actions/search.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SerpapiSearchInput = z.object({\n query: z.string().describe(\"User's search query; should be a clear, concise question or keyword phrase.\"),\n});\nconst SerpapiSearch_OrganicResultItemSchema = z.object({\n link: z.string().describe(\"URL of the search result\").nullable().optional(),\n title: z.string().describe(\"Title of the search result\").nullable().optional(),\n position: z.number().int().describe(\"Ranking position of the result\").nullable().optional(),\n}).passthrough().describe(\"Single organic search result from Google.\");\nconst SerpapiSearch_SearchResultsSchema = z.object({\n organic_results: z.array(SerpapiSearch_OrganicResultItemSchema).describe(\"List of organic search results (top 5)\"),\n}).passthrough().describe(\"Container for search results.\");\nexport const SerpapiSearchOutput = z.object({\n results: SerpapiSearch_SearchResultsSchema.nullable(),\n}).passthrough();\n\nexport const serpapiSearch = action(\"SERPAPI_SEARCH\", {\n slug: \"serpapi-search\",\n name: \"Serp API search\",\n description: \"Performs a real-time Google search via the SerpAPI connection (must be active; if unavailable, use COMPOSIO_SEARCH_WEB or other COMPOSIO_SEARCH_* tools). Returns ~10 organic results per page nested under results.organic_results — not a flat list; handle missing/empty arrays. Paginate via start offset or serpapi_pagination.next; max num=100; stop when domains plateau to avoid quota exhaustion. Rate-limited: throttle to 1–2 req/s; HTTP 429 on bursts — apply exponential backoff (1s, 2s, 4s). Derive result rank from array index (absolute rank = start + index; no explicit rank field). Lacks date-bound controls — embed recency terms in query or use SERPAPI_NEWS_SEARCH for time-sensitive queries. Results may include ads and sponsored content; prefer authoritative domains. Use vertical tools (SERPAPI_IMAGE_SEARCH, SERPAPI_NEWS_SEARCH, SERPAPI_YOU_TUBE_SEARCH, SERPAPI_GOOGLE_JOBS_SEARCH) for specialized query types.\",\n input: SerpapiSearchInput,\n output: SerpapiSearchOutput,\n});\n"],"mappings":";;;AAIA,MAAa,qBAAqBA,IAAAA,EAAE,OAAO,EACzC,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6EAA6E,EAC1G,CAAC;AACD,MAAM,wCAAwCA,IAAAA,EAAE,OAAO;CACrD,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC1E,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC7E,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,gCAAgC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AAC5F,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,2CAA2C;AACrE,MAAM,oCAAoCA,IAAAA,EAAE,OAAO,EACjD,iBAAiBA,IAAAA,EAAE,MAAM,qCAAqC,CAAC,CAAC,SAAS,wCAAwC,EACnH,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,+BAA+B;AACzD,MAAa,sBAAsBA,IAAAA,EAAE,OAAO,EAC1C,SAAS,kCAAkC,SAAS,EACtD,CAAC,CAAC,CAAC,YAAY;AAEf,MAAa,gBAAgBC,eAAAA,OAAO,kBAAkB;CACpD,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
@@ -10,9 +10,9 @@ declare const SerpapiSearchOutput: z.ZodObject<{
10
10
  link: z.ZodOptional<z.ZodNullable<z.ZodString>>;
11
11
  title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
12
12
  position: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
13
- }, z.core.$strip>>;
14
- }, z.core.$strip>>;
15
- }, z.core.$strip>;
13
+ }, z.core.$loose>>;
14
+ }, z.core.$loose>>;
15
+ }, z.core.$loose>;
16
16
  declare const serpapiSearch: import("@keystrokehq/action").WorkflowActionDefinition<{
17
17
  query: string;
18
18
  }, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
@@ -10,9 +10,9 @@ declare const SerpapiSearchOutput: z.ZodObject<{
10
10
  link: z.ZodOptional<z.ZodNullable<z.ZodString>>;
11
11
  title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
12
12
  position: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
13
- }, z.core.$strip>>;
14
- }, z.core.$strip>>;
15
- }, z.core.$strip>;
13
+ }, z.core.$loose>>;
14
+ }, z.core.$loose>>;
15
+ }, z.core.$loose>;
16
16
  declare const serpapiSearch: import("@keystrokehq/action").WorkflowActionDefinition<{
17
17
  query: string;
18
18
  }, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
@@ -6,14 +6,14 @@ const SerpapiSearch_OrganicResultItemSchema = z.object({
6
6
  link: z.string().describe("URL of the search result").nullable().optional(),
7
7
  title: z.string().describe("Title of the search result").nullable().optional(),
8
8
  position: z.number().int().describe("Ranking position of the result").nullable().optional()
9
- }).describe("Single organic search result from Google.");
10
- const SerpapiSearch_SearchResultsSchema = z.object({ organic_results: z.array(SerpapiSearch_OrganicResultItemSchema).describe("List of organic search results (top 5)") }).describe("Container for search results.");
9
+ }).passthrough().describe("Single organic search result from Google.");
10
+ const SerpapiSearch_SearchResultsSchema = z.object({ organic_results: z.array(SerpapiSearch_OrganicResultItemSchema).describe("List of organic search results (top 5)") }).passthrough().describe("Container for search results.");
11
11
  const serpapiSearch = action("SERPAPI_SEARCH", {
12
12
  slug: "serpapi-search",
13
13
  name: "Serp API search",
14
14
  description: "Performs a real-time Google search via the SerpAPI connection (must be active; if unavailable, use COMPOSIO_SEARCH_WEB or other COMPOSIO_SEARCH_* tools). Returns ~10 organic results per page nested under results.organic_results — not a flat list; handle missing/empty arrays. Paginate via start offset or serpapi_pagination.next; max num=100; stop when domains plateau to avoid quota exhaustion. Rate-limited: throttle to 1–2 req/s; HTTP 429 on bursts — apply exponential backoff (1s, 2s, 4s). Derive result rank from array index (absolute rank = start + index; no explicit rank field). Lacks date-bound controls — embed recency terms in query or use SERPAPI_NEWS_SEARCH for time-sensitive queries. Results may include ads and sponsored content; prefer authoritative domains. Use vertical tools (SERPAPI_IMAGE_SEARCH, SERPAPI_NEWS_SEARCH, SERPAPI_YOU_TUBE_SEARCH, SERPAPI_GOOGLE_JOBS_SEARCH) for specialized query types.",
15
15
  input: SerpapiSearchInput,
16
- output: z.object({ results: SerpapiSearch_SearchResultsSchema.nullable() })
16
+ output: z.object({ results: SerpapiSearch_SearchResultsSchema.nullable() }).passthrough()
17
17
  });
18
18
  //#endregion
19
19
  export { serpapiSearch };
@@ -1 +1 @@
1
- {"version":3,"file":"search.mjs","names":[],"sources":["../../src/actions/search.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SerpapiSearchInput = z.object({\n query: z.string().describe(\"User's search query; should be a clear, concise question or keyword phrase.\"),\n});\nconst SerpapiSearch_OrganicResultItemSchema = z.object({\n link: z.string().describe(\"URL of the search result\").nullable().optional(),\n title: z.string().describe(\"Title of the search result\").nullable().optional(),\n position: z.number().int().describe(\"Ranking position of the result\").nullable().optional(),\n}).describe(\"Single organic search result from Google.\");\nconst SerpapiSearch_SearchResultsSchema = z.object({\n organic_results: z.array(SerpapiSearch_OrganicResultItemSchema).describe(\"List of organic search results (top 5)\"),\n}).describe(\"Container for search results.\");\nexport const SerpapiSearchOutput = z.object({\n results: SerpapiSearch_SearchResultsSchema.nullable(),\n});\n\nexport const serpapiSearch = action(\"SERPAPI_SEARCH\", {\n slug: \"serpapi-search\",\n name: \"Serp API search\",\n description: \"Performs a real-time Google search via the SerpAPI connection (must be active; if unavailable, use COMPOSIO_SEARCH_WEB or other COMPOSIO_SEARCH_* tools). Returns ~10 organic results per page nested under results.organic_results — not a flat list; handle missing/empty arrays. Paginate via start offset or serpapi_pagination.next; max num=100; stop when domains plateau to avoid quota exhaustion. Rate-limited: throttle to 1–2 req/s; HTTP 429 on bursts — apply exponential backoff (1s, 2s, 4s). Derive result rank from array index (absolute rank = start + index; no explicit rank field). Lacks date-bound controls — embed recency terms in query or use SERPAPI_NEWS_SEARCH for time-sensitive queries. Results may include ads and sponsored content; prefer authoritative domains. Use vertical tools (SERPAPI_IMAGE_SEARCH, SERPAPI_NEWS_SEARCH, SERPAPI_YOU_TUBE_SEARCH, SERPAPI_GOOGLE_JOBS_SEARCH) for specialized query types.\",\n input: SerpapiSearchInput,\n output: SerpapiSearchOutput,\n});\n"],"mappings":";;;AAIA,MAAa,qBAAqB,EAAE,OAAO,EACzC,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,6EAA6E,EAC1G,CAAC;AACD,MAAM,wCAAwC,EAAE,OAAO;CACrD,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC1E,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC7E,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,gCAAgC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AAC5F,CAAC,CAAC,CAAC,SAAS,2CAA2C;AACvD,MAAM,oCAAoC,EAAE,OAAO,EACjD,iBAAiB,EAAE,MAAM,qCAAqC,CAAC,CAAC,SAAS,wCAAwC,EACnH,CAAC,CAAC,CAAC,SAAS,+BAA+B;AAK3C,MAAa,gBAAgB,OAAO,kBAAkB;CACpD,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QATiC,EAAE,OAAO,EAC1C,SAAS,kCAAkC,SAAS,EACtD,CAOU;AACV,CAAC"}
1
+ {"version":3,"file":"search.mjs","names":[],"sources":["../../src/actions/search.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SerpapiSearchInput = z.object({\n query: z.string().describe(\"User's search query; should be a clear, concise question or keyword phrase.\"),\n});\nconst SerpapiSearch_OrganicResultItemSchema = z.object({\n link: z.string().describe(\"URL of the search result\").nullable().optional(),\n title: z.string().describe(\"Title of the search result\").nullable().optional(),\n position: z.number().int().describe(\"Ranking position of the result\").nullable().optional(),\n}).passthrough().describe(\"Single organic search result from Google.\");\nconst SerpapiSearch_SearchResultsSchema = z.object({\n organic_results: z.array(SerpapiSearch_OrganicResultItemSchema).describe(\"List of organic search results (top 5)\"),\n}).passthrough().describe(\"Container for search results.\");\nexport const SerpapiSearchOutput = z.object({\n results: SerpapiSearch_SearchResultsSchema.nullable(),\n}).passthrough();\n\nexport const serpapiSearch = action(\"SERPAPI_SEARCH\", {\n slug: \"serpapi-search\",\n name: \"Serp API search\",\n description: \"Performs a real-time Google search via the SerpAPI connection (must be active; if unavailable, use COMPOSIO_SEARCH_WEB or other COMPOSIO_SEARCH_* tools). Returns ~10 organic results per page nested under results.organic_results — not a flat list; handle missing/empty arrays. Paginate via start offset or serpapi_pagination.next; max num=100; stop when domains plateau to avoid quota exhaustion. Rate-limited: throttle to 1–2 req/s; HTTP 429 on bursts — apply exponential backoff (1s, 2s, 4s). Derive result rank from array index (absolute rank = start + index; no explicit rank field). Lacks date-bound controls — embed recency terms in query or use SERPAPI_NEWS_SEARCH for time-sensitive queries. Results may include ads and sponsored content; prefer authoritative domains. Use vertical tools (SERPAPI_IMAGE_SEARCH, SERPAPI_NEWS_SEARCH, SERPAPI_YOU_TUBE_SEARCH, SERPAPI_GOOGLE_JOBS_SEARCH) for specialized query types.\",\n input: SerpapiSearchInput,\n output: SerpapiSearchOutput,\n});\n"],"mappings":";;;AAIA,MAAa,qBAAqB,EAAE,OAAO,EACzC,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,6EAA6E,EAC1G,CAAC;AACD,MAAM,wCAAwC,EAAE,OAAO;CACrD,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC1E,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC7E,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,gCAAgC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AAC5F,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,2CAA2C;AACrE,MAAM,oCAAoC,EAAE,OAAO,EACjD,iBAAiB,EAAE,MAAM,qCAAqC,CAAC,CAAC,SAAS,wCAAwC,EACnH,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,+BAA+B;AAKzD,MAAa,gBAAgB,OAAO,kBAAkB;CACpD,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QATiC,EAAE,OAAO,EAC1C,SAAS,kCAAkC,SAAS,EACtD,CAAC,CAAC,CAAC,YAOO;AACV,CAAC"}
@@ -6,7 +6,7 @@ const SerpapiShoppingSearchInput = zod.z.object({
6
6
  query: zod.z.string().describe("Product or item to search for on Google Shopping."),
7
7
  start: zod.z.number().int().describe("Result offset for pagination. Use 0 for the first page (default), 10 for the second page, 20 for the third, etc.").optional()
8
8
  });
9
- const SerpapiShoppingSearchOutput = zod.z.object({ results: zod.z.record(zod.z.string(), zod.z.unknown()).describe("Structured search results from Google Shopping, including product details like title, link, price, and retailer.") });
9
+ const SerpapiShoppingSearchOutput = zod.z.object({ results: zod.z.record(zod.z.string(), zod.z.unknown()).describe("Structured search results from Google Shopping, including product details like title, link, price, and retailer.") }).passthrough();
10
10
  const serpapiShoppingSearch = require_action.action("SERPAPI_SHOPPING_SEARCH", {
11
11
  slug: "serpapi-shopping-search",
12
12
  name: "Shopping search",
@@ -1 +1 @@
1
- {"version":3,"file":"shopping-search.cjs","names":["z","action"],"sources":["../../src/actions/shopping-search.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SerpapiShoppingSearchInput = z.object({\n num: z.number().int().describe(\"Maximum number of results to return per page. Default is 10, maximum is 100.\").optional(),\n query: z.string().describe(\"Product or item to search for on Google Shopping.\"),\n start: z.number().int().describe(\"Result offset for pagination. Use 0 for the first page (default), 10 for the second page, 20 for the third, etc.\").optional(),\n});\nexport const SerpapiShoppingSearchOutput = z.object({\n results: z.record(z.string(), z.unknown()).describe(\"Structured search results from Google Shopping, including product details like title, link, price, and retailer.\"),\n});\n\nexport const serpapiShoppingSearch = action(\"SERPAPI_SHOPPING_SEARCH\", {\n slug: \"serpapi-shopping-search\",\n name: \"Shopping search\",\n description: \"Searches Google Shopping via SerpAPI for a specific product, returning structured listings in results.shopping_results. Requires an active SerpAPI connection. Response fields such as rating, review_count, extracted_price, and extracted_old_price may be absent; null-check before ranking or computing discounts. Discount percentages in listings may reflect aggregate promotional claims, not per-item pricing.\",\n input: SerpapiShoppingSearchInput,\n output: SerpapiShoppingSearchOutput,\n});\n"],"mappings":";;;AAIA,MAAa,6BAA6BA,IAAAA,EAAE,OAAO;CACjD,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,8EAA8E,CAAC,CAAC,SAAS;CACxH,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,mDAAmD;CAC9E,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,kHAAkH,CAAC,CAAC,SAAS;AAChK,CAAC;AACD,MAAa,8BAA8BA,IAAAA,EAAE,OAAO,EAClD,SAASA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,kHAAkH,EACxK,CAAC;AAED,MAAa,wBAAwBC,eAAAA,OAAO,2BAA2B;CACrE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
1
+ {"version":3,"file":"shopping-search.cjs","names":["z","action"],"sources":["../../src/actions/shopping-search.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SerpapiShoppingSearchInput = z.object({\n num: z.number().int().describe(\"Maximum number of results to return per page. Default is 10, maximum is 100.\").optional(),\n query: z.string().describe(\"Product or item to search for on Google Shopping.\"),\n start: z.number().int().describe(\"Result offset for pagination. Use 0 for the first page (default), 10 for the second page, 20 for the third, etc.\").optional(),\n});\nexport const SerpapiShoppingSearchOutput = z.object({\n results: z.record(z.string(), z.unknown()).describe(\"Structured search results from Google Shopping, including product details like title, link, price, and retailer.\"),\n}).passthrough();\n\nexport const serpapiShoppingSearch = action(\"SERPAPI_SHOPPING_SEARCH\", {\n slug: \"serpapi-shopping-search\",\n name: \"Shopping search\",\n description: \"Searches Google Shopping via SerpAPI for a specific product, returning structured listings in results.shopping_results. Requires an active SerpAPI connection. Response fields such as rating, review_count, extracted_price, and extracted_old_price may be absent; null-check before ranking or computing discounts. Discount percentages in listings may reflect aggregate promotional claims, not per-item pricing.\",\n input: SerpapiShoppingSearchInput,\n output: SerpapiShoppingSearchOutput,\n});\n"],"mappings":";;;AAIA,MAAa,6BAA6BA,IAAAA,EAAE,OAAO;CACjD,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,8EAA8E,CAAC,CAAC,SAAS;CACxH,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,mDAAmD;CAC9E,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,kHAAkH,CAAC,CAAC,SAAS;AAChK,CAAC;AACD,MAAa,8BAA8BA,IAAAA,EAAE,OAAO,EAClD,SAASA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,kHAAkH,EACxK,CAAC,CAAC,CAAC,YAAY;AAEf,MAAa,wBAAwBC,eAAAA,OAAO,2BAA2B;CACrE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
@@ -8,7 +8,7 @@ declare const SerpapiShoppingSearchInput: z.ZodObject<{
8
8
  }, z.core.$strip>;
9
9
  declare const SerpapiShoppingSearchOutput: z.ZodObject<{
10
10
  results: z.ZodRecord<z.ZodString, z.ZodUnknown>;
11
- }, z.core.$strip>;
11
+ }, z.core.$loose>;
12
12
  declare const serpapiShoppingSearch: import("@keystrokehq/action").WorkflowActionDefinition<{
13
13
  query: string;
14
14
  num?: number | undefined;
@@ -8,7 +8,7 @@ declare const SerpapiShoppingSearchInput: z.ZodObject<{
8
8
  }, z.core.$strip>;
9
9
  declare const SerpapiShoppingSearchOutput: z.ZodObject<{
10
10
  results: z.ZodRecord<z.ZodString, z.ZodUnknown>;
11
- }, z.core.$strip>;
11
+ }, z.core.$loose>;
12
12
  declare const serpapiShoppingSearch: import("@keystrokehq/action").WorkflowActionDefinition<{
13
13
  query: string;
14
14
  num?: number | undefined;
@@ -9,7 +9,7 @@ const serpapiShoppingSearch = action("SERPAPI_SHOPPING_SEARCH", {
9
9
  query: z.string().describe("Product or item to search for on Google Shopping."),
10
10
  start: z.number().int().describe("Result offset for pagination. Use 0 for the first page (default), 10 for the second page, 20 for the third, etc.").optional()
11
11
  }),
12
- output: z.object({ results: z.record(z.string(), z.unknown()).describe("Structured search results from Google Shopping, including product details like title, link, price, and retailer.") })
12
+ output: z.object({ results: z.record(z.string(), z.unknown()).describe("Structured search results from Google Shopping, including product details like title, link, price, and retailer.") }).passthrough()
13
13
  });
14
14
  //#endregion
15
15
  export { serpapiShoppingSearch };
@@ -1 +1 @@
1
- {"version":3,"file":"shopping-search.mjs","names":[],"sources":["../../src/actions/shopping-search.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SerpapiShoppingSearchInput = z.object({\n num: z.number().int().describe(\"Maximum number of results to return per page. Default is 10, maximum is 100.\").optional(),\n query: z.string().describe(\"Product or item to search for on Google Shopping.\"),\n start: z.number().int().describe(\"Result offset for pagination. Use 0 for the first page (default), 10 for the second page, 20 for the third, etc.\").optional(),\n});\nexport const SerpapiShoppingSearchOutput = z.object({\n results: z.record(z.string(), z.unknown()).describe(\"Structured search results from Google Shopping, including product details like title, link, price, and retailer.\"),\n});\n\nexport const serpapiShoppingSearch = action(\"SERPAPI_SHOPPING_SEARCH\", {\n slug: \"serpapi-shopping-search\",\n name: \"Shopping search\",\n description: \"Searches Google Shopping via SerpAPI for a specific product, returning structured listings in results.shopping_results. Requires an active SerpAPI connection. Response fields such as rating, review_count, extracted_price, and extracted_old_price may be absent; null-check before ranking or computing discounts. Discount percentages in listings may reflect aggregate promotional claims, not per-item pricing.\",\n input: SerpapiShoppingSearchInput,\n output: SerpapiShoppingSearchOutput,\n});\n"],"mappings":";;AAaA,MAAa,wBAAwB,OAAO,2BAA2B;CACrE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAbwC,EAAE,OAAO;EACjD,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,8EAA8E,CAAC,CAAC,SAAS;EACxH,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,mDAAmD;EAC9E,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,kHAAkH,CAAC,CAAC,SAAS;CAChK,CASS;CACP,QATyC,EAAE,OAAO,EAClD,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,kHAAkH,EACxK,CAOU;AACV,CAAC"}
1
+ {"version":3,"file":"shopping-search.mjs","names":[],"sources":["../../src/actions/shopping-search.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const SerpapiShoppingSearchInput = z.object({\n num: z.number().int().describe(\"Maximum number of results to return per page. Default is 10, maximum is 100.\").optional(),\n query: z.string().describe(\"Product or item to search for on Google Shopping.\"),\n start: z.number().int().describe(\"Result offset for pagination. Use 0 for the first page (default), 10 for the second page, 20 for the third, etc.\").optional(),\n});\nexport const SerpapiShoppingSearchOutput = z.object({\n results: z.record(z.string(), z.unknown()).describe(\"Structured search results from Google Shopping, including product details like title, link, price, and retailer.\"),\n}).passthrough();\n\nexport const serpapiShoppingSearch = action(\"SERPAPI_SHOPPING_SEARCH\", {\n slug: \"serpapi-shopping-search\",\n name: \"Shopping search\",\n description: \"Searches Google Shopping via SerpAPI for a specific product, returning structured listings in results.shopping_results. Requires an active SerpAPI connection. Response fields such as rating, review_count, extracted_price, and extracted_old_price may be absent; null-check before ranking or computing discounts. Discount percentages in listings may reflect aggregate promotional claims, not per-item pricing.\",\n input: SerpapiShoppingSearchInput,\n output: SerpapiShoppingSearchOutput,\n});\n"],"mappings":";;AAaA,MAAa,wBAAwB,OAAO,2BAA2B;CACrE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAbwC,EAAE,OAAO;EACjD,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,8EAA8E,CAAC,CAAC,SAAS;EACxH,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,mDAAmD;EAC9E,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,kHAAkH,CAAC,CAAC,SAAS;CAChK,CASS;CACP,QATyC,EAAE,OAAO,EAClD,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,kHAAkH,EACxK,CAAC,CAAC,CAAC,YAOO;AACV,CAAC"}