@sellable/mcp 0.1.253 → 0.1.255
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/dist/server.js +7 -1
- package/dist/tools/csv-dnc.d.ts +167 -0
- package/dist/tools/csv-dnc.js +743 -0
- package/dist/tools/csv-domains.d.ts +7 -0
- package/dist/tools/csv-domains.js +1 -1
- package/dist/tools/csv-linkedin.d.ts +8 -0
- package/dist/tools/csv-linkedin.js +1 -1
- package/dist/tools/leads.d.ts +488 -29
- package/dist/tools/leads.js +84 -0
- package/dist/tools/registry.d.ts +336 -29
- package/package.json +1 -1
- package/skills/create-campaign/SKILL.md +25 -2
- package/skills/create-campaign-v2/core/flow.v2.json +1 -1
- package/skills/create-campaign-v2/references/filter-leads.md +8 -0
- package/skills/create-campaign-v2/references/lead-validation-preview.md +6 -0
- package/skills/create-campaign-v2/references/step-13-import-leads.md +8 -0
- package/skills/find-leads/SKILL.md +29 -9
- package/skills/providers/prospeo.md +6 -0
- package/skills/research/config.json +0 -9
|
@@ -64,6 +64,13 @@ type ParsedCsvDomainFile = {
|
|
|
64
64
|
blockingErrors: string[];
|
|
65
65
|
warnings: string[];
|
|
66
66
|
};
|
|
67
|
+
export declare function sanitizeCsvDomainCandidate(value: unknown): {
|
|
68
|
+
valid: true;
|
|
69
|
+
cleaned: string;
|
|
70
|
+
} | {
|
|
71
|
+
valid: false;
|
|
72
|
+
reason: string;
|
|
73
|
+
};
|
|
67
74
|
export declare function makeConfirmationToken(payload: CsvDomainConfirmationPayload): string;
|
|
68
75
|
export declare function parseConfirmationToken(token: string): CsvDomainConfirmationPayload;
|
|
69
76
|
export declare function matchesConfirmationToken(token: string, payload: CsvDomainConfirmationPayload): boolean;
|
|
@@ -70,7 +70,7 @@ function resolveCsvDomainPath(filePath, workspaceRoot = defaultWorkspaceRoot) {
|
|
|
70
70
|
? resolve(filePath)
|
|
71
71
|
: resolve(workspaceRoot, filePath);
|
|
72
72
|
}
|
|
73
|
-
function sanitizeCsvDomainCandidate(value) {
|
|
73
|
+
export function sanitizeCsvDomainCandidate(value) {
|
|
74
74
|
let cleaned = String(value ?? "")
|
|
75
75
|
.trim()
|
|
76
76
|
.toLowerCase();
|
|
@@ -79,6 +79,14 @@ type ParsedCsvLinkedinFile = {
|
|
|
79
79
|
blockingErrors: string[];
|
|
80
80
|
warnings: string[];
|
|
81
81
|
};
|
|
82
|
+
export type LinkedInValidationResult = {
|
|
83
|
+
valid: true;
|
|
84
|
+
normalizedUrl: string;
|
|
85
|
+
} | {
|
|
86
|
+
valid: false;
|
|
87
|
+
reason: string;
|
|
88
|
+
};
|
|
89
|
+
export declare function validateAndNormalizeLinkedInUrl(value: string): LinkedInValidationResult;
|
|
82
90
|
export declare function makeLinkedinConfirmationToken(payload: CsvLinkedinConfirmationPayload): string;
|
|
83
91
|
export declare function parseLinkedinConfirmationToken(token: string): CsvLinkedinConfirmationPayload;
|
|
84
92
|
export declare function matchesLinkedinConfirmationToken(token: string, payload: CsvLinkedinConfirmationPayload): boolean;
|
|
@@ -425,7 +425,7 @@ function sanitizeCompanyWebsite(value) {
|
|
|
425
425
|
}
|
|
426
426
|
return cleaned;
|
|
427
427
|
}
|
|
428
|
-
function validateAndNormalizeLinkedInUrl(value) {
|
|
428
|
+
export function validateAndNormalizeLinkedInUrl(value) {
|
|
429
429
|
const trimmed = value.trim();
|
|
430
430
|
if (!trimmed) {
|
|
431
431
|
return { valid: false, reason: "Empty LinkedIn URL" };
|