@signaliz/cli 1.0.38 → 1.0.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +6 -0
  2. package/dist/bin.js +25 -9
  3. package/package.json +2 -2
package/README.md CHANGED
@@ -18,6 +18,9 @@ signaliz find-email --company-domain example.com --full-name "Jane Doe" --skip-c
18
18
  signaliz verify-email jane@example.com
19
19
  # Force a fresh-provider verification instead of reusing cached proof
20
20
  signaliz verify-email jane@example.com --skip-cache
21
+ # Return early when a provider check runs long, then resume the exact run
22
+ signaliz verify-email jane@example.com --skip-cache --no-wait --json
23
+ signaliz verify-email --verification-run-id run_... --json
21
24
  signaliz company-signals --domain example.com --research-prompt "expansion priorities"
22
25
  # Resume a queued run in a later agent/process without duplicate spend
23
26
  signaliz company-signals --signal-run-id run_...
@@ -54,6 +57,9 @@ SDK for diagnostics:
54
57
 
55
58
  ```bash
56
59
  signaliz company-signals --input companies.jsonl --jsonl --omit-raw
60
+
61
+ # Stream JSONL directly from another process; no temporary file is required.
62
+ generate-company-rows | signaliz company-signals --input - --jsonl --omit-raw
57
63
  ```
58
64
 
59
65
  JSONL writes one `{ "type": "result", ... }` line per input followed by one
package/dist/bin.js CHANGED
@@ -13,7 +13,7 @@ var HELP = `Signaliz CLI
13
13
 
14
14
  Four product commands:
15
15
  signaliz find-email --company-domain example.com --full-name "Jane Doe" [--skip-cache]
16
- signaliz verify-email jane@example.com
16
+ signaliz verify-email [jane@example.com] [--verification-run-id run_...] [--no-wait] [--max-wait-ms 600000]
17
17
  signaliz company-signals --domain example.com [--research-prompt "..."] [--no-summary] [--max-wait-ms 1200000]
18
18
  signaliz company-signals --signal-run-id run_... Resume without duplicate spend
19
19
  signaliz signal-to-copy --company-domain example.com --person-name "Jane Doe" \\
@@ -36,6 +36,7 @@ Common flags:
36
36
  --expand-duplicates Repeat full data for exact duplicate batch inputs
37
37
  --base-url <url>
38
38
  --input <json-or-jsonl-file> Batch up to 5,000 records with any product command
39
+ --input - Read a JSON array or JSONL batch from stdin
39
40
  --concurrency <1-50> Simultaneous API requests for batch input (default: 10)
40
41
  --idempotency-key <key> Reuse after an ambiguous batch submission to recover the same job
41
42
  `;
@@ -85,24 +86,25 @@ function csvFlag(name) {
85
86
  function readBatchInput() {
86
87
  const path = flag("input");
87
88
  if (!path) return null;
89
+ const source = path === "-" ? "stdin" : path;
88
90
  let raw;
89
91
  try {
90
- raw = (0, import_node_fs.readFileSync)(path, "utf8").trim();
92
+ raw = (0, import_node_fs.readFileSync)(path === "-" ? 0 : path, "utf8").trim();
91
93
  } catch (error) {
92
- fail(`Unable to read --input file ${path}: ${error instanceof Error ? error.message : String(error)}`);
94
+ fail(`Unable to read --input ${source}: ${error instanceof Error ? error.message : String(error)}`);
93
95
  }
94
- if (!raw) fail("--input file must contain at least one record");
96
+ if (!raw) fail(`--input ${source} must contain at least one record`);
95
97
  let rows;
96
98
  try {
97
99
  rows = raw.startsWith("[") ? JSON.parse(raw) : raw.split(/\r?\n/).filter(Boolean).map((line, index) => {
98
100
  try {
99
101
  return JSON.parse(line);
100
102
  } catch {
101
- fail(`Invalid JSON on line ${index + 1} of ${path}`);
103
+ fail(`Invalid JSON on line ${index + 1} of ${source}`);
102
104
  }
103
105
  });
104
106
  } catch (error) {
105
- fail(`Invalid JSON in --input file ${path}: ${error instanceof Error ? error.message : String(error)}`);
107
+ fail(`Invalid JSON in --input ${source}: ${error instanceof Error ? error.message : String(error)}`);
106
108
  }
107
109
  if (!Array.isArray(rows) || rows.length === 0) fail("--input must be a non-empty JSON array or JSONL file");
108
110
  if (rows.length > 5e3) fail(`--input supports at most 5,000 records; received ${rows.length}`);
@@ -290,10 +292,24 @@ async function verifyEmail(args) {
290
292
  batchOutput(result2);
291
293
  return;
292
294
  }
293
- const email = args.find((value) => !value.startsWith("--")) || flag("email");
294
- if (!email) fail("Usage: signaliz verify-email jane@example.com");
295
- const result = await createClient().verifyEmail(email, { skipCache: hasFlag("skip-cache") });
295
+ const email = args[0] && !args[0].startsWith("--") ? args[0] : flag("email");
296
+ const verificationRunId = flag("verification-run-id");
297
+ if (!email && !verificationRunId) fail("Usage: signaliz verify-email [jane@example.com] [--verification-run-id run_...]");
298
+ const result = await createClient().verifyEmail(email, {
299
+ skipCache: hasFlag("skip-cache"),
300
+ verificationRunId,
301
+ waitForResult: !hasFlag("no-wait"),
302
+ maxWaitMs: numberFlag("max-wait-ms"),
303
+ pollIntervalMs: numberFlag("poll-interval-ms")
304
+ });
296
305
  output(result, () => {
306
+ if (result.status === "processing") {
307
+ process.stdout.write(`Verification processing: ${result.verificationRunId}
308
+ `);
309
+ process.stdout.write(`Retry after ${result.nextPollAfterSeconds || 3} seconds with --verification-run-id ${result.verificationRunId}
310
+ `);
311
+ return;
312
+ }
297
313
  process.stdout.write(`${result.email}: ${result.isDeliverable ? "deliverable" : "not deliverable"}
298
314
  `);
299
315
  process.stdout.write(`Valid: ${result.isValid}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signaliz/cli",
3
- "version": "1.0.38",
3
+ "version": "1.0.40",
4
4
  "description": "Signaliz CLI for Find Email, Verify Email, Company Signal Enrichment, and Signal to Copy AI.",
5
5
  "bin": {
6
6
  "signaliz": "dist/bin.js"
@@ -28,7 +28,7 @@
28
28
  "node": ">=18"
29
29
  },
30
30
  "dependencies": {
31
- "@signaliz/sdk": "^1.0.38"
31
+ "@signaliz/sdk": "^1.0.39"
32
32
  },
33
33
  "devDependencies": {
34
34
  "tsup": "^8.0.0",