@keystrokehq/neutrino 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -0
- package/dist/action.cjs +21 -0
- package/dist/action.cjs.map +1 -0
- package/dist/action.mjs +21 -0
- package/dist/action.mjs.map +1 -0
- package/dist/actions/add-watermark-to-image.cjs +43 -0
- package/dist/actions/add-watermark-to-image.cjs.map +1 -0
- package/dist/actions/add-watermark-to-image.d.cts +9 -0
- package/dist/actions/add-watermark-to-image.d.cts.map +1 -0
- package/dist/actions/add-watermark-to-image.d.mts +9 -0
- package/dist/actions/add-watermark-to-image.d.mts.map +1 -0
- package/dist/actions/add-watermark-to-image.mjs +42 -0
- package/dist/actions/add-watermark-to-image.mjs.map +1 -0
- package/dist/actions/bad-word-filter.cjs +27 -0
- package/dist/actions/bad-word-filter.cjs.map +1 -0
- package/dist/actions/bad-word-filter.d.cts +9 -0
- package/dist/actions/bad-word-filter.d.cts.map +1 -0
- package/dist/actions/bad-word-filter.d.mts +9 -0
- package/dist/actions/bad-word-filter.d.mts.map +1 -0
- package/dist/actions/bad-word-filter.mjs +24 -0
- package/dist/actions/bad-word-filter.mjs.map +1 -0
- package/dist/actions/bin-lookup.cjs +44 -0
- package/dist/actions/bin-lookup.cjs.map +1 -0
- package/dist/actions/bin-lookup.d.cts +9 -0
- package/dist/actions/bin-lookup.d.cts.map +1 -0
- package/dist/actions/bin-lookup.d.mts +9 -0
- package/dist/actions/bin-lookup.d.mts.map +1 -0
- package/dist/actions/bin-lookup.mjs +41 -0
- package/dist/actions/bin-lookup.mjs.map +1 -0
- package/dist/actions/check-ip-blocklist.cjs +43 -0
- package/dist/actions/check-ip-blocklist.cjs.map +1 -0
- package/dist/actions/check-ip-blocklist.d.cts +9 -0
- package/dist/actions/check-ip-blocklist.d.cts.map +1 -0
- package/dist/actions/check-ip-blocklist.d.mts +9 -0
- package/dist/actions/check-ip-blocklist.d.mts.map +1 -0
- package/dist/actions/check-ip-blocklist.mjs +42 -0
- package/dist/actions/check-ip-blocklist.mjs.map +1 -0
- package/dist/actions/convert.cjs +33 -0
- package/dist/actions/convert.cjs.map +1 -0
- package/dist/actions/convert.d.cts +9 -0
- package/dist/actions/convert.d.cts.map +1 -0
- package/dist/actions/convert.d.mts +9 -0
- package/dist/actions/convert.d.mts.map +1 -0
- package/dist/actions/convert.mjs +30 -0
- package/dist/actions/convert.mjs.map +1 -0
- package/dist/actions/email-validate.cjs +32 -0
- package/dist/actions/email-validate.cjs.map +1 -0
- package/dist/actions/email-validate.d.cts +9 -0
- package/dist/actions/email-validate.d.cts.map +1 -0
- package/dist/actions/email-validate.d.mts +9 -0
- package/dist/actions/email-validate.d.mts.map +1 -0
- package/dist/actions/email-validate.mjs +29 -0
- package/dist/actions/email-validate.mjs.map +1 -0
- package/dist/actions/email-verify.cjs +39 -0
- package/dist/actions/email-verify.cjs.map +1 -0
- package/dist/actions/email-verify.d.cts +9 -0
- package/dist/actions/email-verify.d.cts.map +1 -0
- package/dist/actions/email-verify.d.mts +9 -0
- package/dist/actions/email-verify.d.mts.map +1 -0
- package/dist/actions/email-verify.mjs +36 -0
- package/dist/actions/email-verify.mjs.map +1 -0
- package/dist/actions/geocode-address.cjs +49 -0
- package/dist/actions/geocode-address.cjs.map +1 -0
- package/dist/actions/geocode-address.d.cts +9 -0
- package/dist/actions/geocode-address.d.cts.map +1 -0
- package/dist/actions/geocode-address.d.mts +9 -0
- package/dist/actions/geocode-address.d.mts.map +1 -0
- package/dist/actions/geocode-address.mjs +48 -0
- package/dist/actions/geocode-address.mjs.map +1 -0
- package/dist/actions/geocode-reverse.cjs +67 -0
- package/dist/actions/geocode-reverse.cjs.map +1 -0
- package/dist/actions/geocode-reverse.d.cts +9 -0
- package/dist/actions/geocode-reverse.d.cts.map +1 -0
- package/dist/actions/geocode-reverse.d.mts +9 -0
- package/dist/actions/geocode-reverse.d.mts.map +1 -0
- package/dist/actions/geocode-reverse.mjs +66 -0
- package/dist/actions/geocode-reverse.mjs.map +1 -0
- package/dist/actions/hlr-lookup.cjs +46 -0
- package/dist/actions/hlr-lookup.cjs.map +1 -0
- package/dist/actions/hlr-lookup.d.cts +9 -0
- package/dist/actions/hlr-lookup.d.cts.map +1 -0
- package/dist/actions/hlr-lookup.d.mts +9 -0
- package/dist/actions/hlr-lookup.d.mts.map +1 -0
- package/dist/actions/hlr-lookup.mjs +43 -0
- package/dist/actions/hlr-lookup.mjs.map +1 -0
- package/dist/actions/host-reputation.cjs +34 -0
- package/dist/actions/host-reputation.cjs.map +1 -0
- package/dist/actions/host-reputation.d.cts +9 -0
- package/dist/actions/host-reputation.d.cts.map +1 -0
- package/dist/actions/host-reputation.d.mts +9 -0
- package/dist/actions/host-reputation.d.mts.map +1 -0
- package/dist/actions/host-reputation.mjs +33 -0
- package/dist/actions/host-reputation.mjs.map +1 -0
- package/dist/actions/html-clean.cjs +25 -0
- package/dist/actions/html-clean.cjs.map +1 -0
- package/dist/actions/html-clean.d.cts +9 -0
- package/dist/actions/html-clean.d.cts.map +1 -0
- package/dist/actions/html-clean.d.mts +9 -0
- package/dist/actions/html-clean.d.mts.map +1 -0
- package/dist/actions/html-clean.mjs +22 -0
- package/dist/actions/html-clean.mjs.map +1 -0
- package/dist/actions/html-render.cjs +49 -0
- package/dist/actions/html-render.cjs.map +1 -0
- package/dist/actions/html-render.d.cts +9 -0
- package/dist/actions/html-render.d.cts.map +1 -0
- package/dist/actions/html-render.d.mts +9 -0
- package/dist/actions/html-render.d.mts.map +1 -0
- package/dist/actions/html-render.mjs +46 -0
- package/dist/actions/html-render.mjs.map +1 -0
- package/dist/actions/image-resize.cjs +33 -0
- package/dist/actions/image-resize.cjs.map +1 -0
- package/dist/actions/image-resize.d.cts +9 -0
- package/dist/actions/image-resize.d.cts.map +1 -0
- package/dist/actions/image-resize.d.mts +9 -0
- package/dist/actions/image-resize.d.mts.map +1 -0
- package/dist/actions/image-resize.mjs +32 -0
- package/dist/actions/image-resize.mjs.map +1 -0
- package/dist/actions/index.cjs +49 -0
- package/dist/actions/index.d.cts +25 -0
- package/dist/actions/index.d.mts +25 -0
- package/dist/actions/index.mjs +25 -0
- package/dist/actions/ip-info.cjs +47 -0
- package/dist/actions/ip-info.cjs.map +1 -0
- package/dist/actions/ip-info.d.cts +9 -0
- package/dist/actions/ip-info.d.cts.map +1 -0
- package/dist/actions/ip-info.d.mts +9 -0
- package/dist/actions/ip-info.d.mts.map +1 -0
- package/dist/actions/ip-info.mjs +46 -0
- package/dist/actions/ip-info.mjs.map +1 -0
- package/dist/actions/ip-probe.cjs +55 -0
- package/dist/actions/ip-probe.cjs.map +1 -0
- package/dist/actions/ip-probe.d.cts +9 -0
- package/dist/actions/ip-probe.d.cts.map +1 -0
- package/dist/actions/ip-probe.d.mts +9 -0
- package/dist/actions/ip-probe.d.mts.map +1 -0
- package/dist/actions/ip-probe.mjs +52 -0
- package/dist/actions/ip-probe.mjs.map +1 -0
- package/dist/actions/lookup-domain.cjs +49 -0
- package/dist/actions/lookup-domain.cjs.map +1 -0
- package/dist/actions/lookup-domain.d.cts +9 -0
- package/dist/actions/lookup-domain.d.cts.map +1 -0
- package/dist/actions/lookup-domain.d.mts +9 -0
- package/dist/actions/lookup-domain.d.mts.map +1 -0
- package/dist/actions/lookup-domain.mjs +48 -0
- package/dist/actions/lookup-domain.mjs.map +1 -0
- package/dist/actions/phone-validate.cjs +33 -0
- package/dist/actions/phone-validate.cjs.map +1 -0
- package/dist/actions/phone-validate.d.cts +9 -0
- package/dist/actions/phone-validate.d.cts.map +1 -0
- package/dist/actions/phone-validate.d.mts +9 -0
- package/dist/actions/phone-validate.d.mts.map +1 -0
- package/dist/actions/phone-validate.mjs +30 -0
- package/dist/actions/phone-validate.mjs.map +1 -0
- package/dist/actions/qr-code.cjs +23 -0
- package/dist/actions/qr-code.cjs.map +1 -0
- package/dist/actions/qr-code.d.cts +9 -0
- package/dist/actions/qr-code.d.cts.map +1 -0
- package/dist/actions/qr-code.d.mts +9 -0
- package/dist/actions/qr-code.d.mts.map +1 -0
- package/dist/actions/qr-code.mjs +20 -0
- package/dist/actions/qr-code.mjs.map +1 -0
- package/dist/actions/run-browser-bot.cjs +68 -0
- package/dist/actions/run-browser-bot.cjs.map +1 -0
- package/dist/actions/run-browser-bot.d.cts +9 -0
- package/dist/actions/run-browser-bot.d.cts.map +1 -0
- package/dist/actions/run-browser-bot.d.mts +9 -0
- package/dist/actions/run-browser-bot.d.mts.map +1 -0
- package/dist/actions/run-browser-bot.mjs +67 -0
- package/dist/actions/run-browser-bot.mjs.map +1 -0
- package/dist/actions/sms-verify.cjs +29 -0
- package/dist/actions/sms-verify.cjs.map +1 -0
- package/dist/actions/sms-verify.d.cts +9 -0
- package/dist/actions/sms-verify.d.cts.map +1 -0
- package/dist/actions/sms-verify.d.mts +9 -0
- package/dist/actions/sms-verify.d.mts.map +1 -0
- package/dist/actions/sms-verify.mjs +26 -0
- package/dist/actions/sms-verify.mjs.map +1 -0
- package/dist/actions/ua-lookup.cjs +47 -0
- package/dist/actions/ua-lookup.cjs.map +1 -0
- package/dist/actions/ua-lookup.d.cts +9 -0
- package/dist/actions/ua-lookup.d.cts.map +1 -0
- package/dist/actions/ua-lookup.d.mts +9 -0
- package/dist/actions/ua-lookup.d.mts.map +1 -0
- package/dist/actions/ua-lookup.mjs +44 -0
- package/dist/actions/ua-lookup.mjs.map +1 -0
- package/dist/actions/url-info.cjs +47 -0
- package/dist/actions/url-info.cjs.map +1 -0
- package/dist/actions/url-info.d.cts +9 -0
- package/dist/actions/url-info.d.cts.map +1 -0
- package/dist/actions/url-info.d.mts +9 -0
- package/dist/actions/url-info.d.mts.map +1 -0
- package/dist/actions/url-info.mjs +44 -0
- package/dist/actions/url-info.mjs.map +1 -0
- package/dist/actions/verify-security-code.cjs +19 -0
- package/dist/actions/verify-security-code.cjs.map +1 -0
- package/dist/actions/verify-security-code.d.cts +9 -0
- package/dist/actions/verify-security-code.d.cts.map +1 -0
- package/dist/actions/verify-security-code.d.mts +9 -0
- package/dist/actions/verify-security-code.d.mts.map +1 -0
- package/dist/actions/verify-security-code.mjs +16 -0
- package/dist/actions/verify-security-code.mjs.map +1 -0
- package/dist/app.cjs +9 -0
- package/dist/app.cjs.map +1 -0
- package/dist/app.d.cts +5 -0
- package/dist/app.d.cts.map +1 -0
- package/dist/app.d.mts +5 -0
- package/dist/app.d.mts.map +1 -0
- package/dist/app.mjs +10 -0
- package/dist/app.mjs.map +1 -0
- package/dist/catalog.cjs +15 -0
- package/dist/catalog.cjs.map +1 -0
- package/dist/catalog.d.cts +14 -0
- package/dist/catalog.d.cts.map +1 -0
- package/dist/catalog.d.mts +14 -0
- package/dist/catalog.d.mts.map +1 -0
- package/dist/catalog.mjs +15 -0
- package/dist/catalog.mjs.map +1 -0
- package/dist/execute.cjs +18 -0
- package/dist/execute.cjs.map +1 -0
- package/dist/execute.mjs +18 -0
- package/dist/execute.mjs.map +1 -0
- package/dist/index.cjs +54 -0
- package/dist/index.d.cts +27 -0
- package/dist/index.d.mts +27 -0
- package/dist/index.mjs +28 -0
- package/package.json +49 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { action } from "../action.mjs";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
//#region src/actions/check-ip-blocklist.ts
|
|
4
|
+
const NeutrinoCheckIpBlocklistInput = z.object({
|
|
5
|
+
ip: z.string().describe("An IPv4 or IPv6 address. Accepts standard IP notation (with or without port number), CIDR notation and IPv6 compressed notation. If multiple IPs are passed using comma-separated values the first non-bogon address on the list will be checked"),
|
|
6
|
+
"vpn-lookup": z.boolean().default(false).describe("Include public VPN provider IP addresses. NOTE: For more advanced VPN detection including the ability to identify private and stealth VPNs use the IP Probe API").optional()
|
|
7
|
+
}).describe("Request model for IP Blocklist check.");
|
|
8
|
+
const NeutrinoCheckIpBlocklist_BlocklistSensorSchema = z.object({
|
|
9
|
+
id: z.number().int().describe("Sensor ID"),
|
|
10
|
+
blocklist: z.string().describe("Blocklist category for this sensor"),
|
|
11
|
+
description: z.string().describe("Description of the sensor detection")
|
|
12
|
+
}).passthrough().describe("Information about a specific sensor that detected the IP.");
|
|
13
|
+
const neutrinoCheckIpBlocklist = action("NEUTRINO_CHECK_IP_BLOCKLIST", {
|
|
14
|
+
slug: "neutrino-check-ip-blocklist",
|
|
15
|
+
name: "IP Blocklist",
|
|
16
|
+
description: "Check if an IP address is on a blocklist. Detect IPs associated with malware, anonymous proxies, TOR exit nodes, botnets, spam sources and malicious servers. Use when you need to verify if an IP address is known to be malicious or part of a threat network.",
|
|
17
|
+
input: NeutrinoCheckIpBlocklistInput,
|
|
18
|
+
output: z.object({
|
|
19
|
+
ip: z.string().describe("The IP address"),
|
|
20
|
+
cidr: z.string().describe("The CIDR address for this listing (only set if the IP is listed)"),
|
|
21
|
+
"is-bot": z.boolean().describe("IP is hosting a malicious bot or is part of a botnet. This is a broad category which includes brute-force crackers"),
|
|
22
|
+
"is-tor": z.boolean().describe("IP is a Tor node or running a Tor related service"),
|
|
23
|
+
"is-vpn": z.boolean().describe("IP belongs to a public VPN provider (only set if the 'vpn-lookup' option is enabled)"),
|
|
24
|
+
sensors: z.array(NeutrinoCheckIpBlocklist_BlocklistSensorSchema).describe("An array of objects containing details on which specific sensors detected the IP"),
|
|
25
|
+
"is-proxy": z.boolean().describe("IP has been detected as an anonymous web proxy or anonymous HTTP proxy"),
|
|
26
|
+
"is-listed": z.boolean().describe("Is this IP on a blocklist"),
|
|
27
|
+
"is-spider": z.boolean().describe("IP is running a hostile web spider (deprecated but kept for backwards compatibility instead use UA/IP lookups for spider detection)"),
|
|
28
|
+
"last-seen": z.number().int().describe("The unix time when this IP was last seen on any blocklist. IPs are automatically removed after 7 days therefor this value will never be older than 7 days"),
|
|
29
|
+
blocklists: z.array(z.string()).describe("An array of strings indicating which blocklist categories this IP is listed on. Current possible values are: tor, proxy, vpn, bot, spam-bot, exploit-bot, hijacked, malware, spyware, spider, dshield"),
|
|
30
|
+
"is-dshield": z.boolean().describe("IP has been flagged as a significant attack source by DShield (dshield.org)"),
|
|
31
|
+
"is-malware": z.boolean().describe("IP is involved in distributing or is running malware"),
|
|
32
|
+
"is-spyware": z.boolean().describe("IP is involved in distributing or is running spyware"),
|
|
33
|
+
"list-count": z.number().int().describe("The number of blocklists the IP is listed on"),
|
|
34
|
+
"is-hijacked": z.boolean().describe("IP is part of a hijacked netblock or a netblock controlled by a criminal organization"),
|
|
35
|
+
"is-spam-bot": z.boolean().describe("IP address is hosting a spam bot, comment spamming or any other spamming type software"),
|
|
36
|
+
"is-exploit-bot": z.boolean().describe("IP is hosting an exploit finding bot or is running exploit scanning software")
|
|
37
|
+
}).describe("Response model for IP Blocklist check.")
|
|
38
|
+
});
|
|
39
|
+
//#endregion
|
|
40
|
+
export { neutrinoCheckIpBlocklist };
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=check-ip-blocklist.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-ip-blocklist.mjs","names":[],"sources":["../../src/actions/check-ip-blocklist.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const NeutrinoCheckIpBlocklistInput: z.ZodTypeAny = z.object({\n ip: z.string().describe(\"An IPv4 or IPv6 address. Accepts standard IP notation (with or without port number), CIDR notation and IPv6 compressed notation. If multiple IPs are passed using comma-separated values the first non-bogon address on the list will be checked\"),\n \"vpn-lookup\": z.boolean().default(false).describe(\"Include public VPN provider IP addresses. NOTE: For more advanced VPN detection including the ability to identify private and stealth VPNs use the IP Probe API\").optional(),\n}).describe(\"Request model for IP Blocklist check.\");\nconst NeutrinoCheckIpBlocklist_BlocklistSensorSchema: z.ZodTypeAny = z.object({\n id: z.number().int().describe(\"Sensor ID\"),\n blocklist: z.string().describe(\"Blocklist category for this sensor\"),\n description: z.string().describe(\"Description of the sensor detection\"),\n}).passthrough().describe(\"Information about a specific sensor that detected the IP.\");\nexport const NeutrinoCheckIpBlocklistOutput: z.ZodTypeAny = z.object({\n ip: z.string().describe(\"The IP address\"),\n cidr: z.string().describe(\"The CIDR address for this listing (only set if the IP is listed)\"),\n \"is-bot\": z.boolean().describe(\"IP is hosting a malicious bot or is part of a botnet. This is a broad category which includes brute-force crackers\"),\n \"is-tor\": z.boolean().describe(\"IP is a Tor node or running a Tor related service\"),\n \"is-vpn\": z.boolean().describe(\"IP belongs to a public VPN provider (only set if the 'vpn-lookup' option is enabled)\"),\n sensors: z.array(NeutrinoCheckIpBlocklist_BlocklistSensorSchema).describe(\"An array of objects containing details on which specific sensors detected the IP\"),\n \"is-proxy\": z.boolean().describe(\"IP has been detected as an anonymous web proxy or anonymous HTTP proxy\"),\n \"is-listed\": z.boolean().describe(\"Is this IP on a blocklist\"),\n \"is-spider\": z.boolean().describe(\"IP is running a hostile web spider (deprecated but kept for backwards compatibility instead use UA/IP lookups for spider detection)\"),\n \"last-seen\": z.number().int().describe(\"The unix time when this IP was last seen on any blocklist. IPs are automatically removed after 7 days therefor this value will never be older than 7 days\"),\n blocklists: z.array(z.string()).describe(\"An array of strings indicating which blocklist categories this IP is listed on. Current possible values are: tor, proxy, vpn, bot, spam-bot, exploit-bot, hijacked, malware, spyware, spider, dshield\"),\n \"is-dshield\": z.boolean().describe(\"IP has been flagged as a significant attack source by DShield (dshield.org)\"),\n \"is-malware\": z.boolean().describe(\"IP is involved in distributing or is running malware\"),\n \"is-spyware\": z.boolean().describe(\"IP is involved in distributing or is running spyware\"),\n \"list-count\": z.number().int().describe(\"The number of blocklists the IP is listed on\"),\n \"is-hijacked\": z.boolean().describe(\"IP is part of a hijacked netblock or a netblock controlled by a criminal organization\"),\n \"is-spam-bot\": z.boolean().describe(\"IP address is hosting a spam bot, comment spamming or any other spamming type software\"),\n \"is-exploit-bot\": z.boolean().describe(\"IP is hosting an exploit finding bot or is running exploit scanning software\"),\n}).describe(\"Response model for IP Blocklist check.\");\n\nexport const neutrinoCheckIpBlocklist = action(\"NEUTRINO_CHECK_IP_BLOCKLIST\", {\n slug: \"neutrino-check-ip-blocklist\",\n name: \"IP Blocklist\",\n description: \"Check if an IP address is on a blocklist. Detect IPs associated with malware, anonymous proxies, TOR exit nodes, botnets, spam sources and malicious servers. Use when you need to verify if an IP address is known to be malicious or part of a threat network.\",\n input: NeutrinoCheckIpBlocklistInput,\n output: NeutrinoCheckIpBlocklistOutput,\n});\n"],"mappings":";;;AAIA,MAAa,gCAA8C,EAAE,OAAO;CAClE,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS,kPAAkP;CAC1Q,cAAc,EAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,iKAAiK,CAAC,CAAC,SAAS;AAChO,CAAC,CAAC,CAAC,SAAS,uCAAuC;AACnD,MAAM,iDAA+D,EAAE,OAAO;CAC5E,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,WAAW;CACzC,WAAW,EAAE,OAAO,CAAC,CAAC,SAAS,oCAAoC;CACnE,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,qCAAqC;AACxE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,2DAA2D;AAsBrF,MAAa,2BAA2B,OAAO,+BAA+B;CAC5E,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QA1B0D,EAAE,OAAO;EACnE,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS,gBAAgB;EACxC,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,kEAAkE;EAC5F,UAAU,EAAE,QAAQ,CAAC,CAAC,SAAS,oHAAoH;EACnJ,UAAU,EAAE,QAAQ,CAAC,CAAC,SAAS,mDAAmD;EAClF,UAAU,EAAE,QAAQ,CAAC,CAAC,SAAS,sFAAsF;EACrH,SAAS,EAAE,MAAM,8CAA8C,CAAC,CAAC,SAAS,kFAAkF;EAC5J,YAAY,EAAE,QAAQ,CAAC,CAAC,SAAS,wEAAwE;EACzG,aAAa,EAAE,QAAQ,CAAC,CAAC,SAAS,2BAA2B;EAC7D,aAAa,EAAE,QAAQ,CAAC,CAAC,SAAS,qIAAqI;EACvK,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,2JAA2J;EAClM,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,uMAAuM;EAChP,cAAc,EAAE,QAAQ,CAAC,CAAC,SAAS,6EAA6E;EAChH,cAAc,EAAE,QAAQ,CAAC,CAAC,SAAS,sDAAsD;EACzF,cAAc,EAAE,QAAQ,CAAC,CAAC,SAAS,sDAAsD;EACzF,cAAc,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,8CAA8C;EACtF,eAAe,EAAE,QAAQ,CAAC,CAAC,SAAS,uFAAuF;EAC3H,eAAe,EAAE,QAAQ,CAAC,CAAC,SAAS,wFAAwF;EAC5H,kBAAkB,EAAE,QAAQ,CAAC,CAAC,SAAS,8EAA8E;CACvH,CAAC,CAAC,CAAC,SAAS,wCAOF;AACV,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
const require_action = require("../action.cjs");
|
|
2
|
+
let zod = require("zod");
|
|
3
|
+
//#region src/actions/convert.ts
|
|
4
|
+
const NeutrinoConvertInput = zod.z.object({
|
|
5
|
+
"to-type": zod.z.string().describe("The unit or currency code to convert to (e.g., 'EUR', 'm', 'gram')."),
|
|
6
|
+
"from-type": zod.z.string().describe("The unit or currency code of the input value (e.g., 'USD', 'kg', 'mile')."),
|
|
7
|
+
"from-value": zod.z.string().describe("The numeric value (as a string) to convert from."),
|
|
8
|
+
"historical-date": zod.z.string().describe("Optional date for historical exchange rates. Formats: YYYY-MM-DD, YYYY-MM, or YYYY. If not provided, uses current rates.").optional()
|
|
9
|
+
}).describe("Request model for the Convert action.");
|
|
10
|
+
const NeutrinoConvertOutput = zod.z.object({
|
|
11
|
+
valid: zod.z.boolean().describe("Indicates whether the conversion was successful."),
|
|
12
|
+
result: zod.z.string().describe("The converted value formatted as a string."),
|
|
13
|
+
"to-name": zod.z.string().describe("The full name of the target unit or currency."),
|
|
14
|
+
"to-type": zod.z.string().describe("The target unit or currency code."),
|
|
15
|
+
"from-name": zod.z.string().describe("The full name of the source unit or currency."),
|
|
16
|
+
"from-type": zod.z.string().describe("The source unit or currency code."),
|
|
17
|
+
"to-symbol": zod.z.string().describe("The symbol for the target unit or currency."),
|
|
18
|
+
"from-value": zod.z.string().describe("The original input value."),
|
|
19
|
+
"from-symbol": zod.z.string().describe("The symbol for the source unit or currency."),
|
|
20
|
+
"result-float": zod.z.number().describe("The converted value as a float number."),
|
|
21
|
+
"historical-date": zod.z.string().default("").describe("The historical date used for the conversion (ISO format YYYY-MM-DD), empty string if current rates used.").nullable().optional()
|
|
22
|
+
}).describe("Response model for the Convert action.");
|
|
23
|
+
const neutrinoConvert = require_action.action("NEUTRINO_CONVERT", {
|
|
24
|
+
slug: "neutrino-convert",
|
|
25
|
+
name: "Convert Value",
|
|
26
|
+
description: "Tool to perform unit and currency conversions. Use when you need to convert a value from one unit or currency to another. Example: convert 100 USD to EUR.",
|
|
27
|
+
input: NeutrinoConvertInput,
|
|
28
|
+
output: NeutrinoConvertOutput
|
|
29
|
+
});
|
|
30
|
+
//#endregion
|
|
31
|
+
exports.neutrinoConvert = neutrinoConvert;
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=convert.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert.cjs","names":["z","action"],"sources":["../../src/actions/convert.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const NeutrinoConvertInput: z.ZodTypeAny = z.object({\n \"to-type\": z.string().describe(\"The unit or currency code to convert to (e.g., 'EUR', 'm', 'gram').\"),\n \"from-type\": z.string().describe(\"The unit or currency code of the input value (e.g., 'USD', 'kg', 'mile').\"),\n \"from-value\": z.string().describe(\"The numeric value (as a string) to convert from.\"),\n \"historical-date\": z.string().describe(\"Optional date for historical exchange rates. Formats: YYYY-MM-DD, YYYY-MM, or YYYY. If not provided, uses current rates.\").optional(),\n}).describe(\"Request model for the Convert action.\");\nexport const NeutrinoConvertOutput: z.ZodTypeAny = z.object({\n valid: z.boolean().describe(\"Indicates whether the conversion was successful.\"),\n result: z.string().describe(\"The converted value formatted as a string.\"),\n \"to-name\": z.string().describe(\"The full name of the target unit or currency.\"),\n \"to-type\": z.string().describe(\"The target unit or currency code.\"),\n \"from-name\": z.string().describe(\"The full name of the source unit or currency.\"),\n \"from-type\": z.string().describe(\"The source unit or currency code.\"),\n \"to-symbol\": z.string().describe(\"The symbol for the target unit or currency.\"),\n \"from-value\": z.string().describe(\"The original input value.\"),\n \"from-symbol\": z.string().describe(\"The symbol for the source unit or currency.\"),\n \"result-float\": z.number().describe(\"The converted value as a float number.\"),\n \"historical-date\": z.string().default(\"\").describe(\"The historical date used for the conversion (ISO format YYYY-MM-DD), empty string if current rates used.\").nullable().optional(),\n}).describe(\"Response model for the Convert action.\");\n\nexport const neutrinoConvert = action(\"NEUTRINO_CONVERT\", {\n slug: \"neutrino-convert\",\n name: \"Convert Value\",\n description: \"Tool to perform unit and currency conversions. Use when you need to convert a value from one unit or currency to another. Example: convert 100 USD to EUR.\",\n input: NeutrinoConvertInput,\n output: NeutrinoConvertOutput,\n});\n"],"mappings":";;;AAIA,MAAa,uBAAqCA,IAAAA,EAAE,OAAO;CACzD,WAAWA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,qEAAqE;CACpG,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,2EAA2E;CAC5G,cAAcA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,kDAAkD;CACpF,mBAAmBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,0HAA0H,CAAC,CAAC,SAAS;AAC9K,CAAC,CAAC,CAAC,SAAS,uCAAuC;AACnD,MAAa,wBAAsCA,IAAAA,EAAE,OAAO;CAC1D,OAAOA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,kDAAkD;CAC9E,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4CAA4C;CACxE,WAAWA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,+CAA+C;CAC9E,WAAWA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,mCAAmC;CAClE,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,+CAA+C;CAChF,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,mCAAmC;CACpE,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6CAA6C;CAC9E,cAAcA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,2BAA2B;CAC7D,eAAeA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6CAA6C;CAChF,gBAAgBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wCAAwC;CAC5E,mBAAmBA,IAAAA,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,0GAA0G,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AACrL,CAAC,CAAC,CAAC,SAAS,wCAAwC;AAEpD,MAAa,kBAAkBC,eAAAA,OAAO,oBAAoB;CACxD,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
//#region src/actions/convert.d.ts
|
|
4
|
+
declare const NeutrinoConvertInput: z.ZodTypeAny;
|
|
5
|
+
declare const NeutrinoConvertOutput: z.ZodTypeAny;
|
|
6
|
+
declare const neutrinoConvert: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { neutrinoConvert };
|
|
9
|
+
//# sourceMappingURL=convert.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert.d.cts","names":[],"sources":["../../src/actions/convert.ts"],"mappings":";;;cAIa,oBAAA,EAAsB,CAAA,CAAE,UAKe;AAAA,cACvC,qBAAA,EAAuB,CAAA,CAAE,UAYe;AAAA,cAExC,eAAA,gCAAe,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
//#region src/actions/convert.d.ts
|
|
4
|
+
declare const NeutrinoConvertInput: z.ZodTypeAny;
|
|
5
|
+
declare const NeutrinoConvertOutput: z.ZodTypeAny;
|
|
6
|
+
declare const neutrinoConvert: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { neutrinoConvert };
|
|
9
|
+
//# sourceMappingURL=convert.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert.d.mts","names":[],"sources":["../../src/actions/convert.ts"],"mappings":";;;cAIa,oBAAA,EAAsB,CAAA,CAAE,UAKe;AAAA,cACvC,qBAAA,EAAuB,CAAA,CAAE,UAYe;AAAA,cAExC,eAAA,gCAAe,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { action } from "../action.mjs";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
const neutrinoConvert = action("NEUTRINO_CONVERT", {
|
|
4
|
+
slug: "neutrino-convert",
|
|
5
|
+
name: "Convert Value",
|
|
6
|
+
description: "Tool to perform unit and currency conversions. Use when you need to convert a value from one unit or currency to another. Example: convert 100 USD to EUR.",
|
|
7
|
+
input: z.object({
|
|
8
|
+
"to-type": z.string().describe("The unit or currency code to convert to (e.g., 'EUR', 'm', 'gram')."),
|
|
9
|
+
"from-type": z.string().describe("The unit or currency code of the input value (e.g., 'USD', 'kg', 'mile')."),
|
|
10
|
+
"from-value": z.string().describe("The numeric value (as a string) to convert from."),
|
|
11
|
+
"historical-date": z.string().describe("Optional date for historical exchange rates. Formats: YYYY-MM-DD, YYYY-MM, or YYYY. If not provided, uses current rates.").optional()
|
|
12
|
+
}).describe("Request model for the Convert action."),
|
|
13
|
+
output: z.object({
|
|
14
|
+
valid: z.boolean().describe("Indicates whether the conversion was successful."),
|
|
15
|
+
result: z.string().describe("The converted value formatted as a string."),
|
|
16
|
+
"to-name": z.string().describe("The full name of the target unit or currency."),
|
|
17
|
+
"to-type": z.string().describe("The target unit or currency code."),
|
|
18
|
+
"from-name": z.string().describe("The full name of the source unit or currency."),
|
|
19
|
+
"from-type": z.string().describe("The source unit or currency code."),
|
|
20
|
+
"to-symbol": z.string().describe("The symbol for the target unit or currency."),
|
|
21
|
+
"from-value": z.string().describe("The original input value."),
|
|
22
|
+
"from-symbol": z.string().describe("The symbol for the source unit or currency."),
|
|
23
|
+
"result-float": z.number().describe("The converted value as a float number."),
|
|
24
|
+
"historical-date": z.string().default("").describe("The historical date used for the conversion (ISO format YYYY-MM-DD), empty string if current rates used.").nullable().optional()
|
|
25
|
+
}).describe("Response model for the Convert action.")
|
|
26
|
+
});
|
|
27
|
+
//#endregion
|
|
28
|
+
export { neutrinoConvert };
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=convert.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert.mjs","names":[],"sources":["../../src/actions/convert.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const NeutrinoConvertInput: z.ZodTypeAny = z.object({\n \"to-type\": z.string().describe(\"The unit or currency code to convert to (e.g., 'EUR', 'm', 'gram').\"),\n \"from-type\": z.string().describe(\"The unit or currency code of the input value (e.g., 'USD', 'kg', 'mile').\"),\n \"from-value\": z.string().describe(\"The numeric value (as a string) to convert from.\"),\n \"historical-date\": z.string().describe(\"Optional date for historical exchange rates. Formats: YYYY-MM-DD, YYYY-MM, or YYYY. If not provided, uses current rates.\").optional(),\n}).describe(\"Request model for the Convert action.\");\nexport const NeutrinoConvertOutput: z.ZodTypeAny = z.object({\n valid: z.boolean().describe(\"Indicates whether the conversion was successful.\"),\n result: z.string().describe(\"The converted value formatted as a string.\"),\n \"to-name\": z.string().describe(\"The full name of the target unit or currency.\"),\n \"to-type\": z.string().describe(\"The target unit or currency code.\"),\n \"from-name\": z.string().describe(\"The full name of the source unit or currency.\"),\n \"from-type\": z.string().describe(\"The source unit or currency code.\"),\n \"to-symbol\": z.string().describe(\"The symbol for the target unit or currency.\"),\n \"from-value\": z.string().describe(\"The original input value.\"),\n \"from-symbol\": z.string().describe(\"The symbol for the source unit or currency.\"),\n \"result-float\": z.number().describe(\"The converted value as a float number.\"),\n \"historical-date\": z.string().default(\"\").describe(\"The historical date used for the conversion (ISO format YYYY-MM-DD), empty string if current rates used.\").nullable().optional(),\n}).describe(\"Response model for the Convert action.\");\n\nexport const neutrinoConvert = action(\"NEUTRINO_CONVERT\", {\n slug: \"neutrino-convert\",\n name: \"Convert Value\",\n description: \"Tool to perform unit and currency conversions. Use when you need to convert a value from one unit or currency to another. Example: convert 100 USD to EUR.\",\n input: NeutrinoConvertInput,\n output: NeutrinoConvertOutput,\n});\n"],"mappings":";;AAwBA,MAAa,kBAAkB,OAAO,oBAAoB;CACxD,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAxBgD,EAAE,OAAO;EACzD,WAAW,EAAE,OAAO,CAAC,CAAC,SAAS,qEAAqE;EACpG,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,2EAA2E;EAC5G,cAAc,EAAE,OAAO,CAAC,CAAC,SAAS,kDAAkD;EACpF,mBAAmB,EAAE,OAAO,CAAC,CAAC,SAAS,0HAA0H,CAAC,CAAC,SAAS;CAC9K,CAAC,CAAC,CAAC,SAAS,uCAmBH;CACP,QAnBiD,EAAE,OAAO;EAC1D,OAAO,EAAE,QAAQ,CAAC,CAAC,SAAS,kDAAkD;EAC9E,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,4CAA4C;EACxE,WAAW,EAAE,OAAO,CAAC,CAAC,SAAS,+CAA+C;EAC9E,WAAW,EAAE,OAAO,CAAC,CAAC,SAAS,mCAAmC;EAClE,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,+CAA+C;EAChF,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,mCAAmC;EACpE,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,6CAA6C;EAC9E,cAAc,EAAE,OAAO,CAAC,CAAC,SAAS,2BAA2B;EAC7D,eAAe,EAAE,OAAO,CAAC,CAAC,SAAS,6CAA6C;EAChF,gBAAgB,EAAE,OAAO,CAAC,CAAC,SAAS,wCAAwC;EAC5E,mBAAmB,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,0GAA0G,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACrL,CAAC,CAAC,CAAC,SAAS,wCAOF;AACV,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
const require_action = require("../action.cjs");
|
|
2
|
+
let zod = require("zod");
|
|
3
|
+
//#region src/actions/email-validate.ts
|
|
4
|
+
const NeutrinoEmailValidateInput = zod.z.object({
|
|
5
|
+
email: zod.z.string().describe("The email address to validate (e.g., 'user@example.com')."),
|
|
6
|
+
"fix-typos": zod.z.boolean().default(false).describe("Whether to automatically fix common typos in domain names (e.g., 'gmial.com' -> 'gmail.com'). Defaults to false.").optional()
|
|
7
|
+
}).describe("Request model for the EMAIL_VALIDATE action.");
|
|
8
|
+
const NeutrinoEmailValidateOutput = zod.z.object({
|
|
9
|
+
email: zod.z.string().describe("The email address that was validated (may differ from input if typos were fixed)."),
|
|
10
|
+
"mx-ip": zod.z.string().describe("The IP address of the primary mail exchange (MX) server for this domain. Empty string if unavailable.").nullable().optional(),
|
|
11
|
+
valid: zod.z.boolean().describe("Overall validity: true if the email passes all validation checks (syntax, domain, MX records)."),
|
|
12
|
+
domain: zod.z.string().describe("The domain part extracted from the email address (e.g., 'gmail.com' from 'user@gmail.com')."),
|
|
13
|
+
provider: zod.z.string().describe("The email service provider name if identified (e.g., 'gmail.com', 'yahoo.com'). Empty string if not identified.").nullable().optional(),
|
|
14
|
+
"is-freemail": zod.z.boolean().describe("Whether the domain is a free email provider like Gmail, Yahoo, Outlook, etc."),
|
|
15
|
+
"is-personal": zod.z.boolean().describe("Whether the email appears to be a personal address (vs. role-based like 'admin@' or 'info@')."),
|
|
16
|
+
"typos-fixed": zod.z.boolean().describe("Whether typos were automatically corrected in the email address (only if fix_typos was enabled)."),
|
|
17
|
+
"domain-error": zod.z.boolean().describe("Whether the domain has validation errors (e.g., doesn't exist, no MX records)."),
|
|
18
|
+
"syntax-error": zod.z.boolean().describe("Whether the email has RFC822/RFC2822 syntax errors (e.g., missing '@', invalid characters)."),
|
|
19
|
+
"domain-status": zod.z.string().describe("Domain validation status: 'ok' (valid), 'invalid' (doesn't exist), 'no-mail' (no MX records), or 'resolv-error' (DNS error)."),
|
|
20
|
+
"is-disposable": zod.z.boolean().describe("Whether the email is from a disposable/temporary email service (often used for spam).")
|
|
21
|
+
}).describe("Response model for the EMAIL_VALIDATE action.");
|
|
22
|
+
const neutrinoEmailValidate = require_action.action("NEUTRINO_EMAIL_VALIDATE", {
|
|
23
|
+
slug: "neutrino-email-validate",
|
|
24
|
+
name: "Validate and analyze an email address",
|
|
25
|
+
description: "Validates and analyzes email addresses for syntax, domain validity, DNS/MX records, and detects freemail/disposable providers. This tool performs comprehensive email validation including: - RFC822/RFC2822 syntax compliance checking - Domain existence and DNS verification - Mail exchange (MX) record validation - Detection of free email providers (Gmail, Yahoo, etc.) - Identification of disposable/temporary email services - Optional automatic typo correction for common domain mistakes Important: This does NOT verify if a specific email address/mailbox actually exists with the provider. For mailbox verification, use the EMAIL_VERIFY action instead. Use this tool when you need to validate email addresses before sending, check email quality, or filter out disposable addresses.",
|
|
26
|
+
input: NeutrinoEmailValidateInput,
|
|
27
|
+
output: NeutrinoEmailValidateOutput
|
|
28
|
+
});
|
|
29
|
+
//#endregion
|
|
30
|
+
exports.neutrinoEmailValidate = neutrinoEmailValidate;
|
|
31
|
+
|
|
32
|
+
//# sourceMappingURL=email-validate.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-validate.cjs","names":["z","action"],"sources":["../../src/actions/email-validate.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const NeutrinoEmailValidateInput: z.ZodTypeAny = z.object({\n email: z.string().describe(\"The email address to validate (e.g., 'user@example.com').\"),\n \"fix-typos\": z.boolean().default(false).describe(\"Whether to automatically fix common typos in domain names (e.g., 'gmial.com' -> 'gmail.com'). Defaults to false.\").optional(),\n}).describe(\"Request model for the EMAIL_VALIDATE action.\");\nexport const NeutrinoEmailValidateOutput: z.ZodTypeAny = z.object({\n email: z.string().describe(\"The email address that was validated (may differ from input if typos were fixed).\"),\n \"mx-ip\": z.string().describe(\"The IP address of the primary mail exchange (MX) server for this domain. Empty string if unavailable.\").nullable().optional(),\n valid: z.boolean().describe(\"Overall validity: true if the email passes all validation checks (syntax, domain, MX records).\"),\n domain: z.string().describe(\"The domain part extracted from the email address (e.g., 'gmail.com' from 'user@gmail.com').\"),\n provider: z.string().describe(\"The email service provider name if identified (e.g., 'gmail.com', 'yahoo.com'). Empty string if not identified.\").nullable().optional(),\n \"is-freemail\": z.boolean().describe(\"Whether the domain is a free email provider like Gmail, Yahoo, Outlook, etc.\"),\n \"is-personal\": z.boolean().describe(\"Whether the email appears to be a personal address (vs. role-based like 'admin@' or 'info@').\"),\n \"typos-fixed\": z.boolean().describe(\"Whether typos were automatically corrected in the email address (only if fix_typos was enabled).\"),\n \"domain-error\": z.boolean().describe(\"Whether the domain has validation errors (e.g., doesn't exist, no MX records).\"),\n \"syntax-error\": z.boolean().describe(\"Whether the email has RFC822/RFC2822 syntax errors (e.g., missing '@', invalid characters).\"),\n \"domain-status\": z.string().describe(\"Domain validation status: 'ok' (valid), 'invalid' (doesn't exist), 'no-mail' (no MX records), or 'resolv-error' (DNS error).\"),\n \"is-disposable\": z.boolean().describe(\"Whether the email is from a disposable/temporary email service (often used for spam).\"),\n}).describe(\"Response model for the EMAIL_VALIDATE action.\");\n\nexport const neutrinoEmailValidate = action(\"NEUTRINO_EMAIL_VALIDATE\", {\n slug: \"neutrino-email-validate\",\n name: \"Validate and analyze an email address\",\n description: \"Validates and analyzes email addresses for syntax, domain validity, DNS/MX records, and detects freemail/disposable providers. This tool performs comprehensive email validation including: - RFC822/RFC2822 syntax compliance checking - Domain existence and DNS verification - Mail exchange (MX) record validation - Detection of free email providers (Gmail, Yahoo, etc.) - Identification of disposable/temporary email services - Optional automatic typo correction for common domain mistakes Important: This does NOT verify if a specific email address/mailbox actually exists with the provider. For mailbox verification, use the EMAIL_VERIFY action instead. Use this tool when you need to validate email addresses before sending, check email quality, or filter out disposable addresses.\",\n input: NeutrinoEmailValidateInput,\n output: NeutrinoEmailValidateOutput,\n});\n"],"mappings":";;;AAIA,MAAa,6BAA2CA,IAAAA,EAAE,OAAO;CAC/D,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,2DAA2D;CACtF,aAAaA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,kHAAkH,CAAC,CAAC,SAAS;AAChL,CAAC,CAAC,CAAC,SAAS,8CAA8C;AAC1D,MAAa,8BAA4CA,IAAAA,EAAE,OAAO;CAChE,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,mFAAmF;CAC9G,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uGAAuG,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC1J,OAAOA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,gGAAgG;CAC5H,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6FAA6F;CACzH,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,iHAAiH,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACrK,eAAeA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,8EAA8E;CAClH,eAAeA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,+FAA+F;CACnI,eAAeA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,kGAAkG;CACtI,gBAAgBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,gFAAgF;CACrH,gBAAgBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,6FAA6F;CAClI,iBAAiBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8HAA8H;CACnK,iBAAiBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,uFAAuF;AAC/H,CAAC,CAAC,CAAC,SAAS,+CAA+C;AAE3D,MAAa,wBAAwBC,eAAAA,OAAO,2BAA2B;CACrE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
//#region src/actions/email-validate.d.ts
|
|
4
|
+
declare const NeutrinoEmailValidateInput: z.ZodTypeAny;
|
|
5
|
+
declare const NeutrinoEmailValidateOutput: z.ZodTypeAny;
|
|
6
|
+
declare const neutrinoEmailValidate: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { neutrinoEmailValidate };
|
|
9
|
+
//# sourceMappingURL=email-validate.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-validate.d.cts","names":[],"sources":["../../src/actions/email-validate.ts"],"mappings":";;;cAIa,0BAAA,EAA4B,CAAA,CAAE,UAGgB;AAAA,cAC9C,2BAAA,EAA6B,CAAA,CAAE,UAagB;AAAA,cAE/C,qBAAA,gCAAqB,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
//#region src/actions/email-validate.d.ts
|
|
4
|
+
declare const NeutrinoEmailValidateInput: z.ZodTypeAny;
|
|
5
|
+
declare const NeutrinoEmailValidateOutput: z.ZodTypeAny;
|
|
6
|
+
declare const neutrinoEmailValidate: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { neutrinoEmailValidate };
|
|
9
|
+
//# sourceMappingURL=email-validate.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-validate.d.mts","names":[],"sources":["../../src/actions/email-validate.ts"],"mappings":";;;cAIa,0BAAA,EAA4B,CAAA,CAAE,UAGgB;AAAA,cAC9C,2BAAA,EAA6B,CAAA,CAAE,UAagB;AAAA,cAE/C,qBAAA,gCAAqB,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { action } from "../action.mjs";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
const neutrinoEmailValidate = action("NEUTRINO_EMAIL_VALIDATE", {
|
|
4
|
+
slug: "neutrino-email-validate",
|
|
5
|
+
name: "Validate and analyze an email address",
|
|
6
|
+
description: "Validates and analyzes email addresses for syntax, domain validity, DNS/MX records, and detects freemail/disposable providers. This tool performs comprehensive email validation including: - RFC822/RFC2822 syntax compliance checking - Domain existence and DNS verification - Mail exchange (MX) record validation - Detection of free email providers (Gmail, Yahoo, etc.) - Identification of disposable/temporary email services - Optional automatic typo correction for common domain mistakes Important: This does NOT verify if a specific email address/mailbox actually exists with the provider. For mailbox verification, use the EMAIL_VERIFY action instead. Use this tool when you need to validate email addresses before sending, check email quality, or filter out disposable addresses.",
|
|
7
|
+
input: z.object({
|
|
8
|
+
email: z.string().describe("The email address to validate (e.g., 'user@example.com')."),
|
|
9
|
+
"fix-typos": z.boolean().default(false).describe("Whether to automatically fix common typos in domain names (e.g., 'gmial.com' -> 'gmail.com'). Defaults to false.").optional()
|
|
10
|
+
}).describe("Request model for the EMAIL_VALIDATE action."),
|
|
11
|
+
output: z.object({
|
|
12
|
+
email: z.string().describe("The email address that was validated (may differ from input if typos were fixed)."),
|
|
13
|
+
"mx-ip": z.string().describe("The IP address of the primary mail exchange (MX) server for this domain. Empty string if unavailable.").nullable().optional(),
|
|
14
|
+
valid: z.boolean().describe("Overall validity: true if the email passes all validation checks (syntax, domain, MX records)."),
|
|
15
|
+
domain: z.string().describe("The domain part extracted from the email address (e.g., 'gmail.com' from 'user@gmail.com')."),
|
|
16
|
+
provider: z.string().describe("The email service provider name if identified (e.g., 'gmail.com', 'yahoo.com'). Empty string if not identified.").nullable().optional(),
|
|
17
|
+
"is-freemail": z.boolean().describe("Whether the domain is a free email provider like Gmail, Yahoo, Outlook, etc."),
|
|
18
|
+
"is-personal": z.boolean().describe("Whether the email appears to be a personal address (vs. role-based like 'admin@' or 'info@')."),
|
|
19
|
+
"typos-fixed": z.boolean().describe("Whether typos were automatically corrected in the email address (only if fix_typos was enabled)."),
|
|
20
|
+
"domain-error": z.boolean().describe("Whether the domain has validation errors (e.g., doesn't exist, no MX records)."),
|
|
21
|
+
"syntax-error": z.boolean().describe("Whether the email has RFC822/RFC2822 syntax errors (e.g., missing '@', invalid characters)."),
|
|
22
|
+
"domain-status": z.string().describe("Domain validation status: 'ok' (valid), 'invalid' (doesn't exist), 'no-mail' (no MX records), or 'resolv-error' (DNS error)."),
|
|
23
|
+
"is-disposable": z.boolean().describe("Whether the email is from a disposable/temporary email service (often used for spam).")
|
|
24
|
+
}).describe("Response model for the EMAIL_VALIDATE action.")
|
|
25
|
+
});
|
|
26
|
+
//#endregion
|
|
27
|
+
export { neutrinoEmailValidate };
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=email-validate.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-validate.mjs","names":[],"sources":["../../src/actions/email-validate.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const NeutrinoEmailValidateInput: z.ZodTypeAny = z.object({\n email: z.string().describe(\"The email address to validate (e.g., 'user@example.com').\"),\n \"fix-typos\": z.boolean().default(false).describe(\"Whether to automatically fix common typos in domain names (e.g., 'gmial.com' -> 'gmail.com'). Defaults to false.\").optional(),\n}).describe(\"Request model for the EMAIL_VALIDATE action.\");\nexport const NeutrinoEmailValidateOutput: z.ZodTypeAny = z.object({\n email: z.string().describe(\"The email address that was validated (may differ from input if typos were fixed).\"),\n \"mx-ip\": z.string().describe(\"The IP address of the primary mail exchange (MX) server for this domain. Empty string if unavailable.\").nullable().optional(),\n valid: z.boolean().describe(\"Overall validity: true if the email passes all validation checks (syntax, domain, MX records).\"),\n domain: z.string().describe(\"The domain part extracted from the email address (e.g., 'gmail.com' from 'user@gmail.com').\"),\n provider: z.string().describe(\"The email service provider name if identified (e.g., 'gmail.com', 'yahoo.com'). Empty string if not identified.\").nullable().optional(),\n \"is-freemail\": z.boolean().describe(\"Whether the domain is a free email provider like Gmail, Yahoo, Outlook, etc.\"),\n \"is-personal\": z.boolean().describe(\"Whether the email appears to be a personal address (vs. role-based like 'admin@' or 'info@').\"),\n \"typos-fixed\": z.boolean().describe(\"Whether typos were automatically corrected in the email address (only if fix_typos was enabled).\"),\n \"domain-error\": z.boolean().describe(\"Whether the domain has validation errors (e.g., doesn't exist, no MX records).\"),\n \"syntax-error\": z.boolean().describe(\"Whether the email has RFC822/RFC2822 syntax errors (e.g., missing '@', invalid characters).\"),\n \"domain-status\": z.string().describe(\"Domain validation status: 'ok' (valid), 'invalid' (doesn't exist), 'no-mail' (no MX records), or 'resolv-error' (DNS error).\"),\n \"is-disposable\": z.boolean().describe(\"Whether the email is from a disposable/temporary email service (often used for spam).\"),\n}).describe(\"Response model for the EMAIL_VALIDATE action.\");\n\nexport const neutrinoEmailValidate = action(\"NEUTRINO_EMAIL_VALIDATE\", {\n slug: \"neutrino-email-validate\",\n name: \"Validate and analyze an email address\",\n description: \"Validates and analyzes email addresses for syntax, domain validity, DNS/MX records, and detects freemail/disposable providers. This tool performs comprehensive email validation including: - RFC822/RFC2822 syntax compliance checking - Domain existence and DNS verification - Mail exchange (MX) record validation - Detection of free email providers (Gmail, Yahoo, etc.) - Identification of disposable/temporary email services - Optional automatic typo correction for common domain mistakes Important: This does NOT verify if a specific email address/mailbox actually exists with the provider. For mailbox verification, use the EMAIL_VERIFY action instead. Use this tool when you need to validate email addresses before sending, check email quality, or filter out disposable addresses.\",\n input: NeutrinoEmailValidateInput,\n output: NeutrinoEmailValidateOutput,\n});\n"],"mappings":";;AAuBA,MAAa,wBAAwB,OAAO,2BAA2B;CACrE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAvBsD,EAAE,OAAO;EAC/D,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,2DAA2D;EACtF,aAAa,EAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,kHAAkH,CAAC,CAAC,SAAS;CAChL,CAAC,CAAC,CAAC,SAAS,8CAoBH;CACP,QApBuD,EAAE,OAAO;EAChE,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,mFAAmF;EAC9G,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,uGAAuG,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC1J,OAAO,EAAE,QAAQ,CAAC,CAAC,SAAS,gGAAgG;EAC5H,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,6FAA6F;EACzH,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,iHAAiH,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EACrK,eAAe,EAAE,QAAQ,CAAC,CAAC,SAAS,8EAA8E;EAClH,eAAe,EAAE,QAAQ,CAAC,CAAC,SAAS,+FAA+F;EACnI,eAAe,EAAE,QAAQ,CAAC,CAAC,SAAS,kGAAkG;EACtI,gBAAgB,EAAE,QAAQ,CAAC,CAAC,SAAS,gFAAgF;EACrH,gBAAgB,EAAE,QAAQ,CAAC,CAAC,SAAS,6FAA6F;EAClI,iBAAiB,EAAE,OAAO,CAAC,CAAC,SAAS,8HAA8H;EACnK,iBAAiB,EAAE,QAAQ,CAAC,CAAC,SAAS,uFAAuF;CAC/H,CAAC,CAAC,CAAC,SAAS,+CAOF;AACV,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const require_action = require("../action.cjs");
|
|
2
|
+
let zod = require("zod");
|
|
3
|
+
//#region src/actions/email-verify.ts
|
|
4
|
+
const NeutrinoEmailVerifyInput = zod.z.object({
|
|
5
|
+
email: zod.z.string().describe("The email address to verify."),
|
|
6
|
+
"fix-typos": zod.z.boolean().default(false).describe("Automatically attempt to fix common typos in the address.").optional()
|
|
7
|
+
}).describe("Parameters for the EMAIL_VERIFY action.");
|
|
8
|
+
const NeutrinoEmailVerifyOutput = zod.z.object({
|
|
9
|
+
email: zod.z.string().describe("The complete email address (corrected if fix-typos was enabled)."),
|
|
10
|
+
"mx-ip": zod.z.string().describe("First resolved IP address of the primary MX server.").nullable().optional(),
|
|
11
|
+
valid: zod.z.boolean().describe("Is this a valid email address with correct syntax, registered domain, and MX records."),
|
|
12
|
+
domain: zod.z.string().describe("The domain name of the email address."),
|
|
13
|
+
"is-role": zod.z.boolean().describe("Is this a role-based address (e.g., admin@, support@, info@). May not be present in all responses.").nullable().optional(),
|
|
14
|
+
"mx-found": zod.z.boolean().describe("Were MX records found for the domain. May not be present in all responses.").nullable().optional(),
|
|
15
|
+
provider: zod.z.string().describe("Email hosting provider domain name."),
|
|
16
|
+
verified: zod.z.boolean().describe("Has the email address passed SMTP username verification (mailbox exists)."),
|
|
17
|
+
"is-deferred": zod.z.boolean().describe("Is this a temporary mail server failure (retry recommended)."),
|
|
18
|
+
"is-freemail": zod.z.boolean().describe("Is the address from a free email provider (e.g., Gmail, Yahoo, Outlook)."),
|
|
19
|
+
"is-personal": zod.z.boolean().describe("Is this a personal email address (false for role-based addresses)."),
|
|
20
|
+
"smtp-status": zod.z.string().describe("SMTP verification status. Values: 'ok' (verified), 'absent' (mailbox doesn't exist), 'invalid' (invalid mailbox), 'unresponsive' (server unresponsive), 'unknown' (verification status unknown)."),
|
|
21
|
+
"typos-fixed": zod.z.boolean().describe("Was a typo automatically fixed in the address."),
|
|
22
|
+
"domain-error": zod.z.boolean().describe("Are there domain or DNS errors present."),
|
|
23
|
+
"is-catch-all": zod.z.boolean().describe("Does the domain accept mail for any username (catch-all domain)."),
|
|
24
|
+
"syntax-error": zod.z.boolean().describe("Does the address have syntax errors."),
|
|
25
|
+
"domain-status": zod.z.string().describe("Status of the email domain. Values: 'ok' (valid), 'invalid' (invalid domain), 'no-service' (no mail service), 'no-mail' (domain doesn't accept mail), 'mx-invalid' (invalid MX records), 'mx-bogon' (bogon IP in MX), 'resolv-error' (DNS resolution error)."),
|
|
26
|
+
"is-disposable": zod.z.boolean().describe("Is this a temporary/disposable email address."),
|
|
27
|
+
"smtp-response": zod.z.string().describe("Raw SMTP response message from the mail server.")
|
|
28
|
+
}).describe("Response from the EMAIL_VERIFY action.");
|
|
29
|
+
const neutrinoEmailVerify = require_action.action("NEUTRINO_EMAIL_VERIFY", {
|
|
30
|
+
slug: "neutrino-email-verify",
|
|
31
|
+
name: "Verify Email Address",
|
|
32
|
+
description: "Tool to verify and analyze the deliverability of an email address. Use when you need SMTP-based validation before sending emails.",
|
|
33
|
+
input: NeutrinoEmailVerifyInput,
|
|
34
|
+
output: NeutrinoEmailVerifyOutput
|
|
35
|
+
});
|
|
36
|
+
//#endregion
|
|
37
|
+
exports.neutrinoEmailVerify = neutrinoEmailVerify;
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=email-verify.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-verify.cjs","names":["z","action"],"sources":["../../src/actions/email-verify.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const NeutrinoEmailVerifyInput: z.ZodTypeAny = z.object({\n email: z.string().describe(\"The email address to verify.\"),\n \"fix-typos\": z.boolean().default(false).describe(\"Automatically attempt to fix common typos in the address.\").optional(),\n}).describe(\"Parameters for the EMAIL_VERIFY action.\");\nexport const NeutrinoEmailVerifyOutput: z.ZodTypeAny = z.object({\n email: z.string().describe(\"The complete email address (corrected if fix-typos was enabled).\"),\n \"mx-ip\": z.string().describe(\"First resolved IP address of the primary MX server.\").nullable().optional(),\n valid: z.boolean().describe(\"Is this a valid email address with correct syntax, registered domain, and MX records.\"),\n domain: z.string().describe(\"The domain name of the email address.\"),\n \"is-role\": z.boolean().describe(\"Is this a role-based address (e.g., admin@, support@, info@). May not be present in all responses.\").nullable().optional(),\n \"mx-found\": z.boolean().describe(\"Were MX records found for the domain. May not be present in all responses.\").nullable().optional(),\n provider: z.string().describe(\"Email hosting provider domain name.\"),\n verified: z.boolean().describe(\"Has the email address passed SMTP username verification (mailbox exists).\"),\n \"is-deferred\": z.boolean().describe(\"Is this a temporary mail server failure (retry recommended).\"),\n \"is-freemail\": z.boolean().describe(\"Is the address from a free email provider (e.g., Gmail, Yahoo, Outlook).\"),\n \"is-personal\": z.boolean().describe(\"Is this a personal email address (false for role-based addresses).\"),\n \"smtp-status\": z.string().describe(\"SMTP verification status. Values: 'ok' (verified), 'absent' (mailbox doesn't exist), 'invalid' (invalid mailbox), 'unresponsive' (server unresponsive), 'unknown' (verification status unknown).\"),\n \"typos-fixed\": z.boolean().describe(\"Was a typo automatically fixed in the address.\"),\n \"domain-error\": z.boolean().describe(\"Are there domain or DNS errors present.\"),\n \"is-catch-all\": z.boolean().describe(\"Does the domain accept mail for any username (catch-all domain).\"),\n \"syntax-error\": z.boolean().describe(\"Does the address have syntax errors.\"),\n \"domain-status\": z.string().describe(\"Status of the email domain. Values: 'ok' (valid), 'invalid' (invalid domain), 'no-service' (no mail service), 'no-mail' (domain doesn't accept mail), 'mx-invalid' (invalid MX records), 'mx-bogon' (bogon IP in MX), 'resolv-error' (DNS resolution error).\"),\n \"is-disposable\": z.boolean().describe(\"Is this a temporary/disposable email address.\"),\n \"smtp-response\": z.string().describe(\"Raw SMTP response message from the mail server.\"),\n}).describe(\"Response from the EMAIL_VERIFY action.\");\n\nexport const neutrinoEmailVerify = action(\"NEUTRINO_EMAIL_VERIFY\", {\n slug: \"neutrino-email-verify\",\n name: \"Verify Email Address\",\n description: \"Tool to verify and analyze the deliverability of an email address. Use when you need SMTP-based validation before sending emails.\",\n input: NeutrinoEmailVerifyInput,\n output: NeutrinoEmailVerifyOutput,\n});\n"],"mappings":";;;AAIA,MAAa,2BAAyCA,IAAAA,EAAE,OAAO;CAC7D,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8BAA8B;CACzD,aAAaA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,2DAA2D,CAAC,CAAC,SAAS;AACzH,CAAC,CAAC,CAAC,SAAS,yCAAyC;AACrD,MAAa,4BAA0CA,IAAAA,EAAE,OAAO;CAC9D,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,kEAAkE;CAC7F,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACxG,OAAOA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,uFAAuF;CACnH,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uCAAuC;CACnE,WAAWA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,oGAAoG,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC1J,YAAYA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,4EAA4E,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACnI,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,qCAAqC;CACnE,UAAUA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,2EAA2E;CAC1G,eAAeA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,8DAA8D;CAClG,eAAeA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,0EAA0E;CAC9G,eAAeA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,oEAAoE;CACxG,eAAeA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,kMAAkM;CACrO,eAAeA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,gDAAgD;CACpF,gBAAgBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,yCAAyC;CAC9E,gBAAgBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,kEAAkE;CACvG,gBAAgBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,sCAAsC;CAC3E,iBAAiBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8PAA8P;CACnS,iBAAiBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,+CAA+C;CACrF,iBAAiBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,iDAAiD;AACxF,CAAC,CAAC,CAAC,SAAS,wCAAwC;AAEpD,MAAa,sBAAsBC,eAAAA,OAAO,yBAAyB;CACjE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
//#region src/actions/email-verify.d.ts
|
|
4
|
+
declare const NeutrinoEmailVerifyInput: z.ZodTypeAny;
|
|
5
|
+
declare const NeutrinoEmailVerifyOutput: z.ZodTypeAny;
|
|
6
|
+
declare const neutrinoEmailVerify: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { neutrinoEmailVerify };
|
|
9
|
+
//# sourceMappingURL=email-verify.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-verify.d.cts","names":[],"sources":["../../src/actions/email-verify.ts"],"mappings":";;;cAIa,wBAAA,EAA0B,CAAA,CAAE,UAGa;AAAA,cACzC,yBAAA,EAA2B,CAAA,CAAE,UAoBW;AAAA,cAExC,mBAAA,gCAAmB,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
//#region src/actions/email-verify.d.ts
|
|
4
|
+
declare const NeutrinoEmailVerifyInput: z.ZodTypeAny;
|
|
5
|
+
declare const NeutrinoEmailVerifyOutput: z.ZodTypeAny;
|
|
6
|
+
declare const neutrinoEmailVerify: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { neutrinoEmailVerify };
|
|
9
|
+
//# sourceMappingURL=email-verify.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-verify.d.mts","names":[],"sources":["../../src/actions/email-verify.ts"],"mappings":";;;cAIa,wBAAA,EAA0B,CAAA,CAAE,UAGa;AAAA,cACzC,yBAAA,EAA2B,CAAA,CAAE,UAoBW;AAAA,cAExC,mBAAA,gCAAmB,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { action } from "../action.mjs";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
const neutrinoEmailVerify = action("NEUTRINO_EMAIL_VERIFY", {
|
|
4
|
+
slug: "neutrino-email-verify",
|
|
5
|
+
name: "Verify Email Address",
|
|
6
|
+
description: "Tool to verify and analyze the deliverability of an email address. Use when you need SMTP-based validation before sending emails.",
|
|
7
|
+
input: z.object({
|
|
8
|
+
email: z.string().describe("The email address to verify."),
|
|
9
|
+
"fix-typos": z.boolean().default(false).describe("Automatically attempt to fix common typos in the address.").optional()
|
|
10
|
+
}).describe("Parameters for the EMAIL_VERIFY action."),
|
|
11
|
+
output: z.object({
|
|
12
|
+
email: z.string().describe("The complete email address (corrected if fix-typos was enabled)."),
|
|
13
|
+
"mx-ip": z.string().describe("First resolved IP address of the primary MX server.").nullable().optional(),
|
|
14
|
+
valid: z.boolean().describe("Is this a valid email address with correct syntax, registered domain, and MX records."),
|
|
15
|
+
domain: z.string().describe("The domain name of the email address."),
|
|
16
|
+
"is-role": z.boolean().describe("Is this a role-based address (e.g., admin@, support@, info@). May not be present in all responses.").nullable().optional(),
|
|
17
|
+
"mx-found": z.boolean().describe("Were MX records found for the domain. May not be present in all responses.").nullable().optional(),
|
|
18
|
+
provider: z.string().describe("Email hosting provider domain name."),
|
|
19
|
+
verified: z.boolean().describe("Has the email address passed SMTP username verification (mailbox exists)."),
|
|
20
|
+
"is-deferred": z.boolean().describe("Is this a temporary mail server failure (retry recommended)."),
|
|
21
|
+
"is-freemail": z.boolean().describe("Is the address from a free email provider (e.g., Gmail, Yahoo, Outlook)."),
|
|
22
|
+
"is-personal": z.boolean().describe("Is this a personal email address (false for role-based addresses)."),
|
|
23
|
+
"smtp-status": z.string().describe("SMTP verification status. Values: 'ok' (verified), 'absent' (mailbox doesn't exist), 'invalid' (invalid mailbox), 'unresponsive' (server unresponsive), 'unknown' (verification status unknown)."),
|
|
24
|
+
"typos-fixed": z.boolean().describe("Was a typo automatically fixed in the address."),
|
|
25
|
+
"domain-error": z.boolean().describe("Are there domain or DNS errors present."),
|
|
26
|
+
"is-catch-all": z.boolean().describe("Does the domain accept mail for any username (catch-all domain)."),
|
|
27
|
+
"syntax-error": z.boolean().describe("Does the address have syntax errors."),
|
|
28
|
+
"domain-status": z.string().describe("Status of the email domain. Values: 'ok' (valid), 'invalid' (invalid domain), 'no-service' (no mail service), 'no-mail' (domain doesn't accept mail), 'mx-invalid' (invalid MX records), 'mx-bogon' (bogon IP in MX), 'resolv-error' (DNS resolution error)."),
|
|
29
|
+
"is-disposable": z.boolean().describe("Is this a temporary/disposable email address."),
|
|
30
|
+
"smtp-response": z.string().describe("Raw SMTP response message from the mail server.")
|
|
31
|
+
}).describe("Response from the EMAIL_VERIFY action.")
|
|
32
|
+
});
|
|
33
|
+
//#endregion
|
|
34
|
+
export { neutrinoEmailVerify };
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=email-verify.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-verify.mjs","names":[],"sources":["../../src/actions/email-verify.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const NeutrinoEmailVerifyInput: z.ZodTypeAny = z.object({\n email: z.string().describe(\"The email address to verify.\"),\n \"fix-typos\": z.boolean().default(false).describe(\"Automatically attempt to fix common typos in the address.\").optional(),\n}).describe(\"Parameters for the EMAIL_VERIFY action.\");\nexport const NeutrinoEmailVerifyOutput: z.ZodTypeAny = z.object({\n email: z.string().describe(\"The complete email address (corrected if fix-typos was enabled).\"),\n \"mx-ip\": z.string().describe(\"First resolved IP address of the primary MX server.\").nullable().optional(),\n valid: z.boolean().describe(\"Is this a valid email address with correct syntax, registered domain, and MX records.\"),\n domain: z.string().describe(\"The domain name of the email address.\"),\n \"is-role\": z.boolean().describe(\"Is this a role-based address (e.g., admin@, support@, info@). May not be present in all responses.\").nullable().optional(),\n \"mx-found\": z.boolean().describe(\"Were MX records found for the domain. May not be present in all responses.\").nullable().optional(),\n provider: z.string().describe(\"Email hosting provider domain name.\"),\n verified: z.boolean().describe(\"Has the email address passed SMTP username verification (mailbox exists).\"),\n \"is-deferred\": z.boolean().describe(\"Is this a temporary mail server failure (retry recommended).\"),\n \"is-freemail\": z.boolean().describe(\"Is the address from a free email provider (e.g., Gmail, Yahoo, Outlook).\"),\n \"is-personal\": z.boolean().describe(\"Is this a personal email address (false for role-based addresses).\"),\n \"smtp-status\": z.string().describe(\"SMTP verification status. Values: 'ok' (verified), 'absent' (mailbox doesn't exist), 'invalid' (invalid mailbox), 'unresponsive' (server unresponsive), 'unknown' (verification status unknown).\"),\n \"typos-fixed\": z.boolean().describe(\"Was a typo automatically fixed in the address.\"),\n \"domain-error\": z.boolean().describe(\"Are there domain or DNS errors present.\"),\n \"is-catch-all\": z.boolean().describe(\"Does the domain accept mail for any username (catch-all domain).\"),\n \"syntax-error\": z.boolean().describe(\"Does the address have syntax errors.\"),\n \"domain-status\": z.string().describe(\"Status of the email domain. Values: 'ok' (valid), 'invalid' (invalid domain), 'no-service' (no mail service), 'no-mail' (domain doesn't accept mail), 'mx-invalid' (invalid MX records), 'mx-bogon' (bogon IP in MX), 'resolv-error' (DNS resolution error).\"),\n \"is-disposable\": z.boolean().describe(\"Is this a temporary/disposable email address.\"),\n \"smtp-response\": z.string().describe(\"Raw SMTP response message from the mail server.\"),\n}).describe(\"Response from the EMAIL_VERIFY action.\");\n\nexport const neutrinoEmailVerify = action(\"NEUTRINO_EMAIL_VERIFY\", {\n slug: \"neutrino-email-verify\",\n name: \"Verify Email Address\",\n description: \"Tool to verify and analyze the deliverability of an email address. Use when you need SMTP-based validation before sending emails.\",\n input: NeutrinoEmailVerifyInput,\n output: NeutrinoEmailVerifyOutput,\n});\n"],"mappings":";;AA8BA,MAAa,sBAAsB,OAAO,yBAAyB;CACjE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OA9BoD,EAAE,OAAO;EAC7D,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,8BAA8B;EACzD,aAAa,EAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,2DAA2D,CAAC,CAAC,SAAS;CACzH,CAAC,CAAC,CAAC,SAAS,yCA2BH;CACP,QA3BqD,EAAE,OAAO;EAC9D,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,kEAAkE;EAC7F,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EACxG,OAAO,EAAE,QAAQ,CAAC,CAAC,SAAS,uFAAuF;EACnH,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,uCAAuC;EACnE,WAAW,EAAE,QAAQ,CAAC,CAAC,SAAS,oGAAoG,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EAC1J,YAAY,EAAE,QAAQ,CAAC,CAAC,SAAS,4EAA4E,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;EACnI,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,qCAAqC;EACnE,UAAU,EAAE,QAAQ,CAAC,CAAC,SAAS,2EAA2E;EAC1G,eAAe,EAAE,QAAQ,CAAC,CAAC,SAAS,8DAA8D;EAClG,eAAe,EAAE,QAAQ,CAAC,CAAC,SAAS,0EAA0E;EAC9G,eAAe,EAAE,QAAQ,CAAC,CAAC,SAAS,oEAAoE;EACxG,eAAe,EAAE,OAAO,CAAC,CAAC,SAAS,kMAAkM;EACrO,eAAe,EAAE,QAAQ,CAAC,CAAC,SAAS,gDAAgD;EACpF,gBAAgB,EAAE,QAAQ,CAAC,CAAC,SAAS,yCAAyC;EAC9E,gBAAgB,EAAE,QAAQ,CAAC,CAAC,SAAS,kEAAkE;EACvG,gBAAgB,EAAE,QAAQ,CAAC,CAAC,SAAS,sCAAsC;EAC3E,iBAAiB,EAAE,OAAO,CAAC,CAAC,SAAS,8PAA8P;EACnS,iBAAiB,EAAE,QAAQ,CAAC,CAAC,SAAS,+CAA+C;EACrF,iBAAiB,EAAE,OAAO,CAAC,CAAC,SAAS,iDAAiD;CACxF,CAAC,CAAC,CAAC,SAAS,wCAOF;AACV,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
const require_action = require("../action.cjs");
|
|
2
|
+
let zod = require("zod");
|
|
3
|
+
//#region src/actions/geocode-address.ts
|
|
4
|
+
const NeutrinoGeocodeAddressInput = zod.z.object({
|
|
5
|
+
address: zod.z.string().describe("The full address or place name to geocode"),
|
|
6
|
+
"country-code": zod.z.string().describe("ISO 2-letter country code to limit results").optional(),
|
|
7
|
+
"fuzzy-search": zod.z.boolean().default(false).describe("Enable enhanced matching for misspelled addresses").optional(),
|
|
8
|
+
"language-code": zod.z.string().describe("ISO 2-letter language code for result translation").optional()
|
|
9
|
+
}).describe("Request model for geocoding an address or place name.");
|
|
10
|
+
const NeutrinoGeocodeAddress_TimezoneSchema = zod.z.object({
|
|
11
|
+
id: zod.z.string().describe("Timezone identifier (e.g., 'America/New_York')").nullable().optional(),
|
|
12
|
+
abbr: zod.z.string().describe("Timezone abbreviation (e.g., 'EST', 'PST')").nullable().optional(),
|
|
13
|
+
date: zod.z.string().describe("Current date in the timezone").nullable().optional(),
|
|
14
|
+
name: zod.z.string().describe("Full timezone name").nullable().optional(),
|
|
15
|
+
time: zod.z.string().describe("Current time in the timezone").nullable().optional(),
|
|
16
|
+
offset: zod.z.string().describe("UTC offset (e.g., '+00:00', '-05:00')").nullable().optional()
|
|
17
|
+
}).passthrough().describe("Timezone information for a location.");
|
|
18
|
+
const NeutrinoGeocodeAddress_LocationSchema = zod.z.object({
|
|
19
|
+
city: zod.z.string().describe("City or locality name").nullable().optional(),
|
|
20
|
+
state: zod.z.string().describe("State or region name").nullable().optional(),
|
|
21
|
+
address: zod.z.string().describe("Full comma-separated address string"),
|
|
22
|
+
country: zod.z.string().describe("Country name").nullable().optional(),
|
|
23
|
+
geohash: zod.z.string().describe("Location geohash identifier").nullable().optional(),
|
|
24
|
+
latitude: zod.z.number().describe("Geographic latitude coordinate"),
|
|
25
|
+
timezone: NeutrinoGeocodeAddress_TimezoneSchema.nullable().optional(),
|
|
26
|
+
longitude: zod.z.number().describe("Geographic longitude coordinate"),
|
|
27
|
+
"postal-code": zod.z.string().describe("Postal/ZIP code").nullable().optional(),
|
|
28
|
+
"region-code": zod.z.string().describe("ISO 3166-2 region code").nullable().optional(),
|
|
29
|
+
"country-code": zod.z.string().describe("ISO 2-letter country code").nullable().optional(),
|
|
30
|
+
"building-type": zod.z.string().describe("Building category (house, apartment, office, etc.)").nullable().optional(),
|
|
31
|
+
"country-code3": zod.z.string().describe("ISO 3-letter country code").nullable().optional(),
|
|
32
|
+
"location-type": zod.z.string().describe("Precision level (address, street, city, postal-code, etc.)").nullable().optional(),
|
|
33
|
+
"postal-address": zod.z.string().describe("Address formatted for postal delivery").nullable().optional()
|
|
34
|
+
}).passthrough().describe("A single geocoded location result.");
|
|
35
|
+
const NeutrinoGeocodeAddressOutput = zod.z.object({
|
|
36
|
+
found: zod.z.number().int().describe("Number of possible matching locations found"),
|
|
37
|
+
locations: zod.z.array(NeutrinoGeocodeAddress_LocationSchema).describe("List of matching location objects").nullable().optional()
|
|
38
|
+
}).describe("Response model for geocode-address.");
|
|
39
|
+
const neutrinoGeocodeAddress = require_action.action("NEUTRINO_GEOCODE_ADDRESS", {
|
|
40
|
+
slug: "neutrino-geocode-address",
|
|
41
|
+
name: "Geocode Address",
|
|
42
|
+
description: "Tool to geocode an address. Use when you need geographic coordinates for an address or place name.",
|
|
43
|
+
input: NeutrinoGeocodeAddressInput,
|
|
44
|
+
output: NeutrinoGeocodeAddressOutput
|
|
45
|
+
});
|
|
46
|
+
//#endregion
|
|
47
|
+
exports.neutrinoGeocodeAddress = neutrinoGeocodeAddress;
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=geocode-address.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geocode-address.cjs","names":["z","action"],"sources":["../../src/actions/geocode-address.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const NeutrinoGeocodeAddressInput: z.ZodTypeAny = z.object({\n address: z.string().describe(\"The full address or place name to geocode\"),\n \"country-code\": z.string().describe(\"ISO 2-letter country code to limit results\").optional(),\n \"fuzzy-search\": z.boolean().default(false).describe(\"Enable enhanced matching for misspelled addresses\").optional(),\n \"language-code\": z.string().describe(\"ISO 2-letter language code for result translation\").optional(),\n}).describe(\"Request model for geocoding an address or place name.\");\nconst NeutrinoGeocodeAddress_TimezoneSchema: z.ZodTypeAny = z.object({\n id: z.string().describe(\"Timezone identifier (e.g., 'America/New_York')\").nullable().optional(),\n abbr: z.string().describe(\"Timezone abbreviation (e.g., 'EST', 'PST')\").nullable().optional(),\n date: z.string().describe(\"Current date in the timezone\").nullable().optional(),\n name: z.string().describe(\"Full timezone name\").nullable().optional(),\n time: z.string().describe(\"Current time in the timezone\").nullable().optional(),\n offset: z.string().describe(\"UTC offset (e.g., '+00:00', '-05:00')\").nullable().optional(),\n}).passthrough().describe(\"Timezone information for a location.\");\nconst NeutrinoGeocodeAddress_LocationSchema: z.ZodTypeAny = z.object({\n city: z.string().describe(\"City or locality name\").nullable().optional(),\n state: z.string().describe(\"State or region name\").nullable().optional(),\n address: z.string().describe(\"Full comma-separated address string\"),\n country: z.string().describe(\"Country name\").nullable().optional(),\n geohash: z.string().describe(\"Location geohash identifier\").nullable().optional(),\n latitude: z.number().describe(\"Geographic latitude coordinate\"),\n timezone: NeutrinoGeocodeAddress_TimezoneSchema.nullable().optional(),\n longitude: z.number().describe(\"Geographic longitude coordinate\"),\n \"postal-code\": z.string().describe(\"Postal/ZIP code\").nullable().optional(),\n \"region-code\": z.string().describe(\"ISO 3166-2 region code\").nullable().optional(),\n \"country-code\": z.string().describe(\"ISO 2-letter country code\").nullable().optional(),\n \"building-type\": z.string().describe(\"Building category (house, apartment, office, etc.)\").nullable().optional(),\n \"country-code3\": z.string().describe(\"ISO 3-letter country code\").nullable().optional(),\n \"location-type\": z.string().describe(\"Precision level (address, street, city, postal-code, etc.)\").nullable().optional(),\n \"postal-address\": z.string().describe(\"Address formatted for postal delivery\").nullable().optional(),\n}).passthrough().describe(\"A single geocoded location result.\");\nexport const NeutrinoGeocodeAddressOutput: z.ZodTypeAny = z.object({\n found: z.number().int().describe(\"Number of possible matching locations found\"),\n locations: z.array(NeutrinoGeocodeAddress_LocationSchema).describe(\"List of matching location objects\").nullable().optional(),\n}).describe(\"Response model for geocode-address.\");\n\nexport const neutrinoGeocodeAddress = action(\"NEUTRINO_GEOCODE_ADDRESS\", {\n slug: \"neutrino-geocode-address\",\n name: \"Geocode Address\",\n description: \"Tool to geocode an address. Use when you need geographic coordinates for an address or place name.\",\n input: NeutrinoGeocodeAddressInput,\n output: NeutrinoGeocodeAddressOutput,\n});\n"],"mappings":";;;AAIA,MAAa,8BAA4CA,IAAAA,EAAE,OAAO;CAChE,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,2CAA2C;CACxE,gBAAgBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4CAA4C,CAAC,CAAC,SAAS;CAC3F,gBAAgBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,mDAAmD,CAAC,CAAC,SAAS;CAClH,iBAAiBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,mDAAmD,CAAC,CAAC,SAAS;AACrG,CAAC,CAAC,CAAC,SAAS,uDAAuD;AACnE,MAAM,wCAAsDA,IAAAA,EAAE,OAAO;CACnE,IAAIA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,gDAAgD,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC9F,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4CAA4C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC5F,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8BAA8B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC9E,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACpE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8BAA8B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC9E,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uCAAuC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AAC3F,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,sCAAsC;AAChE,MAAM,wCAAsDA,IAAAA,EAAE,OAAO;CACnE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACvE,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACvE,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,qCAAqC;CAClE,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACjE,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAChF,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,gCAAgC;CAC9D,UAAU,sCAAsC,SAAS,CAAC,CAAC,SAAS;CACpE,WAAWA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,iCAAiC;CAChE,eAAeA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,iBAAiB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC1E,eAAeA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wBAAwB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACjF,gBAAgBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,2BAA2B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACrF,iBAAiBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oDAAoD,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC/G,iBAAiBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,2BAA2B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACtF,iBAAiBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4DAA4D,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACvH,kBAAkBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uCAAuC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AACrG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,oCAAoC;AAC9D,MAAa,+BAA6CA,IAAAA,EAAE,OAAO;CACjE,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,6CAA6C;CAC9E,WAAWA,IAAAA,EAAE,MAAM,qCAAqC,CAAC,CAAC,SAAS,mCAAmC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AAC9H,CAAC,CAAC,CAAC,SAAS,qCAAqC;AAEjD,MAAa,yBAAyBC,eAAAA,OAAO,4BAA4B;CACvE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAAQ;AACV,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
//#region src/actions/geocode-address.d.ts
|
|
4
|
+
declare const NeutrinoGeocodeAddressInput: z.ZodTypeAny;
|
|
5
|
+
declare const NeutrinoGeocodeAddressOutput: z.ZodTypeAny;
|
|
6
|
+
declare const neutrinoGeocodeAddress: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { neutrinoGeocodeAddress };
|
|
9
|
+
//# sourceMappingURL=geocode-address.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geocode-address.d.cts","names":[],"sources":["../../src/actions/geocode-address.ts"],"mappings":";;;cAIa,2BAAA,EAA6B,CAAA,CAAE,UAKwB;AAAA,cA0BvD,4BAAA,EAA8B,CAAA,CAAE,UAGK;AAAA,cAErC,sBAAA,gCAAsB,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
//#region src/actions/geocode-address.d.ts
|
|
4
|
+
declare const NeutrinoGeocodeAddressInput: z.ZodTypeAny;
|
|
5
|
+
declare const NeutrinoGeocodeAddressOutput: z.ZodTypeAny;
|
|
6
|
+
declare const neutrinoGeocodeAddress: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { neutrinoGeocodeAddress };
|
|
9
|
+
//# sourceMappingURL=geocode-address.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geocode-address.d.mts","names":[],"sources":["../../src/actions/geocode-address.ts"],"mappings":";;;cAIa,2BAAA,EAA6B,CAAA,CAAE,UAKwB;AAAA,cA0BvD,4BAAA,EAA8B,CAAA,CAAE,UAGK;AAAA,cAErC,sBAAA,gCAAsB,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { action } from "../action.mjs";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
//#region src/actions/geocode-address.ts
|
|
4
|
+
const NeutrinoGeocodeAddressInput = z.object({
|
|
5
|
+
address: z.string().describe("The full address or place name to geocode"),
|
|
6
|
+
"country-code": z.string().describe("ISO 2-letter country code to limit results").optional(),
|
|
7
|
+
"fuzzy-search": z.boolean().default(false).describe("Enable enhanced matching for misspelled addresses").optional(),
|
|
8
|
+
"language-code": z.string().describe("ISO 2-letter language code for result translation").optional()
|
|
9
|
+
}).describe("Request model for geocoding an address or place name.");
|
|
10
|
+
const NeutrinoGeocodeAddress_TimezoneSchema = z.object({
|
|
11
|
+
id: z.string().describe("Timezone identifier (e.g., 'America/New_York')").nullable().optional(),
|
|
12
|
+
abbr: z.string().describe("Timezone abbreviation (e.g., 'EST', 'PST')").nullable().optional(),
|
|
13
|
+
date: z.string().describe("Current date in the timezone").nullable().optional(),
|
|
14
|
+
name: z.string().describe("Full timezone name").nullable().optional(),
|
|
15
|
+
time: z.string().describe("Current time in the timezone").nullable().optional(),
|
|
16
|
+
offset: z.string().describe("UTC offset (e.g., '+00:00', '-05:00')").nullable().optional()
|
|
17
|
+
}).passthrough().describe("Timezone information for a location.");
|
|
18
|
+
const NeutrinoGeocodeAddress_LocationSchema = z.object({
|
|
19
|
+
city: z.string().describe("City or locality name").nullable().optional(),
|
|
20
|
+
state: z.string().describe("State or region name").nullable().optional(),
|
|
21
|
+
address: z.string().describe("Full comma-separated address string"),
|
|
22
|
+
country: z.string().describe("Country name").nullable().optional(),
|
|
23
|
+
geohash: z.string().describe("Location geohash identifier").nullable().optional(),
|
|
24
|
+
latitude: z.number().describe("Geographic latitude coordinate"),
|
|
25
|
+
timezone: NeutrinoGeocodeAddress_TimezoneSchema.nullable().optional(),
|
|
26
|
+
longitude: z.number().describe("Geographic longitude coordinate"),
|
|
27
|
+
"postal-code": z.string().describe("Postal/ZIP code").nullable().optional(),
|
|
28
|
+
"region-code": z.string().describe("ISO 3166-2 region code").nullable().optional(),
|
|
29
|
+
"country-code": z.string().describe("ISO 2-letter country code").nullable().optional(),
|
|
30
|
+
"building-type": z.string().describe("Building category (house, apartment, office, etc.)").nullable().optional(),
|
|
31
|
+
"country-code3": z.string().describe("ISO 3-letter country code").nullable().optional(),
|
|
32
|
+
"location-type": z.string().describe("Precision level (address, street, city, postal-code, etc.)").nullable().optional(),
|
|
33
|
+
"postal-address": z.string().describe("Address formatted for postal delivery").nullable().optional()
|
|
34
|
+
}).passthrough().describe("A single geocoded location result.");
|
|
35
|
+
const neutrinoGeocodeAddress = action("NEUTRINO_GEOCODE_ADDRESS", {
|
|
36
|
+
slug: "neutrino-geocode-address",
|
|
37
|
+
name: "Geocode Address",
|
|
38
|
+
description: "Tool to geocode an address. Use when you need geographic coordinates for an address or place name.",
|
|
39
|
+
input: NeutrinoGeocodeAddressInput,
|
|
40
|
+
output: z.object({
|
|
41
|
+
found: z.number().int().describe("Number of possible matching locations found"),
|
|
42
|
+
locations: z.array(NeutrinoGeocodeAddress_LocationSchema).describe("List of matching location objects").nullable().optional()
|
|
43
|
+
}).describe("Response model for geocode-address.")
|
|
44
|
+
});
|
|
45
|
+
//#endregion
|
|
46
|
+
export { neutrinoGeocodeAddress };
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=geocode-address.mjs.map
|