linkup-sdk 2.6.2 → 3.0.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 CHANGED
@@ -11,10 +11,13 @@ easy integration with Linkup's services.
11
11
 
12
12
  - ✅ **Simple and intuitive API client.**
13
13
  - 🔍 **Supports both standard and deep search queries.**
14
+ - 🧠 **Supports asynchronous research tasks and batched task workflows.**
14
15
  - 🔒 **Handles authentication and request management.**
15
16
 
16
17
  ## 📦 Installation
17
18
 
19
+ > **Requires Node.js >= 22**
20
+
18
21
  Simply install the Linkup JS SDK using `npm` or any other package manager:
19
22
 
20
23
  ```bash
@@ -38,7 +41,7 @@ Sign up on [Linkup](https://app.linkup.so) to get your API key.
38
41
  Pass the Linkup API key to the Linkup Client when creating it.
39
42
 
40
43
  ```typescript
41
- import { LinkupClient } from 'linkup-js-sdk';
44
+ import { LinkupClient } from 'linkup-sdk';
42
45
 
43
46
  const client = new LinkupClient({
44
47
  apiKey: '<YOUR API KEY>',
@@ -58,7 +61,7 @@ All search queries can be used with two very different modes:
58
61
  #### 📝 Example standard search query
59
62
 
60
63
  ```typescript
61
- import { LinkupClient } from 'linkup-js-sdk';
64
+ import { LinkupClient } from 'linkup-sdk';
62
65
 
63
66
  const client = new LinkupClient({
64
67
  apiKey: '<YOUR API KEY>',
@@ -71,7 +74,7 @@ const askLinkup = () => client.search({
71
74
  });
72
75
 
73
76
  askLinkup()
74
- .then(console.log);
77
+ .then(console.log)
75
78
  .catch(console.error);
76
79
  ```
77
80
 
@@ -88,7 +91,7 @@ Use `extractImages` to get an extracted list of images from the page.
88
91
  #### 📝 Example
89
92
 
90
93
  ```typescript
91
- import { LinkupClient } from 'linkup-js-sdk';
94
+ import { LinkupClient } from 'linkup-sdk';
92
95
 
93
96
  const client = new LinkupClient({
94
97
  apiKey: '<YOUR API KEY>',
@@ -103,3 +106,99 @@ fetchLinkup()
103
106
  .then(console.log)
104
107
  .catch(console.error);
105
108
  ```
109
+
110
+ ### 🧠 Research Endpoint
111
+
112
+ Use `research` to create an asynchronous research task, then poll it later or list recent runs.
113
+
114
+ ```typescript
115
+ import { LinkupClient } from 'linkup-sdk';
116
+
117
+ const client = new LinkupClient({
118
+ apiKey: '<YOUR API KEY>',
119
+ });
120
+
121
+ const task = await client.research({
122
+ query: 'Research the current state of the semiconductor market, covering key market dynamics, major industry players and their strategic positioning, recent analyst sentiment, and the main bull and bear cases for the sector. Ground the report in sourced, factual information.',
123
+ outputType: 'sourcedAnswer',
124
+ });
125
+
126
+ const latest = await client.getResearch(task.id);
127
+ ```
128
+
129
+ ### 🗂️ Tasks Endpoint
130
+
131
+ Use `createTasks` to submit mixed `search`, `fetch`, and `research` jobs in one batch, then inspect
132
+ them through `listTasks` or `getTask`.
133
+
134
+ ```typescript
135
+ import { LinkupClient } from 'linkup-sdk';
136
+
137
+ const client = new LinkupClient({
138
+ apiKey: '<YOUR API KEY>',
139
+ });
140
+
141
+ const tasks = await client.createTasks([
142
+ {
143
+ type: 'search',
144
+ input: {
145
+ query: 'Linkup latest product updates',
146
+ depth: 'deep',
147
+ outputType: 'sourcedAnswer',
148
+ },
149
+ },
150
+ {
151
+ type: 'fetch',
152
+ input: {
153
+ url: 'https://docs.linkup.so',
154
+ },
155
+ },
156
+ ]);
157
+
158
+ console.log(tasks.map(task => task.id));
159
+ ```
160
+
161
+ ### 💳 X402 Payment Protocol
162
+
163
+ The SDK supports the [X402 payment protocol](https://www.x402.org/), allowing you to pay for API
164
+ calls with on-chain transactions instead of an API key.
165
+
166
+ #### Prerequisites
167
+
168
+ Install the required peer dependencies:
169
+
170
+ ```bash
171
+ npm i viem @x402/core @x402/evm
172
+ ```
173
+
174
+ #### 📝 Example
175
+
176
+ Create a viem `LocalAccount` compatible with Base (Ethereum):
177
+
178
+ ```typescript
179
+ import { privateKeyToAccount } from 'viem/accounts';
180
+
181
+ const account = privateKeyToAccount('<YOUR WALLET PRIVATE KEY>');
182
+ ```
183
+
184
+ ```typescript
185
+ import { mnemonicToAccount } from 'viem/accounts';
186
+
187
+ const account = mnemonicToAccount('<YOUR MNEMONIC PHRASE>');
188
+ ```
189
+
190
+ Then pass it to `createX402Signer` and use the Linkup client:
191
+
192
+ ```typescript
193
+ import { LinkupClient } from 'linkup-sdk';
194
+ import { createX402Signer } from 'linkup-sdk/x402';
195
+
196
+ const signer = createX402Signer(account);
197
+ const client = new LinkupClient({ signer });
198
+
199
+ const response = await client.search({
200
+ query: 'What is the X402 payment protocol?',
201
+ depth: 'standard',
202
+ outputType: 'sourcedAnswer',
203
+ });
204
+ ```
package/dist/package.json CHANGED
@@ -3,6 +3,16 @@
3
3
  "version": "0.0.0",
4
4
  "main": "dist/src/index.js",
5
5
  "types": "dist/src/index.d.ts",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./dist/src/index.d.ts",
9
+ "default": "./dist/src/index.js"
10
+ },
11
+ "./x402": {
12
+ "types": "./dist/src/x402/index.d.ts",
13
+ "default": "./dist/src/x402/index.js"
14
+ }
15
+ },
6
16
  "scripts": {
7
17
  "build": "tsc",
8
18
  "commitlint": "commitlint --edit",
@@ -16,7 +26,7 @@
16
26
  "watch": "tsc --watch"
17
27
  },
18
28
  "engines": {
19
- "node": ">=20.19.0"
29
+ "node": ">=22.0.0"
20
30
  },
21
31
  "keywords": [
22
32
  "linkup",
@@ -38,23 +48,42 @@
38
48
  "dist/**/*"
39
49
  ],
40
50
  "devDependencies": {
41
- "@biomejs/biome": "2.0.5",
51
+ "@biomejs/biome": "2.4.4",
42
52
  "@commitlint/cli": "^19.8.1",
43
53
  "@commitlint/config-conventional": "^19.8.1",
44
54
  "@types/jest": "^29.5.14",
45
55
  "@types/node": "^24.0.4",
56
+ "@x402/core": "^2.6.0",
57
+ "@x402/evm": "^2.7.0",
46
58
  "husky": "^9.1.7",
47
59
  "jest": "^29.7.0",
48
60
  "knip": "^5.61.2",
49
- "semantic-release": "^24.2.5",
61
+ "semantic-release": "^25.0.3",
50
62
  "ts-jest": "^29.2.5",
51
- "typescript": "^5.8.3"
63
+ "typescript": "^5.9.3",
64
+ "viem": "^2.47.4"
52
65
  },
53
66
  "dependencies": {
54
67
  "axios": "^1.8.2",
55
68
  "zod": "^3.24.1",
56
69
  "zod-to-json-schema": "^3.24.1"
57
70
  },
71
+ "peerDependencies": {
72
+ "@x402/core": "^2.6.0",
73
+ "@x402/evm": "^2.6.0",
74
+ "viem": "^2.0.0"
75
+ },
76
+ "peerDependenciesMeta": {
77
+ "@x402/core": {
78
+ "optional": true
79
+ },
80
+ "@x402/evm": {
81
+ "optional": true
82
+ },
83
+ "viem": {
84
+ "optional": true
85
+ }
86
+ },
58
87
  "release": {
59
88
  "branches": [
60
89
  "main"
@@ -74,6 +103,15 @@
74
103
  ]
75
104
  ]
76
105
  },
106
+ "knip": {
107
+ "entry": [
108
+ "src/index.ts",
109
+ "src/x402/index.ts"
110
+ ],
111
+ "exclude": [
112
+ "optionalPeerDependencies"
113
+ ]
114
+ },
77
115
  "commitlint": {
78
116
  "extends": [
79
117
  "@commitlint/config-conventional"
@@ -25,4 +25,13 @@ export declare class LinkupUnknownError extends LinkupError {
25
25
  export declare class LinkupFetchError extends LinkupError {
26
26
  constructor(message?: string);
27
27
  }
28
+ export declare class LinkupFetchResponseTooLargeError extends LinkupError {
29
+ constructor(message?: string);
30
+ }
31
+ export declare class LinkupPaymentRequiredError extends LinkupError {
32
+ constructor(message?: string);
33
+ }
34
+ export declare class FetchUrlIsFileError extends LinkupError {
35
+ constructor(message?: string);
36
+ }
28
37
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,8BAAsB,WAAY,SAAQ,KAAK;CAAG;AAKlD,qBAAa,yBAA0B,SAAQ,WAAW;gBAC5C,OAAO,EAAE,MAAM;CAS5B;AAID,qBAAa,mBAAoB,SAAQ,WAAW;gBACtC,OAAO,CAAC,EAAE,MAAM;CAQ7B;AAID,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,OAAO,CAAC,EAAE,MAAM;CAQ7B;AAID,qBAAa,6BAA8B,SAAQ,WAAW;gBAChD,OAAO,CAAC,EAAE,MAAM;CAQ7B;AAID,qBAAa,0BAA2B,SAAQ,WAAW;gBAC7C,OAAO,CAAC,EAAE,MAAM;CAQ7B;AAGD,qBAAa,kBAAmB,SAAQ,WAAW;gBACrC,OAAO,EAAE,MAAM;CAQ5B;AAID,qBAAa,gBAAiB,SAAQ,WAAW;gBACnC,OAAO,CAAC,EAAE,MAAM;CAQ7B"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,8BAAsB,WAAY,SAAQ,KAAK;CAAG;AAKlD,qBAAa,yBAA0B,SAAQ,WAAW;gBAC5C,OAAO,EAAE,MAAM;CAS5B;AAID,qBAAa,mBAAoB,SAAQ,WAAW;gBACtC,OAAO,CAAC,EAAE,MAAM;CAQ7B;AAID,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,OAAO,CAAC,EAAE,MAAM;CAQ7B;AAID,qBAAa,6BAA8B,SAAQ,WAAW;gBAChD,OAAO,CAAC,EAAE,MAAM;CAQ7B;AAID,qBAAa,0BAA2B,SAAQ,WAAW;gBAC7C,OAAO,CAAC,EAAE,MAAM;CAQ7B;AAGD,qBAAa,kBAAmB,SAAQ,WAAW;gBACrC,OAAO,EAAE,MAAM;CAQ5B;AAID,qBAAa,gBAAiB,SAAQ,WAAW;gBACnC,OAAO,CAAC,EAAE,MAAM;CAQ7B;AAED,qBAAa,gCAAiC,SAAQ,WAAW;gBACnD,OAAO,CAAC,EAAE,MAAM;CAQ7B;AAGD,qBAAa,0BAA2B,SAAQ,WAAW;gBAC7C,OAAO,CAAC,EAAE,MAAM;CAQ7B;AAED,qBAAa,mBAAoB,SAAQ,WAAW;gBACtC,OAAO,CAAC,EAAE,MAAM;CAQ7B"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LinkupFetchError = exports.LinkupUnknownError = exports.LinkupTooManyRequestsError = exports.LinkupInsufficientCreditError = exports.LinkupAuthenticationError = exports.LinkupNoResultError = exports.LinkupInvalidRequestError = exports.LinkupError = void 0;
3
+ exports.FetchUrlIsFileError = exports.LinkupPaymentRequiredError = exports.LinkupFetchResponseTooLargeError = exports.LinkupFetchError = exports.LinkupUnknownError = exports.LinkupTooManyRequestsError = exports.LinkupInsufficientCreditError = exports.LinkupAuthenticationError = exports.LinkupNoResultError = exports.LinkupInvalidRequestError = exports.LinkupError = void 0;
4
4
  class LinkupError extends Error {
5
5
  }
6
6
  exports.LinkupError = LinkupError;
@@ -88,4 +88,35 @@ class LinkupFetchError extends LinkupError {
88
88
  }
89
89
  }
90
90
  exports.LinkupFetchError = LinkupFetchError;
91
+ class LinkupFetchResponseTooLargeError extends LinkupError {
92
+ constructor(message) {
93
+ super(message);
94
+ this.name = LinkupFetchResponseTooLargeError.name;
95
+ if ('captureStackTrace' in Error) {
96
+ Error.captureStackTrace(this, LinkupFetchResponseTooLargeError);
97
+ }
98
+ }
99
+ }
100
+ exports.LinkupFetchResponseTooLargeError = LinkupFetchResponseTooLargeError;
101
+ // Payment required error, raised when x402 payment signing fails or the 402 persists after retry.
102
+ class LinkupPaymentRequiredError extends LinkupError {
103
+ constructor(message) {
104
+ super(message);
105
+ this.name = LinkupPaymentRequiredError.name;
106
+ if ('captureStackTrace' in Error) {
107
+ Error.captureStackTrace(this, LinkupPaymentRequiredError);
108
+ }
109
+ }
110
+ }
111
+ exports.LinkupPaymentRequiredError = LinkupPaymentRequiredError;
112
+ class FetchUrlIsFileError extends LinkupError {
113
+ constructor(message) {
114
+ super(message);
115
+ this.name = FetchUrlIsFileError.name;
116
+ if ('captureStackTrace' in Error) {
117
+ Error.captureStackTrace(this, FetchUrlIsFileError);
118
+ }
119
+ }
120
+ }
121
+ exports.FetchUrlIsFileError = FetchUrlIsFileError;
91
122
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":";;;AAKA,MAAsB,WAAY,SAAQ,KAAK;CAAG;AAAlD,kCAAkD;AAElD,+EAA+E;AAC/E,2FAA2F;AAC3F,gEAAgE;AAChE,MAAa,yBAA0B,SAAQ,WAAW;IACxD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC;QAE3C,IAAI,mBAAmB,IAAI,KAAK,EAAE,CAAC;YACjC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;CACF;AAVD,8DAUC;AAED,yEAAyE;AACzE,mFAAmF;AACnF,MAAa,mBAAoB,SAAQ,WAAW;IAClD,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;QAErC,IAAI,mBAAmB,IAAI,KAAK,EAAE,CAAC;YACjC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;CACF;AATD,kDASC;AAED,8EAA8E;AAC9E,iGAAiG;AACjG,MAAa,yBAA0B,SAAQ,KAAK;IAClD,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC;QAE3C,IAAI,mBAAmB,IAAI,KAAK,EAAE,CAAC;YACjC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;CACF;AATD,8DASC;AAED,mFAAmF;AACnF,mDAAmD;AACnD,MAAa,6BAA8B,SAAQ,WAAW;IAC5D,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC,IAAI,CAAC;QAE/C,IAAI,mBAAmB,IAAI,KAAK,EAAE,CAAC;YACjC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;CACF;AATD,sEASC;AAED,iFAAiF;AACjF,mEAAmE;AACnE,MAAa,0BAA2B,SAAQ,WAAW;IACzD,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC,IAAI,CAAC;QAE5C,IAAI,mBAAmB,IAAI,KAAK,EAAE,CAAC;YACjC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;CACF;AATD,gEASC;AAED,gBAAgB;AAChB,MAAa,kBAAmB,SAAQ,WAAW;IACjD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC;QAEpC,IAAI,mBAAmB,IAAI,KAAK,EAAE,CAAC;YACjC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;CACF;AATD,gDASC;AAED,qEAAqE;AACrE,0DAA0D;AAC1D,MAAa,gBAAiB,SAAQ,WAAW;IAC/C,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC;QAElC,IAAI,mBAAmB,IAAI,KAAK,EAAE,CAAC;YACjC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;CACF;AATD,4CASC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,25 @@
1
- import { ApiConfig, FetchParams, LinkupFetchResponse, LinkupSearchResponse, SearchParams } from './types';
1
+ import { ApiConfig, FetchParams, LinkupFetchResponse, LinkupSearchResponse, ListResearchParams, ListTasksParams, PaginatedResearchTasks, PaginatedTasks, ResearchParams, ResearchTask, SearchParams, Task, TaskRequest } 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
6
  search<T extends SearchParams>(params: T): Promise<LinkupSearchResponse<T>>;
7
7
  fetch<T extends FetchParams>(params: T): Promise<LinkupFetchResponse<T>>;
8
- private sanitizeParams;
8
+ research(params: ResearchParams): Promise<ResearchTask>;
9
+ listResearch(params?: ListResearchParams): Promise<PaginatedResearchTasks>;
10
+ getResearch(id: string): Promise<ResearchTask>;
11
+ createTasks(tasks: TaskRequest[]): Promise<Task[]>;
12
+ listTasks(params?: ListTasksParams): Promise<PaginatedTasks>;
13
+ getTask(id: string): Promise<Task>;
14
+ private setupX402Interceptor;
15
+ private sanitizeSearchParams;
16
+ private sanitizeResearchParams;
17
+ private serializeStructuredOutputSchema;
18
+ private sanitizeTaskRequest;
19
+ private buildRequestConfig;
20
+ private serializeQueryParams;
21
+ private normalizeResearchTask;
22
+ private normalizeTask;
23
+ private normalizeSearchLikeInput;
9
24
  }
10
25
  //# sourceMappingURL=linkup-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"linkup-client.d.ts","sourceRoot":"","sources":["../../src/linkup-client.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACb,MAAM,SAAS,CAAC;AAIjB,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAE3B,MAAM,EAAE,SAAS;IAsBvB,MAAM,CAAC,CAAC,SAAS,YAAY,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAI3E,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAI9E,OAAO,CAAC,cAAc;CA6CvB"}
1
+ {"version":3,"file":"linkup-client.d.ts","sourceRoot":"","sources":["../../src/linkup-client.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,IAAI,EACJ,WAAW,EACZ,MAAM,SAAS,CAAC;AASjB,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAE3B,MAAM,EAAE,SAAS;IAwBvB,MAAM,CAAC,CAAC,SAAS,YAAY,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAM3E,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAIxE,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAMvD,YAAY,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAO9E,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAM9C,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IASlD,SAAS,CAAC,MAAM,GAAE,eAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;IAOhE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,OAAO,CAAC,oBAAoB;IAyC5B,OAAO,CAAC,oBAAoB;IA0C5B,OAAO,CAAC,sBAAsB;IAgC9B,OAAO,CAAC,+BAA+B;IAMvC,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,wBAAwB;CAQjC"}
@@ -1,4 +1,37 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
@@ -7,6 +40,7 @@ exports.LinkupClient = void 0;
7
40
  const axios_1 = __importDefault(require("axios"));
8
41
  const zod_to_json_schema_1 = __importDefault(require("zod-to-json-schema"));
9
42
  const package_json_1 = require("../package.json");
43
+ const errors_1 = require("./errors");
10
44
  const refine_error_utils_1 = require("./utils/refine-error.utils");
11
45
  const schema_utils_1 = require("./utils/schema.utils");
12
46
  class LinkupClient {
@@ -14,13 +48,14 @@ class LinkupClient {
14
48
  client;
15
49
  constructor(config) {
16
50
  const baseURL = config.baseUrl || 'https://api.linkup.so/v1';
17
- this.client = axios_1.default.create({
18
- baseURL,
19
- headers: {
20
- Authorization: `Bearer ${config.apiKey}`,
21
- 'User-Agent': this.USER_AGENT,
22
- },
23
- });
51
+ const headers = {
52
+ 'User-Agent': this.USER_AGENT,
53
+ ...('apiKey' in config ? { Authorization: `Bearer ${config.apiKey}` } : {}),
54
+ };
55
+ this.client = axios_1.default.create({ baseURL, headers });
56
+ if ('signer' in config) {
57
+ this.setupX402Interceptor(config.signer);
58
+ }
24
59
  this.client.interceptors.response.use(response => response, error => {
25
60
  if (!error.response || !error.response.data) {
26
61
  throw error;
@@ -29,12 +64,68 @@ class LinkupClient {
29
64
  });
30
65
  }
31
66
  async search(params) {
32
- return this.client.post('/search', this.sanitizeParams(params)).then(response => response.data);
67
+ return this.client
68
+ .post('/search', this.sanitizeSearchParams(params))
69
+ .then(response => response.data);
33
70
  }
34
71
  async fetch(params) {
35
72
  return this.client.post('/fetch', params).then(response => response.data);
36
73
  }
37
- sanitizeParams(params) {
74
+ async research(params) {
75
+ return this.client
76
+ .post('/research', this.sanitizeResearchParams(params))
77
+ .then(response => this.normalizeResearchTask(response.data));
78
+ }
79
+ async listResearch(params = {}) {
80
+ return this.client.get('/research', this.buildRequestConfig(params)).then(response => ({
81
+ ...response.data,
82
+ data: response.data.data.map((task) => this.normalizeResearchTask(task)),
83
+ }));
84
+ }
85
+ async getResearch(id) {
86
+ return this.client
87
+ .get(`/research/${id}`)
88
+ .then(response => this.normalizeResearchTask(response.data));
89
+ }
90
+ async createTasks(tasks) {
91
+ return this.client
92
+ .post('/tasks', tasks.map(task => this.sanitizeTaskRequest(task)))
93
+ .then(response => response.data.map((task) => this.normalizeTask(task)));
94
+ }
95
+ async listTasks(params = {}) {
96
+ return this.client.get('/tasks', this.buildRequestConfig(params)).then(response => ({
97
+ ...response.data,
98
+ data: response.data.data.map((task) => this.normalizeTask(task)),
99
+ }));
100
+ }
101
+ async getTask(id) {
102
+ return this.client.get(`/tasks/${id}`).then(response => this.normalizeTask(response.data));
103
+ }
104
+ setupX402Interceptor(signer) {
105
+ this.client.interceptors.response.use(response => response, async (error) => {
106
+ if (!error.response || error.response.status !== 402 || error.config?._x402Retried) {
107
+ return Promise.reject(error);
108
+ }
109
+ const paymentRequiredHeader = error.response.headers['payment-required'];
110
+ if (!paymentRequiredHeader) {
111
+ return Promise.reject(new errors_1.LinkupPaymentRequiredError('Received 402 but no payment-required header'));
112
+ }
113
+ try {
114
+ const { decodePaymentRequiredHeader, encodePaymentSignatureHeader } = await Promise.resolve().then(() => __importStar(require('@x402/core/http')));
115
+ const paymentRequired = decodePaymentRequiredHeader(paymentRequiredHeader);
116
+ const paymentPayload = await signer.createPaymentPayload(paymentRequired);
117
+ const paymentSignature = encodePaymentSignatureHeader(paymentPayload);
118
+ const originalRequest = error.config;
119
+ originalRequest.headers['payment-signature'] = paymentSignature;
120
+ originalRequest._x402Retried = true;
121
+ return this.client.request(originalRequest);
122
+ }
123
+ catch (error) {
124
+ return Promise.reject(new errors_1.LinkupPaymentRequiredError(`X402 payment failed: ${error instanceof Error ? error.message : error}`));
125
+ }
126
+ });
127
+ }
128
+ sanitizeSearchParams(params) {
38
129
  const { query, depth, outputType, includeImages, includeDomains, excludeDomains, fromDate, toDate, maxResults, } = params;
39
130
  const result = {
40
131
  depth,
@@ -54,12 +145,95 @@ class LinkupClient {
54
145
  result.includeSources = params.includeSources;
55
146
  }
56
147
  if ('structuredOutputSchema' in params) {
57
- result.structuredOutputSchema = JSON.stringify((0, schema_utils_1.isZodObject)(params.structuredOutputSchema)
58
- ? (0, zod_to_json_schema_1.default)(params.structuredOutputSchema)
59
- : params.structuredOutputSchema);
148
+ result.structuredOutputSchema = this.serializeStructuredOutputSchema(params.structuredOutputSchema);
149
+ }
150
+ return result;
151
+ }
152
+ sanitizeResearchParams(params) {
153
+ const { query, outputType, includeDomains, excludeDomains, fromDate, toDate, mode, reasoningDepth, } = params;
154
+ const result = {
155
+ outputType,
156
+ q: query,
157
+ ...(includeDomains && { includeDomains }),
158
+ ...(excludeDomains && { excludeDomains }),
159
+ ...(fromDate && { fromDate: fromDate.toISOString() }),
160
+ ...(toDate && { toDate: toDate.toISOString() }),
161
+ ...(mode && { mode }),
162
+ ...(reasoningDepth && { reasoningDepth }),
163
+ };
164
+ if ('structuredOutputSchema' in params) {
165
+ result.structuredOutputSchema = this.serializeStructuredOutputSchema(params.structuredOutputSchema);
60
166
  }
61
167
  return result;
62
168
  }
169
+ serializeStructuredOutputSchema(schema) {
170
+ return JSON.stringify((0, schema_utils_1.isZodObject)(schema) ? (0, zod_to_json_schema_1.default)(schema) : schema);
171
+ }
172
+ sanitizeTaskRequest(task) {
173
+ switch (task.type) {
174
+ case 'search':
175
+ return {
176
+ input: this.sanitizeSearchParams(task.input),
177
+ type: task.type,
178
+ };
179
+ case 'fetch':
180
+ return task;
181
+ case 'research':
182
+ return {
183
+ input: this.sanitizeResearchParams(task.input),
184
+ type: task.type,
185
+ };
186
+ }
187
+ }
188
+ buildRequestConfig(params) {
189
+ return {
190
+ params,
191
+ paramsSerializer: (rawParams) => this.serializeQueryParams(rawParams),
192
+ };
193
+ }
194
+ serializeQueryParams(params) {
195
+ const queryParams = new URLSearchParams();
196
+ for (const [key, value] of Object.entries(params)) {
197
+ if (value === undefined) {
198
+ continue;
199
+ }
200
+ if (Array.isArray(value)) {
201
+ for (const item of value) {
202
+ queryParams.append(key, String(item));
203
+ }
204
+ continue;
205
+ }
206
+ queryParams.append(key, String(value));
207
+ }
208
+ return queryParams.toString();
209
+ }
210
+ normalizeResearchTask(task) {
211
+ return this.normalizeTask(task);
212
+ }
213
+ normalizeTask(task) {
214
+ const normalizedTask = task;
215
+ switch (normalizedTask.type) {
216
+ case 'search':
217
+ return {
218
+ ...normalizedTask,
219
+ input: this.normalizeSearchLikeInput(normalizedTask.input),
220
+ };
221
+ case 'fetch':
222
+ return normalizedTask;
223
+ case 'research':
224
+ return {
225
+ ...normalizedTask,
226
+ input: this.normalizeSearchLikeInput(normalizedTask.input),
227
+ };
228
+ }
229
+ }
230
+ normalizeSearchLikeInput(input) {
231
+ const { q, ...rest } = input;
232
+ return {
233
+ ...rest,
234
+ query: q,
235
+ };
236
+ }
63
237
  }
64
238
  exports.LinkupClient = LinkupClient;
65
239
  //# sourceMappingURL=linkup-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"linkup-client.js","sourceRoot":"","sources":["../../src/linkup-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"linkup-client.js","sourceRoot":"","sources":["../../src/linkup-client.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,28 @@
1
1
  /** biome-ignore-all lint/complexity/noBannedTypes: needed for conditional props */
2
2
  import { ZodObject, ZodRawShape } from 'zod';
3
+ import type { X402Signer } from './x402/types';
3
4
  export type SearchDepth = 'standard' | 'deep';
4
- export type ApiConfig = {
5
+ export type ResearchMode = 'answer' | 'auto' | 'investigate' | 'research';
6
+ export type ResearchReasoningDepth = 'S' | 'M' | 'L' | 'XL';
7
+ export type TaskStatus = 'pending' | 'processing' | 'completed' | 'failed';
8
+ export type TaskType = 'search' | 'fetch' | 'research';
9
+ export type SortDirection = 'asc' | 'desc';
10
+ export type TaskSortBy = 'createdAt' | 'updatedAt';
11
+ export type ApiKeyConfig = {
5
12
  apiKey: string;
6
13
  baseUrl?: string;
7
14
  };
15
+ export type X402Config = {
16
+ signer: X402Signer;
17
+ baseUrl?: string;
18
+ };
19
+ export type ApiConfig = ApiKeyConfig | X402Config;
8
20
  export type Structured = Record<string, unknown>;
9
21
  export type StructuredInputSchema = Structured | ZodObject<ZodRawShape>;
22
+ export type FetchImage = {
23
+ alt?: string;
24
+ url: string;
25
+ };
10
26
  export type StructuredWithSources = {
11
27
  data: Structured;
12
28
  sources: StructuredSource[];
@@ -18,14 +34,16 @@ export type StructuredSource = {
18
34
  type: string;
19
35
  favicon: string;
20
36
  };
21
- export type SearchParams = {
37
+ type BaseSearchRequestParams = {
22
38
  query: string;
23
- depth: SearchDepth;
24
- includeImages?: boolean;
25
39
  includeDomains?: string[];
26
40
  excludeDomains?: string[];
27
41
  fromDate?: Date;
28
42
  toDate?: Date;
43
+ };
44
+ export type SearchParams = BaseSearchRequestParams & {
45
+ includeImages?: boolean;
46
+ depth: SearchDepth;
29
47
  maxResults?: number;
30
48
  } & ({
31
49
  outputType: 'searchResults';
@@ -92,8 +110,107 @@ export type LinkupFetchResponse<T extends FetchParams = FetchParams> = {
92
110
  } & ConditionalProp<T['includeRawHtml'], {
93
111
  rawHtml: string;
94
112
  }> & ConditionalProp<T['extractImages'], {
95
- images: string[];
113
+ images: FetchImage[];
96
114
  }>;
115
+ export type ResearchParams = BaseSearchRequestParams & ({
116
+ outputType: 'sourcedAnswer';
117
+ } | {
118
+ outputType: 'structured';
119
+ structuredOutputSchema: StructuredInputSchema;
120
+ }) & {
121
+ mode?: ResearchMode;
122
+ reasoningDepth?: ResearchReasoningDepth;
123
+ };
124
+ export type ResearchResult = SourcedAnswer | Structured;
125
+ type BaseTaskInput = {
126
+ query: string;
127
+ excludeDomains?: string[];
128
+ fromDate?: string;
129
+ includeDomains?: string[];
130
+ structuredOutputSchema?: Structured;
131
+ toDate?: string;
132
+ };
133
+ export type SearchTaskInput = BaseTaskInput & {
134
+ includeImages?: boolean;
135
+ maxResults?: number;
136
+ depth: SearchDepth;
137
+ } & ({
138
+ outputType: 'searchResults';
139
+ } | {
140
+ includeInlineCitations?: boolean;
141
+ outputType: 'sourcedAnswer';
142
+ } | {
143
+ includeSources?: boolean;
144
+ outputType: 'structured';
145
+ structuredOutputSchema: Structured;
146
+ });
147
+ export type ResearchTaskInput = BaseTaskInput & {
148
+ mode?: ResearchMode;
149
+ reasoningDepth?: ResearchReasoningDepth;
150
+ } & ({
151
+ outputType: 'sourcedAnswer';
152
+ } | {
153
+ outputType: 'structured';
154
+ structuredOutputSchema: Structured;
155
+ });
156
+ export type TaskRequest = {
157
+ type: 'search';
158
+ input: SearchParams;
159
+ } | {
160
+ type: 'fetch';
161
+ input: FetchParams;
162
+ } | {
163
+ type: 'research';
164
+ input: ResearchParams;
165
+ };
166
+ type TaskBase<TType extends TaskType, TInput, TOutput> = {
167
+ createdAt: string;
168
+ error: string | null;
169
+ id: string;
170
+ input: TInput;
171
+ output: TOutput | null;
172
+ status: TaskStatus;
173
+ type: TType;
174
+ updatedAt: string;
175
+ };
176
+ export type SearchTask = TaskBase<'search', SearchTaskInput, SearchResults | SourcedAnswer | Structured | StructuredWithSources>;
177
+ export type FetchTaskOutput = {
178
+ markdown: string;
179
+ images?: FetchImage[];
180
+ rawHtml?: string;
181
+ };
182
+ export type FetchTask = TaskBase<'fetch', FetchParams, FetchTaskOutput>;
183
+ export type ResearchTask = TaskBase<'research', ResearchTaskInput, ResearchResult>;
184
+ export type Task = SearchTask | FetchTask | ResearchTask;
185
+ export type PaginationMetadata = {
186
+ page: number;
187
+ pageSize: number;
188
+ total: number;
189
+ totalPages: number;
190
+ };
191
+ export type PaginatedResearchTasks = {
192
+ data: ResearchTask[];
193
+ metadata: PaginationMetadata;
194
+ };
195
+ export type TasksQuota = {
196
+ inFlight: number;
197
+ limit: number;
198
+ };
199
+ export type PaginatedTasks = {
200
+ data: Task[];
201
+ metadata: PaginationMetadata;
202
+ quota: TasksQuota;
203
+ };
204
+ export type ListResearchParams = {
205
+ page?: number;
206
+ pageSize?: number;
207
+ sortBy?: TaskSortBy;
208
+ sortDirection?: SortDirection;
209
+ };
210
+ export type ListTasksParams = ListResearchParams & {
211
+ status?: TaskStatus | TaskStatus[];
212
+ type?: TaskType | TaskType[];
213
+ };
97
214
  type ConditionalProp<Condition, PropType> = Condition extends true ? PropType : {};
98
215
  export {};
99
216
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"refine-error.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/refine-error.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EAOZ,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,eAAO,MAAM,qBAAqB,GAAI,GAAG,cAAc,KAAG,MAQzD,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,GAAG,cAAc,KAAG,WAiC/C,CAAC"}
1
+ {"version":3,"file":"refine-error.utils.d.ts","sourceRoot":"","sources":["../../../src/utils/refine-error.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EASZ,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,eAAO,MAAM,qBAAqB,GAAI,GAAG,cAAc,KAAG,MAQzD,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,GAAG,cAAc,KAAG,WAwC/C,CAAC"}
@@ -19,13 +19,20 @@ const refineError = (e) => {
19
19
  const { code, message } = error;
20
20
  switch (statusCode) {
21
21
  case 400:
22
- if (code === 'SEARCH_QUERY_NO_RESULT') {
23
- return new errors_1.LinkupNoResultError(message);
24
- }
25
- if (code === 'FETCH_ERROR') {
26
- return new errors_1.LinkupFetchError(message);
22
+ switch (code) {
23
+ case 'SEARCH_QUERY_NO_RESULT':
24
+ return new errors_1.LinkupNoResultError(message);
25
+ case 'FETCH_ERROR':
26
+ return new errors_1.LinkupFetchError(message);
27
+ case 'FETCH_RESPONSE_TOO_LARGE':
28
+ return new errors_1.LinkupFetchResponseTooLargeError(message);
29
+ case 'FETCH_URL_IS_FILE':
30
+ return new errors_1.FetchUrlIsFileError(message);
31
+ default:
32
+ return new errors_1.LinkupInvalidRequestError((0, exports.concatErrorAndDetails)(e));
27
33
  }
28
- return new errors_1.LinkupInvalidRequestError((0, exports.concatErrorAndDetails)(e));
34
+ case 402:
35
+ return new errors_1.LinkupPaymentRequiredError(message);
29
36
  case 401:
30
37
  case 403:
31
38
  return new errors_1.LinkupAuthenticationError(message);
@@ -1 +1 @@
1
- {"version":3,"file":"refine-error.utils.js","sourceRoot":"","sources":["../../../src/utils/refine-error.utils.ts"],"names":[],"mappings":";;;AAAA,sCASmB;AAGZ,MAAM,qBAAqB,GAAG,CAAC,CAAiB,EAAU,EAAE;IACjE,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;IACvC,MAAM,YAAY,GAAG;QACnB,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe;QACnC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;KACzC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEZ,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AARW,QAAA,qBAAqB,yBAQhC;AAEK,MAAM,WAAW,GAAG,CAAC,CAAiB,EAAe,EAAE;IAC5D,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAEhC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,IAAI,2BAAkB,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEhC,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,GAAG;YACN,IAAI,IAAI,KAAK,wBAAwB,EAAE,CAAC;gBACtC,OAAO,IAAI,4BAAmB,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;gBAC3B,OAAO,IAAI,yBAAgB,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;YACD,OAAO,IAAI,kCAAyB,CAAC,IAAA,6BAAqB,EAAC,CAAC,CAAC,CAAC,CAAC;QACjE,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACN,OAAO,IAAI,kCAAyB,CAAC,OAAO,CAAC,CAAC;QAChD,KAAK,GAAG;YACN,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,4BAA4B;oBAC/B,OAAO,IAAI,sCAA6B,CAAC,OAAO,CAAC,CAAC;gBACpD,KAAK,mBAAmB;oBACtB,OAAO,IAAI,mCAA0B,CAAC,OAAO,CAAC,CAAC;gBACjD;oBACE,OAAO,IAAI,2BAAkB,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACjF,CAAC;QACH;YACE,OAAO,IAAI,2BAAkB,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACjF,CAAC;AACH,CAAC,CAAC;AAjCW,QAAA,WAAW,eAiCtB"}
1
+ {"version":3,"file":"refine-error.utils.js","sourceRoot":"","sources":["../../../src/utils/refine-error.utils.ts"],"names":[],"mappings":";;;AAAA,sCAYmB;AAGZ,MAAM,qBAAqB,GAAG,CAAC,CAAiB,EAAU,EAAE;IACjE,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;IACvC,MAAM,YAAY,GAAG;QACnB,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe;QACnC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;KACzC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEZ,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AARW,QAAA,qBAAqB,yBAQhC;AAEK,MAAM,WAAW,GAAG,CAAC,CAAiB,EAAe,EAAE;IAC5D,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAEhC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,IAAI,2BAAkB,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEhC,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,GAAG;YACN,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,wBAAwB;oBAC3B,OAAO,IAAI,4BAAmB,CAAC,OAAO,CAAC,CAAC;gBAC1C,KAAK,aAAa;oBAChB,OAAO,IAAI,yBAAgB,CAAC,OAAO,CAAC,CAAC;gBACvC,KAAK,0BAA0B;oBAC7B,OAAO,IAAI,yCAAgC,CAAC,OAAO,CAAC,CAAC;gBACvD,KAAK,mBAAmB;oBACtB,OAAO,IAAI,4BAAmB,CAAC,OAAO,CAAC,CAAC;gBAC1C;oBACE,OAAO,IAAI,kCAAyB,CAAC,IAAA,6BAAqB,EAAC,CAAC,CAAC,CAAC,CAAC;YACnE,CAAC;QACH,KAAK,GAAG;YACN,OAAO,IAAI,mCAA0B,CAAC,OAAO,CAAC,CAAC;QACjD,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACN,OAAO,IAAI,kCAAyB,CAAC,OAAO,CAAC,CAAC;QAChD,KAAK,GAAG;YACN,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,4BAA4B;oBAC/B,OAAO,IAAI,sCAA6B,CAAC,OAAO,CAAC,CAAC;gBACpD,KAAK,mBAAmB;oBACtB,OAAO,IAAI,mCAA0B,CAAC,OAAO,CAAC,CAAC;gBACjD;oBACE,OAAO,IAAI,2BAAkB,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACjF,CAAC;QACH;YACE,OAAO,IAAI,2BAAkB,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACjF,CAAC;AACH,CAAC,CAAC;AAxCW,QAAA,WAAW,eAwCtB"}
@@ -0,0 +1,4 @@
1
+ import { type LocalAccount } from 'viem';
2
+ import type { X402Signer } from './types';
3
+ export declare function createX402Signer(account: LocalAccount): X402Signer;
4
+ //# sourceMappingURL=create-x402-signer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-x402-signer.d.ts","sourceRoot":"","sources":["../../../src/x402/create-x402-signer.ts"],"names":[],"mappings":"AAEA,OAAO,EAA4B,KAAK,YAAY,EAAE,MAAM,MAAM,CAAC;AAEnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAI1C,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,UAAU,CAQlE"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createX402Signer = createX402Signer;
4
+ const client_1 = require("@x402/core/client");
5
+ const evm_1 = require("@x402/evm");
6
+ const viem_1 = require("viem");
7
+ const chains_1 = require("viem/chains");
8
+ const BASE_CHAIN_ID = 'eip155:8453';
9
+ function createX402Signer(account) {
10
+ const publicClient = (0, viem_1.createPublicClient)({ chain: chains_1.base, transport: (0, viem_1.http)() });
11
+ const signer = (0, evm_1.toClientEvmSigner)(account, publicClient);
12
+ const client = new client_1.x402Client().register(BASE_CHAIN_ID, new evm_1.ExactEvmScheme(signer));
13
+ return {
14
+ createPaymentPayload: paymentRequired => client.createPaymentPayload(paymentRequired),
15
+ };
16
+ }
17
+ //# sourceMappingURL=create-x402-signer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-x402-signer.js","sourceRoot":"","sources":["../../../src/x402/create-x402-signer.ts"],"names":[],"mappings":";;AAQA,4CAQC;AAhBD,8CAA+C;AAC/C,mCAA8D;AAC9D,+BAAmE;AACnE,wCAAmC;AAGnC,MAAM,aAAa,GAAG,aAAa,CAAC;AAEpC,SAAgB,gBAAgB,CAAC,OAAqB;IACpD,MAAM,YAAY,GAAG,IAAA,yBAAkB,EAAC,EAAE,KAAK,EAAE,aAAI,EAAE,SAAS,EAAE,IAAA,WAAI,GAAE,EAAE,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,IAAA,uBAAiB,EAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,IAAI,mBAAU,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,oBAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAEpF,OAAO;QACL,oBAAoB,EAAE,eAAe,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,eAAe,CAAC;KACtF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { createX402Signer } from './create-x402-signer';
2
+ export type { X402Signer } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/x402/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createX402Signer = void 0;
4
+ var create_x402_signer_1 = require("./create-x402-signer");
5
+ Object.defineProperty(exports, "createX402Signer", { enumerable: true, get: function () { return create_x402_signer_1.createX402Signer; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/x402/index.ts"],"names":[],"mappings":";;;AAAA,2DAAwD;AAA/C,sHAAA,gBAAgB,OAAA"}
@@ -0,0 +1,4 @@
1
+ export interface X402Signer {
2
+ createPaymentPayload(paymentRequired: unknown): Promise<unknown>;
3
+ }
4
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/x402/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,oBAAoB,CAAC,eAAe,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAClE"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/x402/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,8 +1,18 @@
1
1
  {
2
2
  "name": "linkup-sdk",
3
- "version": "2.6.2",
3
+ "version": "3.0.0",
4
4
  "main": "dist/src/index.js",
5
5
  "types": "dist/src/index.d.ts",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./dist/src/index.d.ts",
9
+ "default": "./dist/src/index.js"
10
+ },
11
+ "./x402": {
12
+ "types": "./dist/src/x402/index.d.ts",
13
+ "default": "./dist/src/x402/index.js"
14
+ }
15
+ },
6
16
  "scripts": {
7
17
  "build": "tsc",
8
18
  "commitlint": "commitlint --edit",
@@ -16,7 +26,7 @@
16
26
  "watch": "tsc --watch"
17
27
  },
18
28
  "engines": {
19
- "node": ">=20.19.0"
29
+ "node": ">=22.0.0"
20
30
  },
21
31
  "keywords": [
22
32
  "linkup",
@@ -38,23 +48,42 @@
38
48
  "dist/**/*"
39
49
  ],
40
50
  "devDependencies": {
41
- "@biomejs/biome": "2.0.5",
51
+ "@biomejs/biome": "2.4.4",
42
52
  "@commitlint/cli": "^19.8.1",
43
53
  "@commitlint/config-conventional": "^19.8.1",
44
54
  "@types/jest": "^29.5.14",
45
55
  "@types/node": "^24.0.4",
56
+ "@x402/core": "^2.6.0",
57
+ "@x402/evm": "^2.7.0",
46
58
  "husky": "^9.1.7",
47
59
  "jest": "^29.7.0",
48
60
  "knip": "^5.61.2",
49
- "semantic-release": "^24.2.5",
61
+ "semantic-release": "^25.0.3",
50
62
  "ts-jest": "^29.2.5",
51
- "typescript": "^5.8.3"
63
+ "typescript": "^5.9.3",
64
+ "viem": "^2.47.4"
52
65
  },
53
66
  "dependencies": {
54
67
  "axios": "^1.8.2",
55
68
  "zod": "^3.24.1",
56
69
  "zod-to-json-schema": "^3.24.1"
57
70
  },
71
+ "peerDependencies": {
72
+ "@x402/core": "^2.6.0",
73
+ "@x402/evm": "^2.6.0",
74
+ "viem": "^2.0.0"
75
+ },
76
+ "peerDependenciesMeta": {
77
+ "@x402/core": {
78
+ "optional": true
79
+ },
80
+ "@x402/evm": {
81
+ "optional": true
82
+ },
83
+ "viem": {
84
+ "optional": true
85
+ }
86
+ },
58
87
  "release": {
59
88
  "branches": [
60
89
  "main"
@@ -74,6 +103,15 @@
74
103
  ]
75
104
  ]
76
105
  },
106
+ "knip": {
107
+ "entry": [
108
+ "src/index.ts",
109
+ "src/x402/index.ts"
110
+ ],
111
+ "exclude": [
112
+ "optionalPeerDependencies"
113
+ ]
114
+ },
77
115
  "commitlint": {
78
116
  "extends": [
79
117
  "@commitlint/config-conventional"