@drawcall/run 0.1.0 → 0.1.2
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/dist/index.d.ts +10 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -7
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +56 -6
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { JobStatus, RunResult, RunRequest, JobCreatedResponse, JobResponse, RunOptions, RunFinalResult, } from './types.js';
|
|
1
|
+
export type { JobStatus, RunOutput as RunResult, RunRequest, JobCreatedResponse, JobResponse, RunOptions, RunFinalResult, Event, ConsoleEvent, ScreenshotEvent, SystemEvent, InterceptEvent, ErrorEvent, } from './types.js';
|
|
2
2
|
import type { RunOptions, RunFinalResult } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Error thrown when run fails
|
|
@@ -24,13 +24,20 @@ export declare class TimeoutError extends RunError {
|
|
|
24
24
|
* const result = await run({
|
|
25
25
|
* url: 'https://example.com/app',
|
|
26
26
|
* maxDuration: 30,
|
|
27
|
+
* width: 1920, // viewport width (default: 1280)
|
|
28
|
+
* height: 1080, // viewport height (default: 720)
|
|
29
|
+
* assetMap: { 'https://old.com/asset.png': 'https://new.com/asset.png' },
|
|
27
30
|
* timeoutMs: 60000,
|
|
28
31
|
* pollIntervalMs: 2000,
|
|
29
32
|
* })
|
|
30
33
|
*
|
|
31
|
-
* console.log(result.
|
|
32
|
-
* console.log(result.stopCause) // "signal_complete", "max_duration_reached", or
|
|
34
|
+
* console.log(result.events) // Array of events (console, screenshot, system, intercept, error)
|
|
35
|
+
* console.log(result.stopCause) // "signal_complete", "max_duration_reached", or error string
|
|
33
36
|
* console.log(result.jobId) // Job ID for reference
|
|
37
|
+
*
|
|
38
|
+
* // Filter events by type
|
|
39
|
+
* const consoleLogs = result.events.filter(e => e.type === 'console')
|
|
40
|
+
* const screenshots = result.events.filter(e => e.type === 'screenshot')
|
|
34
41
|
* ```
|
|
35
42
|
*/
|
|
36
43
|
export declare function run(options: RunOptions): Promise<RunFinalResult>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACV,SAAS,EACT,SAAS,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACV,SAAS,EACT,SAAS,IAAI,SAAS,EACtB,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,cAAc,EAEd,KAAK,EACL,YAAY,EACZ,eAAe,EACf,WAAW,EACX,cAAc,EACd,UAAU,GACX,MAAM,YAAY,CAAA;AAEnB,OAAO,KAAK,EAA+C,UAAU,EAAE,cAAc,EAAS,MAAM,YAAY,CAAA;AAEhH;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;aACY,KAAK,CAAC,EAAE,MAAM;aAAkB,KAAK,CAAC,EAAE,OAAO;gBAAhF,OAAO,EAAE,MAAM,EAAkB,KAAK,CAAC,EAAE,MAAM,YAAA,EAAkB,KAAK,CAAC,EAAE,OAAO,YAAA;CAI7F;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAI7C;AAOD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAyEtE"}
|
package/dist/index.js
CHANGED
|
@@ -37,23 +37,32 @@ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
|
37
37
|
* const result = await run({
|
|
38
38
|
* url: 'https://example.com/app',
|
|
39
39
|
* maxDuration: 30,
|
|
40
|
+
* width: 1920, // viewport width (default: 1280)
|
|
41
|
+
* height: 1080, // viewport height (default: 720)
|
|
42
|
+
* assetMap: { 'https://old.com/asset.png': 'https://new.com/asset.png' },
|
|
40
43
|
* timeoutMs: 60000,
|
|
41
44
|
* pollIntervalMs: 2000,
|
|
42
45
|
* })
|
|
43
46
|
*
|
|
44
|
-
* console.log(result.
|
|
45
|
-
* console.log(result.stopCause) // "signal_complete", "max_duration_reached", or
|
|
47
|
+
* console.log(result.events) // Array of events (console, screenshot, system, intercept, error)
|
|
48
|
+
* console.log(result.stopCause) // "signal_complete", "max_duration_reached", or error string
|
|
46
49
|
* console.log(result.jobId) // Job ID for reference
|
|
50
|
+
*
|
|
51
|
+
* // Filter events by type
|
|
52
|
+
* const consoleLogs = result.events.filter(e => e.type === 'console')
|
|
53
|
+
* const screenshots = result.events.filter(e => e.type === 'screenshot')
|
|
47
54
|
* ```
|
|
48
55
|
*/
|
|
49
56
|
export async function run(options) {
|
|
50
|
-
const { url: targetUrl, maxDuration, assetMap, baseUrl = 'https://v1.run.api.drawcall.ai', timeoutMs = 600_000, // 10 minutes default
|
|
57
|
+
const { url: targetUrl, maxDuration, width, height, assetMap, baseUrl = 'https://v1.run.api.drawcall.ai', timeoutMs = 600_000, // 10 minutes default
|
|
51
58
|
pollIntervalMs = 2000, } = options;
|
|
52
59
|
const url = new URL('/run', baseUrl);
|
|
53
60
|
// Create the job
|
|
54
61
|
const payload = {
|
|
55
62
|
url: targetUrl,
|
|
56
63
|
...(maxDuration !== undefined && { maxDuration }),
|
|
64
|
+
...(width !== undefined && { width }),
|
|
65
|
+
...(height !== undefined && { height }),
|
|
57
66
|
...(assetMap !== undefined && { assetMap }),
|
|
58
67
|
};
|
|
59
68
|
const createResponse = await fetch(url, {
|
|
@@ -80,16 +89,16 @@ export async function run(options) {
|
|
|
80
89
|
const job = (await statusResponse.json());
|
|
81
90
|
switch (job.status) {
|
|
82
91
|
case 'completed':
|
|
83
|
-
if (!job.
|
|
92
|
+
if (!job.output) {
|
|
84
93
|
throw new RunError('Job completed but no result', jobId);
|
|
85
94
|
}
|
|
86
95
|
return {
|
|
87
96
|
jobId,
|
|
88
|
-
|
|
89
|
-
stopCause: job.
|
|
97
|
+
events: job.output.events,
|
|
98
|
+
stopCause: job.output.stopCause,
|
|
90
99
|
};
|
|
91
100
|
case 'failed':
|
|
92
|
-
throw new RunError(
|
|
101
|
+
throw new RunError('Job failed', jobId);
|
|
93
102
|
case 'pending':
|
|
94
103
|
case 'running':
|
|
95
104
|
await sleep(pollIntervalMs);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,iCAAiC;AACjC,+EAA+E;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -8,14 +8,63 @@ export type JobStatus = 'pending' | 'running' | 'completed' | 'failed';
|
|
|
8
8
|
export interface RunRequest {
|
|
9
9
|
readonly url: string;
|
|
10
10
|
readonly maxDuration?: number;
|
|
11
|
+
readonly width?: number;
|
|
12
|
+
readonly height?: number;
|
|
11
13
|
readonly assetMap?: Record<string, string>;
|
|
12
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Console log event from the browser
|
|
17
|
+
*/
|
|
18
|
+
export interface ConsoleEvent {
|
|
19
|
+
readonly timestamp: number;
|
|
20
|
+
readonly type: 'console';
|
|
21
|
+
readonly level: 'log' | 'warn' | 'error' | 'info' | 'debug';
|
|
22
|
+
readonly text: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Screenshot capture event
|
|
26
|
+
*/
|
|
27
|
+
export interface ScreenshotEvent {
|
|
28
|
+
readonly timestamp: number;
|
|
29
|
+
readonly type: 'screenshot';
|
|
30
|
+
readonly url: string;
|
|
31
|
+
readonly filename: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* System lifecycle event
|
|
35
|
+
*/
|
|
36
|
+
export interface SystemEvent {
|
|
37
|
+
readonly timestamp: number;
|
|
38
|
+
readonly type: 'system';
|
|
39
|
+
readonly event: 'start' | 'page_loaded' | 'complete_signal' | 'screenshot_signal' | 'timeout' | 'prefetch_start' | 'prefetch_complete';
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Asset interception event
|
|
43
|
+
*/
|
|
44
|
+
export interface InterceptEvent {
|
|
45
|
+
readonly timestamp: number;
|
|
46
|
+
readonly type: 'intercept';
|
|
47
|
+
readonly url: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Error event from various sources
|
|
51
|
+
*/
|
|
52
|
+
export interface ErrorEvent {
|
|
53
|
+
readonly timestamp: number;
|
|
54
|
+
readonly type: 'error';
|
|
55
|
+
readonly source: 'page' | 'handler' | 'prefetch' | 'screenshot';
|
|
56
|
+
readonly message: string;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Union of all event types
|
|
60
|
+
*/
|
|
61
|
+
export type Event = ConsoleEvent | ScreenshotEvent | SystemEvent | InterceptEvent | ErrorEvent;
|
|
13
62
|
/**
|
|
14
63
|
* Result of a successful run
|
|
15
64
|
*/
|
|
16
|
-
export interface
|
|
17
|
-
readonly
|
|
18
|
-
readonly stopCause: 'signal_complete' | 'max_duration_reached' |
|
|
65
|
+
export interface RunOutput {
|
|
66
|
+
readonly events: readonly Event[];
|
|
67
|
+
readonly stopCause: 'signal_complete' | 'max_duration_reached' | string;
|
|
19
68
|
}
|
|
20
69
|
/**
|
|
21
70
|
* Response when a job is created (202 Accepted)
|
|
@@ -29,8 +78,7 @@ export interface JobCreatedResponse {
|
|
|
29
78
|
export interface JobResponse {
|
|
30
79
|
readonly jobId: string;
|
|
31
80
|
readonly status: JobStatus;
|
|
32
|
-
readonly
|
|
33
|
-
readonly error?: string;
|
|
81
|
+
readonly output?: RunOutput;
|
|
34
82
|
}
|
|
35
83
|
/**
|
|
36
84
|
* Options for the run function
|
|
@@ -38,6 +86,8 @@ export interface JobResponse {
|
|
|
38
86
|
export interface RunOptions {
|
|
39
87
|
readonly url: string;
|
|
40
88
|
readonly maxDuration?: number;
|
|
89
|
+
readonly width?: number;
|
|
90
|
+
readonly height?: number;
|
|
41
91
|
readonly assetMap?: Record<string, string>;
|
|
42
92
|
readonly baseUrl?: string;
|
|
43
93
|
readonly timeoutMs?: number;
|
|
@@ -48,7 +98,7 @@ export interface RunOptions {
|
|
|
48
98
|
*/
|
|
49
99
|
export interface RunFinalResult {
|
|
50
100
|
readonly jobId: string;
|
|
51
|
-
readonly
|
|
101
|
+
readonly events: readonly Event[];
|
|
52
102
|
readonly stopCause: string;
|
|
53
103
|
}
|
|
54
104
|
//# 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":"AAOA;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAA;AAEtE;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC3C;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|