@tabstack/sdk 1.0.0 → 1.0.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/LICENSE +22 -11
- package/README.md +17 -44
- package/dist/cjs/{automate.d.ts → agent.d.ts} +10 -10
- package/dist/cjs/agent.d.ts.map +1 -0
- package/dist/cjs/{automate.js → agent.js} +11 -11
- package/dist/cjs/agent.js.map +1 -0
- package/dist/cjs/agent.test.d.ts +5 -0
- package/dist/cjs/agent.test.d.ts.map +1 -0
- package/dist/cjs/{automate.test.js → agent.test.js} +32 -32
- package/dist/cjs/agent.test.js.map +1 -0
- package/dist/cjs/client.d.ts +13 -13
- package/dist/cjs/client.d.ts.map +1 -1
- package/dist/cjs/client.js +12 -12
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/client.test.d.ts +1 -1
- package/dist/cjs/client.test.js +50 -51
- package/dist/cjs/client.test.js.map +1 -1
- package/dist/cjs/exceptions.d.ts +9 -9
- package/dist/cjs/exceptions.js +13 -13
- package/dist/cjs/exceptions.test.js +30 -30
- package/dist/cjs/extract.d.ts +2 -57
- package/dist/cjs/extract.d.ts.map +1 -1
- package/dist/cjs/extract.js +2 -60
- package/dist/cjs/extract.js.map +1 -1
- package/dist/cjs/extract.test.js +0 -114
- package/dist/cjs/extract.test.js.map +1 -1
- package/dist/cjs/generate.d.ts +1 -1
- package/dist/cjs/generate.js +1 -1
- package/dist/cjs/index.d.ts +9 -9
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +9 -9
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types.d.ts +1 -1
- package/dist/cjs/types.js +1 -1
- package/dist/cjs/util/http.d.ts +1 -1
- package/dist/cjs/util/http.js +4 -4
- package/dist/cjs/util/http.test.js +5 -5
- package/dist/esm/{automate.d.ts → agent.d.ts} +10 -10
- package/dist/esm/agent.d.ts.map +1 -0
- package/dist/esm/{automate.js → agent.js} +9 -9
- package/dist/esm/agent.js.map +1 -0
- package/dist/esm/agent.test.d.ts +5 -0
- package/dist/esm/agent.test.d.ts.map +1 -0
- package/dist/esm/{automate.test.js → agent.test.js} +32 -32
- package/dist/esm/agent.test.js.map +1 -0
- package/dist/esm/client.d.ts +13 -13
- package/dist/esm/client.d.ts.map +1 -1
- package/dist/esm/client.js +10 -10
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/client.test.d.ts +1 -1
- package/dist/esm/client.test.js +51 -52
- package/dist/esm/client.test.js.map +1 -1
- package/dist/esm/exceptions.d.ts +9 -9
- package/dist/esm/exceptions.js +11 -11
- package/dist/esm/exceptions.test.js +31 -31
- package/dist/esm/extract.d.ts +2 -57
- package/dist/esm/extract.d.ts.map +1 -1
- package/dist/esm/extract.js +2 -60
- package/dist/esm/extract.js.map +1 -1
- package/dist/esm/extract.test.js +0 -114
- package/dist/esm/extract.test.js.map +1 -1
- package/dist/esm/generate.d.ts +1 -1
- package/dist/esm/generate.js +1 -1
- package/dist/esm/index.d.ts +9 -9
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +7 -7
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types.d.ts +1 -1
- package/dist/esm/types.js +1 -1
- package/dist/esm/util/http.d.ts +1 -1
- package/dist/esm/util/http.js +5 -5
- package/dist/esm/util/http.test.js +6 -6
- package/dist/types/{automate.d.ts → agent.d.ts} +10 -10
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.test.d.ts +5 -0
- package/dist/types/agent.test.d.ts.map +1 -0
- package/dist/types/client.d.ts +13 -13
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/client.test.d.ts +1 -1
- package/dist/types/exceptions.d.ts +9 -9
- package/dist/types/extract.d.ts +2 -57
- package/dist/types/extract.d.ts.map +1 -1
- package/dist/types/generate.d.ts +1 -1
- package/dist/types/index.d.ts +9 -9
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types.d.ts +1 -1
- package/dist/types/util/http.d.ts +1 -1
- package/package.json +5 -5
- package/dist/cjs/automate.d.ts.map +0 -1
- package/dist/cjs/automate.js.map +0 -1
- package/dist/cjs/automate.test.d.ts +0 -5
- package/dist/cjs/automate.test.d.ts.map +0 -1
- package/dist/cjs/automate.test.js.map +0 -1
- package/dist/esm/automate.d.ts.map +0 -1
- package/dist/esm/automate.js.map +0 -1
- package/dist/esm/automate.test.d.ts +0 -5
- package/dist/esm/automate.test.d.ts.map +0 -1
- package/dist/esm/automate.test.js.map +0 -1
- package/dist/types/automate.d.ts.map +0 -1
- package/dist/types/automate.test.d.ts +0 -5
- package/dist/types/automate.test.d.ts.map +0 -1
|
@@ -1,37 +1,37 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tests for Exception classes
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { TabstackError, BadRequestError, UnauthorizedError, InvalidURLError, ServerError, ServiceUnavailableError, APIError, } from './exceptions.js';
|
|
5
5
|
describe('Exception Classes', () => {
|
|
6
|
-
describe('
|
|
6
|
+
describe('TabstackError', () => {
|
|
7
7
|
it('should create error with message', () => {
|
|
8
|
-
const error = new
|
|
8
|
+
const error = new TabstackError('Test error');
|
|
9
9
|
expect(error).toBeInstanceOf(Error);
|
|
10
|
-
expect(error).toBeInstanceOf(
|
|
10
|
+
expect(error).toBeInstanceOf(TabstackError);
|
|
11
11
|
expect(error.message).toBe('Test error');
|
|
12
|
-
expect(error.name).toBe('
|
|
12
|
+
expect(error.name).toBe('TabstackError');
|
|
13
13
|
});
|
|
14
14
|
it('should create error with message and status code', () => {
|
|
15
|
-
const error = new
|
|
15
|
+
const error = new TabstackError('Test error', 418);
|
|
16
16
|
expect(error.message).toBe('Test error');
|
|
17
17
|
expect(error.statusCode).toBe(418);
|
|
18
18
|
});
|
|
19
19
|
it('should create error without status code', () => {
|
|
20
|
-
const error = new
|
|
20
|
+
const error = new TabstackError('Test error');
|
|
21
21
|
expect(error.message).toBe('Test error');
|
|
22
22
|
expect(error.statusCode).toBeUndefined();
|
|
23
23
|
});
|
|
24
24
|
it('should have correct prototype chain', () => {
|
|
25
|
-
const error = new
|
|
26
|
-
expect(Object.getPrototypeOf(error)).toBe(
|
|
25
|
+
const error = new TabstackError('Test');
|
|
26
|
+
expect(Object.getPrototypeOf(error)).toBe(TabstackError.prototype);
|
|
27
27
|
});
|
|
28
28
|
it('should be catchable as Error', () => {
|
|
29
29
|
try {
|
|
30
|
-
throw new
|
|
30
|
+
throw new TabstackError('Test');
|
|
31
31
|
}
|
|
32
32
|
catch (error) {
|
|
33
33
|
expect(error).toBeInstanceOf(Error);
|
|
34
|
-
expect(error).toBeInstanceOf(
|
|
34
|
+
expect(error).toBeInstanceOf(TabstackError);
|
|
35
35
|
}
|
|
36
36
|
});
|
|
37
37
|
});
|
|
@@ -39,7 +39,7 @@ describe('Exception Classes', () => {
|
|
|
39
39
|
it('should create error with message', () => {
|
|
40
40
|
const error = new BadRequestError('Invalid request');
|
|
41
41
|
expect(error).toBeInstanceOf(Error);
|
|
42
|
-
expect(error).toBeInstanceOf(
|
|
42
|
+
expect(error).toBeInstanceOf(TabstackError);
|
|
43
43
|
expect(error).toBeInstanceOf(BadRequestError);
|
|
44
44
|
expect(error.message).toBe('Invalid request');
|
|
45
45
|
expect(error.name).toBe('BadRequestError');
|
|
@@ -51,14 +51,14 @@ describe('Exception Classes', () => {
|
|
|
51
51
|
it('should have correct prototype chain', () => {
|
|
52
52
|
const error = new BadRequestError('Test');
|
|
53
53
|
expect(Object.getPrototypeOf(error)).toBe(BadRequestError.prototype);
|
|
54
|
-
expect(error).toBeInstanceOf(
|
|
54
|
+
expect(error).toBeInstanceOf(TabstackError);
|
|
55
55
|
});
|
|
56
|
-
it('should be catchable as
|
|
56
|
+
it('should be catchable as TabstackError', () => {
|
|
57
57
|
try {
|
|
58
58
|
throw new BadRequestError('Test');
|
|
59
59
|
}
|
|
60
60
|
catch (error) {
|
|
61
|
-
expect(error).toBeInstanceOf(
|
|
61
|
+
expect(error).toBeInstanceOf(TabstackError);
|
|
62
62
|
expect(error).toBeInstanceOf(BadRequestError);
|
|
63
63
|
}
|
|
64
64
|
});
|
|
@@ -67,7 +67,7 @@ describe('Exception Classes', () => {
|
|
|
67
67
|
it('should create error with custom message', () => {
|
|
68
68
|
const error = new UnauthorizedError('Custom auth error');
|
|
69
69
|
expect(error).toBeInstanceOf(Error);
|
|
70
|
-
expect(error).toBeInstanceOf(
|
|
70
|
+
expect(error).toBeInstanceOf(TabstackError);
|
|
71
71
|
expect(error).toBeInstanceOf(UnauthorizedError);
|
|
72
72
|
expect(error.message).toBe('Custom auth error');
|
|
73
73
|
expect(error.name).toBe('UnauthorizedError');
|
|
@@ -83,14 +83,14 @@ describe('Exception Classes', () => {
|
|
|
83
83
|
it('should have correct prototype chain', () => {
|
|
84
84
|
const error = new UnauthorizedError();
|
|
85
85
|
expect(Object.getPrototypeOf(error)).toBe(UnauthorizedError.prototype);
|
|
86
|
-
expect(error).toBeInstanceOf(
|
|
86
|
+
expect(error).toBeInstanceOf(TabstackError);
|
|
87
87
|
});
|
|
88
88
|
});
|
|
89
89
|
describe('InvalidURLError', () => {
|
|
90
90
|
it('should create error with custom message', () => {
|
|
91
91
|
const error = new InvalidURLError('URL is malformed');
|
|
92
92
|
expect(error).toBeInstanceOf(Error);
|
|
93
|
-
expect(error).toBeInstanceOf(
|
|
93
|
+
expect(error).toBeInstanceOf(TabstackError);
|
|
94
94
|
expect(error).toBeInstanceOf(InvalidURLError);
|
|
95
95
|
expect(error.message).toBe('URL is malformed');
|
|
96
96
|
expect(error.name).toBe('InvalidURLError');
|
|
@@ -106,14 +106,14 @@ describe('Exception Classes', () => {
|
|
|
106
106
|
it('should have correct prototype chain', () => {
|
|
107
107
|
const error = new InvalidURLError();
|
|
108
108
|
expect(Object.getPrototypeOf(error)).toBe(InvalidURLError.prototype);
|
|
109
|
-
expect(error).toBeInstanceOf(
|
|
109
|
+
expect(error).toBeInstanceOf(TabstackError);
|
|
110
110
|
});
|
|
111
111
|
});
|
|
112
112
|
describe('ServerError', () => {
|
|
113
113
|
it('should create error with custom message', () => {
|
|
114
114
|
const error = new ServerError('Database connection failed');
|
|
115
115
|
expect(error).toBeInstanceOf(Error);
|
|
116
|
-
expect(error).toBeInstanceOf(
|
|
116
|
+
expect(error).toBeInstanceOf(TabstackError);
|
|
117
117
|
expect(error).toBeInstanceOf(ServerError);
|
|
118
118
|
expect(error.message).toBe('Database connection failed');
|
|
119
119
|
expect(error.name).toBe('ServerError');
|
|
@@ -129,14 +129,14 @@ describe('Exception Classes', () => {
|
|
|
129
129
|
it('should have correct prototype chain', () => {
|
|
130
130
|
const error = new ServerError();
|
|
131
131
|
expect(Object.getPrototypeOf(error)).toBe(ServerError.prototype);
|
|
132
|
-
expect(error).toBeInstanceOf(
|
|
132
|
+
expect(error).toBeInstanceOf(TabstackError);
|
|
133
133
|
});
|
|
134
134
|
});
|
|
135
135
|
describe('ServiceUnavailableError', () => {
|
|
136
136
|
it('should create error with custom message', () => {
|
|
137
137
|
const error = new ServiceUnavailableError('Automate service is down');
|
|
138
138
|
expect(error).toBeInstanceOf(Error);
|
|
139
|
-
expect(error).toBeInstanceOf(
|
|
139
|
+
expect(error).toBeInstanceOf(TabstackError);
|
|
140
140
|
expect(error).toBeInstanceOf(ServiceUnavailableError);
|
|
141
141
|
expect(error.message).toBe('Automate service is down');
|
|
142
142
|
expect(error.name).toBe('ServiceUnavailableError');
|
|
@@ -152,14 +152,14 @@ describe('Exception Classes', () => {
|
|
|
152
152
|
it('should have correct prototype chain', () => {
|
|
153
153
|
const error = new ServiceUnavailableError();
|
|
154
154
|
expect(Object.getPrototypeOf(error)).toBe(ServiceUnavailableError.prototype);
|
|
155
|
-
expect(error).toBeInstanceOf(
|
|
155
|
+
expect(error).toBeInstanceOf(TabstackError);
|
|
156
156
|
});
|
|
157
157
|
});
|
|
158
158
|
describe('APIError', () => {
|
|
159
159
|
it('should create error with message and status code', () => {
|
|
160
160
|
const error = new APIError('Rate limit exceeded', 429);
|
|
161
161
|
expect(error).toBeInstanceOf(Error);
|
|
162
|
-
expect(error).toBeInstanceOf(
|
|
162
|
+
expect(error).toBeInstanceOf(TabstackError);
|
|
163
163
|
expect(error).toBeInstanceOf(APIError);
|
|
164
164
|
expect(error.message).toBe('Rate limit exceeded');
|
|
165
165
|
expect(error.statusCode).toBe(429);
|
|
@@ -172,7 +172,7 @@ describe('Exception Classes', () => {
|
|
|
172
172
|
it('should have correct prototype chain', () => {
|
|
173
173
|
const error = new APIError('Test', 999);
|
|
174
174
|
expect(Object.getPrototypeOf(error)).toBe(APIError.prototype);
|
|
175
|
-
expect(error).toBeInstanceOf(
|
|
175
|
+
expect(error).toBeInstanceOf(TabstackError);
|
|
176
176
|
});
|
|
177
177
|
});
|
|
178
178
|
describe('Error inheritance and type checking', () => {
|
|
@@ -183,9 +183,9 @@ describe('Exception Classes', () => {
|
|
|
183
183
|
expect(badRequest).not.toBeInstanceOf(UnauthorizedError);
|
|
184
184
|
expect(unauthorized).not.toBeInstanceOf(BadRequestError);
|
|
185
185
|
expect(serverError).not.toBeInstanceOf(UnauthorizedError);
|
|
186
|
-
expect(badRequest).toBeInstanceOf(
|
|
187
|
-
expect(unauthorized).toBeInstanceOf(
|
|
188
|
-
expect(serverError).toBeInstanceOf(
|
|
186
|
+
expect(badRequest).toBeInstanceOf(TabstackError);
|
|
187
|
+
expect(unauthorized).toBeInstanceOf(TabstackError);
|
|
188
|
+
expect(serverError).toBeInstanceOf(TabstackError);
|
|
189
189
|
});
|
|
190
190
|
it('should preserve error properties when caught and rethrown', () => {
|
|
191
191
|
try {
|
|
@@ -210,7 +210,7 @@ describe('Exception Classes', () => {
|
|
|
210
210
|
else if (error instanceof UnauthorizedError) {
|
|
211
211
|
return 'unauthorized';
|
|
212
212
|
}
|
|
213
|
-
else if (error instanceof
|
|
213
|
+
else if (error instanceof TabstackError) {
|
|
214
214
|
return 'tabstack-error';
|
|
215
215
|
}
|
|
216
216
|
return 'unknown';
|
|
@@ -223,9 +223,9 @@ describe('Exception Classes', () => {
|
|
|
223
223
|
});
|
|
224
224
|
describe('Error stack traces', () => {
|
|
225
225
|
it('should have stack trace', () => {
|
|
226
|
-
const error = new
|
|
226
|
+
const error = new TabstackError('Test');
|
|
227
227
|
expect(error.stack).toBeDefined();
|
|
228
|
-
expect(error.stack).toContain('
|
|
228
|
+
expect(error.stack).toContain('TabstackError');
|
|
229
229
|
});
|
|
230
230
|
it('should have stack trace for derived errors', () => {
|
|
231
231
|
const error = new BadRequestError('Test');
|
package/dist/esm/extract.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Extract operator for
|
|
2
|
+
* Extract operator for Tabstack SDK
|
|
3
3
|
*/
|
|
4
4
|
import { HTTPClient } from './util/http';
|
|
5
5
|
import { MarkdownResponse, JsonResponse } from './types';
|
|
@@ -7,10 +7,6 @@ export interface ExtractMarkdownOptions {
|
|
|
7
7
|
metadata?: boolean;
|
|
8
8
|
nocache?: boolean;
|
|
9
9
|
}
|
|
10
|
-
export interface ExtractSchemaOptions {
|
|
11
|
-
instructions?: string;
|
|
12
|
-
nocache?: boolean;
|
|
13
|
-
}
|
|
14
10
|
export interface ExtractJsonOptions {
|
|
15
11
|
nocache?: boolean;
|
|
16
12
|
}
|
|
@@ -19,7 +15,6 @@ export interface ExtractJsonOptions {
|
|
|
19
15
|
*
|
|
20
16
|
* This class provides methods for extracting content from URLs in various formats:
|
|
21
17
|
* - Markdown conversion
|
|
22
|
-
* - Schema generation
|
|
23
18
|
* - Structured JSON extraction
|
|
24
19
|
*/
|
|
25
20
|
export declare class Extract {
|
|
@@ -73,51 +68,11 @@ export declare class Extract {
|
|
|
73
68
|
* ```
|
|
74
69
|
*/
|
|
75
70
|
markdown(url: string, options?: ExtractMarkdownOptions): Promise<MarkdownResponse>;
|
|
76
|
-
/**
|
|
77
|
-
* Generate JSON schema from URL content
|
|
78
|
-
*
|
|
79
|
-
* Analyzes URL content and generates a JSON schema that describes the structure
|
|
80
|
-
* of the data. Use this to create schemas for the json() method when you don't
|
|
81
|
-
* know the structure in advance. The generated schema can then be used to extract
|
|
82
|
-
* structured data from similar pages.
|
|
83
|
-
*
|
|
84
|
-
* @param url - URL to analyze and extract schema from
|
|
85
|
-
* @param options - Optional schema generation options
|
|
86
|
-
* @param options.instructions - Optional instructions to guide schema generation (max 1000 characters). Example: "extract only the top stories, for each story include the title, points, author, and comment count"
|
|
87
|
-
* @param options.nocache - Bypass cache and force fresh data retrieval. Default: false
|
|
88
|
-
*
|
|
89
|
-
* @returns The generated JSON schema object
|
|
90
|
-
*
|
|
91
|
-
* @throws {BadRequestError} When URL is missing or schema format is invalid
|
|
92
|
-
* @throws {UnauthorizedError} When API key is invalid or missing
|
|
93
|
-
* @throws {InvalidURLError} When URL is invalid
|
|
94
|
-
* @throws {ServerError} When server fails to fetch URL, page is too large, or schema generation fails
|
|
95
|
-
*
|
|
96
|
-
* @example
|
|
97
|
-
* Basic usage:
|
|
98
|
-
* ```typescript
|
|
99
|
-
* const schema = await tabs.extract.schema('https://news.ycombinator.com');
|
|
100
|
-
* console.log(schema); // JSON schema object describing the page structure
|
|
101
|
-
* ```
|
|
102
|
-
*
|
|
103
|
-
* @example
|
|
104
|
-
* With instructions:
|
|
105
|
-
* ```typescript
|
|
106
|
-
* const schema = await tabs.extract.schema('https://news.ycombinator.com', {
|
|
107
|
-
* instructions: 'extract only the top stories, for each story include the title, points, author, and comment count'
|
|
108
|
-
* });
|
|
109
|
-
* // Use the generated schema to extract data
|
|
110
|
-
* const data = await tabs.extract.json('https://news.ycombinator.com', schema);
|
|
111
|
-
* console.log(data.data); // Structured data matching the schema
|
|
112
|
-
* ```
|
|
113
|
-
*/
|
|
114
|
-
schema(url: string, options?: ExtractSchemaOptions): Promise<Record<string, unknown>>;
|
|
115
71
|
/**
|
|
116
72
|
* Extract structured JSON from URL content
|
|
117
73
|
*
|
|
118
74
|
* Fetches a URL and extracts structured data according to a provided JSON schema.
|
|
119
|
-
* The schema defines what data to extract and its structure.
|
|
120
|
-
* schema manually or generate one using the schema() method.
|
|
75
|
+
* The schema defines what data to extract and its structure.
|
|
121
76
|
*
|
|
122
77
|
* @param url - URL to fetch and extract data from
|
|
123
78
|
* @param schema - JSON schema object defining the structure of data to extract
|
|
@@ -184,16 +139,6 @@ export declare class Extract {
|
|
|
184
139
|
* ```
|
|
185
140
|
*
|
|
186
141
|
* @example
|
|
187
|
-
* Using generated schema:
|
|
188
|
-
* ```typescript
|
|
189
|
-
* const schema = await tabs.extract.schema('https://news.ycombinator.com', {
|
|
190
|
-
* instructions: 'extract top stories with title, points, and author'
|
|
191
|
-
* });
|
|
192
|
-
* const result = await tabs.extract.json('https://news.ycombinator.com', schema);
|
|
193
|
-
* console.log(result.data);
|
|
194
|
-
* ```
|
|
195
|
-
*
|
|
196
|
-
* @example
|
|
197
142
|
* Force fresh data retrieval:
|
|
198
143
|
* ```typescript
|
|
199
144
|
* const result = await tabs.extract.json('https://news.ycombinator.com', schema, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEzD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEzD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;GAMG;AACH,qBAAa,OAAO;IACN,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8CG;IACG,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAYxF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6EG;IACG,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAU5B"}
|
package/dist/esm/extract.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Extract operator for
|
|
2
|
+
* Extract operator for Tabstack SDK
|
|
3
3
|
*/
|
|
4
4
|
import { MarkdownResponse, JsonResponse } from './types.js';
|
|
5
5
|
/**
|
|
@@ -7,7 +7,6 @@ import { MarkdownResponse, JsonResponse } from './types.js';
|
|
|
7
7
|
*
|
|
8
8
|
* This class provides methods for extracting content from URLs in various formats:
|
|
9
9
|
* - Markdown conversion
|
|
10
|
-
* - Schema generation
|
|
11
10
|
* - Structured JSON extraction
|
|
12
11
|
*/
|
|
13
12
|
export class Extract {
|
|
@@ -70,58 +69,11 @@ export class Extract {
|
|
|
70
69
|
const response = await this.httpClient.post('v1/extract/markdown', requestData);
|
|
71
70
|
return MarkdownResponse.fromJSON(response);
|
|
72
71
|
}
|
|
73
|
-
/**
|
|
74
|
-
* Generate JSON schema from URL content
|
|
75
|
-
*
|
|
76
|
-
* Analyzes URL content and generates a JSON schema that describes the structure
|
|
77
|
-
* of the data. Use this to create schemas for the json() method when you don't
|
|
78
|
-
* know the structure in advance. The generated schema can then be used to extract
|
|
79
|
-
* structured data from similar pages.
|
|
80
|
-
*
|
|
81
|
-
* @param url - URL to analyze and extract schema from
|
|
82
|
-
* @param options - Optional schema generation options
|
|
83
|
-
* @param options.instructions - Optional instructions to guide schema generation (max 1000 characters). Example: "extract only the top stories, for each story include the title, points, author, and comment count"
|
|
84
|
-
* @param options.nocache - Bypass cache and force fresh data retrieval. Default: false
|
|
85
|
-
*
|
|
86
|
-
* @returns The generated JSON schema object
|
|
87
|
-
*
|
|
88
|
-
* @throws {BadRequestError} When URL is missing or schema format is invalid
|
|
89
|
-
* @throws {UnauthorizedError} When API key is invalid or missing
|
|
90
|
-
* @throws {InvalidURLError} When URL is invalid
|
|
91
|
-
* @throws {ServerError} When server fails to fetch URL, page is too large, or schema generation fails
|
|
92
|
-
*
|
|
93
|
-
* @example
|
|
94
|
-
* Basic usage:
|
|
95
|
-
* ```typescript
|
|
96
|
-
* const schema = await tabs.extract.schema('https://news.ycombinator.com');
|
|
97
|
-
* console.log(schema); // JSON schema object describing the page structure
|
|
98
|
-
* ```
|
|
99
|
-
*
|
|
100
|
-
* @example
|
|
101
|
-
* With instructions:
|
|
102
|
-
* ```typescript
|
|
103
|
-
* const schema = await tabs.extract.schema('https://news.ycombinator.com', {
|
|
104
|
-
* instructions: 'extract only the top stories, for each story include the title, points, author, and comment count'
|
|
105
|
-
* });
|
|
106
|
-
* // Use the generated schema to extract data
|
|
107
|
-
* const data = await tabs.extract.json('https://news.ycombinator.com', schema);
|
|
108
|
-
* console.log(data.data); // Structured data matching the schema
|
|
109
|
-
* ```
|
|
110
|
-
*/
|
|
111
|
-
async schema(url, options) {
|
|
112
|
-
const requestData = { url };
|
|
113
|
-
if (options?.instructions)
|
|
114
|
-
requestData.instructions = options.instructions;
|
|
115
|
-
if (options?.nocache)
|
|
116
|
-
requestData.nocache = options.nocache;
|
|
117
|
-
return await this.httpClient.post('v1/extract/json/schema', requestData);
|
|
118
|
-
}
|
|
119
72
|
/**
|
|
120
73
|
* Extract structured JSON from URL content
|
|
121
74
|
*
|
|
122
75
|
* Fetches a URL and extracts structured data according to a provided JSON schema.
|
|
123
|
-
* The schema defines what data to extract and its structure.
|
|
124
|
-
* schema manually or generate one using the schema() method.
|
|
76
|
+
* The schema defines what data to extract and its structure.
|
|
125
77
|
*
|
|
126
78
|
* @param url - URL to fetch and extract data from
|
|
127
79
|
* @param schema - JSON schema object defining the structure of data to extract
|
|
@@ -188,16 +140,6 @@ export class Extract {
|
|
|
188
140
|
* ```
|
|
189
141
|
*
|
|
190
142
|
* @example
|
|
191
|
-
* Using generated schema:
|
|
192
|
-
* ```typescript
|
|
193
|
-
* const schema = await tabs.extract.schema('https://news.ycombinator.com', {
|
|
194
|
-
* instructions: 'extract top stories with title, points, and author'
|
|
195
|
-
* });
|
|
196
|
-
* const result = await tabs.extract.json('https://news.ycombinator.com', schema);
|
|
197
|
-
* console.log(result.data);
|
|
198
|
-
* ```
|
|
199
|
-
*
|
|
200
|
-
* @example
|
|
201
143
|
* Force fresh data retrieval:
|
|
202
144
|
* ```typescript
|
|
203
145
|
* const result = await tabs.extract.json('https://news.ycombinator.com', schema, {
|
package/dist/esm/extract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAWzD;;;;;;GAMG;AACH,MAAM,OAAO,OAAO;IAClB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8CG;IACH,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,OAAgC;QAC1D,MAAM,WAAW,GAA4B,EAAE,GAAG,EAAE,CAAC;QACrD,IAAI,OAAO,EAAE,QAAQ;YAAE,WAAW,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC/D,IAAI,OAAO,EAAE,OAAO;YAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAE5D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CACzC,qBAAqB,EACrB,WAAW,CACZ,CAAC;QACF,OAAO,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6EG;IACH,KAAK,CAAC,IAAI,CACR,GAAW,EACX,MAA+B,EAC/B,OAA4B;QAE5B,MAAM,WAAW,GAA4B;YAC3C,GAAG;YACH,WAAW,EAAE,MAAM;SACpB,CAAC;QACF,IAAI,OAAO,EAAE,OAAO;YAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAE5D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAI,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAC/E,OAAO,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;CACF"}
|
package/dist/esm/extract.test.js
CHANGED
|
@@ -101,94 +101,6 @@ describe('Extract', () => {
|
|
|
101
101
|
await expect(extract.markdown('https://example.com')).rejects.toThrow('Network error');
|
|
102
102
|
});
|
|
103
103
|
});
|
|
104
|
-
describe('schema', () => {
|
|
105
|
-
it('should generate schema from URL', async () => {
|
|
106
|
-
const mockSchema = {
|
|
107
|
-
type: 'object',
|
|
108
|
-
properties: {
|
|
109
|
-
title: { type: 'string' },
|
|
110
|
-
items: {
|
|
111
|
-
type: 'array',
|
|
112
|
-
items: { type: 'string' },
|
|
113
|
-
},
|
|
114
|
-
},
|
|
115
|
-
};
|
|
116
|
-
mockHttpClient.post = jest.fn().mockResolvedValue(mockSchema);
|
|
117
|
-
const result = await extract.schema('https://example.com');
|
|
118
|
-
expect(mockHttpClient.post).toHaveBeenCalledWith('v1/extract/json/schema', {
|
|
119
|
-
url: 'https://example.com',
|
|
120
|
-
});
|
|
121
|
-
expect(result).toEqual(mockSchema);
|
|
122
|
-
});
|
|
123
|
-
it('should generate schema with instructions', async () => {
|
|
124
|
-
const mockSchema = {
|
|
125
|
-
type: 'object',
|
|
126
|
-
properties: {
|
|
127
|
-
stories: { type: 'array' },
|
|
128
|
-
},
|
|
129
|
-
};
|
|
130
|
-
mockHttpClient.post = jest.fn().mockResolvedValue(mockSchema);
|
|
131
|
-
await extract.schema('https://example.com', {
|
|
132
|
-
instructions: 'extract top stories with title and author',
|
|
133
|
-
});
|
|
134
|
-
expect(mockHttpClient.post).toHaveBeenCalledWith('v1/extract/json/schema', {
|
|
135
|
-
url: 'https://example.com',
|
|
136
|
-
instructions: 'extract top stories with title and author',
|
|
137
|
-
});
|
|
138
|
-
});
|
|
139
|
-
it('should generate schema with nocache option', async () => {
|
|
140
|
-
const mockSchema = { type: 'object' };
|
|
141
|
-
mockHttpClient.post = jest.fn().mockResolvedValue(mockSchema);
|
|
142
|
-
await extract.schema('https://example.com', { nocache: true });
|
|
143
|
-
expect(mockHttpClient.post).toHaveBeenCalledWith('v1/extract/json/schema', {
|
|
144
|
-
url: 'https://example.com',
|
|
145
|
-
nocache: true,
|
|
146
|
-
});
|
|
147
|
-
});
|
|
148
|
-
it('should generate schema with both instructions and nocache', async () => {
|
|
149
|
-
const mockSchema = { type: 'object' };
|
|
150
|
-
mockHttpClient.post = jest.fn().mockResolvedValue(mockSchema);
|
|
151
|
-
await extract.schema('https://example.com', {
|
|
152
|
-
instructions: 'extract products',
|
|
153
|
-
nocache: true,
|
|
154
|
-
});
|
|
155
|
-
expect(mockHttpClient.post).toHaveBeenCalledWith('v1/extract/json/schema', {
|
|
156
|
-
url: 'https://example.com',
|
|
157
|
-
instructions: 'extract products',
|
|
158
|
-
nocache: true,
|
|
159
|
-
});
|
|
160
|
-
});
|
|
161
|
-
it('should handle complex nested schemas', async () => {
|
|
162
|
-
const mockSchema = {
|
|
163
|
-
type: 'object',
|
|
164
|
-
properties: {
|
|
165
|
-
data: {
|
|
166
|
-
type: 'object',
|
|
167
|
-
properties: {
|
|
168
|
-
items: {
|
|
169
|
-
type: 'array',
|
|
170
|
-
items: {
|
|
171
|
-
type: 'object',
|
|
172
|
-
properties: {
|
|
173
|
-
name: { type: 'string' },
|
|
174
|
-
value: { type: 'number' },
|
|
175
|
-
},
|
|
176
|
-
},
|
|
177
|
-
},
|
|
178
|
-
},
|
|
179
|
-
},
|
|
180
|
-
},
|
|
181
|
-
};
|
|
182
|
-
mockHttpClient.post = jest.fn().mockResolvedValue(mockSchema);
|
|
183
|
-
const result = await extract.schema('https://example.com');
|
|
184
|
-
expect(result).toEqual(mockSchema);
|
|
185
|
-
});
|
|
186
|
-
it('should propagate errors from HTTP client', async () => {
|
|
187
|
-
const error = new Error('Schema generation failed');
|
|
188
|
-
mockHttpClient.post = jest.fn().mockRejectedValue(error);
|
|
189
|
-
await expect(extract.schema('https://example.com')).rejects.toThrow('Schema generation failed');
|
|
190
|
-
});
|
|
191
|
-
});
|
|
192
104
|
describe('json', () => {
|
|
193
105
|
const testSchema = {
|
|
194
106
|
type: 'object',
|
|
@@ -304,32 +216,6 @@ describe('Extract', () => {
|
|
|
304
216
|
});
|
|
305
217
|
});
|
|
306
218
|
describe('Integration scenarios', () => {
|
|
307
|
-
it('should use generated schema for extraction', async () => {
|
|
308
|
-
const mockSchema = {
|
|
309
|
-
type: 'object',
|
|
310
|
-
properties: {
|
|
311
|
-
stories: { type: 'array' },
|
|
312
|
-
},
|
|
313
|
-
};
|
|
314
|
-
const mockData = {
|
|
315
|
-
stories: [
|
|
316
|
-
{ title: 'Story 1', points: 100 },
|
|
317
|
-
{ title: 'Story 2', points: 50 },
|
|
318
|
-
],
|
|
319
|
-
};
|
|
320
|
-
mockHttpClient.post = jest
|
|
321
|
-
.fn()
|
|
322
|
-
.mockResolvedValueOnce(mockSchema)
|
|
323
|
-
.mockResolvedValueOnce(mockData);
|
|
324
|
-
// First generate schema
|
|
325
|
-
const schema = await extract.schema('https://example.com', {
|
|
326
|
-
instructions: 'extract top stories',
|
|
327
|
-
});
|
|
328
|
-
// Then use it for extraction
|
|
329
|
-
const result = await extract.json('https://example.com', schema);
|
|
330
|
-
expect(mockHttpClient.post).toHaveBeenCalledTimes(2);
|
|
331
|
-
expect(result.data).toEqual(mockData);
|
|
332
|
-
});
|
|
333
219
|
it('should handle multiple extractions with same schema', async () => {
|
|
334
220
|
const schema = { type: 'object', properties: { value: { type: 'string' } } };
|
|
335
221
|
mockHttpClient.post = jest
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.test.js","sourceRoot":"","sources":["../../src/extract.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"extract.test.js","sourceRoot":"","sources":["../../src/extract.test.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/generate.d.ts
CHANGED
package/dist/esm/generate.js
CHANGED
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Tabstack TypeScript/JavaScript SDK
|
|
3
3
|
*
|
|
4
|
-
* This SDK provides a TypeScript/JavaScript interface to the
|
|
4
|
+
* This SDK provides a TypeScript/JavaScript interface to the Tabstack API for web
|
|
5
5
|
* content extraction, AI-powered content generation, and browser automation.
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
8
8
|
* ```typescript
|
|
9
|
-
* import {
|
|
9
|
+
* import { Tabstack } from '@tabstack/sdk';
|
|
10
10
|
*
|
|
11
|
-
* const tabs = new
|
|
11
|
+
* const tabs = new Tabstack({
|
|
12
12
|
* apiKey: process.env.TABSTACK_API_KEY!
|
|
13
13
|
* });
|
|
14
14
|
*
|
|
@@ -40,13 +40,13 @@
|
|
|
40
40
|
*
|
|
41
41
|
* @packageDocumentation
|
|
42
42
|
*/
|
|
43
|
-
export {
|
|
43
|
+
export { Tabstack, TabstackOptions } from './client';
|
|
44
44
|
export { Extract } from './extract';
|
|
45
45
|
export { Generate } from './generate';
|
|
46
|
-
export {
|
|
46
|
+
export { Agent } from './agent';
|
|
47
47
|
export { Metadata, MetadataFields, MarkdownResponse, JsonResponse, AutomateEvent, EventData, } from './types';
|
|
48
|
-
export {
|
|
49
|
-
export type { ExtractMarkdownOptions,
|
|
48
|
+
export { TabstackError, BadRequestError, UnauthorizedError, InvalidURLError, ServerError, ServiceUnavailableError, APIError, } from './exceptions';
|
|
49
|
+
export type { ExtractMarkdownOptions, ExtractJsonOptions } from './extract';
|
|
50
50
|
export type { GenerateJsonOptions } from './generate';
|
|
51
|
-
export type {
|
|
51
|
+
export type { AutomateOptions } from './agent';
|
|
52
52
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAGH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAGH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EACL,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,SAAS,GACV,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,uBAAuB,EACvB,QAAQ,GACT,MAAM,cAAc,CAAC;AAGtB,YAAY,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC5E,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
|