@sapiom/tools 0.11.0 → 0.12.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/CHANGELOG.md +10 -0
- package/dist/cjs/_client/capability-call.d.ts +58 -0
- package/dist/cjs/_client/capability-call.d.ts.map +1 -0
- package/dist/cjs/_client/capability-call.js +68 -0
- package/dist/cjs/_client/capability-call.js.map +1 -0
- package/dist/cjs/_client/index.d.ts +1 -0
- package/dist/cjs/_client/index.d.ts.map +1 -1
- package/dist/cjs/_client/index.js +4 -1
- package/dist/cjs/_client/index.js.map +1 -1
- package/dist/cjs/content-generation/index.d.ts +6 -0
- package/dist/cjs/content-generation/index.d.ts.map +1 -1
- package/dist/cjs/content-generation/index.js +32 -20
- package/dist/cjs/content-generation/index.js.map +1 -1
- package/dist/cjs/search/index.d.ts +6 -1
- package/dist/cjs/search/index.d.ts.map +1 -1
- package/dist/cjs/search/index.js +89 -90
- package/dist/cjs/search/index.js.map +1 -1
- package/dist/esm/_client/capability-call.d.ts +58 -0
- package/dist/esm/_client/capability-call.d.ts.map +1 -0
- package/dist/esm/_client/capability-call.js +64 -0
- package/dist/esm/_client/capability-call.js.map +1 -0
- package/dist/esm/_client/index.d.ts +1 -0
- package/dist/esm/_client/index.d.ts.map +1 -1
- package/dist/esm/_client/index.js +1 -0
- package/dist/esm/_client/index.js.map +1 -1
- package/dist/esm/content-generation/index.d.ts +6 -0
- package/dist/esm/content-generation/index.d.ts.map +1 -1
- package/dist/esm/content-generation/index.js +33 -21
- package/dist/esm/content-generation/index.js.map +1 -1
- package/dist/esm/search/index.d.ts +6 -1
- package/dist/esm/search/index.d.ts.map +1 -1
- package/dist/esm/search/index.js +91 -92
- package/dist/esm/search/index.js.map +1 -1
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -19,10 +19,15 @@
|
|
|
19
19
|
* inline to block until done — same as `video.create` but with the ability to
|
|
20
20
|
* pause a running workflow.
|
|
21
21
|
*/
|
|
22
|
-
import { defaultTransport } from "../_client/index.js";
|
|
22
|
+
import { capabilityCall, defaultTransport, resolveCoreBaseUrl, } from "../_client/index.js";
|
|
23
23
|
import { resolveServiceUrl } from "../_client/service-url.js";
|
|
24
24
|
import { ensureOk, ContentGenerationHttpError } from "./errors.js";
|
|
25
25
|
export { ContentGenerationHttpError };
|
|
26
|
+
/**
|
|
27
|
+
* Base URL for the still-provider-direct video ops (deferred — async/poll, SAP-1117).
|
|
28
|
+
* The routed `images.create` verb does NOT use this; it resolves the single Core
|
|
29
|
+
* base URL at call time via {@link resolveCoreBaseUrl} (SAP-1116).
|
|
30
|
+
*/
|
|
26
31
|
const DEFAULT_BASE_URL = resolveServiceUrl("fal", process.env.SAPIOM_CONTENT_GENERATION_URL);
|
|
27
32
|
/**
|
|
28
33
|
* Capability-stable signal a video launch fires when the video reaches a terminal
|
|
@@ -31,16 +36,14 @@ const DEFAULT_BASE_URL = resolveServiceUrl("fal", process.env.SAPIOM_CONTENT_GEN
|
|
|
31
36
|
* value carried in the handle's `dispatch.resultSignal`.
|
|
32
37
|
*/
|
|
33
38
|
export const VIDEO_RESULT_SIGNAL = "contentGeneration.video.result";
|
|
34
|
-
/** Default image model when the caller doesn't pick one — a fast, low-cost model. */
|
|
35
|
-
const DEFAULT_IMAGE_MODEL = "fal-ai/flux/schnell";
|
|
36
39
|
function mapImage(raw) {
|
|
37
40
|
return {
|
|
38
41
|
url: raw.url,
|
|
39
|
-
...(raw.
|
|
42
|
+
...(raw.contentType !== undefined && { contentType: raw.contentType }),
|
|
40
43
|
...(raw.width !== undefined && { width: raw.width }),
|
|
41
44
|
...(raw.height !== undefined && { height: raw.height }),
|
|
42
|
-
...(raw.
|
|
43
|
-
...(raw.
|
|
45
|
+
...(raw.fileId !== undefined && { fileId: raw.fileId }),
|
|
46
|
+
...(raw.storageError !== undefined && { storageError: raw.storageError }),
|
|
44
47
|
};
|
|
45
48
|
}
|
|
46
49
|
function mapResult(raw) {
|
|
@@ -79,26 +82,35 @@ function workflowResumeHeaders(token) {
|
|
|
79
82
|
* Generate one or more images from a prompt. Pass `storage` to persist each output
|
|
80
83
|
* (the returned images then carry `fileId`). Failed requests throw
|
|
81
84
|
* {@link ContentGenerationHttpError}.
|
|
85
|
+
*
|
|
86
|
+
* Routed (SAP-1116): goes through the shared {@link capabilityCall} seam to
|
|
87
|
+
* `POST /v1/capabilities/content.generation.images` on the single Core base URL.
|
|
88
|
+
* `model` is now a request-body field the router's adapter turns into the provider
|
|
89
|
+
* path (and defaults when omitted) — the SDK no longer builds the `/run/<model>`
|
|
90
|
+
* URL itself.
|
|
82
91
|
*/
|
|
83
|
-
export async function createImage(input, transport = defaultTransport(), baseUrl =
|
|
92
|
+
export async function createImage(input, transport = defaultTransport(), baseUrl = resolveCoreBaseUrl()) {
|
|
84
93
|
assertPrompt(input.prompt);
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
};
|
|
94
|
+
// Map to the router's camelCase `ImageCreateRequest`. `params` rides as a nested
|
|
95
|
+
// field (not spread) so the adapter forwards it verbatim. `!= null` keeps a JS
|
|
96
|
+
// caller's explicit null off the wire; `storage` uses a truthy check so
|
|
97
|
+
// `storage: null` is "no storage" rather than a null field.
|
|
98
|
+
const body = { prompt: input.prompt };
|
|
99
|
+
if (input.model != null)
|
|
100
|
+
body.model = input.model;
|
|
90
101
|
if (input.numImages !== undefined)
|
|
91
|
-
body.
|
|
92
|
-
// Truthy check (not `!== undefined`) so a caller passing `storage: null` is
|
|
93
|
-
// treated as "no storage" rather than sending a null field.
|
|
102
|
+
body.numImages = input.numImages;
|
|
94
103
|
if (input.storage)
|
|
95
104
|
body.storage = input.storage;
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
105
|
+
if (input.params != null)
|
|
106
|
+
body.params = input.params;
|
|
107
|
+
const raw = await capabilityCall("content.generation.images", body, {
|
|
108
|
+
transport,
|
|
109
|
+
baseUrl,
|
|
110
|
+
makeError: (message, status, errorBody) => new ContentGenerationHttpError(message, status, errorBody),
|
|
111
|
+
errorPrefix: "Failed to generate image",
|
|
112
|
+
});
|
|
113
|
+
return mapResult(raw);
|
|
102
114
|
}
|
|
103
115
|
/**
|
|
104
116
|
* The `images` sub-namespace, so `contentGeneration.images.create(...)` reads the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/content-generation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/content-generation/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,12 @@
|
|
|
18
18
|
*
|
|
19
19
|
* Or via an explicit client: `createClient({ apiKey }).search.webSearch(...)`.
|
|
20
20
|
*
|
|
21
|
-
*
|
|
21
|
+
* Every operation here is **routed**: it goes through the shared
|
|
22
|
+
* {@link capabilityCall} seam to `POST /v1/capabilities/<id>` on the single Core
|
|
23
|
+
* base URL (SAP-1116). The dotted capability id (`web.scrape`, `web.search`,
|
|
24
|
+
* `email.find` / `email.verify` / `email.domain.search`) appears only on the wire —
|
|
25
|
+
* the public verb names and shapes below are unchanged. Failed requests throw
|
|
26
|
+
* {@link SearchHttpError} (carries `status` + parsed `body`).
|
|
22
27
|
*/
|
|
23
28
|
import { Transport } from "../_client/index.js";
|
|
24
29
|
import { SearchHttpError } from "./errors.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/search/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/search/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/search/index.js
CHANGED
|
@@ -18,15 +18,18 @@
|
|
|
18
18
|
*
|
|
19
19
|
* Or via an explicit client: `createClient({ apiKey }).search.webSearch(...)`.
|
|
20
20
|
*
|
|
21
|
-
*
|
|
21
|
+
* Every operation here is **routed**: it goes through the shared
|
|
22
|
+
* {@link capabilityCall} seam to `POST /v1/capabilities/<id>` on the single Core
|
|
23
|
+
* base URL (SAP-1116). The dotted capability id (`web.scrape`, `web.search`,
|
|
24
|
+
* `email.find` / `email.verify` / `email.domain.search`) appears only on the wire —
|
|
25
|
+
* the public verb names and shapes below are unchanged. Failed requests throw
|
|
26
|
+
* {@link SearchHttpError} (carries `status` + parsed `body`).
|
|
22
27
|
*/
|
|
23
|
-
import { defaultTransport } from "../_client/index.js";
|
|
24
|
-
import {
|
|
25
|
-
import { SearchHttpError, ensureOk } from "./errors.js";
|
|
28
|
+
import { capabilityCall, defaultTransport, resolveCoreBaseUrl, } from "../_client/index.js";
|
|
29
|
+
import { SearchHttpError } from "./errors.js";
|
|
26
30
|
export { SearchHttpError };
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
const DEFAULT_EMAIL_SEARCH_BASE_URL = process.env.SAPIOM_EMAIL_SEARCH_URL || "https://hunter.services.sapiom.ai";
|
|
31
|
+
/** Build the capability-specific error the routed call throws on a non-2xx. */
|
|
32
|
+
const searchError = (message, status, body) => new SearchHttpError(message, status, body);
|
|
30
33
|
/** Collapse a field that may be a single value or an array down to one value. */
|
|
31
34
|
function firstOf(value) {
|
|
32
35
|
return Array.isArray(value) ? value[0] : value;
|
|
@@ -46,17 +49,16 @@ function mapMetadata(raw) {
|
|
|
46
49
|
};
|
|
47
50
|
}
|
|
48
51
|
function mapScrape(url, raw) {
|
|
49
|
-
const data = raw.data ?? {};
|
|
50
52
|
// Unrequested formats come back null; treat null as absent (`!=`) so each
|
|
51
53
|
// format field is present only when it was actually returned.
|
|
52
54
|
return {
|
|
53
|
-
url,
|
|
54
|
-
...(
|
|
55
|
-
...(
|
|
56
|
-
...(
|
|
57
|
-
...(
|
|
58
|
-
...(
|
|
59
|
-
metadata: mapMetadata(
|
|
55
|
+
url: raw.url ?? url,
|
|
56
|
+
...(raw.markdown != null && { markdown: raw.markdown }),
|
|
57
|
+
...(raw.html != null && { html: raw.html }),
|
|
58
|
+
...(raw.rawHtml != null && { rawHtml: raw.rawHtml }),
|
|
59
|
+
...(raw.screenshot != null && { screenshot: raw.screenshot }),
|
|
60
|
+
...(raw.links != null && { links: raw.links }),
|
|
61
|
+
metadata: mapMetadata(raw.metadata),
|
|
60
62
|
};
|
|
61
63
|
}
|
|
62
64
|
// ----- Capability operations -----
|
|
@@ -67,7 +69,7 @@ function mapScrape(url, raw) {
|
|
|
67
69
|
* Works on HTML pages and common documents (PDF, DOCX, TXT). Failed requests throw
|
|
68
70
|
* {@link SearchHttpError}.
|
|
69
71
|
*/
|
|
70
|
-
export async function scrape(input, transport = defaultTransport(), baseUrl =
|
|
72
|
+
export async function scrape(input, transport = defaultTransport(), baseUrl = resolveCoreBaseUrl()) {
|
|
71
73
|
// `!= null` so an optional explicitly passed as null (a JS caller bypassing the
|
|
72
74
|
// types) is treated as absent rather than forwarded as a null field.
|
|
73
75
|
const body = { url: input.url };
|
|
@@ -77,12 +79,13 @@ export async function scrape(input, transport = defaultTransport(), baseUrl = DE
|
|
|
77
79
|
body.onlyMainContent = input.onlyMainContent;
|
|
78
80
|
if (input.waitFor != null)
|
|
79
81
|
body.waitFor = input.waitFor;
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
82
|
+
const raw = await capabilityCall("web.scrape", body, {
|
|
83
|
+
transport,
|
|
84
|
+
baseUrl,
|
|
85
|
+
makeError: searchError,
|
|
86
|
+
errorPrefix: "Failed to scrape",
|
|
87
|
+
});
|
|
88
|
+
return mapScrape(input.url, raw);
|
|
86
89
|
}
|
|
87
90
|
function mapWebSearchResult(raw) {
|
|
88
91
|
return {
|
|
@@ -111,7 +114,7 @@ function mapWebSearch(query, raw) {
|
|
|
111
114
|
*
|
|
112
115
|
* Failed requests throw {@link SearchHttpError}.
|
|
113
116
|
*/
|
|
114
|
-
export async function webSearch(input, transport = defaultTransport(), baseUrl =
|
|
117
|
+
export async function webSearch(input, transport = defaultTransport(), baseUrl = resolveCoreBaseUrl()) {
|
|
115
118
|
// `!= null` so an optional explicitly passed as null (a JS caller bypassing the
|
|
116
119
|
// types) is treated as absent rather than forwarded as a null field.
|
|
117
120
|
const body = {
|
|
@@ -120,37 +123,13 @@ export async function webSearch(input, transport = defaultTransport(), baseUrl =
|
|
|
120
123
|
};
|
|
121
124
|
if (input.depth != null)
|
|
122
125
|
body.depth = input.depth;
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
// ----- search.emailSearch -----
|
|
131
|
-
//
|
|
132
|
-
// Three operations for working with professional email addresses: find an email
|
|
133
|
-
// for a known person, verify an address is deliverable, and discover the emails
|
|
134
|
-
// published at a company domain.
|
|
135
|
-
// ----- Shared request/response helpers -----
|
|
136
|
-
/**
|
|
137
|
-
* Build a query string from a set of params. Skips any value that is null or
|
|
138
|
-
* undefined (so a JS caller passing an optional as `null` doesn't put `null` on
|
|
139
|
-
* the wire), and stringifies everything else.
|
|
140
|
-
*/
|
|
141
|
-
function toQuery(params) {
|
|
142
|
-
const search = new URLSearchParams();
|
|
143
|
-
for (const [key, value] of Object.entries(params)) {
|
|
144
|
-
if (value != null)
|
|
145
|
-
search.set(key, String(value));
|
|
146
|
-
}
|
|
147
|
-
const qs = search.toString();
|
|
148
|
-
return qs ? `?${qs}` : "";
|
|
149
|
-
}
|
|
150
|
-
async function getEnvelope(transport, url, errorPrefix) {
|
|
151
|
-
const res = await ensureOk(await transport.fetch(url, { method: "GET" }), errorPrefix);
|
|
152
|
-
const body = (await res.json());
|
|
153
|
-
return body.data;
|
|
126
|
+
const raw = await capabilityCall("web.search", body, {
|
|
127
|
+
transport,
|
|
128
|
+
baseUrl,
|
|
129
|
+
makeError: searchError,
|
|
130
|
+
errorPrefix: "Failed to search the web",
|
|
131
|
+
});
|
|
132
|
+
return mapWebSearch(input.query, raw);
|
|
154
133
|
}
|
|
155
134
|
function mapFindEmail(raw) {
|
|
156
135
|
const d = raw ?? {};
|
|
@@ -159,11 +138,11 @@ function mapFindEmail(raw) {
|
|
|
159
138
|
return {
|
|
160
139
|
email: d.email != null ? d.email : null,
|
|
161
140
|
...(d.score != null && { score: d.score }),
|
|
162
|
-
...(d.
|
|
163
|
-
...(d.
|
|
141
|
+
...(d.firstName != null && { firstName: d.firstName }),
|
|
142
|
+
...(d.lastName != null && { lastName: d.lastName }),
|
|
164
143
|
...(d.position != null && { position: d.position }),
|
|
165
144
|
...(d.company != null && { company: d.company }),
|
|
166
|
-
...(d.
|
|
145
|
+
...(d.linkedinUrl != null && { linkedinUrl: d.linkedinUrl }),
|
|
167
146
|
...(d.verification != null && { verification: d.verification }),
|
|
168
147
|
};
|
|
169
148
|
}
|
|
@@ -178,25 +157,38 @@ function mapFindEmail(raw) {
|
|
|
178
157
|
* Returns the best match, with `email` set to `null` when none was found. Failed
|
|
179
158
|
* requests throw {@link SearchHttpError}.
|
|
180
159
|
*/
|
|
181
|
-
export async function findEmail(input, transport = defaultTransport(), baseUrl =
|
|
160
|
+
export async function findEmail(input, transport = defaultTransport(), baseUrl = resolveCoreBaseUrl()) {
|
|
182
161
|
// Guard the required combination client-side so an under-specified lookup fails
|
|
183
162
|
// fast and clearly, never as a confusing network round-trip. `!= null` plus a
|
|
184
|
-
// truthiness check rejects null/undefined/empty-string for JS callers.
|
|
163
|
+
// truthiness check rejects null/undefined/empty-string for JS callers. (The
|
|
164
|
+
// router validates the same combination, but the client guard keeps the
|
|
165
|
+
// no-network-on-invalid contract the SDK has always offered.)
|
|
185
166
|
const hasOrg = Boolean(input.domain) || Boolean(input.company);
|
|
186
167
|
const hasPerson = Boolean(input.fullName) ||
|
|
187
168
|
(Boolean(input.firstName) && Boolean(input.lastName));
|
|
188
169
|
if (!hasOrg || !hasPerson) {
|
|
189
170
|
throw new SearchHttpError("findEmail requires (domain or company) and (fullName or firstName + lastName)", 400, undefined);
|
|
190
171
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
172
|
+
// Forward only the provided fields (camelCase router DTO). `!= null` keeps a
|
|
173
|
+
// JS-caller's explicit null off the wire.
|
|
174
|
+
const body = {};
|
|
175
|
+
if (input.domain != null)
|
|
176
|
+
body.domain = input.domain;
|
|
177
|
+
if (input.company != null)
|
|
178
|
+
body.company = input.company;
|
|
179
|
+
if (input.firstName != null)
|
|
180
|
+
body.firstName = input.firstName;
|
|
181
|
+
if (input.lastName != null)
|
|
182
|
+
body.lastName = input.lastName;
|
|
183
|
+
if (input.fullName != null)
|
|
184
|
+
body.fullName = input.fullName;
|
|
185
|
+
const raw = await capabilityCall("email.find", body, {
|
|
186
|
+
transport,
|
|
187
|
+
baseUrl,
|
|
188
|
+
makeError: searchError,
|
|
189
|
+
errorPrefix: "Failed to find email",
|
|
197
190
|
});
|
|
198
|
-
|
|
199
|
-
return mapFindEmail(data);
|
|
191
|
+
return mapFindEmail(raw);
|
|
200
192
|
}
|
|
201
193
|
function mapVerifyEmail(email, raw) {
|
|
202
194
|
const d = raw ?? {};
|
|
@@ -205,8 +197,8 @@ function mapVerifyEmail(email, raw) {
|
|
|
205
197
|
...(d.status != null && { status: d.status }),
|
|
206
198
|
...(d.result != null && { result: d.result }),
|
|
207
199
|
...(d.score != null && { score: d.score }),
|
|
208
|
-
...(d.
|
|
209
|
-
...(d.
|
|
200
|
+
...(d.smtpCheck != null && { smtpCheck: d.smtpCheck }),
|
|
201
|
+
...(d.acceptAll != null && { acceptAll: d.acceptAll }),
|
|
210
202
|
...(d.disposable != null && { disposable: d.disposable }),
|
|
211
203
|
...(d.webmail != null && { webmail: d.webmail }),
|
|
212
204
|
};
|
|
@@ -218,21 +210,25 @@ function mapVerifyEmail(email, raw) {
|
|
|
218
210
|
*
|
|
219
211
|
* Failed requests throw {@link SearchHttpError}.
|
|
220
212
|
*/
|
|
221
|
-
export async function verifyEmail(input, transport = defaultTransport(), baseUrl =
|
|
213
|
+
export async function verifyEmail(input, transport = defaultTransport(), baseUrl = resolveCoreBaseUrl()) {
|
|
222
214
|
if (!input.email) {
|
|
223
215
|
throw new SearchHttpError("verifyEmail requires an email", 400, undefined);
|
|
224
216
|
}
|
|
225
|
-
const
|
|
226
|
-
|
|
227
|
-
|
|
217
|
+
const raw = await capabilityCall("email.verify", { email: input.email }, {
|
|
218
|
+
transport,
|
|
219
|
+
baseUrl,
|
|
220
|
+
makeError: searchError,
|
|
221
|
+
errorPrefix: "Failed to verify email",
|
|
222
|
+
});
|
|
223
|
+
return mapVerifyEmail(input.email, raw);
|
|
228
224
|
}
|
|
229
225
|
function mapDomainEmail(raw) {
|
|
230
226
|
return {
|
|
231
|
-
email: raw.
|
|
227
|
+
email: raw.email ?? "",
|
|
232
228
|
...(raw.type != null && { type: raw.type }),
|
|
233
229
|
...(raw.confidence != null && { confidence: raw.confidence }),
|
|
234
|
-
...(raw.
|
|
235
|
-
...(raw.
|
|
230
|
+
...(raw.firstName != null && { firstName: raw.firstName }),
|
|
231
|
+
...(raw.lastName != null && { lastName: raw.lastName }),
|
|
236
232
|
...(raw.position != null && { position: raw.position }),
|
|
237
233
|
...(raw.department != null && { department: raw.department }),
|
|
238
234
|
...(raw.seniority != null && { seniority: raw.seniority }),
|
|
@@ -245,7 +241,7 @@ function mapDomainSearch(domain, raw) {
|
|
|
245
241
|
domain: d.domain ?? domain,
|
|
246
242
|
...(d.organization != null && { organization: d.organization }),
|
|
247
243
|
...(d.pattern != null && { pattern: d.pattern }),
|
|
248
|
-
...(d.
|
|
244
|
+
...(d.acceptAll != null && { acceptAll: d.acceptAll }),
|
|
249
245
|
emails,
|
|
250
246
|
};
|
|
251
247
|
}
|
|
@@ -256,24 +252,27 @@ function mapDomainSearch(domain, raw) {
|
|
|
256
252
|
*
|
|
257
253
|
* Failed requests throw {@link SearchHttpError}.
|
|
258
254
|
*/
|
|
259
|
-
export async function domainSearch(input, transport = defaultTransport(), baseUrl =
|
|
255
|
+
export async function domainSearch(input, transport = defaultTransport(), baseUrl = resolveCoreBaseUrl()) {
|
|
260
256
|
if (!input.domain) {
|
|
261
257
|
throw new SearchHttpError("domainSearch requires a domain", 400, undefined);
|
|
262
258
|
}
|
|
263
|
-
// Array filters travel as
|
|
264
|
-
//
|
|
265
|
-
const
|
|
266
|
-
|
|
267
|
-
limit
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
259
|
+
// Forward only the provided fields. Array filters travel as arrays in the router
|
|
260
|
+
// DTO; an empty array is omitted entirely (no filter), and absent scalars are left off.
|
|
261
|
+
const body = { domain: input.domain };
|
|
262
|
+
if (input.limit != null)
|
|
263
|
+
body.limit = input.limit;
|
|
264
|
+
if (input.type != null)
|
|
265
|
+
body.type = input.type;
|
|
266
|
+
if (input.seniority != null && input.seniority.length > 0)
|
|
267
|
+
body.seniority = input.seniority;
|
|
268
|
+
if (input.department != null && input.department.length > 0)
|
|
269
|
+
body.department = input.department;
|
|
270
|
+
const raw = await capabilityCall("email.domain.search", body, {
|
|
271
|
+
transport,
|
|
272
|
+
baseUrl,
|
|
273
|
+
makeError: searchError,
|
|
274
|
+
errorPrefix: "Failed to search domain",
|
|
275
275
|
});
|
|
276
|
-
|
|
277
|
-
return mapDomainSearch(input.domain, data);
|
|
276
|
+
return mapDomainSearch(input.domain, raw);
|
|
278
277
|
}
|
|
279
278
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/search/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/search/index.ts"],"names":[],"mappings":"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"}
|