gtm-now 0.7.1 → 0.8.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/dist/index.js +78 -32
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -8741,10 +8741,25 @@ var init_bettercontact = __esm({
|
|
|
8741
8741
|
});
|
|
8742
8742
|
|
|
8743
8743
|
// src/providers/adapters/disco.ts
|
|
8744
|
-
function
|
|
8745
|
-
if (!
|
|
8746
|
-
const
|
|
8747
|
-
|
|
8744
|
+
function buildGrowthSignals(data) {
|
|
8745
|
+
if (!data) return void 0;
|
|
8746
|
+
const signals = {
|
|
8747
|
+
quarterly_growth: data.quarterly_growth,
|
|
8748
|
+
growth_trend: data.growth_trend,
|
|
8749
|
+
digital_footprint_score: data.digital_footprint_score,
|
|
8750
|
+
digital_footprint_trend: data.digital_footprint_trend
|
|
8751
|
+
};
|
|
8752
|
+
return Object.values(signals).some((v) => v != null) ? signals : void 0;
|
|
8753
|
+
}
|
|
8754
|
+
function buildEngagementMetrics(data) {
|
|
8755
|
+
if (!data) return void 0;
|
|
8756
|
+
const metrics = {
|
|
8757
|
+
traffic_estimate: data.traffic_estimate,
|
|
8758
|
+
social_presence: data.social_presence,
|
|
8759
|
+
monthly_visitors: data.monthly_visitors,
|
|
8760
|
+
bounce_rate: data.bounce_rate
|
|
8761
|
+
};
|
|
8762
|
+
return Object.values(metrics).some((v) => v != null) ? metrics : void 0;
|
|
8748
8763
|
}
|
|
8749
8764
|
function parseName(fullName) {
|
|
8750
8765
|
const parts = fullName.trim().split(/\s+/);
|
|
@@ -8802,22 +8817,12 @@ function domainToCompanyName(domain) {
|
|
|
8802
8817
|
const words = slug.replace(/[-_]/g, " ").replace(/([a-z])([A-Z])/g, "$1 $2").split(/\s+/).filter(Boolean);
|
|
8803
8818
|
return words.map((w) => w.charAt(0).toUpperCase() + w.slice(1).toLowerCase()).join(" ");
|
|
8804
8819
|
}
|
|
8805
|
-
var
|
|
8820
|
+
var DiscoAdapter, US_STATES, US_STATE_CODES;
|
|
8806
8821
|
var init_disco = __esm({
|
|
8807
8822
|
"src/providers/adapters/disco.ts"() {
|
|
8808
8823
|
"use strict";
|
|
8809
8824
|
init_dist();
|
|
8810
8825
|
init_dist2();
|
|
8811
|
-
SENIORITY_TO_DISCO = {
|
|
8812
|
-
c_suite: "executive",
|
|
8813
|
-
founder: "executive",
|
|
8814
|
-
owner: "executive",
|
|
8815
|
-
partner: "executive",
|
|
8816
|
-
head: "director",
|
|
8817
|
-
senior: "senior_ic",
|
|
8818
|
-
entry: "entry_level",
|
|
8819
|
-
intern: "entry_level"
|
|
8820
|
-
};
|
|
8821
8826
|
DiscoAdapter = class {
|
|
8822
8827
|
name = "disco";
|
|
8823
8828
|
capabilities = ["find_companies", "find_people"];
|
|
@@ -8859,7 +8864,9 @@ var init_disco = __esm({
|
|
|
8859
8864
|
country: c.address?.country,
|
|
8860
8865
|
linkedin_url: c.social_urls?.find((u) => u.includes("linkedin")),
|
|
8861
8866
|
score: c.score,
|
|
8862
|
-
tech_stack:
|
|
8867
|
+
tech_stack: void 0,
|
|
8868
|
+
// Discovery doesn't have vendor data; keywords are not tech_stack
|
|
8869
|
+
keywords: c.keywords ? Object.keys(c.keywords) : void 0,
|
|
8863
8870
|
sources: [this.name]
|
|
8864
8871
|
}));
|
|
8865
8872
|
}
|
|
@@ -8889,9 +8896,8 @@ var init_disco = __esm({
|
|
|
8889
8896
|
const growthData = growth.status === "fulfilled" ? growth.value : void 0;
|
|
8890
8897
|
const vendorsData = vendors.status === "fulfilled" ? vendors.value : void 0;
|
|
8891
8898
|
const metricsData = metrics.status === "fulfilled" ? metrics.value : void 0;
|
|
8892
|
-
const keywordTech = data.keywords ? Object.keys(data.keywords) : [];
|
|
8893
8899
|
const vendorTech = vendorsData?.vendors?.map((v) => v.name) ?? [];
|
|
8894
|
-
const
|
|
8900
|
+
const keywordList = data.keywords ? Object.keys(data.keywords) : [];
|
|
8895
8901
|
return {
|
|
8896
8902
|
domain: data.domain,
|
|
8897
8903
|
name: data.name,
|
|
@@ -8900,15 +8906,10 @@ var init_disco = __esm({
|
|
|
8900
8906
|
employees: data.employees ? parseInt(data.employees, 10) || void 0 : void 0,
|
|
8901
8907
|
country: data.address?.country,
|
|
8902
8908
|
linkedin_url: data.social_urls?.find((u) => u.includes("linkedin")),
|
|
8903
|
-
tech_stack:
|
|
8904
|
-
|
|
8905
|
-
|
|
8906
|
-
|
|
8907
|
-
} : void 0,
|
|
8908
|
-
engagement_metrics: metricsData ? {
|
|
8909
|
-
traffic_estimate: metricsData.traffic_estimate,
|
|
8910
|
-
social_presence: metricsData.social_presence
|
|
8911
|
-
} : void 0,
|
|
8909
|
+
tech_stack: vendorTech.length > 0 ? vendorTech : void 0,
|
|
8910
|
+
keywords: keywordList.length > 0 ? keywordList : void 0,
|
|
8911
|
+
growth_signals: buildGrowthSignals(growthData),
|
|
8912
|
+
engagement_metrics: buildEngagementMetrics(metricsData),
|
|
8912
8913
|
sources: [this.name]
|
|
8913
8914
|
};
|
|
8914
8915
|
} catch (error) {
|
|
@@ -8928,7 +8929,7 @@ var init_disco = __esm({
|
|
|
8928
8929
|
...parseLocation(query.location),
|
|
8929
8930
|
has_email: query.has_email ?? true,
|
|
8930
8931
|
max_records: query.limit ?? 25,
|
|
8931
|
-
seniority:
|
|
8932
|
+
seniority: query.seniority,
|
|
8932
8933
|
department: query.department,
|
|
8933
8934
|
has_phone: query.has_phone,
|
|
8934
8935
|
has_linkedin: query.has_linkedin,
|
|
@@ -8959,6 +8960,7 @@ var init_disco = __esm({
|
|
|
8959
8960
|
skills: c.skills,
|
|
8960
8961
|
connections: c.connections,
|
|
8961
8962
|
location: c.country,
|
|
8963
|
+
industry: Array.isArray(c.industry) ? c.industry[0] : c.industry,
|
|
8962
8964
|
sources: [this.name]
|
|
8963
8965
|
};
|
|
8964
8966
|
});
|
|
@@ -9021,7 +9023,7 @@ var init_disco = __esm({
|
|
|
9021
9023
|
});
|
|
9022
9024
|
|
|
9023
9025
|
// src/providers/adapters/prospeo.ts
|
|
9024
|
-
function
|
|
9026
|
+
function mapSeniority(values) {
|
|
9025
9027
|
if (!values?.length) return void 0;
|
|
9026
9028
|
const mapped = values.map((v) => SENIORITY_TO_PROSPEO[v] ?? v);
|
|
9027
9029
|
return [...new Set(mapped)];
|
|
@@ -9082,7 +9084,7 @@ var init_prospeo2 = __esm({
|
|
|
9082
9084
|
async findPeople(query) {
|
|
9083
9085
|
const filters = {};
|
|
9084
9086
|
if (query.job_title) filters.person_job_title = query.job_title;
|
|
9085
|
-
if (query.seniority) filters.person_seniority =
|
|
9087
|
+
if (query.seniority) filters.person_seniority = mapSeniority(query.seniority);
|
|
9086
9088
|
if (query.department?.length) filters.person_department = query.department[0];
|
|
9087
9089
|
if (query.location) filters.person_location_search = query.location;
|
|
9088
9090
|
if (query.company_domain) filters.company = query.company_domain;
|
|
@@ -9977,11 +9979,21 @@ async function findCompanies(args, ctx) {
|
|
|
9977
9979
|
});
|
|
9978
9980
|
const limit = args.limit ?? 50;
|
|
9979
9981
|
const offset = args.offset ?? 0;
|
|
9982
|
+
const applied_filters = {};
|
|
9983
|
+
if (query.icp_text) applied_filters.icp_text = query.icp_text;
|
|
9984
|
+
if (query.domain) applied_filters.domain = query.domain;
|
|
9985
|
+
if (query.domains?.length) applied_filters.domains = query.domains;
|
|
9986
|
+
if (query.country) applied_filters.country = query.country;
|
|
9987
|
+
if (query.category) applied_filters.category = query.category;
|
|
9988
|
+
if (query.tech_stack?.length) applied_filters.tech_stack = query.tech_stack;
|
|
9989
|
+
if (query.min_employees != null) applied_filters.min_employees = query.min_employees;
|
|
9990
|
+
if (query.max_employees != null) applied_filters.max_employees = query.max_employees;
|
|
9980
9991
|
return {
|
|
9981
9992
|
provider: provider.name,
|
|
9982
9993
|
count: results.length,
|
|
9983
9994
|
has_more: results.length >= limit,
|
|
9984
9995
|
offset,
|
|
9996
|
+
...Object.keys(applied_filters).length > 0 && { applied_filters },
|
|
9985
9997
|
companies: slimmedResults
|
|
9986
9998
|
};
|
|
9987
9999
|
}
|
|
@@ -10029,11 +10041,26 @@ async function findPeople(args, ctx) {
|
|
|
10029
10041
|
});
|
|
10030
10042
|
const limit = args.limit ?? 25;
|
|
10031
10043
|
const offset = args.offset ?? 0;
|
|
10044
|
+
const applied_filters = {};
|
|
10045
|
+
if (query.job_title) applied_filters.job_title = query.job_title;
|
|
10046
|
+
if (query.company_name) applied_filters.company_name = query.company_name;
|
|
10047
|
+
if (query.company_domain) applied_filters.company_domain = query.company_domain;
|
|
10048
|
+
if (query.company_domains?.length) applied_filters.company_domains = query.company_domains;
|
|
10049
|
+
if (query.seniority?.length) applied_filters.seniority = query.seniority;
|
|
10050
|
+
if (query.department?.length) applied_filters.department = query.department;
|
|
10051
|
+
if (query.filter_industry?.length) applied_filters.filter_industry = query.filter_industry;
|
|
10052
|
+
if (query.skills?.length) applied_filters.skills = query.skills;
|
|
10053
|
+
if (query.location) applied_filters.location = query.location;
|
|
10054
|
+
if (query.email_validated) applied_filters.email_validated = query.email_validated;
|
|
10055
|
+
if (query.min_employees != null) applied_filters.min_employees = query.min_employees;
|
|
10056
|
+
if (query.max_employees != null) applied_filters.max_employees = query.max_employees;
|
|
10057
|
+
if (query.revenue_range) applied_filters.revenue_range = query.revenue_range;
|
|
10032
10058
|
return {
|
|
10033
10059
|
provider: provider.name,
|
|
10034
10060
|
count: dedupedResults.length,
|
|
10035
10061
|
has_more: dedupedResults.length >= limit,
|
|
10036
10062
|
offset,
|
|
10063
|
+
...Object.keys(applied_filters).length > 0 && { applied_filters },
|
|
10037
10064
|
people: slimmedResults
|
|
10038
10065
|
};
|
|
10039
10066
|
}
|
|
@@ -12020,7 +12047,21 @@ var init_validation = __esm({
|
|
|
12020
12047
|
company_domain: z2.string().optional(),
|
|
12021
12048
|
location: z2.string().optional(),
|
|
12022
12049
|
limit: z2.number().int().min(1).max(1e3).optional(),
|
|
12023
|
-
seniority: z2.array(
|
|
12050
|
+
seniority: z2.array(
|
|
12051
|
+
z2.enum([
|
|
12052
|
+
"owner",
|
|
12053
|
+
"founder",
|
|
12054
|
+
"c_suite",
|
|
12055
|
+
"partner",
|
|
12056
|
+
"vp",
|
|
12057
|
+
"head",
|
|
12058
|
+
"director",
|
|
12059
|
+
"manager",
|
|
12060
|
+
"senior",
|
|
12061
|
+
"entry",
|
|
12062
|
+
"intern"
|
|
12063
|
+
])
|
|
12064
|
+
).optional(),
|
|
12024
12065
|
department: z2.array(z2.string()).optional(),
|
|
12025
12066
|
has_email: z2.boolean().optional(),
|
|
12026
12067
|
has_phone: z2.boolean().optional(),
|
|
@@ -12037,7 +12078,12 @@ var init_validation = __esm({
|
|
|
12037
12078
|
max_employees: z2.number().int().min(1).optional(),
|
|
12038
12079
|
revenue_range: z2.string().optional(),
|
|
12039
12080
|
fields: z2.union([z2.literal("all"), z2.array(z2.string())]).optional()
|
|
12040
|
-
})
|
|
12081
|
+
}).refine(
|
|
12082
|
+
(data) => !!(data.job_title || data.company_name || data.company_domain || data.company_domains && data.company_domains.length > 0 || data.seniority && data.seniority.length > 0 || data.filter_industry && data.filter_industry.length > 0 || data.skills && data.skills.length > 0 || data.location),
|
|
12083
|
+
{
|
|
12084
|
+
message: "At least one search filter required (job_title, company_name, company_domain, company_domains, seniority, filter_industry, skills, or location)"
|
|
12085
|
+
}
|
|
12086
|
+
),
|
|
12041
12087
|
// StorLeads — DTC/e-commerce company search
|
|
12042
12088
|
gtm_storeleads: z2.object({
|
|
12043
12089
|
search: z2.string().optional(),
|