orangeslice 1.8.3 → 1.8.5

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 CHANGED
@@ -44,10 +44,9 @@ const [companies, searchPage, ai] = await Promise.all([
44
44
 
45
45
  ## Service map
46
46
 
47
- - `services.company.linkedin.search/findUrl/enrich`
48
- - `services.person.linkedin.search/findUrl/enrich`
49
- - `services.person.contact.get`
50
- - `services.company.getEmployeesFromLinkedin`
47
+ - `services.company.linkedin.search/enrich`
48
+ - `services.company.getEmployeesFromLinkedin` (database-only B2B path)
49
+ - `services.person.linkedin.search/enrich`
51
50
  - `services.web.search/batchSearch`
52
51
  - `services.ai.generateObject`
53
52
  - `services.scrape.website`
@@ -55,22 +54,16 @@ const [companies, searchPage, ai] = await Promise.all([
55
54
  - `services.apify.runActor`
56
55
  - `services.googleMaps.scrape`
57
56
  - `services.geo.parseAddress`
58
- - `services.healthcare.npi`
59
57
  - `services.builtWith.lookupDomain/relationships/searchByTech`
60
58
 
61
59
  ## How routing works today
62
60
 
63
61
  All service calls go through `post()` in `src/api.ts`.
64
62
 
65
- - Default path: `https://enrichly-production.up.railway.app/function`
66
- - Direct path: `https://orangeslice.ai/api/function` (only when a call passes `direct: true`)
67
- - Polling split for pending/`202`:
68
- - `batch-native` (`b2b`, `batchserp`, `generateObject`) polls batch-service result endpoint.
69
- - `bridge` functions poll `https://orangeslice.ai/api/function/bridge-result`.
70
- - Polling timeout supports long-running enrichment workflows (up to 10 minutes).
71
- - Inngest secrets are server-side only (Next.js route env vars), never in the npm package.
72
-
73
- The current endpoint-to-backend mapping is documented in `docs/runtime-routing.md`.
63
+ - Submit path: `https://enrichly-production.up.railway.app/function`
64
+ - Pending responses (`pending: true` / `202`) poll batch-service result endpoints.
65
+ - Polling timeout supports long-running workflows (up to 10 minutes).
66
+ - This package now exposes only batch-backed services.
74
67
 
75
68
  ## Docs installed by CLI
76
69
 
package/dist/api.d.ts CHANGED
@@ -1,9 +1,5 @@
1
- export type FunctionType = "batch-native" | "bridge";
2
- export declare const BATCH_NATIVE_FUNCTION_IDS: Set<string>;
3
1
  interface PostOptions {
4
2
  direct?: boolean;
5
3
  }
6
- export declare function getFunctionType(functionId: string): FunctionType;
7
- export declare function getBridgeResultEventName(functionId: string): string | undefined;
8
4
  export declare function post<T>(functionId: string, payload: Record<string, unknown>, options?: PostOptions): Promise<T>;
9
5
  export {};
package/dist/api.js CHANGED
@@ -1,47 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BATCH_NATIVE_FUNCTION_IDS = void 0;
4
- exports.getFunctionType = getFunctionType;
5
- exports.getBridgeResultEventName = getBridgeResultEventName;
6
3
  exports.post = post;
7
4
  /**
8
- * Runtime routing:
9
- * - Non-direct calls submit to Railway batch-service /function
10
- * - Direct calls submit to orangeslice.ai /api/function
11
- * - Pending polling splits by function type:
12
- * - default: poll batch-service /function/result
13
- * - bridge: poll Next.js bridge-result route only when backend provides bridge metadata
5
+ * Batch-only routing:
6
+ * - Submit all calls to Railway batch-service /function
7
+ * - Poll batch-service /function/result on pending responses
14
8
  */
15
9
  const BASE_URL = "https://enrichly-production.up.railway.app/function";
16
- const DIRECT_BASE_URL = "https://orangeslice.ai/api/function";
17
- const BRIDGE_POLL_URL = "https://orangeslice.ai/api/function/bridge-result";
18
10
  const POLL_TIMEOUT_MS = 600000;
19
11
  const DEFAULT_POLL_INTERVAL_MS = 1000;
20
- exports.BATCH_NATIVE_FUNCTION_IDS = new Set(["b2b", "batchserp", "generateObject"]);
21
- const BRIDGE_RESULT_EVENT_BY_FUNCTION_ID = {
22
- firecrawl: "proxy/firecrawl.result",
23
- kernel: "proxy/kernel.result",
24
- apify: "proxy/apify.result",
25
- contact: "proxy/invoke.result",
26
- "linkedin/find-profile-url": "proxy/linkedin-profile-url.result",
27
- "find-linkedin-company-url": "proxy/linkedin-company-url.result",
28
- "b2b-get-employees-for-company": "proxy/invoke.result",
29
- geo: "proxy/invoke.result",
30
- npi: "proxy/invoke.result",
31
- googleMaps: "proxy/invoke.result",
32
- builtwithLookupDomain: "proxy/invoke.result",
33
- builtwithRelationships: "proxy/invoke.result",
34
- builtwithSearchByTech: "proxy/invoke.result",
35
- };
36
12
  function sleep(ms) {
37
13
  return new Promise((resolve) => setTimeout(resolve, ms));
38
14
  }
39
- function getFunctionType(functionId) {
40
- return exports.BATCH_NATIVE_FUNCTION_IDS.has(functionId) ? "batch-native" : "bridge";
41
- }
42
- function getBridgeResultEventName(functionId) {
43
- return BRIDGE_RESULT_EVENT_BY_FUNCTION_ID[functionId];
44
- }
45
15
  async function readResponseBody(res) {
46
16
  const text = await res.text();
47
17
  if (!text)
@@ -131,40 +101,16 @@ async function pollBatchUntilComplete(baseUrl, functionId, pending) {
131
101
  }
132
102
  throw new Error(`[orangeslice] ${functionId}: polling timed out after ${POLL_TIMEOUT_MS}ms`);
133
103
  }
134
- async function pollBridgeUntilComplete(functionId, callbackEventId, eventName, firstPollAfterMs) {
135
- const timeoutAt = Date.now() + POLL_TIMEOUT_MS;
136
- let pollAfterMs = typeof firstPollAfterMs === "number" && firstPollAfterMs > 0 ? firstPollAfterMs : DEFAULT_POLL_INTERVAL_MS;
137
- while (Date.now() < timeoutAt) {
138
- await sleep(pollAfterMs);
139
- const url = `${BRIDGE_POLL_URL}?callbackEventId=${encodeURIComponent(callbackEventId)}&eventName=${encodeURIComponent(eventName)}`;
140
- const res = await fetch(url, { method: "GET", headers: { "Content-Type": "application/json" } });
141
- const data = await readResponseBody(res);
142
- if (isPendingResponse(data) || res.status === 202) {
143
- const next = data.pollAfterMs;
144
- pollAfterMs = typeof next === "number" && next > 0 ? next : DEFAULT_POLL_INTERVAL_MS;
145
- continue;
146
- }
147
- if (!res.ok) {
148
- const message = asErrorMessage(data) || JSON.stringify(data);
149
- throw new Error(`[orangeslice] ${functionId}: ${res.status} ${message}`);
150
- }
151
- const message = asErrorMessage(data);
152
- if (message) {
153
- throw new Error(`[orangeslice] ${functionId}: ${message}`);
154
- }
155
- return data;
156
- }
157
- throw new Error(`[orangeslice] ${functionId}: bridge polling timed out after ${POLL_TIMEOUT_MS}ms`);
158
- }
159
104
  async function post(functionId, payload, options = {}) {
160
- const baseUrl = options.direct ? DIRECT_BASE_URL : BASE_URL;
161
- const functionType = options.direct ? "batch-native" : getFunctionType(functionId);
105
+ // Kept for backwards compatibility with older call sites.
106
+ void options;
107
+ const baseUrl = BASE_URL;
162
108
  const url = `${baseUrl}?functionId=${functionId}`;
163
109
  const body = JSON.stringify(payload);
164
110
  const res = await fetchWithRedirect(url, {
165
111
  method: "POST",
166
112
  headers: { "Content-Type": "application/json" },
167
- body,
113
+ body
168
114
  });
169
115
  if (!res.ok) {
170
116
  let message = `${res.status}`;
@@ -174,14 +120,6 @@ async function post(functionId, payload, options = {}) {
174
120
  }
175
121
  const data = await readResponseBody(res);
176
122
  if (isPendingResponse(data)) {
177
- if (functionType === "bridge") {
178
- const bridgePending = data;
179
- const resolvedCallbackId = bridgePending.callbackEventId;
180
- const resolvedEventName = bridgePending.eventName || getBridgeResultEventName(functionId);
181
- if (resolvedCallbackId && resolvedEventName) {
182
- return pollBridgeUntilComplete(functionId, resolvedCallbackId, resolvedEventName, bridgePending.pollAfterMs);
183
- }
184
- }
185
123
  return pollBatchUntilComplete(baseUrl, functionId, data);
186
124
  }
187
125
  const errorMessage = asErrorMessage(data);
package/dist/cli.js CHANGED
@@ -132,9 +132,9 @@ async function main() {
132
132
  console.log(" 2) ./orangeslice-docs/services/index.md");
133
133
  console.log(' Then tell it: "Use these docs as source of truth for all orangeslice operations."\n');
134
134
  console.log(" Routing note:");
135
- console.log(" - LinkedIn SQL (functionId=b2b) is routed direct");
136
- console.log(" - batch-native: b2b/batchserp/generateObject poll batch-service results");
137
- console.log(" - bridge functions poll a server route (Inngest keys are server-side only)\n");
135
+ console.log(" - all services submit to the batch-service /function endpoint");
136
+ console.log(" - pending jobs poll batch-service /function/result endpoints");
137
+ console.log(" - this package currently includes only batch-backed services\n");
138
138
  console.log(" // LinkedIn B2B SQL");
139
139
  console.log(' const { rows } = await services.company.linkedin.search({ sql: "SELECT * FROM linkedin_company LIMIT 10" });\n');
140
140
  console.log(" // Web search");
@@ -1,11 +1,57 @@
1
- export declare function personLinkedinFindUrl(params: Record<string, unknown>): Promise<unknown>;
1
+ export interface CompanyGetEmployeesFromLinkedinParams {
2
+ companySlug?: string;
3
+ linkedinUrl?: string;
4
+ searchStrategy?: "database" | "web";
5
+ titleVariations?: string[];
6
+ titleSqlFilter?: string;
7
+ sqlFilterClause?: string;
8
+ limit?: number;
9
+ onlyCurrent?: boolean;
10
+ usOnly?: boolean;
11
+ minConnections?: number;
12
+ offset?: number;
13
+ }
14
+ export interface CompanyEmployeeFromB2B {
15
+ lp_first_name: string | null;
16
+ lp_last_name: string | null;
17
+ lp_formatted_name: string | null;
18
+ lp_headline: string | null;
19
+ lp_location_name: string | null;
20
+ lp_public_profile_url: string | null;
21
+ lp_title: string | null;
22
+ lp_company_name: string | null;
23
+ lp_start_date: string | null;
24
+ lp_connections: number | null;
25
+ }
26
+ export interface CompanyGetEmployeesFromLinkedinResult {
27
+ employees: CompanyEmployeeFromB2B[];
28
+ nextPage: number | null;
29
+ totalResults: number | null;
30
+ }
31
+ export interface PersonLinkedinFindUrlParams {
32
+ name?: string;
33
+ title?: string;
34
+ company?: string;
35
+ keyword?: string;
36
+ location?: string;
37
+ }
38
+ export interface CompanyLinkedinFindUrlParams {
39
+ companyName?: string;
40
+ website?: string;
41
+ location?: string;
42
+ }
2
43
  export declare function personLinkedinEnrich(params: Record<string, unknown>): Promise<unknown>;
3
- export declare function personContactGet(params: Record<string, unknown>): Promise<unknown>;
4
- export declare function companyLinkedinFindUrl(params: Record<string, unknown>): Promise<unknown>;
5
44
  export declare function companyLinkedinEnrich(params: Record<string, unknown>): Promise<unknown>;
6
- export declare function companyGetEmployeesFromLinkedin(params: Record<string, unknown>): Promise<unknown>;
45
+ /**
46
+ * Find a LinkedIn person profile URL from name/title/company context.
47
+ */
48
+ export declare function personLinkedinFindUrl(params: PersonLinkedinFindUrlParams): Promise<string | null>;
49
+ /**
50
+ * Find a LinkedIn company URL from website/company context.
51
+ */
52
+ export declare function companyLinkedinFindUrl(params: CompanyLinkedinFindUrlParams): Promise<string | null>;
53
+ export declare function companyGetEmployeesFromLinkedin(params: CompanyGetEmployeesFromLinkedinParams): Promise<CompanyGetEmployeesFromLinkedinResult>;
7
54
  export declare function geoParseAddress(params: Record<string, unknown>): Promise<unknown>;
8
- export declare function healthcareNpi(params: Record<string, unknown>): Promise<unknown>;
9
55
  export declare function builtWithLookupDomain(params: Record<string, unknown>): Promise<unknown>;
10
56
  export declare function builtWithRelationships(params: Record<string, unknown>): Promise<unknown>;
11
57
  export declare function builtWithSearchByTech(params: Record<string, unknown>): Promise<unknown>;
package/dist/expansion.js CHANGED
@@ -1,13 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.personLinkedinFindUrl = personLinkedinFindUrl;
4
3
  exports.personLinkedinEnrich = personLinkedinEnrich;
5
- exports.personContactGet = personContactGet;
6
- exports.companyLinkedinFindUrl = companyLinkedinFindUrl;
7
4
  exports.companyLinkedinEnrich = companyLinkedinEnrich;
5
+ exports.personLinkedinFindUrl = personLinkedinFindUrl;
6
+ exports.companyLinkedinFindUrl = companyLinkedinFindUrl;
8
7
  exports.companyGetEmployeesFromLinkedin = companyGetEmployeesFromLinkedin;
9
8
  exports.geoParseAddress = geoParseAddress;
10
- exports.healthcareNpi = healthcareNpi;
11
9
  exports.builtWithLookupDomain = builtWithLookupDomain;
12
10
  exports.builtWithRelationships = builtWithRelationships;
13
11
  exports.builtWithSearchByTech = builtWithSearchByTech;
@@ -22,9 +20,6 @@ function extractLinkedinUsername(url) {
22
20
  const slug = match[1].trim();
23
21
  return slug.length > 0 ? slug : undefined;
24
22
  }
25
- async function personLinkedinFindUrl(params) {
26
- return (0, api_1.post)("linkedin/find-profile-url", params);
27
- }
28
23
  async function personLinkedinEnrich(params) {
29
24
  const url = typeof params.url === "string" ? params.url.trim() : "";
30
25
  const username = typeof params.username === "string" && params.username.trim().length > 0
@@ -70,27 +65,6 @@ async function personLinkedinEnrich(params) {
70
65
  const data = await (0, api_1.post)("b2b", { sql }, { direct: true });
71
66
  return data.rows?.[0] ?? null;
72
67
  }
73
- async function personContactGet(params) {
74
- return (0, api_1.post)("contact", params);
75
- }
76
- async function companyLinkedinFindUrl(params) {
77
- const companyName = typeof params.companyName === "string" && params.companyName.trim().length > 0
78
- ? params.companyName.trim()
79
- : typeof params.name === "string" && params.name.trim().length > 0
80
- ? params.name.trim()
81
- : undefined;
82
- const website = typeof params.website === "string" && params.website.trim().length > 0
83
- ? params.website.trim()
84
- : typeof params.domain === "string" && params.domain.trim().length > 0
85
- ? params.domain.trim()
86
- : undefined;
87
- const payload = {
88
- ...params,
89
- ...(companyName ? { companyName } : {}),
90
- ...(website ? { website } : {}),
91
- };
92
- return (0, api_1.post)("find-linkedin-company-url", payload);
93
- }
94
68
  async function companyLinkedinEnrich(params) {
95
69
  const shorthand = typeof params.shorthand === "string" ? params.shorthand.trim() : "";
96
70
  const url = typeof params.url === "string" ? params.url.trim() : "";
@@ -113,17 +87,26 @@ async function companyLinkedinEnrich(params) {
113
87
  const data = await (0, api_1.post)("b2b", { sql }, { direct: true });
114
88
  return data.rows?.[0] ?? null;
115
89
  }
90
+ /**
91
+ * Find a LinkedIn person profile URL from name/title/company context.
92
+ */
93
+ async function personLinkedinFindUrl(params) {
94
+ const url = await (0, api_1.post)("linkedinFindProfileUrl", params);
95
+ return typeof url === "string" && url.trim().length > 0 ? url : null;
96
+ }
97
+ /**
98
+ * Find a LinkedIn company URL from website/company context.
99
+ */
100
+ async function companyLinkedinFindUrl(params) {
101
+ const url = await (0, api_1.post)("findLinkedinCompanyUrl", params);
102
+ return typeof url === "string" && url.trim().length > 0 ? url : null;
103
+ }
116
104
  async function companyGetEmployeesFromLinkedin(params) {
117
- // Route through the dedicated backend function, which uses optimized query plans.
118
- // The raw SQL fallback can hit 60s statement timeouts on large companies.
119
105
  return (0, api_1.post)("b2b-get-employees-for-company", params);
120
106
  }
121
107
  async function geoParseAddress(params) {
122
108
  return (0, api_1.post)("geo", params);
123
109
  }
124
- async function healthcareNpi(params) {
125
- return (0, api_1.post)("npi", params);
126
- }
127
110
  async function builtWithLookupDomain(params) {
128
111
  return (0, api_1.post)("builtwithLookupDomain", params);
129
112
  }
package/dist/index.d.ts CHANGED
@@ -12,7 +12,8 @@ export { runApifyActor } from "./apify";
12
12
  export type { RunActorParams, RunActorResult, DatasetListParams } from "./apify";
13
13
  export { googleMapsScrape } from "./googleMaps";
14
14
  export type { GoogleMapsScrapeParams } from "./googleMaps";
15
- export { personLinkedinFindUrl, personLinkedinEnrich, personContactGet, companyLinkedinFindUrl, companyLinkedinEnrich, companyGetEmployeesFromLinkedin, geoParseAddress, healthcareNpi, builtWithLookupDomain, builtWithRelationships, builtWithSearchByTech, } from "./expansion";
15
+ export { personLinkedinEnrich, personLinkedinFindUrl, companyLinkedinEnrich, companyLinkedinFindUrl, companyGetEmployeesFromLinkedin, geoParseAddress, builtWithLookupDomain, builtWithRelationships, builtWithSearchByTech } from "./expansion";
16
+ export type { PersonLinkedinFindUrlParams, CompanyLinkedinFindUrlParams, CompanyGetEmployeesFromLinkedinParams, CompanyGetEmployeesFromLinkedinResult, CompanyEmployeeFromB2B } from "./expansion";
16
17
  import { linkedinSearch } from "./b2b";
17
18
  import { webBatchSearch, webSearch } from "./serp";
18
19
  import { generateObject } from "./generateObject";
@@ -20,7 +21,7 @@ import { scrapeWebsite } from "./firecrawl";
20
21
  import { browserExecute } from "./browser";
21
22
  import { runApifyActor } from "./apify";
22
23
  import { googleMapsScrape } from "./googleMaps";
23
- import { personLinkedinFindUrl, personLinkedinEnrich, personContactGet, companyLinkedinFindUrl, companyLinkedinEnrich, companyGetEmployeesFromLinkedin, geoParseAddress, healthcareNpi, builtWithLookupDomain, builtWithRelationships, builtWithSearchByTech } from "./expansion";
24
+ import { personLinkedinEnrich, personLinkedinFindUrl, companyLinkedinEnrich, companyLinkedinFindUrl, companyGetEmployeesFromLinkedin, geoParseAddress, builtWithLookupDomain, builtWithRelationships, builtWithSearchByTech } from "./expansion";
24
25
  export declare const services: {
25
26
  company: {
26
27
  linkedin: {
@@ -36,9 +37,6 @@ export declare const services: {
36
37
  enrich: typeof personLinkedinEnrich;
37
38
  search: typeof linkedinSearch;
38
39
  };
39
- contact: {
40
- get: typeof personContactGet;
41
- };
42
40
  };
43
41
  web: {
44
42
  search: typeof webSearch;
@@ -59,9 +57,6 @@ export declare const services: {
59
57
  geo: {
60
58
  parseAddress: typeof geoParseAddress;
61
59
  };
62
- healthcare: {
63
- npi: typeof healthcareNpi;
64
- };
65
60
  googleMaps: {
66
61
  scrape: typeof googleMapsScrape;
67
62
  };
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.services = exports.builtWithSearchByTech = exports.builtWithRelationships = exports.builtWithLookupDomain = exports.healthcareNpi = exports.geoParseAddress = exports.companyGetEmployeesFromLinkedin = exports.companyLinkedinEnrich = exports.companyLinkedinFindUrl = exports.personContactGet = exports.personLinkedinEnrich = exports.personLinkedinFindUrl = exports.googleMapsScrape = exports.runApifyActor = exports.browserExecute = exports.scrapeWebsite = exports.generateObject = exports.webBatchSearch = exports.webSearch = exports.linkedinSearch = void 0;
3
+ exports.services = exports.builtWithSearchByTech = exports.builtWithRelationships = exports.builtWithLookupDomain = exports.geoParseAddress = exports.companyGetEmployeesFromLinkedin = exports.companyLinkedinFindUrl = exports.companyLinkedinEnrich = exports.personLinkedinFindUrl = exports.personLinkedinEnrich = exports.googleMapsScrape = exports.runApifyActor = exports.browserExecute = exports.scrapeWebsite = exports.generateObject = exports.webBatchSearch = exports.webSearch = exports.linkedinSearch = void 0;
4
4
  var b2b_1 = require("./b2b");
5
5
  Object.defineProperty(exports, "linkedinSearch", { enumerable: true, get: function () { return b2b_1.linkedinSearch; } });
6
6
  var serp_1 = require("./serp");
@@ -17,14 +17,12 @@ Object.defineProperty(exports, "runApifyActor", { enumerable: true, get: functio
17
17
  var googleMaps_1 = require("./googleMaps");
18
18
  Object.defineProperty(exports, "googleMapsScrape", { enumerable: true, get: function () { return googleMaps_1.googleMapsScrape; } });
19
19
  var expansion_1 = require("./expansion");
20
- Object.defineProperty(exports, "personLinkedinFindUrl", { enumerable: true, get: function () { return expansion_1.personLinkedinFindUrl; } });
21
20
  Object.defineProperty(exports, "personLinkedinEnrich", { enumerable: true, get: function () { return expansion_1.personLinkedinEnrich; } });
22
- Object.defineProperty(exports, "personContactGet", { enumerable: true, get: function () { return expansion_1.personContactGet; } });
23
- Object.defineProperty(exports, "companyLinkedinFindUrl", { enumerable: true, get: function () { return expansion_1.companyLinkedinFindUrl; } });
21
+ Object.defineProperty(exports, "personLinkedinFindUrl", { enumerable: true, get: function () { return expansion_1.personLinkedinFindUrl; } });
24
22
  Object.defineProperty(exports, "companyLinkedinEnrich", { enumerable: true, get: function () { return expansion_1.companyLinkedinEnrich; } });
23
+ Object.defineProperty(exports, "companyLinkedinFindUrl", { enumerable: true, get: function () { return expansion_1.companyLinkedinFindUrl; } });
25
24
  Object.defineProperty(exports, "companyGetEmployeesFromLinkedin", { enumerable: true, get: function () { return expansion_1.companyGetEmployeesFromLinkedin; } });
26
25
  Object.defineProperty(exports, "geoParseAddress", { enumerable: true, get: function () { return expansion_1.geoParseAddress; } });
27
- Object.defineProperty(exports, "healthcareNpi", { enumerable: true, get: function () { return expansion_1.healthcareNpi; } });
28
26
  Object.defineProperty(exports, "builtWithLookupDomain", { enumerable: true, get: function () { return expansion_1.builtWithLookupDomain; } });
29
27
  Object.defineProperty(exports, "builtWithRelationships", { enumerable: true, get: function () { return expansion_1.builtWithRelationships; } });
30
28
  Object.defineProperty(exports, "builtWithSearchByTech", { enumerable: true, get: function () { return expansion_1.builtWithSearchByTech; } });
@@ -41,49 +39,43 @@ exports.services = {
41
39
  linkedin: {
42
40
  findUrl: expansion_2.companyLinkedinFindUrl,
43
41
  enrich: expansion_2.companyLinkedinEnrich,
44
- search: b2b_2.linkedinSearch,
42
+ search: b2b_2.linkedinSearch
45
43
  },
46
- getEmployeesFromLinkedin: expansion_2.companyGetEmployeesFromLinkedin,
44
+ getEmployeesFromLinkedin: expansion_2.companyGetEmployeesFromLinkedin
47
45
  },
48
46
  person: {
49
47
  linkedin: {
50
48
  findUrl: expansion_2.personLinkedinFindUrl,
51
49
  enrich: expansion_2.personLinkedinEnrich,
52
- search: b2b_2.linkedinSearch,
53
- },
54
- contact: {
55
- get: expansion_2.personContactGet,
56
- },
50
+ search: b2b_2.linkedinSearch
51
+ }
57
52
  },
58
53
  web: {
59
54
  search: serp_2.webSearch,
60
- batchSearch: serp_2.webBatchSearch,
55
+ batchSearch: serp_2.webBatchSearch
61
56
  },
62
57
  ai: {
63
- generateObject: generateObject_2.generateObject,
58
+ generateObject: generateObject_2.generateObject
64
59
  },
65
60
  scrape: {
66
- website: firecrawl_2.scrapeWebsite,
61
+ website: firecrawl_2.scrapeWebsite
67
62
  },
68
63
  browser: {
69
- execute: browser_2.browserExecute,
64
+ execute: browser_2.browserExecute
70
65
  },
71
66
  apify: {
72
- runActor: apify_2.runApifyActor,
67
+ runActor: apify_2.runApifyActor
73
68
  },
74
69
  geo: {
75
- parseAddress: expansion_2.geoParseAddress,
76
- },
77
- healthcare: {
78
- npi: expansion_2.healthcareNpi,
70
+ parseAddress: expansion_2.geoParseAddress
79
71
  },
80
72
  googleMaps: {
81
- scrape: googleMaps_2.googleMapsScrape,
73
+ scrape: googleMaps_2.googleMapsScrape
82
74
  },
83
75
  builtWith: {
84
76
  lookupDomain: expansion_2.builtWithLookupDomain,
85
77
  relationships: expansion_2.builtWithRelationships,
86
- searchByTech: expansion_2.builtWithSearchByTech,
87
- },
78
+ searchByTech: expansion_2.builtWithSearchByTech
79
+ }
88
80
  };
89
81
  exports.default = exports.services;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orangeslice",
3
- "version": "1.8.3",
3
+ "version": "1.8.5",
4
4
  "description": "B2B LinkedIn database prospector - 1.15B profiles, 85M companies",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -15,8 +15,7 @@
15
15
  "scripts": {
16
16
  "sync-docs": "node scripts/sync-docs.mjs",
17
17
  "build": "tsc",
18
- "prepublishOnly": "npm run sync-docs && npm run build",
19
- "test": "npx tsx test.ts"
18
+ "prepublishOnly": "npm run sync-docs && npm run build"
20
19
  },
21
20
  "keywords": [
22
21
  "b2b",