@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 @@
|
|
|
1
|
+
{"version":3,"file":"ip-info.mjs","names":[],"sources":["../../src/actions/ip-info.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const NeutrinoIpInfoInput: z.ZodTypeAny = z.object({\n ip: z.string().describe(\"IPv4 or IPv6 address to look up (supports CIDR notation)\"),\n \"reverse-lookup\": z.boolean().default(false).describe(\"Enable reverse DNS (PTR) lookup to get hostname. May add latency to the request.\").optional(),\n}).describe(\"Request model for the IP_INFO action.\");\nconst NeutrinoIpInfo_TimezoneInfoSchema: z.ZodTypeAny = z.object({\n id: z.string().describe(\"IANA timezone identifier (e.g., 'America/Los_Angeles')\").nullable().optional(),\n abbr: z.string().describe(\"Timezone abbreviation (e.g., 'PST')\").nullable().optional(),\n date: z.string().describe(\"Current date at the location (YYYY-MM-DD)\").nullable().optional(),\n name: z.string().describe(\"Full timezone name (e.g., 'Pacific Standard Time')\").nullable().optional(),\n time: z.string().describe(\"Current time at the location\").nullable().optional(),\n offset: z.string().describe(\"UTC offset in ±hh:mm format (e.g., '-08:00')\").nullable().optional(),\n}).passthrough().describe(\"Timezone information for the IP location\");\nexport const NeutrinoIpInfoOutput: z.ZodTypeAny = z.object({\n ip: z.string().describe(\"The IP address that was looked up\").nullable().optional(),\n city: z.string().describe(\"City name if available\").nullable().optional(),\n \"is-v6\": z.boolean().describe(\"True if this is an IPv6 address\").nullable().optional(),\n valid: z.boolean().describe(\"True if this is a valid IP address\"),\n region: z.string().describe(\"Full region or state name\").nullable().optional(),\n country: z.string().describe(\"Full country name\").nullable().optional(),\n hostname: z.string().describe(\"Reverse DNS hostname (only if reverse-lookup parameter is true)\").nullable().optional(),\n \"is-bogon\": z.boolean().describe(\"True if this is a bogon (reserved/private) IP address\").nullable().optional(),\n latitude: z.number().describe(\"Latitude coordinate\").nullable().optional(),\n timezone: NeutrinoIpInfo_TimezoneInfoSchema.nullable().optional(),\n longitude: z.number().describe(\"Longitude coordinate\").nullable().optional(),\n \"host-domain\": z.string().describe(\"Domain name extracted from hostname (only if reverse-lookup is true)\").nullable().optional(),\n \"region-code\": z.string().describe(\"Region code (e.g., state code)\").nullable().optional(),\n \"country-code\": z.string().describe(\"ISO 2-letter country code\").nullable().optional(),\n \"is-v4-mapped\": z.boolean().describe(\"True if this is an IPv4-mapped IPv6 address\").nullable().optional(),\n \"country-code3\": z.string().describe(\"ISO 3-letter country code\").nullable().optional(),\n \"currency-code\": z.string().describe(\"ISO 4217 currency code\").nullable().optional(),\n \"language-code\": z.string().describe(\"ISO 639 language code\").nullable().optional(),\n \"continent-code\": z.string().describe(\"Two-letter continent code (e.g., 'NA' for North America)\").nullable().optional(),\n}).describe(\"Response model for the IP_INFO action.\");\n\nexport const neutrinoIpInfo = action(\"NEUTRINO_IP_INFO\", {\n slug: \"neutrino-ip-info\",\n name: \"IP Info\",\n description: \"Get comprehensive geolocation and network information for an IPv4 or IPv6 address. Returns location data (country, region, city, coordinates), timezone information, and optionally reverse DNS hostname. Does NOT include VPN/proxy detection or user-agent parsing. For VPN detection, use the IP Probe action instead.\",\n input: NeutrinoIpInfoInput,\n output: NeutrinoIpInfoOutput,\n});\n"],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
const require_action = require("../action.cjs");
|
|
2
|
+
let zod = require("zod");
|
|
3
|
+
//#region src/actions/ip-probe.ts
|
|
4
|
+
const NeutrinoIpProbeInput = zod.z.object({
|
|
5
|
+
ip: zod.z.string().describe("The IPv4 or IPv6 address to analyze"),
|
|
6
|
+
"user-agent": zod.z.string().describe("User-Agent string for device and browser detection").optional(),
|
|
7
|
+
"forward-lookup": zod.z.boolean().default(false).describe("For domains, perform a DNS A record lookup").optional(),
|
|
8
|
+
"reverse-lookup": zod.z.boolean().default(false).describe("Perform a reverse DNS lookup to get hostname").optional()
|
|
9
|
+
}).describe("Request model for IP Probe.");
|
|
10
|
+
const NeutrinoIpProbeOutput = zod.z.object({
|
|
11
|
+
ip: zod.z.string().describe("The analyzed IP address"),
|
|
12
|
+
asn: zod.z.string().describe("Autonomous System Number").nullable().optional(),
|
|
13
|
+
city: zod.z.string().describe("City name").nullable().optional(),
|
|
14
|
+
"is-v6": zod.z.boolean().describe("True if IPv6 address").nullable().optional(),
|
|
15
|
+
valid: zod.z.boolean().describe("True if the IP address is valid"),
|
|
16
|
+
"as-age": zod.z.number().int().describe("Age of the AS in years").nullable().optional(),
|
|
17
|
+
"is-isp": zod.z.boolean().describe("True if the IP is from an ISP").nullable().optional(),
|
|
18
|
+
"is-tor": zod.z.boolean().describe("True if the IP is part of the TOR network").nullable().optional(),
|
|
19
|
+
"is-vpn": zod.z.boolean().describe("True if a VPN service is detected").nullable().optional(),
|
|
20
|
+
region: zod.z.string().describe("Region/state/province name").nullable().optional(),
|
|
21
|
+
"as-cidr": zod.z.string().describe("AS CIDR range").nullable().optional(),
|
|
22
|
+
country: zod.z.string().describe("Full country name").nullable().optional(),
|
|
23
|
+
hostname: zod.z.string().describe("Hostname via reverse DNS (if lookup enabled)").nullable().optional(),
|
|
24
|
+
"is-bogon": zod.z.boolean().describe("True if bogon/reserved IP").nullable().optional(),
|
|
25
|
+
"is-proxy": zod.z.boolean().describe("True if a proxy is detected").nullable().optional(),
|
|
26
|
+
"as-domains": zod.z.array(zod.z.string()).describe("List of domains associated with the AS").nullable().optional(),
|
|
27
|
+
"is-hosting": zod.z.boolean().describe("True if the IP is from a hosting provider").nullable().optional(),
|
|
28
|
+
"vpn-domain": zod.z.string().describe("VPN domain if detected").nullable().optional(),
|
|
29
|
+
"host-domain": zod.z.string().describe("Host domain name").nullable().optional(),
|
|
30
|
+
"region-code": zod.z.string().describe("Region code").nullable().optional(),
|
|
31
|
+
"country-code": zod.z.string().describe("ISO 2-letter country code").nullable().optional(),
|
|
32
|
+
"is-v4-mapped": zod.z.boolean().describe("True if IPv4-mapped IPv6 address").nullable().optional(),
|
|
33
|
+
"country-code3": zod.z.string().describe("ISO 3-letter country code").nullable().optional(),
|
|
34
|
+
"currency-code": zod.z.string().describe("Currency code").nullable().optional(),
|
|
35
|
+
"provider-type": zod.z.string().describe("Type of internet provider (e.g., hosting, ISP, VPN)").nullable().optional(),
|
|
36
|
+
"as-description": zod.z.string().describe("AS description").nullable().optional(),
|
|
37
|
+
"continent-code": zod.z.string().describe("Continent code").nullable().optional(),
|
|
38
|
+
"as-country-code": zod.z.string().describe("AS country code").nullable().optional(),
|
|
39
|
+
"is-icloud-relay": zod.z.boolean().describe("True if Apple iCloud Private Relay is detected").nullable().optional(),
|
|
40
|
+
"provider-domain": zod.z.string().describe("Domain of the provider").nullable().optional(),
|
|
41
|
+
"as-country-code3": zod.z.string().describe("AS 3-letter country code").nullable().optional(),
|
|
42
|
+
"provider-website": zod.z.string().describe("Provider's website URL").nullable().optional(),
|
|
43
|
+
"provider-description": zod.z.string().describe("Description of the provider").nullable().optional()
|
|
44
|
+
}).describe("Response model for IP Probe.");
|
|
45
|
+
const neutrinoIpProbe = require_action.action("NEUTRINO_IP_PROBE", {
|
|
46
|
+
slug: "neutrino-ip-probe",
|
|
47
|
+
name: "IP Probe",
|
|
48
|
+
description: "Analyzes an IPv4 or IPv6 address to extract detailed network intelligence including geolocation, ISP/hosting provider information, ASN details, and security flags (VPN, proxy, TOR detection). Performs live network scanning and service probes. Use when you need comprehensive IP address analysis beyond basic geolocation.",
|
|
49
|
+
input: NeutrinoIpProbeInput,
|
|
50
|
+
output: NeutrinoIpProbeOutput
|
|
51
|
+
});
|
|
52
|
+
//#endregion
|
|
53
|
+
exports.neutrinoIpProbe = neutrinoIpProbe;
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=ip-probe.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ip-probe.cjs","names":["z","action"],"sources":["../../src/actions/ip-probe.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const NeutrinoIpProbeInput: z.ZodTypeAny = z.object({\n ip: z.string().describe(\"The IPv4 or IPv6 address to analyze\"),\n \"user-agent\": z.string().describe(\"User-Agent string for device and browser detection\").optional(),\n \"forward-lookup\": z.boolean().default(false).describe(\"For domains, perform a DNS A record lookup\").optional(),\n \"reverse-lookup\": z.boolean().default(false).describe(\"Perform a reverse DNS lookup to get hostname\").optional(),\n}).describe(\"Request model for IP Probe.\");\nexport const NeutrinoIpProbeOutput: z.ZodTypeAny = z.object({\n ip: z.string().describe(\"The analyzed IP address\"),\n asn: z.string().describe(\"Autonomous System Number\").nullable().optional(),\n city: z.string().describe(\"City name\").nullable().optional(),\n \"is-v6\": z.boolean().describe(\"True if IPv6 address\").nullable().optional(),\n valid: z.boolean().describe(\"True if the IP address is valid\"),\n \"as-age\": z.number().int().describe(\"Age of the AS in years\").nullable().optional(),\n \"is-isp\": z.boolean().describe(\"True if the IP is from an ISP\").nullable().optional(),\n \"is-tor\": z.boolean().describe(\"True if the IP is part of the TOR network\").nullable().optional(),\n \"is-vpn\": z.boolean().describe(\"True if a VPN service is detected\").nullable().optional(),\n region: z.string().describe(\"Region/state/province name\").nullable().optional(),\n \"as-cidr\": z.string().describe(\"AS CIDR range\").nullable().optional(),\n country: z.string().describe(\"Full country name\").nullable().optional(),\n hostname: z.string().describe(\"Hostname via reverse DNS (if lookup enabled)\").nullable().optional(),\n \"is-bogon\": z.boolean().describe(\"True if bogon/reserved IP\").nullable().optional(),\n \"is-proxy\": z.boolean().describe(\"True if a proxy is detected\").nullable().optional(),\n \"as-domains\": z.array(z.string()).describe(\"List of domains associated with the AS\").nullable().optional(),\n \"is-hosting\": z.boolean().describe(\"True if the IP is from a hosting provider\").nullable().optional(),\n \"vpn-domain\": z.string().describe(\"VPN domain if detected\").nullable().optional(),\n \"host-domain\": z.string().describe(\"Host domain name\").nullable().optional(),\n \"region-code\": z.string().describe(\"Region code\").nullable().optional(),\n \"country-code\": z.string().describe(\"ISO 2-letter country code\").nullable().optional(),\n \"is-v4-mapped\": z.boolean().describe(\"True if IPv4-mapped IPv6 address\").nullable().optional(),\n \"country-code3\": z.string().describe(\"ISO 3-letter country code\").nullable().optional(),\n \"currency-code\": z.string().describe(\"Currency code\").nullable().optional(),\n \"provider-type\": z.string().describe(\"Type of internet provider (e.g., hosting, ISP, VPN)\").nullable().optional(),\n \"as-description\": z.string().describe(\"AS description\").nullable().optional(),\n \"continent-code\": z.string().describe(\"Continent code\").nullable().optional(),\n \"as-country-code\": z.string().describe(\"AS country code\").nullable().optional(),\n \"is-icloud-relay\": z.boolean().describe(\"True if Apple iCloud Private Relay is detected\").nullable().optional(),\n \"provider-domain\": z.string().describe(\"Domain of the provider\").nullable().optional(),\n \"as-country-code3\": z.string().describe(\"AS 3-letter country code\").nullable().optional(),\n \"provider-website\": z.string().describe(\"Provider's website URL\").nullable().optional(),\n \"provider-description\": z.string().describe(\"Description of the provider\").nullable().optional(),\n}).describe(\"Response model for IP Probe.\");\n\nexport const neutrinoIpProbe = action(\"NEUTRINO_IP_PROBE\", {\n slug: \"neutrino-ip-probe\",\n name: \"IP Probe\",\n description: \"Analyzes an IPv4 or IPv6 address to extract detailed network intelligence including geolocation, ISP/hosting provider information, ASN details, and security flags (VPN, proxy, TOR detection). Performs live network scanning and service probes. Use when you need comprehensive IP address analysis beyond basic geolocation.\",\n input: NeutrinoIpProbeInput,\n output: NeutrinoIpProbeOutput,\n});\n"],"mappings":";;;AAIA,MAAa,uBAAqCA,IAAAA,EAAE,OAAO;CACzD,IAAIA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,qCAAqC;CAC7D,cAAcA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oDAAoD,CAAC,CAAC,SAAS;CACjG,kBAAkBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,4CAA4C,CAAC,CAAC,SAAS;CAC7G,kBAAkBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS;AACjH,CAAC,CAAC,CAAC,SAAS,6BAA6B;AACzC,MAAa,wBAAsCA,IAAAA,EAAE,OAAO;CAC1D,IAAIA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yBAAyB;CACjD,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACzE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC3D,SAASA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC1E,OAAOA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,iCAAiC;CAC7D,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,wBAAwB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAClF,UAAUA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,+BAA+B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACpF,UAAUA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,2CAA2C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAChG,UAAUA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,mCAAmC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACxF,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC9E,WAAWA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACpE,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACtE,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8CAA8C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAClG,YAAYA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,2BAA2B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAClF,YAAYA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACpF,cAAcA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,wCAAwC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACzG,cAAcA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,2CAA2C,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACpG,cAAcA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wBAAwB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAChF,eAAeA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC3E,eAAeA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACtE,gBAAgBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,2BAA2B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACrF,gBAAgBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,kCAAkC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC7F,iBAAiBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,2BAA2B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACtF,iBAAiBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC1E,iBAAiBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAChH,kBAAkBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC5E,kBAAkBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC5E,mBAAmBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,iBAAiB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC9E,mBAAmBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,gDAAgD,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC9G,mBAAmBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wBAAwB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACrF,oBAAoBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACxF,oBAAoBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wBAAwB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CACtF,wBAAwBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;AACjG,CAAC,CAAC,CAAC,SAAS,8BAA8B;AAE1C,MAAa,kBAAkBC,eAAAA,OAAO,qBAAqB;CACzD,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/ip-probe.d.ts
|
|
4
|
+
declare const NeutrinoIpProbeInput: z.ZodTypeAny;
|
|
5
|
+
declare const NeutrinoIpProbeOutput: z.ZodTypeAny;
|
|
6
|
+
declare const neutrinoIpProbe: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { neutrinoIpProbe };
|
|
9
|
+
//# sourceMappingURL=ip-probe.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ip-probe.d.cts","names":[],"sources":["../../src/actions/ip-probe.ts"],"mappings":";;;cAIa,oBAAA,EAAsB,CAAA,CAAE,UAKK;AAAA,cAC7B,qBAAA,EAAuB,CAAA,CAAE,UAkCK;AAAA,cAE9B,eAAA,gCAAe,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
//#region src/actions/ip-probe.d.ts
|
|
4
|
+
declare const NeutrinoIpProbeInput: z.ZodTypeAny;
|
|
5
|
+
declare const NeutrinoIpProbeOutput: z.ZodTypeAny;
|
|
6
|
+
declare const neutrinoIpProbe: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { neutrinoIpProbe };
|
|
9
|
+
//# sourceMappingURL=ip-probe.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ip-probe.d.mts","names":[],"sources":["../../src/actions/ip-probe.ts"],"mappings":";;;cAIa,oBAAA,EAAsB,CAAA,CAAE,UAKK;AAAA,cAC7B,qBAAA,EAAuB,CAAA,CAAE,UAkCK;AAAA,cAE9B,eAAA,gCAAe,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { action } from "../action.mjs";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
const neutrinoIpProbe = action("NEUTRINO_IP_PROBE", {
|
|
4
|
+
slug: "neutrino-ip-probe",
|
|
5
|
+
name: "IP Probe",
|
|
6
|
+
description: "Analyzes an IPv4 or IPv6 address to extract detailed network intelligence including geolocation, ISP/hosting provider information, ASN details, and security flags (VPN, proxy, TOR detection). Performs live network scanning and service probes. Use when you need comprehensive IP address analysis beyond basic geolocation.",
|
|
7
|
+
input: z.object({
|
|
8
|
+
ip: z.string().describe("The IPv4 or IPv6 address to analyze"),
|
|
9
|
+
"user-agent": z.string().describe("User-Agent string for device and browser detection").optional(),
|
|
10
|
+
"forward-lookup": z.boolean().default(false).describe("For domains, perform a DNS A record lookup").optional(),
|
|
11
|
+
"reverse-lookup": z.boolean().default(false).describe("Perform a reverse DNS lookup to get hostname").optional()
|
|
12
|
+
}).describe("Request model for IP Probe."),
|
|
13
|
+
output: z.object({
|
|
14
|
+
ip: z.string().describe("The analyzed IP address"),
|
|
15
|
+
asn: z.string().describe("Autonomous System Number").nullable().optional(),
|
|
16
|
+
city: z.string().describe("City name").nullable().optional(),
|
|
17
|
+
"is-v6": z.boolean().describe("True if IPv6 address").nullable().optional(),
|
|
18
|
+
valid: z.boolean().describe("True if the IP address is valid"),
|
|
19
|
+
"as-age": z.number().int().describe("Age of the AS in years").nullable().optional(),
|
|
20
|
+
"is-isp": z.boolean().describe("True if the IP is from an ISP").nullable().optional(),
|
|
21
|
+
"is-tor": z.boolean().describe("True if the IP is part of the TOR network").nullable().optional(),
|
|
22
|
+
"is-vpn": z.boolean().describe("True if a VPN service is detected").nullable().optional(),
|
|
23
|
+
region: z.string().describe("Region/state/province name").nullable().optional(),
|
|
24
|
+
"as-cidr": z.string().describe("AS CIDR range").nullable().optional(),
|
|
25
|
+
country: z.string().describe("Full country name").nullable().optional(),
|
|
26
|
+
hostname: z.string().describe("Hostname via reverse DNS (if lookup enabled)").nullable().optional(),
|
|
27
|
+
"is-bogon": z.boolean().describe("True if bogon/reserved IP").nullable().optional(),
|
|
28
|
+
"is-proxy": z.boolean().describe("True if a proxy is detected").nullable().optional(),
|
|
29
|
+
"as-domains": z.array(z.string()).describe("List of domains associated with the AS").nullable().optional(),
|
|
30
|
+
"is-hosting": z.boolean().describe("True if the IP is from a hosting provider").nullable().optional(),
|
|
31
|
+
"vpn-domain": z.string().describe("VPN domain if detected").nullable().optional(),
|
|
32
|
+
"host-domain": z.string().describe("Host domain name").nullable().optional(),
|
|
33
|
+
"region-code": z.string().describe("Region code").nullable().optional(),
|
|
34
|
+
"country-code": z.string().describe("ISO 2-letter country code").nullable().optional(),
|
|
35
|
+
"is-v4-mapped": z.boolean().describe("True if IPv4-mapped IPv6 address").nullable().optional(),
|
|
36
|
+
"country-code3": z.string().describe("ISO 3-letter country code").nullable().optional(),
|
|
37
|
+
"currency-code": z.string().describe("Currency code").nullable().optional(),
|
|
38
|
+
"provider-type": z.string().describe("Type of internet provider (e.g., hosting, ISP, VPN)").nullable().optional(),
|
|
39
|
+
"as-description": z.string().describe("AS description").nullable().optional(),
|
|
40
|
+
"continent-code": z.string().describe("Continent code").nullable().optional(),
|
|
41
|
+
"as-country-code": z.string().describe("AS country code").nullable().optional(),
|
|
42
|
+
"is-icloud-relay": z.boolean().describe("True if Apple iCloud Private Relay is detected").nullable().optional(),
|
|
43
|
+
"provider-domain": z.string().describe("Domain of the provider").nullable().optional(),
|
|
44
|
+
"as-country-code3": z.string().describe("AS 3-letter country code").nullable().optional(),
|
|
45
|
+
"provider-website": z.string().describe("Provider's website URL").nullable().optional(),
|
|
46
|
+
"provider-description": z.string().describe("Description of the provider").nullable().optional()
|
|
47
|
+
}).describe("Response model for IP Probe.")
|
|
48
|
+
});
|
|
49
|
+
//#endregion
|
|
50
|
+
export { neutrinoIpProbe };
|
|
51
|
+
|
|
52
|
+
//# sourceMappingURL=ip-probe.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ip-probe.mjs","names":[],"sources":["../../src/actions/ip-probe.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const NeutrinoIpProbeInput: z.ZodTypeAny = z.object({\n ip: z.string().describe(\"The IPv4 or IPv6 address to analyze\"),\n \"user-agent\": z.string().describe(\"User-Agent string for device and browser detection\").optional(),\n \"forward-lookup\": z.boolean().default(false).describe(\"For domains, perform a DNS A record lookup\").optional(),\n \"reverse-lookup\": z.boolean().default(false).describe(\"Perform a reverse DNS lookup to get hostname\").optional(),\n}).describe(\"Request model for IP Probe.\");\nexport const NeutrinoIpProbeOutput: z.ZodTypeAny = z.object({\n ip: z.string().describe(\"The analyzed IP address\"),\n asn: z.string().describe(\"Autonomous System Number\").nullable().optional(),\n city: z.string().describe(\"City name\").nullable().optional(),\n \"is-v6\": z.boolean().describe(\"True if IPv6 address\").nullable().optional(),\n valid: z.boolean().describe(\"True if the IP address is valid\"),\n \"as-age\": z.number().int().describe(\"Age of the AS in years\").nullable().optional(),\n \"is-isp\": z.boolean().describe(\"True if the IP is from an ISP\").nullable().optional(),\n \"is-tor\": z.boolean().describe(\"True if the IP is part of the TOR network\").nullable().optional(),\n \"is-vpn\": z.boolean().describe(\"True if a VPN service is detected\").nullable().optional(),\n region: z.string().describe(\"Region/state/province name\").nullable().optional(),\n \"as-cidr\": z.string().describe(\"AS CIDR range\").nullable().optional(),\n country: z.string().describe(\"Full country name\").nullable().optional(),\n hostname: z.string().describe(\"Hostname via reverse DNS (if lookup enabled)\").nullable().optional(),\n \"is-bogon\": z.boolean().describe(\"True if bogon/reserved IP\").nullable().optional(),\n \"is-proxy\": z.boolean().describe(\"True if a proxy is detected\").nullable().optional(),\n \"as-domains\": z.array(z.string()).describe(\"List of domains associated with the AS\").nullable().optional(),\n \"is-hosting\": z.boolean().describe(\"True if the IP is from a hosting provider\").nullable().optional(),\n \"vpn-domain\": z.string().describe(\"VPN domain if detected\").nullable().optional(),\n \"host-domain\": z.string().describe(\"Host domain name\").nullable().optional(),\n \"region-code\": z.string().describe(\"Region code\").nullable().optional(),\n \"country-code\": z.string().describe(\"ISO 2-letter country code\").nullable().optional(),\n \"is-v4-mapped\": z.boolean().describe(\"True if IPv4-mapped IPv6 address\").nullable().optional(),\n \"country-code3\": z.string().describe(\"ISO 3-letter country code\").nullable().optional(),\n \"currency-code\": z.string().describe(\"Currency code\").nullable().optional(),\n \"provider-type\": z.string().describe(\"Type of internet provider (e.g., hosting, ISP, VPN)\").nullable().optional(),\n \"as-description\": z.string().describe(\"AS description\").nullable().optional(),\n \"continent-code\": z.string().describe(\"Continent code\").nullable().optional(),\n \"as-country-code\": z.string().describe(\"AS country code\").nullable().optional(),\n \"is-icloud-relay\": z.boolean().describe(\"True if Apple iCloud Private Relay is detected\").nullable().optional(),\n \"provider-domain\": z.string().describe(\"Domain of the provider\").nullable().optional(),\n \"as-country-code3\": z.string().describe(\"AS 3-letter country code\").nullable().optional(),\n \"provider-website\": z.string().describe(\"Provider's website URL\").nullable().optional(),\n \"provider-description\": z.string().describe(\"Description of the provider\").nullable().optional(),\n}).describe(\"Response model for IP Probe.\");\n\nexport const neutrinoIpProbe = action(\"NEUTRINO_IP_PROBE\", {\n slug: \"neutrino-ip-probe\",\n name: \"IP Probe\",\n description: \"Analyzes an IPv4 or IPv6 address to extract detailed network intelligence including geolocation, ISP/hosting provider information, ASN details, and security flags (VPN, proxy, TOR detection). Performs live network scanning and service probes. Use when you need comprehensive IP address analysis beyond basic geolocation.\",\n input: NeutrinoIpProbeInput,\n output: NeutrinoIpProbeOutput,\n});\n"],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
const require_action = require("../action.cjs");
|
|
2
|
+
let zod = require("zod");
|
|
3
|
+
//#region src/actions/lookup-domain.ts
|
|
4
|
+
const NeutrinoLookupDomainInput = zod.z.object({
|
|
5
|
+
host: zod.z.string().describe("A domain name, hostname, FQDN, URL, HTML link or email address to lookup"),
|
|
6
|
+
live: zod.z.boolean().default(true).describe("For domains that we have never seen before then perform various live checks and realtime reconnaissance. NOTE: this option may add additional non-deterministic delay to the request, if you require consistently fast API response times or just want to check our domain blocklists then you can disable this option").optional()
|
|
7
|
+
}).describe("Request model for Domain Lookup action.");
|
|
8
|
+
const NeutrinoLookupDomain_BlocklistSensorSchema = zod.z.object({
|
|
9
|
+
id: zod.z.number().int().describe("Sensor ID"),
|
|
10
|
+
blocklist: zod.z.string().describe("Blocklist category name"),
|
|
11
|
+
description: zod.z.string().describe("Sensor description")
|
|
12
|
+
}).describe("Details on which specific blocklist sensor detected this domain.");
|
|
13
|
+
const NeutrinoLookupDomainOutput = zod.z.object({
|
|
14
|
+
age: zod.z.number().int().describe("The number of days since the domain was registered. A domain age of under 90 days is generally considered to be potentially risky. A value of 0 indicates no registration date was found for this domain"),
|
|
15
|
+
tld: zod.z.string().describe("The top-level domain (TLD)"),
|
|
16
|
+
fqdn: zod.z.string().describe("The fully qualified domain name (FQDN)"),
|
|
17
|
+
rank: zod.z.number().int().describe("The domains estimated global traffic rank with the highest rank being 1. A value of 0 indicates the domain is currently ranked outside of the top 1M of domains"),
|
|
18
|
+
valid: zod.z.boolean().describe("True if a valid domain was found. For a domain to be considered valid it must be registered and have valid DNS NS records"),
|
|
19
|
+
domain: zod.z.string().describe("The primary domain name excluding any subdomains. This is also referred to as the second-level domain (SLD)"),
|
|
20
|
+
"is-gov": zod.z.boolean().describe("Is this domain under a government or military TLD"),
|
|
21
|
+
"tld-cc": zod.z.string().describe("For a country code top-level domain (ccTLD) this will contain the associated ISO 2-letter country code"),
|
|
22
|
+
sensors: zod.z.array(NeutrinoLookupDomain_BlocklistSensorSchema).describe("An array of objects containing details on which specific blocklist sensors have detected this domain"),
|
|
23
|
+
"is-adult": zod.z.boolean().describe("This domain is hosting adult content such as porn, webcams, escorts, etc"),
|
|
24
|
+
blocklists: zod.z.array(zod.z.string()).describe("An array of strings indicating which blocklist categories this domain is listed on. Current possible values are: phishing, malware, spam, anonymizer, nefarious"),
|
|
25
|
+
"is-opennic": zod.z.boolean().describe("Is this domain under an OpenNIC TLD"),
|
|
26
|
+
"is-pending": zod.z.boolean().describe("True if this domain is unseen and is currently being processed in the background. This field only matters when the 'live' lookup setting has been explicitly disabled and indicates that not all domain data my be present yet"),
|
|
27
|
+
"expiry-date": zod.z.string().describe("The ISO date this domain is due to expire. An empty value indicates we could not reliably determine the date"),
|
|
28
|
+
"mail-status": zod.z.string().describe("The status of the domains mail configuration, possible values are: ok, invalid, no-service, no-mail, mx-invalid, mx-bogon, resolv-error, unknown"),
|
|
29
|
+
"dns-provider": zod.z.string().describe("The primary domain of the DNS provider for this domain"),
|
|
30
|
+
"is-malicious": zod.z.boolean().describe("Consider this domain malicious as it is currently listed on at least 1 blocklist"),
|
|
31
|
+
"is-subdomain": zod.z.boolean().describe("Is the FQDN a subdomain of the primary domain"),
|
|
32
|
+
"registrar-id": zod.z.number().int().describe("The IANA registrar ID (0 if no registrar ID was found)"),
|
|
33
|
+
"mail-provider": zod.z.string().describe("The primary domain of the email provider for this domain. An empty value indicates the domain has no valid MX records"),
|
|
34
|
+
"registrar-name": zod.z.string().describe("The name of the domain registrar owning this domain"),
|
|
35
|
+
"website-status": zod.z.string().describe("The status of the domains website configuration, possible values are: ok, no-http, no-ip, bogon-ip, parked, unknown"),
|
|
36
|
+
"registered-date": zod.z.string().describe("The ISO date this domain was registered or first seen on the internet. An empty value indicates we could not reliably determine the date"),
|
|
37
|
+
"website-provider": zod.z.string().describe("The primary domain of the website hosting provider for this domain. An empty value indicates the domain has no active website provider")
|
|
38
|
+
}).describe("Response model for Domain Lookup action.");
|
|
39
|
+
const neutrinoLookupDomain = require_action.action("NEUTRINO_LOOKUP_DOMAIN", {
|
|
40
|
+
slug: "neutrino-lookup-domain",
|
|
41
|
+
name: "Domain Lookup",
|
|
42
|
+
description: "Tool to perform a domain lookup to retrieve WHOIS, DNS records, domain registration information and detect potentially malicious or dangerous domains. Use when you need to assess domain reputation, check for security threats, or gather comprehensive domain intelligence.",
|
|
43
|
+
input: NeutrinoLookupDomainInput,
|
|
44
|
+
output: NeutrinoLookupDomainOutput
|
|
45
|
+
});
|
|
46
|
+
//#endregion
|
|
47
|
+
exports.neutrinoLookupDomain = neutrinoLookupDomain;
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=lookup-domain.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lookup-domain.cjs","names":["z","action"],"sources":["../../src/actions/lookup-domain.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const NeutrinoLookupDomainInput: z.ZodTypeAny = z.object({\n host: z.string().describe(\"A domain name, hostname, FQDN, URL, HTML link or email address to lookup\"),\n live: z.boolean().default(true).describe(\"For domains that we have never seen before then perform various live checks and realtime reconnaissance. NOTE: this option may add additional non-deterministic delay to the request, if you require consistently fast API response times or just want to check our domain blocklists then you can disable this option\").optional(),\n}).describe(\"Request model for Domain Lookup action.\");\nconst NeutrinoLookupDomain_BlocklistSensorSchema: z.ZodTypeAny = z.object({\n id: z.number().int().describe(\"Sensor ID\"),\n blocklist: z.string().describe(\"Blocklist category name\"),\n description: z.string().describe(\"Sensor description\"),\n}).describe(\"Details on which specific blocklist sensor detected this domain.\");\nexport const NeutrinoLookupDomainOutput: z.ZodTypeAny = z.object({\n age: z.number().int().describe(\"The number of days since the domain was registered. A domain age of under 90 days is generally considered to be potentially risky. A value of 0 indicates no registration date was found for this domain\"),\n tld: z.string().describe(\"The top-level domain (TLD)\"),\n fqdn: z.string().describe(\"The fully qualified domain name (FQDN)\"),\n rank: z.number().int().describe(\"The domains estimated global traffic rank with the highest rank being 1. A value of 0 indicates the domain is currently ranked outside of the top 1M of domains\"),\n valid: z.boolean().describe(\"True if a valid domain was found. For a domain to be considered valid it must be registered and have valid DNS NS records\"),\n domain: z.string().describe(\"The primary domain name excluding any subdomains. This is also referred to as the second-level domain (SLD)\"),\n \"is-gov\": z.boolean().describe(\"Is this domain under a government or military TLD\"),\n \"tld-cc\": z.string().describe(\"For a country code top-level domain (ccTLD) this will contain the associated ISO 2-letter country code\"),\n sensors: z.array(NeutrinoLookupDomain_BlocklistSensorSchema).describe(\"An array of objects containing details on which specific blocklist sensors have detected this domain\"),\n \"is-adult\": z.boolean().describe(\"This domain is hosting adult content such as porn, webcams, escorts, etc\"),\n blocklists: z.array(z.string()).describe(\"An array of strings indicating which blocklist categories this domain is listed on. Current possible values are: phishing, malware, spam, anonymizer, nefarious\"),\n \"is-opennic\": z.boolean().describe(\"Is this domain under an OpenNIC TLD\"),\n \"is-pending\": z.boolean().describe(\"True if this domain is unseen and is currently being processed in the background. This field only matters when the 'live' lookup setting has been explicitly disabled and indicates that not all domain data my be present yet\"),\n \"expiry-date\": z.string().describe(\"The ISO date this domain is due to expire. An empty value indicates we could not reliably determine the date\"),\n \"mail-status\": z.string().describe(\"The status of the domains mail configuration, possible values are: ok, invalid, no-service, no-mail, mx-invalid, mx-bogon, resolv-error, unknown\"),\n \"dns-provider\": z.string().describe(\"The primary domain of the DNS provider for this domain\"),\n \"is-malicious\": z.boolean().describe(\"Consider this domain malicious as it is currently listed on at least 1 blocklist\"),\n \"is-subdomain\": z.boolean().describe(\"Is the FQDN a subdomain of the primary domain\"),\n \"registrar-id\": z.number().int().describe(\"The IANA registrar ID (0 if no registrar ID was found)\"),\n \"mail-provider\": z.string().describe(\"The primary domain of the email provider for this domain. An empty value indicates the domain has no valid MX records\"),\n \"registrar-name\": z.string().describe(\"The name of the domain registrar owning this domain\"),\n \"website-status\": z.string().describe(\"The status of the domains website configuration, possible values are: ok, no-http, no-ip, bogon-ip, parked, unknown\"),\n \"registered-date\": z.string().describe(\"The ISO date this domain was registered or first seen on the internet. An empty value indicates we could not reliably determine the date\"),\n \"website-provider\": z.string().describe(\"The primary domain of the website hosting provider for this domain. An empty value indicates the domain has no active website provider\"),\n}).describe(\"Response model for Domain Lookup action.\");\n\nexport const neutrinoLookupDomain = action(\"NEUTRINO_LOOKUP_DOMAIN\", {\n slug: \"neutrino-lookup-domain\",\n name: \"Domain Lookup\",\n description: \"Tool to perform a domain lookup to retrieve WHOIS, DNS records, domain registration information and detect potentially malicious or dangerous domains. Use when you need to assess domain reputation, check for security threats, or gather comprehensive domain intelligence.\",\n input: NeutrinoLookupDomainInput,\n output: NeutrinoLookupDomainOutput,\n});\n"],"mappings":";;;AAIA,MAAa,4BAA0CA,IAAAA,EAAE,OAAO;CAC9D,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,0EAA0E;CACpG,MAAMA,IAAAA,EAAE,QAAQ,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,wTAAwT,CAAC,CAAC,SAAS;AAC9W,CAAC,CAAC,CAAC,SAAS,yCAAyC;AACrD,MAAM,6CAA2DA,IAAAA,EAAE,OAAO;CACxE,IAAIA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,WAAW;CACzC,WAAWA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yBAAyB;CACxD,aAAaA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oBAAoB;AACvD,CAAC,CAAC,CAAC,SAAS,kEAAkE;AAC9E,MAAa,6BAA2CA,IAAAA,EAAE,OAAO;CAC/D,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,0MAA0M;CACzO,KAAKA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B;CACrD,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wCAAwC;CAClE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,iKAAiK;CACjM,OAAOA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,2HAA2H;CACvJ,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6GAA6G;CACzI,UAAUA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,mDAAmD;CAClF,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wGAAwG;CACtI,SAASA,IAAAA,EAAE,MAAM,0CAA0C,CAAC,CAAC,SAAS,sGAAsG;CAC5K,YAAYA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,0EAA0E;CAC3G,YAAYA,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,iKAAiK;CAC1M,cAAcA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,qCAAqC;CACxE,cAAcA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,gOAAgO;CACnQ,eAAeA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,8GAA8G;CACjJ,eAAeA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,kJAAkJ;CACrL,gBAAgBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wDAAwD;CAC5F,gBAAgBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,kFAAkF;CACvH,gBAAgBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,+CAA+C;CACpF,gBAAgBA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,wDAAwD;CAClG,iBAAiBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uHAAuH;CAC5J,kBAAkBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,qDAAqD;CAC3F,kBAAkBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,qHAAqH;CAC3J,mBAAmBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,0IAA0I;CACjL,oBAAoBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,wIAAwI;AAClL,CAAC,CAAC,CAAC,SAAS,0CAA0C;AAEtD,MAAa,uBAAuBC,eAAAA,OAAO,0BAA0B;CACnE,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/lookup-domain.d.ts
|
|
4
|
+
declare const NeutrinoLookupDomainInput: z.ZodTypeAny;
|
|
5
|
+
declare const NeutrinoLookupDomainOutput: z.ZodTypeAny;
|
|
6
|
+
declare const neutrinoLookupDomain: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { neutrinoLookupDomain };
|
|
9
|
+
//# sourceMappingURL=lookup-domain.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lookup-domain.d.cts","names":[],"sources":["../../src/actions/lookup-domain.ts"],"mappings":";;;cAIa,yBAAA,EAA2B,CAAA,CAAE,UAGY;AAAA,cAMzC,0BAAA,EAA4B,CAAA,CAAE,UAyBY;AAAA,cAE1C,oBAAA,gCAAoB,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
//#region src/actions/lookup-domain.d.ts
|
|
4
|
+
declare const NeutrinoLookupDomainInput: z.ZodTypeAny;
|
|
5
|
+
declare const NeutrinoLookupDomainOutput: z.ZodTypeAny;
|
|
6
|
+
declare const neutrinoLookupDomain: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { neutrinoLookupDomain };
|
|
9
|
+
//# sourceMappingURL=lookup-domain.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lookup-domain.d.mts","names":[],"sources":["../../src/actions/lookup-domain.ts"],"mappings":";;;cAIa,yBAAA,EAA2B,CAAA,CAAE,UAGY;AAAA,cAMzC,0BAAA,EAA4B,CAAA,CAAE,UAyBY;AAAA,cAE1C,oBAAA,gCAAoB,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/lookup-domain.ts
|
|
4
|
+
const NeutrinoLookupDomainInput = z.object({
|
|
5
|
+
host: z.string().describe("A domain name, hostname, FQDN, URL, HTML link or email address to lookup"),
|
|
6
|
+
live: z.boolean().default(true).describe("For domains that we have never seen before then perform various live checks and realtime reconnaissance. NOTE: this option may add additional non-deterministic delay to the request, if you require consistently fast API response times or just want to check our domain blocklists then you can disable this option").optional()
|
|
7
|
+
}).describe("Request model for Domain Lookup action.");
|
|
8
|
+
const NeutrinoLookupDomain_BlocklistSensorSchema = z.object({
|
|
9
|
+
id: z.number().int().describe("Sensor ID"),
|
|
10
|
+
blocklist: z.string().describe("Blocklist category name"),
|
|
11
|
+
description: z.string().describe("Sensor description")
|
|
12
|
+
}).describe("Details on which specific blocklist sensor detected this domain.");
|
|
13
|
+
const neutrinoLookupDomain = action("NEUTRINO_LOOKUP_DOMAIN", {
|
|
14
|
+
slug: "neutrino-lookup-domain",
|
|
15
|
+
name: "Domain Lookup",
|
|
16
|
+
description: "Tool to perform a domain lookup to retrieve WHOIS, DNS records, domain registration information and detect potentially malicious or dangerous domains. Use when you need to assess domain reputation, check for security threats, or gather comprehensive domain intelligence.",
|
|
17
|
+
input: NeutrinoLookupDomainInput,
|
|
18
|
+
output: z.object({
|
|
19
|
+
age: z.number().int().describe("The number of days since the domain was registered. A domain age of under 90 days is generally considered to be potentially risky. A value of 0 indicates no registration date was found for this domain"),
|
|
20
|
+
tld: z.string().describe("The top-level domain (TLD)"),
|
|
21
|
+
fqdn: z.string().describe("The fully qualified domain name (FQDN)"),
|
|
22
|
+
rank: z.number().int().describe("The domains estimated global traffic rank with the highest rank being 1. A value of 0 indicates the domain is currently ranked outside of the top 1M of domains"),
|
|
23
|
+
valid: z.boolean().describe("True if a valid domain was found. For a domain to be considered valid it must be registered and have valid DNS NS records"),
|
|
24
|
+
domain: z.string().describe("The primary domain name excluding any subdomains. This is also referred to as the second-level domain (SLD)"),
|
|
25
|
+
"is-gov": z.boolean().describe("Is this domain under a government or military TLD"),
|
|
26
|
+
"tld-cc": z.string().describe("For a country code top-level domain (ccTLD) this will contain the associated ISO 2-letter country code"),
|
|
27
|
+
sensors: z.array(NeutrinoLookupDomain_BlocklistSensorSchema).describe("An array of objects containing details on which specific blocklist sensors have detected this domain"),
|
|
28
|
+
"is-adult": z.boolean().describe("This domain is hosting adult content such as porn, webcams, escorts, etc"),
|
|
29
|
+
blocklists: z.array(z.string()).describe("An array of strings indicating which blocklist categories this domain is listed on. Current possible values are: phishing, malware, spam, anonymizer, nefarious"),
|
|
30
|
+
"is-opennic": z.boolean().describe("Is this domain under an OpenNIC TLD"),
|
|
31
|
+
"is-pending": z.boolean().describe("True if this domain is unseen and is currently being processed in the background. This field only matters when the 'live' lookup setting has been explicitly disabled and indicates that not all domain data my be present yet"),
|
|
32
|
+
"expiry-date": z.string().describe("The ISO date this domain is due to expire. An empty value indicates we could not reliably determine the date"),
|
|
33
|
+
"mail-status": z.string().describe("The status of the domains mail configuration, possible values are: ok, invalid, no-service, no-mail, mx-invalid, mx-bogon, resolv-error, unknown"),
|
|
34
|
+
"dns-provider": z.string().describe("The primary domain of the DNS provider for this domain"),
|
|
35
|
+
"is-malicious": z.boolean().describe("Consider this domain malicious as it is currently listed on at least 1 blocklist"),
|
|
36
|
+
"is-subdomain": z.boolean().describe("Is the FQDN a subdomain of the primary domain"),
|
|
37
|
+
"registrar-id": z.number().int().describe("The IANA registrar ID (0 if no registrar ID was found)"),
|
|
38
|
+
"mail-provider": z.string().describe("The primary domain of the email provider for this domain. An empty value indicates the domain has no valid MX records"),
|
|
39
|
+
"registrar-name": z.string().describe("The name of the domain registrar owning this domain"),
|
|
40
|
+
"website-status": z.string().describe("The status of the domains website configuration, possible values are: ok, no-http, no-ip, bogon-ip, parked, unknown"),
|
|
41
|
+
"registered-date": z.string().describe("The ISO date this domain was registered or first seen on the internet. An empty value indicates we could not reliably determine the date"),
|
|
42
|
+
"website-provider": z.string().describe("The primary domain of the website hosting provider for this domain. An empty value indicates the domain has no active website provider")
|
|
43
|
+
}).describe("Response model for Domain Lookup action.")
|
|
44
|
+
});
|
|
45
|
+
//#endregion
|
|
46
|
+
export { neutrinoLookupDomain };
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=lookup-domain.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lookup-domain.mjs","names":[],"sources":["../../src/actions/lookup-domain.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const NeutrinoLookupDomainInput: z.ZodTypeAny = z.object({\n host: z.string().describe(\"A domain name, hostname, FQDN, URL, HTML link or email address to lookup\"),\n live: z.boolean().default(true).describe(\"For domains that we have never seen before then perform various live checks and realtime reconnaissance. NOTE: this option may add additional non-deterministic delay to the request, if you require consistently fast API response times or just want to check our domain blocklists then you can disable this option\").optional(),\n}).describe(\"Request model for Domain Lookup action.\");\nconst NeutrinoLookupDomain_BlocklistSensorSchema: z.ZodTypeAny = z.object({\n id: z.number().int().describe(\"Sensor ID\"),\n blocklist: z.string().describe(\"Blocklist category name\"),\n description: z.string().describe(\"Sensor description\"),\n}).describe(\"Details on which specific blocklist sensor detected this domain.\");\nexport const NeutrinoLookupDomainOutput: z.ZodTypeAny = z.object({\n age: z.number().int().describe(\"The number of days since the domain was registered. A domain age of under 90 days is generally considered to be potentially risky. A value of 0 indicates no registration date was found for this domain\"),\n tld: z.string().describe(\"The top-level domain (TLD)\"),\n fqdn: z.string().describe(\"The fully qualified domain name (FQDN)\"),\n rank: z.number().int().describe(\"The domains estimated global traffic rank with the highest rank being 1. A value of 0 indicates the domain is currently ranked outside of the top 1M of domains\"),\n valid: z.boolean().describe(\"True if a valid domain was found. For a domain to be considered valid it must be registered and have valid DNS NS records\"),\n domain: z.string().describe(\"The primary domain name excluding any subdomains. This is also referred to as the second-level domain (SLD)\"),\n \"is-gov\": z.boolean().describe(\"Is this domain under a government or military TLD\"),\n \"tld-cc\": z.string().describe(\"For a country code top-level domain (ccTLD) this will contain the associated ISO 2-letter country code\"),\n sensors: z.array(NeutrinoLookupDomain_BlocklistSensorSchema).describe(\"An array of objects containing details on which specific blocklist sensors have detected this domain\"),\n \"is-adult\": z.boolean().describe(\"This domain is hosting adult content such as porn, webcams, escorts, etc\"),\n blocklists: z.array(z.string()).describe(\"An array of strings indicating which blocklist categories this domain is listed on. Current possible values are: phishing, malware, spam, anonymizer, nefarious\"),\n \"is-opennic\": z.boolean().describe(\"Is this domain under an OpenNIC TLD\"),\n \"is-pending\": z.boolean().describe(\"True if this domain is unseen and is currently being processed in the background. This field only matters when the 'live' lookup setting has been explicitly disabled and indicates that not all domain data my be present yet\"),\n \"expiry-date\": z.string().describe(\"The ISO date this domain is due to expire. An empty value indicates we could not reliably determine the date\"),\n \"mail-status\": z.string().describe(\"The status of the domains mail configuration, possible values are: ok, invalid, no-service, no-mail, mx-invalid, mx-bogon, resolv-error, unknown\"),\n \"dns-provider\": z.string().describe(\"The primary domain of the DNS provider for this domain\"),\n \"is-malicious\": z.boolean().describe(\"Consider this domain malicious as it is currently listed on at least 1 blocklist\"),\n \"is-subdomain\": z.boolean().describe(\"Is the FQDN a subdomain of the primary domain\"),\n \"registrar-id\": z.number().int().describe(\"The IANA registrar ID (0 if no registrar ID was found)\"),\n \"mail-provider\": z.string().describe(\"The primary domain of the email provider for this domain. An empty value indicates the domain has no valid MX records\"),\n \"registrar-name\": z.string().describe(\"The name of the domain registrar owning this domain\"),\n \"website-status\": z.string().describe(\"The status of the domains website configuration, possible values are: ok, no-http, no-ip, bogon-ip, parked, unknown\"),\n \"registered-date\": z.string().describe(\"The ISO date this domain was registered or first seen on the internet. An empty value indicates we could not reliably determine the date\"),\n \"website-provider\": z.string().describe(\"The primary domain of the website hosting provider for this domain. An empty value indicates the domain has no active website provider\"),\n}).describe(\"Response model for Domain Lookup action.\");\n\nexport const neutrinoLookupDomain = action(\"NEUTRINO_LOOKUP_DOMAIN\", {\n slug: \"neutrino-lookup-domain\",\n name: \"Domain Lookup\",\n description: \"Tool to perform a domain lookup to retrieve WHOIS, DNS records, domain registration information and detect potentially malicious or dangerous domains. Use when you need to assess domain reputation, check for security threats, or gather comprehensive domain intelligence.\",\n input: NeutrinoLookupDomainInput,\n output: NeutrinoLookupDomainOutput,\n});\n"],"mappings":";;;AAIA,MAAa,4BAA0C,EAAE,OAAO;CAC9D,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,0EAA0E;CACpG,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,wTAAwT,CAAC,CAAC,SAAS;AAC9W,CAAC,CAAC,CAAC,SAAS,yCAAyC;AACrD,MAAM,6CAA2D,EAAE,OAAO;CACxE,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,WAAW;CACzC,WAAW,EAAE,OAAO,CAAC,CAAC,SAAS,yBAAyB;CACxD,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,oBAAoB;AACvD,CAAC,CAAC,CAAC,SAAS,kEAAkE;AA4B9E,MAAa,uBAAuB,OAAO,0BAA0B;CACnE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAAO;CACP,QAhCsD,EAAE,OAAO;EAC/D,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,0MAA0M;EACzO,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B;EACrD,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,wCAAwC;EAClE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,iKAAiK;EACjM,OAAO,EAAE,QAAQ,CAAC,CAAC,SAAS,2HAA2H;EACvJ,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,6GAA6G;EACzI,UAAU,EAAE,QAAQ,CAAC,CAAC,SAAS,mDAAmD;EAClF,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,wGAAwG;EACtI,SAAS,EAAE,MAAM,0CAA0C,CAAC,CAAC,SAAS,sGAAsG;EAC5K,YAAY,EAAE,QAAQ,CAAC,CAAC,SAAS,0EAA0E;EAC3G,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,iKAAiK;EAC1M,cAAc,EAAE,QAAQ,CAAC,CAAC,SAAS,qCAAqC;EACxE,cAAc,EAAE,QAAQ,CAAC,CAAC,SAAS,gOAAgO;EACnQ,eAAe,EAAE,OAAO,CAAC,CAAC,SAAS,8GAA8G;EACjJ,eAAe,EAAE,OAAO,CAAC,CAAC,SAAS,kJAAkJ;EACrL,gBAAgB,EAAE,OAAO,CAAC,CAAC,SAAS,wDAAwD;EAC5F,gBAAgB,EAAE,QAAQ,CAAC,CAAC,SAAS,kFAAkF;EACvH,gBAAgB,EAAE,QAAQ,CAAC,CAAC,SAAS,+CAA+C;EACpF,gBAAgB,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,wDAAwD;EAClG,iBAAiB,EAAE,OAAO,CAAC,CAAC,SAAS,uHAAuH;EAC5J,kBAAkB,EAAE,OAAO,CAAC,CAAC,SAAS,qDAAqD;EAC3F,kBAAkB,EAAE,OAAO,CAAC,CAAC,SAAS,qHAAqH;EAC3J,mBAAmB,EAAE,OAAO,CAAC,CAAC,SAAS,0IAA0I;EACjL,oBAAoB,EAAE,OAAO,CAAC,CAAC,SAAS,wIAAwI;CAClL,CAAC,CAAC,CAAC,SAAS,0CAOF;AACV,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
const require_action = require("../action.cjs");
|
|
2
|
+
let zod = require("zod");
|
|
3
|
+
//#region src/actions/phone-validate.ts
|
|
4
|
+
const NeutrinoPhoneValidateInput = zod.z.object({
|
|
5
|
+
ip: zod.z.string().describe("User's IP address to help with number location.").optional(),
|
|
6
|
+
number: zod.z.string().describe("The phone number to validate in international format."),
|
|
7
|
+
"country-code": zod.z.string().describe("ISO 2-letter country code (required if number not in international format).").optional()
|
|
8
|
+
}).describe("Request model for phone number validation and lookup.");
|
|
9
|
+
const NeutrinoPhoneValidateOutput = zod.z.object({
|
|
10
|
+
type: zod.z.string().describe("Phone number type (mobile, fixed-line, premium-rate, toll-free, voip, or unknown)."),
|
|
11
|
+
valid: zod.z.boolean().describe("True if the phone number is valid."),
|
|
12
|
+
country: zod.z.string().describe("Country name."),
|
|
13
|
+
location: zod.z.string().describe("Location description for the number."),
|
|
14
|
+
"is-mobile": zod.z.boolean().describe("True if the number is a mobile number."),
|
|
15
|
+
"country-code": zod.z.string().describe("ISO 2-letter country code."),
|
|
16
|
+
"local-number": zod.z.string().describe("Number in local format."),
|
|
17
|
+
"country-code3": zod.z.string().describe("ISO 3-letter country code."),
|
|
18
|
+
"currency-code": zod.z.string().describe("ISO 3-letter currency code."),
|
|
19
|
+
"prefix-network": zod.z.string().describe("Network/carrier that owns the prefix (may be empty if unavailable)."),
|
|
20
|
+
"international-number": zod.z.string().describe("Number in international format."),
|
|
21
|
+
"international-calling-code": zod.z.string().describe("International calling code (e.g., '1' for US).")
|
|
22
|
+
}).describe("Response model for phone number validation and lookup.");
|
|
23
|
+
const neutrinoPhoneValidate = require_action.action("NEUTRINO_PHONE_VALIDATE", {
|
|
24
|
+
slug: "neutrino-phone-validate",
|
|
25
|
+
name: "Phone Validate",
|
|
26
|
+
description: "Tool to validate and lookup phone numbers. Use when you need to confirm number format and fetch location, carrier, and type details.",
|
|
27
|
+
input: NeutrinoPhoneValidateInput,
|
|
28
|
+
output: NeutrinoPhoneValidateOutput
|
|
29
|
+
});
|
|
30
|
+
//#endregion
|
|
31
|
+
exports.neutrinoPhoneValidate = neutrinoPhoneValidate;
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=phone-validate.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phone-validate.cjs","names":["z","action"],"sources":["../../src/actions/phone-validate.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const NeutrinoPhoneValidateInput: z.ZodTypeAny = z.object({\n ip: z.string().describe(\"User's IP address to help with number location.\").optional(),\n number: z.string().describe(\"The phone number to validate in international format.\"),\n \"country-code\": z.string().describe(\"ISO 2-letter country code (required if number not in international format).\").optional(),\n}).describe(\"Request model for phone number validation and lookup.\");\nexport const NeutrinoPhoneValidateOutput: z.ZodTypeAny = z.object({\n type: z.string().describe(\"Phone number type (mobile, fixed-line, premium-rate, toll-free, voip, or unknown).\"),\n valid: z.boolean().describe(\"True if the phone number is valid.\"),\n country: z.string().describe(\"Country name.\"),\n location: z.string().describe(\"Location description for the number.\"),\n \"is-mobile\": z.boolean().describe(\"True if the number is a mobile number.\"),\n \"country-code\": z.string().describe(\"ISO 2-letter country code.\"),\n \"local-number\": z.string().describe(\"Number in local format.\"),\n \"country-code3\": z.string().describe(\"ISO 3-letter country code.\"),\n \"currency-code\": z.string().describe(\"ISO 3-letter currency code.\"),\n \"prefix-network\": z.string().describe(\"Network/carrier that owns the prefix (may be empty if unavailable).\"),\n \"international-number\": z.string().describe(\"Number in international format.\"),\n \"international-calling-code\": z.string().describe(\"International calling code (e.g., '1' for US).\"),\n}).describe(\"Response model for phone number validation and lookup.\");\n\nexport const neutrinoPhoneValidate = action(\"NEUTRINO_PHONE_VALIDATE\", {\n slug: \"neutrino-phone-validate\",\n name: \"Phone Validate\",\n description: \"Tool to validate and lookup phone numbers. Use when you need to confirm number format and fetch location, carrier, and type details.\",\n input: NeutrinoPhoneValidateInput,\n output: NeutrinoPhoneValidateOutput,\n});\n"],"mappings":";;;AAIA,MAAa,6BAA2CA,IAAAA,EAAE,OAAO;CAC/D,IAAIA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,iDAAiD,CAAC,CAAC,SAAS;CACpF,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uDAAuD;CACnF,gBAAgBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6EAA6E,CAAC,CAAC,SAAS;AAC9H,CAAC,CAAC,CAAC,SAAS,uDAAuD;AACnE,MAAa,8BAA4CA,IAAAA,EAAE,OAAO;CAChE,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,oFAAoF;CAC9G,OAAOA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,oCAAoC;CAChE,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,eAAe;CAC5C,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,sCAAsC;CACpE,aAAaA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS,wCAAwC;CAC1E,gBAAgBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B;CAChE,gBAAgBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,yBAAyB;CAC7D,iBAAiBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B;CACjE,iBAAiBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B;CAClE,kBAAkBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,qEAAqE;CAC3G,wBAAwBA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,iCAAiC;CAC7E,8BAA8BA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,gDAAgD;AACpG,CAAC,CAAC,CAAC,SAAS,wDAAwD;AAEpE,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/phone-validate.d.ts
|
|
4
|
+
declare const NeutrinoPhoneValidateInput: z.ZodTypeAny;
|
|
5
|
+
declare const NeutrinoPhoneValidateOutput: z.ZodTypeAny;
|
|
6
|
+
declare const neutrinoPhoneValidate: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { neutrinoPhoneValidate };
|
|
9
|
+
//# sourceMappingURL=phone-validate.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phone-validate.d.cts","names":[],"sources":["../../src/actions/phone-validate.ts"],"mappings":";;;cAIa,0BAAA,EAA4B,CAAA,CAAE,UAIyB;AAAA,cACvD,2BAAA,EAA6B,CAAA,CAAE,UAayB;AAAA,cAExD,qBAAA,gCAAqB,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
//#region src/actions/phone-validate.d.ts
|
|
4
|
+
declare const NeutrinoPhoneValidateInput: z.ZodTypeAny;
|
|
5
|
+
declare const NeutrinoPhoneValidateOutput: z.ZodTypeAny;
|
|
6
|
+
declare const neutrinoPhoneValidate: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { neutrinoPhoneValidate };
|
|
9
|
+
//# sourceMappingURL=phone-validate.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phone-validate.d.mts","names":[],"sources":["../../src/actions/phone-validate.ts"],"mappings":";;;cAIa,0BAAA,EAA4B,CAAA,CAAE,UAIyB;AAAA,cACvD,2BAAA,EAA6B,CAAA,CAAE,UAayB;AAAA,cAExD,qBAAA,gCAAqB,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { action } from "../action.mjs";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
const neutrinoPhoneValidate = action("NEUTRINO_PHONE_VALIDATE", {
|
|
4
|
+
slug: "neutrino-phone-validate",
|
|
5
|
+
name: "Phone Validate",
|
|
6
|
+
description: "Tool to validate and lookup phone numbers. Use when you need to confirm number format and fetch location, carrier, and type details.",
|
|
7
|
+
input: z.object({
|
|
8
|
+
ip: z.string().describe("User's IP address to help with number location.").optional(),
|
|
9
|
+
number: z.string().describe("The phone number to validate in international format."),
|
|
10
|
+
"country-code": z.string().describe("ISO 2-letter country code (required if number not in international format).").optional()
|
|
11
|
+
}).describe("Request model for phone number validation and lookup."),
|
|
12
|
+
output: z.object({
|
|
13
|
+
type: z.string().describe("Phone number type (mobile, fixed-line, premium-rate, toll-free, voip, or unknown)."),
|
|
14
|
+
valid: z.boolean().describe("True if the phone number is valid."),
|
|
15
|
+
country: z.string().describe("Country name."),
|
|
16
|
+
location: z.string().describe("Location description for the number."),
|
|
17
|
+
"is-mobile": z.boolean().describe("True if the number is a mobile number."),
|
|
18
|
+
"country-code": z.string().describe("ISO 2-letter country code."),
|
|
19
|
+
"local-number": z.string().describe("Number in local format."),
|
|
20
|
+
"country-code3": z.string().describe("ISO 3-letter country code."),
|
|
21
|
+
"currency-code": z.string().describe("ISO 3-letter currency code."),
|
|
22
|
+
"prefix-network": z.string().describe("Network/carrier that owns the prefix (may be empty if unavailable)."),
|
|
23
|
+
"international-number": z.string().describe("Number in international format."),
|
|
24
|
+
"international-calling-code": z.string().describe("International calling code (e.g., '1' for US).")
|
|
25
|
+
}).describe("Response model for phone number validation and lookup.")
|
|
26
|
+
});
|
|
27
|
+
//#endregion
|
|
28
|
+
export { neutrinoPhoneValidate };
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=phone-validate.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phone-validate.mjs","names":[],"sources":["../../src/actions/phone-validate.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const NeutrinoPhoneValidateInput: z.ZodTypeAny = z.object({\n ip: z.string().describe(\"User's IP address to help with number location.\").optional(),\n number: z.string().describe(\"The phone number to validate in international format.\"),\n \"country-code\": z.string().describe(\"ISO 2-letter country code (required if number not in international format).\").optional(),\n}).describe(\"Request model for phone number validation and lookup.\");\nexport const NeutrinoPhoneValidateOutput: z.ZodTypeAny = z.object({\n type: z.string().describe(\"Phone number type (mobile, fixed-line, premium-rate, toll-free, voip, or unknown).\"),\n valid: z.boolean().describe(\"True if the phone number is valid.\"),\n country: z.string().describe(\"Country name.\"),\n location: z.string().describe(\"Location description for the number.\"),\n \"is-mobile\": z.boolean().describe(\"True if the number is a mobile number.\"),\n \"country-code\": z.string().describe(\"ISO 2-letter country code.\"),\n \"local-number\": z.string().describe(\"Number in local format.\"),\n \"country-code3\": z.string().describe(\"ISO 3-letter country code.\"),\n \"currency-code\": z.string().describe(\"ISO 3-letter currency code.\"),\n \"prefix-network\": z.string().describe(\"Network/carrier that owns the prefix (may be empty if unavailable).\"),\n \"international-number\": z.string().describe(\"Number in international format.\"),\n \"international-calling-code\": z.string().describe(\"International calling code (e.g., '1' for US).\"),\n}).describe(\"Response model for phone number validation and lookup.\");\n\nexport const neutrinoPhoneValidate = action(\"NEUTRINO_PHONE_VALIDATE\", {\n slug: \"neutrino-phone-validate\",\n name: \"Phone Validate\",\n description: \"Tool to validate and lookup phone numbers. Use when you need to confirm number format and fetch location, carrier, and type details.\",\n input: NeutrinoPhoneValidateInput,\n output: NeutrinoPhoneValidateOutput,\n});\n"],"mappings":";;AAwBA,MAAa,wBAAwB,OAAO,2BAA2B;CACrE,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAxBsD,EAAE,OAAO;EAC/D,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS,iDAAiD,CAAC,CAAC,SAAS;EACpF,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,uDAAuD;EACnF,gBAAgB,EAAE,OAAO,CAAC,CAAC,SAAS,6EAA6E,CAAC,CAAC,SAAS;CAC9H,CAAC,CAAC,CAAC,SAAS,uDAoBH;CACP,QApBuD,EAAE,OAAO;EAChE,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,oFAAoF;EAC9G,OAAO,EAAE,QAAQ,CAAC,CAAC,SAAS,oCAAoC;EAChE,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,eAAe;EAC5C,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,sCAAsC;EACpE,aAAa,EAAE,QAAQ,CAAC,CAAC,SAAS,wCAAwC;EAC1E,gBAAgB,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B;EAChE,gBAAgB,EAAE,OAAO,CAAC,CAAC,SAAS,yBAAyB;EAC7D,iBAAiB,EAAE,OAAO,CAAC,CAAC,SAAS,4BAA4B;EACjE,iBAAiB,EAAE,OAAO,CAAC,CAAC,SAAS,6BAA6B;EAClE,kBAAkB,EAAE,OAAO,CAAC,CAAC,SAAS,qEAAqE;EAC3G,wBAAwB,EAAE,OAAO,CAAC,CAAC,SAAS,iCAAiC;EAC7E,8BAA8B,EAAE,OAAO,CAAC,CAAC,SAAS,gDAAgD;CACpG,CAAC,CAAC,CAAC,SAAS,wDAOF;AACV,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const require_action = require("../action.cjs");
|
|
2
|
+
let zod = require("zod");
|
|
3
|
+
//#region src/actions/qr-code.ts
|
|
4
|
+
const NeutrinoQrCodeInput = zod.z.object({
|
|
5
|
+
width: zod.z.number().int().default(256).describe("The width of the QR code in pixels; default is 256").optional(),
|
|
6
|
+
height: zod.z.number().int().default(256).describe("The height of the QR code in pixels; default is 256").optional(),
|
|
7
|
+
content: zod.z.string().describe("The content to encode into the QR code (e.g. a URL or a phone number)"),
|
|
8
|
+
"bg-color": zod.z.string().default("#ffffff").describe("The QR code background color as hex value; default is #ffffff (white)").optional(),
|
|
9
|
+
"fg-color": zod.z.string().default("#000000").describe("The QR code foreground color as hex value; default is #000000 (black)").optional(),
|
|
10
|
+
"code-format": zod.z.enum(["qr", "c128"]).default("qr").describe("The barcode format to output: 'qr' for QR code or 'c128' for Code 128 barcode; default is 'qr'").optional()
|
|
11
|
+
}).describe("Request model for the QR_CODE action.");
|
|
12
|
+
const NeutrinoQrCodeOutput = zod.z.object({ file: zod.z.string().describe("The generated QR code image as binary data.") }).describe("Response model for the QR_CODE action.");
|
|
13
|
+
const neutrinoQrCode = require_action.action("NEUTRINO_QR_CODE", {
|
|
14
|
+
slug: "neutrino-qr-code",
|
|
15
|
+
name: "QR Code",
|
|
16
|
+
description: "Generate a QR code or Code 128 barcode as a PNG image. Use when you need to encode URLs, text, phone numbers, or other data into a scannable code. Examples: Create QR code for a website URL, encode contact information, generate barcode for product tracking.",
|
|
17
|
+
input: NeutrinoQrCodeInput,
|
|
18
|
+
output: NeutrinoQrCodeOutput
|
|
19
|
+
});
|
|
20
|
+
//#endregion
|
|
21
|
+
exports.neutrinoQrCode = neutrinoQrCode;
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=qr-code.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr-code.cjs","names":["z","action"],"sources":["../../src/actions/qr-code.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const NeutrinoQrCodeInput: z.ZodTypeAny = z.object({\n width: z.number().int().default(256).describe(\"The width of the QR code in pixels; default is 256\").optional(),\n height: z.number().int().default(256).describe(\"The height of the QR code in pixels; default is 256\").optional(),\n content: z.string().describe(\"The content to encode into the QR code (e.g. a URL or a phone number)\"),\n \"bg-color\": z.string().default(\"#ffffff\").describe(\"The QR code background color as hex value; default is #ffffff (white)\").optional(),\n \"fg-color\": z.string().default(\"#000000\").describe(\"The QR code foreground color as hex value; default is #000000 (black)\").optional(),\n \"code-format\": z.enum([\"qr\", \"c128\"]).default(\"qr\").describe(\"The barcode format to output: 'qr' for QR code or 'c128' for Code 128 barcode; default is 'qr'\").optional(),\n}).describe(\"Request model for the QR_CODE action.\");\nexport const NeutrinoQrCodeOutput: z.ZodTypeAny = z.object({\n file: z.string().describe(\"The generated QR code image as binary data.\"),\n}).describe(\"Response model for the QR_CODE action.\");\n\nexport const neutrinoQrCode = action(\"NEUTRINO_QR_CODE\", {\n slug: \"neutrino-qr-code\",\n name: \"QR Code\",\n description: \"Generate a QR code or Code 128 barcode as a PNG image. Use when you need to encode URLs, text, phone numbers, or other data into a scannable code. Examples: Create QR code for a website URL, encode contact information, generate barcode for product tracking.\",\n input: NeutrinoQrCodeInput,\n output: NeutrinoQrCodeOutput,\n});\n"],"mappings":";;;AAIA,MAAa,sBAAoCA,IAAAA,EAAE,OAAO;CACxD,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,SAAS,oDAAoD,CAAC,CAAC,SAAS;CAC7G,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;CAC/G,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,uEAAuE;CACpG,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,QAAQ,SAAS,CAAC,CAAC,SAAS,uEAAuE,CAAC,CAAC,SAAS;CACrI,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,QAAQ,SAAS,CAAC,CAAC,SAAS,uEAAuE,CAAC,CAAC,SAAS;CACrI,eAAeA,IAAAA,EAAE,KAAK,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,gGAAgG,CAAC,CAAC,SAAS;AAC1K,CAAC,CAAC,CAAC,SAAS,uCAAuC;AACnD,MAAa,uBAAqCA,IAAAA,EAAE,OAAO,EACzD,MAAMA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,6CAA6C,EACzE,CAAC,CAAC,CAAC,SAAS,wCAAwC;AAEpD,MAAa,iBAAiBC,eAAAA,OAAO,oBAAoB;CACvD,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/qr-code.d.ts
|
|
4
|
+
declare const NeutrinoQrCodeInput: z.ZodTypeAny;
|
|
5
|
+
declare const NeutrinoQrCodeOutput: z.ZodTypeAny;
|
|
6
|
+
declare const neutrinoQrCode: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { neutrinoQrCode };
|
|
9
|
+
//# sourceMappingURL=qr-code.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr-code.d.cts","names":[],"sources":["../../src/actions/qr-code.ts"],"mappings":";;;cAIa,mBAAA,EAAqB,CAAA,CAAE,UAOgB;AAAA,cACvC,oBAAA,EAAsB,CAAA,CAAE,UAEgB;AAAA,cAExC,cAAA,gCAAc,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
//#region src/actions/qr-code.d.ts
|
|
4
|
+
declare const NeutrinoQrCodeInput: z.ZodTypeAny;
|
|
5
|
+
declare const NeutrinoQrCodeOutput: z.ZodTypeAny;
|
|
6
|
+
declare const neutrinoQrCode: import("@keystrokehq/action").WorkflowActionDefinition<unknown, unknown, import("@keystrokehq/shared").ResolvedCredentials<readonly [import("@keystrokehq/shared").Credential]>, readonly [import("@keystrokehq/shared").Credential]>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { neutrinoQrCode };
|
|
9
|
+
//# sourceMappingURL=qr-code.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr-code.d.mts","names":[],"sources":["../../src/actions/qr-code.ts"],"mappings":";;;cAIa,mBAAA,EAAqB,CAAA,CAAE,UAOgB;AAAA,cACvC,oBAAA,EAAsB,CAAA,CAAE,UAEgB;AAAA,cAExC,cAAA,gCAAc,wBAAA,iDAAA,mBAAA,yCAAA,UAAA,4CAAA,UAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { action } from "../action.mjs";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
const neutrinoQrCode = action("NEUTRINO_QR_CODE", {
|
|
4
|
+
slug: "neutrino-qr-code",
|
|
5
|
+
name: "QR Code",
|
|
6
|
+
description: "Generate a QR code or Code 128 barcode as a PNG image. Use when you need to encode URLs, text, phone numbers, or other data into a scannable code. Examples: Create QR code for a website URL, encode contact information, generate barcode for product tracking.",
|
|
7
|
+
input: z.object({
|
|
8
|
+
width: z.number().int().default(256).describe("The width of the QR code in pixels; default is 256").optional(),
|
|
9
|
+
height: z.number().int().default(256).describe("The height of the QR code in pixels; default is 256").optional(),
|
|
10
|
+
content: z.string().describe("The content to encode into the QR code (e.g. a URL or a phone number)"),
|
|
11
|
+
"bg-color": z.string().default("#ffffff").describe("The QR code background color as hex value; default is #ffffff (white)").optional(),
|
|
12
|
+
"fg-color": z.string().default("#000000").describe("The QR code foreground color as hex value; default is #000000 (black)").optional(),
|
|
13
|
+
"code-format": z.enum(["qr", "c128"]).default("qr").describe("The barcode format to output: 'qr' for QR code or 'c128' for Code 128 barcode; default is 'qr'").optional()
|
|
14
|
+
}).describe("Request model for the QR_CODE action."),
|
|
15
|
+
output: z.object({ file: z.string().describe("The generated QR code image as binary data.") }).describe("Response model for the QR_CODE action.")
|
|
16
|
+
});
|
|
17
|
+
//#endregion
|
|
18
|
+
export { neutrinoQrCode };
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=qr-code.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr-code.mjs","names":[],"sources":["../../src/actions/qr-code.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { action } from \"../action\";\n\nexport const NeutrinoQrCodeInput: z.ZodTypeAny = z.object({\n width: z.number().int().default(256).describe(\"The width of the QR code in pixels; default is 256\").optional(),\n height: z.number().int().default(256).describe(\"The height of the QR code in pixels; default is 256\").optional(),\n content: z.string().describe(\"The content to encode into the QR code (e.g. a URL or a phone number)\"),\n \"bg-color\": z.string().default(\"#ffffff\").describe(\"The QR code background color as hex value; default is #ffffff (white)\").optional(),\n \"fg-color\": z.string().default(\"#000000\").describe(\"The QR code foreground color as hex value; default is #000000 (black)\").optional(),\n \"code-format\": z.enum([\"qr\", \"c128\"]).default(\"qr\").describe(\"The barcode format to output: 'qr' for QR code or 'c128' for Code 128 barcode; default is 'qr'\").optional(),\n}).describe(\"Request model for the QR_CODE action.\");\nexport const NeutrinoQrCodeOutput: z.ZodTypeAny = z.object({\n file: z.string().describe(\"The generated QR code image as binary data.\"),\n}).describe(\"Response model for the QR_CODE action.\");\n\nexport const neutrinoQrCode = action(\"NEUTRINO_QR_CODE\", {\n slug: \"neutrino-qr-code\",\n name: \"QR Code\",\n description: \"Generate a QR code or Code 128 barcode as a PNG image. Use when you need to encode URLs, text, phone numbers, or other data into a scannable code. Examples: Create QR code for a website URL, encode contact information, generate barcode for product tracking.\",\n input: NeutrinoQrCodeInput,\n output: NeutrinoQrCodeOutput,\n});\n"],"mappings":";;AAgBA,MAAa,iBAAiB,OAAO,oBAAoB;CACvD,MAAM;CACN,MAAM;CACN,aAAa;CACb,OAhB+C,EAAE,OAAO;EACxD,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,SAAS,oDAAoD,CAAC,CAAC,SAAS;EAC7G,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,SAAS,qDAAqD,CAAC,CAAC,SAAS;EAC/G,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,uEAAuE;EACpG,YAAY,EAAE,OAAO,CAAC,CAAC,QAAQ,SAAS,CAAC,CAAC,SAAS,uEAAuE,CAAC,CAAC,SAAS;EACrI,YAAY,EAAE,OAAO,CAAC,CAAC,QAAQ,SAAS,CAAC,CAAC,SAAS,uEAAuE,CAAC,CAAC,SAAS;EACrI,eAAe,EAAE,KAAK,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,gGAAgG,CAAC,CAAC,SAAS;CAC1K,CAAC,CAAC,CAAC,SAAS,uCASH;CACP,QATgD,EAAE,OAAO,EACzD,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,6CAA6C,EACzE,CAAC,CAAC,CAAC,SAAS,wCAOF;AACV,CAAC"}
|