@slicedearth/whoisleuth-cli 2.0.1 → 2.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/cli/arguments.mjs +21 -5
- package/cli/artifact-validation/case-response.mjs +771 -0
- package/cli/artifact-validation/investigation-capsule.mjs +426 -0
- package/cli/artifact-validation/lookup-evidence.mjs +718 -0
- package/cli/artifact-validation/signed-review.mjs +598 -0
- package/cli/artifact-validation/structure-primitives.mjs +105 -0
- package/cli/artifact-verify.mjs +1 -1
- package/cli/assurance-command-runner.mjs +324 -0
- package/cli/command-reference.mjs +1175 -843
- package/cli/completion.mjs +56 -9
- package/cli/discriminated-command-handlers.mjs +11 -0
- package/cli/doctor.mjs +2 -2
- package/cli/evidence-command-runner.mjs +41 -31
- package/cli/export-evidence.mjs +1 -1
- package/cli/fail-policy.mjs +33 -8
- package/cli/formatters/terminal-command-formats.mjs +437 -0
- package/cli/formatters/terminal-lookup.mjs +758 -0
- package/cli/formatters/terminal-metadata.mjs +58 -0
- package/cli/formatters/terminal-shared.mjs +83 -0
- package/cli/formatters/terminal.mjs +5 -1232
- package/cli/history-command-runner.mjs +132 -0
- package/cli/inline-command-families.mjs +45 -0
- package/cli/inline-command-runner.mjs +55 -0
- package/cli/investigation-plan.mjs +9 -2
- package/cli/investigation-run.mjs +114 -9
- package/cli/lookup-brief.mjs +141 -23
- package/cli/lookup-browser-view.mjs +289 -0
- package/cli/lookup-browser.mjs +3 -288
- package/cli/mail-review.mjs +2 -6
- package/cli/offline-artifact-validation.mjs +19 -0
- package/cli/review-command-runner.mjs +269 -0
- package/cli/runner.mjs +15 -972
- package/cli/saved-lookup.mjs +19 -2
- package/cli/support-command-runner.mjs +229 -0
- package/cli/workflow-command-runner.mjs +129 -0
- package/docs/cli-reference.md +16 -9
- package/docs/cli.md +4 -2
- package/lib/availability.mjs +12 -9
- package/lib/bounded-contract-normalizers.mjs +2 -9
- package/lib/browser-library-profile.mjs +1 -2
- package/lib/client-behavior-profile.mjs +1 -2
- package/lib/credential-surface-profile.mjs +1 -1
- package/lib/domain-posture-analysis.mjs +10 -1
- package/lib/domain-posture.mjs +51 -23
- package/lib/evidence-export.mjs +46 -5
- package/lib/evidence-report-markdown.mjs +4 -0
- package/lib/evidence-report.mjs +50 -0
- package/lib/generated/cisa-kev-catalog.mjs +34 -4
- package/lib/generated/registrar-standing-catalogue.mjs +367 -0
- package/lib/json-record.mjs +12 -0
- package/lib/lookup-child-profile-contract.mjs +858 -0
- package/lib/lookup-contract-primitives.mjs +98 -0
- package/lib/lookup-diagnostics.mjs +96 -0
- package/lib/lookup-network-evidence-bounds.mjs +1 -0
- package/lib/lookup-response.mjs +367 -0
- package/lib/lookup.mjs +28 -443
- package/lib/page-role-profile.mjs +1 -3
- package/lib/registrar-standing-catalogue-contract.mjs +70 -0
- package/lib/registrar-standing-contract.mjs +300 -0
- package/lib/registrar-standing.mjs +269 -0
- package/lib/registry-insights.mjs +2 -8
- package/lib/risk-scoring.mjs +26 -10
- package/lib/sslbl-certificates.generated.mjs +138 -136
- package/lib/structured-data-identity.mjs +1 -3
- package/lib/technology-evidence-role.mjs +51 -0
- package/lib/threat-intelligence-runtime.mjs +3 -3
- package/lib/threat-intelligence-types.mjs +13 -0
- package/lib/threatfox-intelligence.mjs +1 -3
- package/lib/tls-intelligence.mjs +1 -2
- package/lib/urlhaus-intelligence.mjs +1 -3
- package/lib/urlscan-intelligence.mjs +1 -3
- package/lib/website-security-posture.mjs +1 -2
- package/lib/website-technology.mjs +72 -23
- package/lib/whois-common-formats.mjs +276 -0
- package/lib/whois-dialects.mjs +534 -0
- package/lib/whois-parser-support.mjs +305 -0
- package/lib/whois-parser.mjs +135 -0
- package/lib/whois.mjs +6 -1187
- package/package.json +2 -2
- package/packages/cases/case-evidence-model.mjs +9 -0
- package/packages/cases/case-migration-model.mjs +17 -11
- package/packages/cases/case-response-model.mjs +13 -9
- package/packages/cases/case-response-packet.mjs +297 -112
- package/packages/comparison/page-similarity.mjs +23 -0
- package/packages/contracts/case-portability.mjs +225 -61
- package/packages/contracts/cli-lookup.mjs +4 -3
- package/packages/contracts/domain-control-manifest.mjs +1 -1
- package/packages/contracts/investigation-portability.mjs +1 -1
- package/packages/contracts/risk-calibration.mjs +2 -2
- package/packages/contracts/workspace-portability.mjs +34 -6
- package/packages/investigation/evidence-coverage-ledger.mjs +21 -0
- package/packages/investigation/lookup-claim-readiness.mjs +2 -2
- package/packages/workspace/website-snapshot-model.mjs +79 -6
- package/third-party-notices.txt +1 -1
- package/cli/artifact-structure.mjs +0 -2507
package/cli/arguments.mjs
CHANGED
|
@@ -204,7 +204,7 @@ function parseLookupArguments(lookupArguments) {
|
|
|
204
204
|
else if (argument === '--fail-on') {
|
|
205
205
|
if (failOn !== null)
|
|
206
206
|
throw new CliUsageError('--fail-on may be supplied only once.');
|
|
207
|
-
failOn = parseCliFailPolicies(lookupArguments[++index]);
|
|
207
|
+
failOn = parseCliFailPolicies(lookupArguments[++index], 'lookup');
|
|
208
208
|
}
|
|
209
209
|
else if (argument === '--observer' || argument === '--vantage') {
|
|
210
210
|
const isObserver = argument === '--observer';
|
|
@@ -497,7 +497,7 @@ function parseBulkArguments(argv) {
|
|
|
497
497
|
else if (argument === '--fail-on') {
|
|
498
498
|
if (failOn !== null)
|
|
499
499
|
throw new CliUsageError('--fail-on may be supplied only once.');
|
|
500
|
-
failOn = parseCliFailPolicies(argv[++index]);
|
|
500
|
+
failOn = parseCliFailPolicies(argv[++index], 'bulk');
|
|
501
501
|
}
|
|
502
502
|
else if (argument === '--registered-only' || argument === '--inconclusive-only' || argument === '--errors-only') {
|
|
503
503
|
if (filter !== 'all')
|
|
@@ -802,7 +802,7 @@ function parseDiscoverScanArguments(argv) {
|
|
|
802
802
|
else if (argument === '--fail-on') {
|
|
803
803
|
if (failOn !== null)
|
|
804
804
|
throw new CliUsageError('--fail-on may be supplied only once.');
|
|
805
|
-
failOn = parseCliFailPolicies(argv[++index]);
|
|
805
|
+
failOn = parseCliFailPolicies(argv[++index], 'discover-scan');
|
|
806
806
|
}
|
|
807
807
|
else if (argument === '--quiet')
|
|
808
808
|
quiet = true;
|
|
@@ -1229,7 +1229,7 @@ function parseMonitorOnceArguments(argv) {
|
|
|
1229
1229
|
else if (argument === '--fail-on') {
|
|
1230
1230
|
if (failOn !== null)
|
|
1231
1231
|
throw new CliUsageError('--fail-on may be supplied only once.');
|
|
1232
|
-
failOn = parseCliFailPolicies(argv[++index]);
|
|
1232
|
+
failOn = parseCliFailPolicies(argv[++index], 'monitor-once');
|
|
1233
1233
|
}
|
|
1234
1234
|
else if (argument === '--quiet')
|
|
1235
1235
|
quiet = true;
|
|
@@ -1391,6 +1391,7 @@ function parseWorkflowPlanArguments(argv) {
|
|
|
1391
1391
|
}
|
|
1392
1392
|
function parseWorkflowRunArguments(argv) {
|
|
1393
1393
|
const positional = [];
|
|
1394
|
+
const selections = [];
|
|
1394
1395
|
let resumeSource = null;
|
|
1395
1396
|
let approveNetwork = false;
|
|
1396
1397
|
let output = 'terminal';
|
|
@@ -1405,6 +1406,21 @@ function parseWorkflowRunArguments(argv) {
|
|
|
1405
1406
|
throw new CliUsageError('--json may be supplied only once.');
|
|
1406
1407
|
output = 'json';
|
|
1407
1408
|
}
|
|
1409
|
+
else if (argument === '--select') {
|
|
1410
|
+
const value = argv[++index];
|
|
1411
|
+
if (!value)
|
|
1412
|
+
throw new CliUsageError('--select requires <step-id>=<path-or-value>.');
|
|
1413
|
+
const separator = value.indexOf('=');
|
|
1414
|
+
const stepId = separator === -1 ? '' : value.slice(0, separator);
|
|
1415
|
+
const selection = separator === -1 ? '' : value.slice(separator + 1);
|
|
1416
|
+
if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/u.test(stepId) || !selection.trim()) {
|
|
1417
|
+
throw new CliUsageError('--select requires <step-id>=<path-or-value>.');
|
|
1418
|
+
}
|
|
1419
|
+
if (selection.startsWith('-')) {
|
|
1420
|
+
throw new CliUsageError('--select values cannot start with a hyphen; prefix a file path with ./ when needed.');
|
|
1421
|
+
}
|
|
1422
|
+
selections.push(Object.freeze({ stepId, value: selection }));
|
|
1423
|
+
}
|
|
1408
1424
|
else if (argument === '--resume') {
|
|
1409
1425
|
if (resumeSource !== null)
|
|
1410
1426
|
throw new CliUsageError('--resume may be supplied only once.');
|
|
@@ -1435,7 +1451,7 @@ function parseWorkflowRunArguments(argv) {
|
|
|
1435
1451
|
}
|
|
1436
1452
|
if (quiet && output !== 'terminal')
|
|
1437
1453
|
throw new CliUsageError('--quiet cannot be combined with machine-readable output.');
|
|
1438
|
-
return { action: 'workflow-run', recipe: recipe, subject: positional[1], resumeSource, approveNetwork, output, quiet, color };
|
|
1454
|
+
return { action: 'workflow-run', recipe: recipe, subject: positional[1], resumeSource, selections: Object.freeze(selections), approveNetwork, output, quiet, color };
|
|
1439
1455
|
}
|
|
1440
1456
|
function parseDiffArguments(argv) {
|
|
1441
1457
|
let leftSource = null;
|