linkup-sdk 2.2.0 → 2.4.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/README.md +4 -2
- package/dist/linkup-client.d.ts +9 -3
- package/dist/linkup-client.d.ts.map +1 -1
- package/dist/linkup-client.js +15 -27
- package/dist/linkup-client.js.map +1 -1
- package/dist/types.d.ts +54 -24
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -75,9 +75,11 @@ askLinkup()
|
|
|
75
75
|
|
|
76
76
|
You can use the fetch endpoint to retrieve the content of a given URL in clean `markdown` format.
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
Use `renderJs` to execute the JavaScript code of the page before returning the content.
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
Use `includeRawHtml` to get the raw HTML of the page.
|
|
81
|
+
|
|
82
|
+
Use `extractImages` to get an extracted list of images from the page.
|
|
81
83
|
|
|
82
84
|
#### 📝 Example
|
|
83
85
|
|
package/dist/linkup-client.d.ts
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
import { ApiConfig, FetchParams, LinkupFetchResponse,
|
|
1
|
+
import { ApiConfig, FetchParams, LinkupFetchResponse, SearchResults, SearchResultsParams, SourcedAnswer, SourcedAnswerParams, Structured, StructuredParams, StructuredWithSources } from './types';
|
|
2
2
|
export declare class LinkupClient {
|
|
3
3
|
private readonly USER_AGENT;
|
|
4
4
|
private readonly client;
|
|
5
5
|
constructor(config: ApiConfig);
|
|
6
|
-
search
|
|
6
|
+
search(params: SourcedAnswerParams): Promise<SourcedAnswer>;
|
|
7
|
+
search(params: SearchResultsParams): Promise<SearchResults>;
|
|
8
|
+
search(params: StructuredParams & {
|
|
9
|
+
includeSources: true;
|
|
10
|
+
}): Promise<StructuredWithSources>;
|
|
11
|
+
search(params: StructuredParams & {
|
|
12
|
+
includeSources?: false | undefined;
|
|
13
|
+
}): Promise<Structured>;
|
|
7
14
|
fetch<T extends FetchParams>(params: T): Promise<LinkupFetchResponse<T>>;
|
|
8
15
|
private sanitizeParams;
|
|
9
|
-
private formatResponse;
|
|
10
16
|
}
|
|
11
17
|
//# sourceMappingURL=linkup-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linkup-client.d.ts","sourceRoot":"","sources":["../src/linkup-client.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"linkup-client.d.ts","sourceRoot":"","sources":["../src/linkup-client.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,SAAS,EACT,WAAW,EACX,mBAAmB,EAEnB,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAIjB,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAE3B,MAAM,EAAE,SAAS;IAsBvB,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IAC3D,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IAC3D,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG;QAAE,cAAc,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAC3F,MAAM,CACV,MAAM,EAAE,gBAAgB,GAAG;QAAE,cAAc,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;KAAE,GAChE,OAAO,CAAC,UAAU,CAAC;IAQhB,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAI9E,OAAO,CAAC,cAAc;CAyCvB"}
|
package/dist/linkup-client.js
CHANGED
|
@@ -28,15 +28,14 @@ class LinkupClient {
|
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
30
|
async search(params) {
|
|
31
|
-
return this.client
|
|
32
|
-
.post('/search', this.sanitizeParams(params))
|
|
33
|
-
.then(response => this.formatResponse(response.data, params.outputType));
|
|
31
|
+
return this.client.post('/search', this.sanitizeParams(params)).then(response => response.data);
|
|
34
32
|
}
|
|
35
33
|
async fetch(params) {
|
|
36
34
|
return this.client.post('/fetch', params).then(response => response.data);
|
|
37
35
|
}
|
|
38
|
-
sanitizeParams(
|
|
39
|
-
|
|
36
|
+
sanitizeParams(params) {
|
|
37
|
+
const { query, depth, outputType, includeImages, includeDomains, excludeDomains, fromDate, toDate, } = params;
|
|
38
|
+
const result = {
|
|
40
39
|
depth,
|
|
41
40
|
outputType,
|
|
42
41
|
q: query,
|
|
@@ -45,30 +44,19 @@ class LinkupClient {
|
|
|
45
44
|
...(excludeDomains && { excludeDomains }),
|
|
46
45
|
...(fromDate && { fromDate: fromDate.toISOString() }),
|
|
47
46
|
...(toDate && { toDate: toDate.toISOString() }),
|
|
48
|
-
...(includeInlineCitations && { includeInlineCitations }),
|
|
49
|
-
...(structuredOutputSchema && {
|
|
50
|
-
structuredOutputSchema: JSON.stringify((0, schema_utils_1.isZodObject)(structuredOutputSchema)
|
|
51
|
-
? (0, zod_to_json_schema_1.default)(structuredOutputSchema)
|
|
52
|
-
: structuredOutputSchema),
|
|
53
|
-
}),
|
|
54
47
|
};
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
results: searchResponse.results,
|
|
66
|
-
};
|
|
67
|
-
// biome-ignore lint/complexity/noUselessSwitchCase: left for exhaustiveness
|
|
68
|
-
case 'structured':
|
|
69
|
-
default:
|
|
70
|
-
return searchResponse;
|
|
48
|
+
if ('includeInlineCitations' in params && params.includeInlineCitations) {
|
|
49
|
+
result.includeInlineCitations = params.includeInlineCitations;
|
|
50
|
+
}
|
|
51
|
+
if ('includeSources' in params && params.includeSources) {
|
|
52
|
+
result.includeSources = params.includeSources;
|
|
53
|
+
}
|
|
54
|
+
if ('structuredOutputSchema' in params) {
|
|
55
|
+
result.structuredOutputSchema = JSON.stringify((0, schema_utils_1.isZodObject)(params.structuredOutputSchema)
|
|
56
|
+
? (0, zod_to_json_schema_1.default)(params.structuredOutputSchema)
|
|
57
|
+
: params.structuredOutputSchema);
|
|
71
58
|
}
|
|
59
|
+
return result;
|
|
72
60
|
}
|
|
73
61
|
}
|
|
74
62
|
exports.LinkupClient = LinkupClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linkup-client.js","sourceRoot":"","sources":["../src/linkup-client.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA6C;AAE7C,4EAAiD;
|
|
1
|
+
{"version":3,"file":"linkup-client.js","sourceRoot":"","sources":["../src/linkup-client.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,48 +1,73 @@
|
|
|
1
|
+
/** biome-ignore-all lint/complexity/noBannedTypes: needed for conditional props */
|
|
1
2
|
import { ZodObject, ZodRawShape } from 'zod';
|
|
2
3
|
export type SearchDepth = 'standard' | 'deep';
|
|
3
|
-
export type
|
|
4
|
-
export interface ApiConfig {
|
|
4
|
+
export type ApiConfig = {
|
|
5
5
|
apiKey: string;
|
|
6
6
|
baseUrl?: string;
|
|
7
|
-
}
|
|
8
|
-
export type
|
|
9
|
-
export type
|
|
10
|
-
export
|
|
7
|
+
};
|
|
8
|
+
export type Structured = Record<string, unknown>;
|
|
9
|
+
export type StructuredInputSchema = Structured | ZodObject<ZodRawShape>;
|
|
10
|
+
export type StructuredWithSources = {
|
|
11
|
+
data: Structured;
|
|
12
|
+
sources: StructuredSource[];
|
|
13
|
+
};
|
|
14
|
+
export type StructuredSource = {
|
|
15
|
+
url: string;
|
|
16
|
+
content: string;
|
|
17
|
+
name: string;
|
|
18
|
+
type: string;
|
|
19
|
+
};
|
|
20
|
+
export type SearchParams = {
|
|
11
21
|
query: string;
|
|
12
22
|
depth: SearchDepth;
|
|
13
|
-
outputType: T;
|
|
14
23
|
includeImages?: boolean;
|
|
15
|
-
structuredOutputSchema?: StructuredOutputInputSchema;
|
|
16
24
|
includeDomains?: string[];
|
|
17
25
|
excludeDomains?: string[];
|
|
18
26
|
fromDate?: Date;
|
|
19
27
|
toDate?: Date;
|
|
28
|
+
} & ({
|
|
29
|
+
outputType: 'searchResults';
|
|
30
|
+
} | {
|
|
31
|
+
outputType: 'sourcedAnswer';
|
|
20
32
|
includeInlineCitations?: boolean;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
33
|
+
} | {
|
|
34
|
+
outputType: 'structured';
|
|
35
|
+
includeSources?: boolean;
|
|
36
|
+
structuredOutputSchema: StructuredInputSchema;
|
|
37
|
+
});
|
|
38
|
+
export type SourcedAnswerParams = Extract<SearchParams, {
|
|
39
|
+
outputType: 'sourcedAnswer';
|
|
40
|
+
}>;
|
|
41
|
+
export type SearchResultsParams = Extract<SearchParams, {
|
|
42
|
+
outputType: 'searchResults';
|
|
43
|
+
}>;
|
|
44
|
+
export type StructuredParams = Extract<SearchParams, {
|
|
45
|
+
outputType: 'structured';
|
|
46
|
+
}>;
|
|
47
|
+
export type LinkupSearchResponse = SourcedAnswer | SearchResults | Structured | StructuredWithSources;
|
|
48
|
+
export type SearchResults = {
|
|
24
49
|
results: (TextSearchResult | ImageSearchResult)[];
|
|
25
|
-
}
|
|
26
|
-
export
|
|
50
|
+
};
|
|
51
|
+
export type TextSearchResult = {
|
|
27
52
|
type: 'text';
|
|
28
53
|
name: string;
|
|
29
54
|
url: string;
|
|
30
55
|
content: string;
|
|
31
|
-
}
|
|
32
|
-
export
|
|
56
|
+
};
|
|
57
|
+
export type ImageSearchResult = {
|
|
33
58
|
type: 'image';
|
|
34
59
|
name: string;
|
|
35
60
|
url: string;
|
|
36
|
-
}
|
|
37
|
-
export
|
|
61
|
+
};
|
|
62
|
+
export type SourcedAnswer = {
|
|
38
63
|
answer: string;
|
|
39
64
|
sources: (Source | TextSearchResult | ImageSearchResult)[];
|
|
40
|
-
}
|
|
41
|
-
export
|
|
65
|
+
};
|
|
66
|
+
export type Source = {
|
|
42
67
|
name: string;
|
|
43
68
|
url: string;
|
|
44
69
|
snippet: string;
|
|
45
|
-
}
|
|
70
|
+
};
|
|
46
71
|
export type LinkupApiError = {
|
|
47
72
|
statusCode: number;
|
|
48
73
|
error: {
|
|
@@ -54,14 +79,19 @@ export type LinkupApiError = {
|
|
|
54
79
|
}[];
|
|
55
80
|
};
|
|
56
81
|
};
|
|
57
|
-
export
|
|
82
|
+
export type FetchParams = {
|
|
58
83
|
url: string;
|
|
59
84
|
renderJs?: boolean;
|
|
60
85
|
includeRawHtml?: boolean;
|
|
61
|
-
|
|
86
|
+
extractImages?: boolean;
|
|
87
|
+
};
|
|
62
88
|
export type LinkupFetchResponse<T extends FetchParams = FetchParams> = {
|
|
63
89
|
markdown: string;
|
|
64
|
-
} &
|
|
90
|
+
} & ConditionalProp<T['includeRawHtml'], {
|
|
65
91
|
rawHtml: string;
|
|
66
|
-
}
|
|
92
|
+
}> & ConditionalProp<T['extractImages'], {
|
|
93
|
+
images: string[];
|
|
94
|
+
}>;
|
|
95
|
+
type ConditionalProp<Condition, PropType> = Condition extends true ? PropType : {};
|
|
96
|
+
export {};
|
|
67
97
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAE7C,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;AAE9C,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAE7C,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;AAE9C,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;AAExE,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,WAAW,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,MAAM,CAAC,EAAE,IAAI,CAAC;CACf,GAAG,CACA;IACE,UAAU,EAAE,eAAe,CAAC;CAC7B,GACD;IACE,UAAU,EAAE,eAAe,CAAC;IAC5B,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,GACD;IACE,UAAU,EAAE,YAAY,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sBAAsB,EAAE,qBAAqB,CAAC;CAC/C,CACJ,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,YAAY,EAAE;IAAE,UAAU,EAAE,eAAe,CAAA;CAAE,CAAC,CAAC;AACzF,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,YAAY,EAAE;IAAE,UAAU,EAAE,eAAe,CAAA;CAAE,CAAC,CAAC;AACzF,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY,EAAE;IAAE,UAAU,EAAE,YAAY,CAAA;CAAE,CAAC,CAAC;AAEnF,MAAM,MAAM,oBAAoB,GAC5B,aAAa,GACb,aAAa,GACb,UAAU,GACV,qBAAqB,CAAC;AAE1B,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,EAAE,CAAC;CACnD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,CAAC,MAAM,GAAG,gBAAgB,GAAG,iBAAiB,CAAC,EAAE,CAAC;CAC5D,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE;YACP,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,EAAE,MAAM,CAAC;SACjB,EAAE,CAAC;KACL,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IAAI;IACrE,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAC3D,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE;IAAE,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAAC;AAE5D,KAAK,eAAe,CAAC,SAAS,EAAE,QAAQ,IAAI,SAAS,SAAS,IAAI,GAAG,QAAQ,GAAG,EAAE,CAAC"}
|