@thinkbrowse/cli 0.1.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.
Files changed (46) hide show
  1. package/README.md +246 -0
  2. package/dist/bin/thinkbrowse.d.ts +6 -0
  3. package/dist/bin/thinkbrowse.d.ts.map +1 -0
  4. package/dist/bin/thinkbrowse.js +58 -0
  5. package/dist/bin/thinkbrowse.js.map +1 -0
  6. package/dist/src/adapters/cloud.d.ts +46 -0
  7. package/dist/src/adapters/cloud.d.ts.map +1 -0
  8. package/dist/src/adapters/cloud.js +336 -0
  9. package/dist/src/adapters/cloud.js.map +1 -0
  10. package/dist/src/adapters/types.d.ts +39 -0
  11. package/dist/src/adapters/types.d.ts.map +1 -0
  12. package/dist/src/adapters/types.js +6 -0
  13. package/dist/src/adapters/types.js.map +1 -0
  14. package/dist/src/commands/actions.d.ts +26 -0
  15. package/dist/src/commands/actions.d.ts.map +1 -0
  16. package/dist/src/commands/actions.js +540 -0
  17. package/dist/src/commands/actions.js.map +1 -0
  18. package/dist/src/commands/cloud.d.ts +6 -0
  19. package/dist/src/commands/cloud.d.ts.map +1 -0
  20. package/dist/src/commands/cloud.js +212 -0
  21. package/dist/src/commands/cloud.js.map +1 -0
  22. package/dist/src/commands/config.d.ts +6 -0
  23. package/dist/src/commands/config.d.ts.map +1 -0
  24. package/dist/src/commands/config.js +123 -0
  25. package/dist/src/commands/config.js.map +1 -0
  26. package/dist/src/config/store.d.ts +22 -0
  27. package/dist/src/config/store.d.ts.map +1 -0
  28. package/dist/src/config/store.js +80 -0
  29. package/dist/src/config/store.js.map +1 -0
  30. package/dist/src/errors.d.ts +22 -0
  31. package/dist/src/errors.d.ts.map +1 -0
  32. package/dist/src/errors.js +40 -0
  33. package/dist/src/errors.js.map +1 -0
  34. package/dist/src/output/formatter.d.ts +18 -0
  35. package/dist/src/output/formatter.d.ts.map +1 -0
  36. package/dist/src/output/formatter.js +28 -0
  37. package/dist/src/output/formatter.js.map +1 -0
  38. package/dist/src/types.d.ts +108 -0
  39. package/dist/src/types.d.ts.map +1 -0
  40. package/dist/src/types.js +5 -0
  41. package/dist/src/types.js.map +1 -0
  42. package/dist/src/utils.d.ts +5 -0
  43. package/dist/src/utils.d.ts.map +1 -0
  44. package/dist/src/utils.js +18 -0
  45. package/dist/src/utils.js.map +1 -0
  46. package/package.json +53 -0
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Shared TypeScript types for ThinkBrowse CLI
3
+ */
4
+ export interface SessionOptions {
5
+ browser?: 'chromium' | 'firefox' | 'webkit';
6
+ proxy?: boolean;
7
+ stealth?: boolean;
8
+ headless?: boolean;
9
+ }
10
+ export interface Session {
11
+ sessionId: string;
12
+ status: 'pending' | 'creating' | 'provisioning' | 'active' | 'ready' | 'running' | 'busy' | 'error' | 'failed' | 'terminated' | 'closed';
13
+ currentUrl?: string;
14
+ title?: string;
15
+ createdAt: string;
16
+ isFlyMachine?: boolean;
17
+ machineId?: string;
18
+ actionCount?: number;
19
+ }
20
+ export interface ActionResult {
21
+ success: boolean;
22
+ data?: any;
23
+ error?: string;
24
+ }
25
+ export interface NavigateOptions {
26
+ waitUntil?: 'load' | 'domcontentloaded' | 'networkidle';
27
+ timeout?: number;
28
+ waitFor?: string;
29
+ }
30
+ export interface ClickOptions {
31
+ button?: 'left' | 'right' | 'middle';
32
+ count?: number;
33
+ delay?: number;
34
+ timeout?: number;
35
+ }
36
+ export interface TypeOptions {
37
+ delay?: number;
38
+ clear?: boolean;
39
+ mask?: boolean;
40
+ }
41
+ export interface ScreenshotOptions {
42
+ output?: string;
43
+ fullPage?: boolean;
44
+ selector?: string;
45
+ format?: 'png' | 'jpeg' | 'webp';
46
+ quality?: number;
47
+ }
48
+ export interface ExtractOptions {
49
+ all?: boolean;
50
+ attr?: string;
51
+ format?: 'text' | 'json' | 'html';
52
+ }
53
+ export interface WaitOptions {
54
+ visible?: boolean;
55
+ hidden?: boolean;
56
+ timeout?: number;
57
+ }
58
+ export interface CLIConfig {
59
+ apiKey?: string;
60
+ apiUrl?: string;
61
+ defaultBrowser?: string;
62
+ activeSessionId?: string;
63
+ }
64
+ export interface OutputOptions {
65
+ json?: boolean;
66
+ quiet?: boolean;
67
+ verbose?: boolean;
68
+ }
69
+ export interface DialogResult {
70
+ success: boolean;
71
+ hasDialog?: boolean;
72
+ dialog?: {
73
+ type: string;
74
+ message: string;
75
+ defaultValue?: string;
76
+ } | null;
77
+ history?: Array<{
78
+ type: string;
79
+ message: string;
80
+ action: string;
81
+ timestamp: string;
82
+ }>;
83
+ error?: string;
84
+ }
85
+ export interface ConsoleResult {
86
+ success: boolean;
87
+ logs?: Array<{
88
+ level: string;
89
+ text: string;
90
+ timestamp?: string;
91
+ url?: string;
92
+ }>;
93
+ count?: number;
94
+ error?: string;
95
+ }
96
+ export interface NetworkResult {
97
+ success: boolean;
98
+ requests?: Array<{
99
+ url: string;
100
+ method: string;
101
+ status?: number;
102
+ type?: string;
103
+ size?: number;
104
+ }>;
105
+ count?: number;
106
+ error?: string;
107
+ }
108
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Shared TypeScript types for ThinkBrowse CLI
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Shared utility functions
3
+ */
4
+ export declare function handleError(error: any): never;
5
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAU7C"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Shared utility functions
3
+ */
4
+ import chalk from 'chalk';
5
+ import { ApiError, SessionError } from './errors.js';
6
+ export function handleError(error) {
7
+ if (error instanceof ApiError || error instanceof SessionError) {
8
+ console.error(chalk.red('Error:'), error.message);
9
+ if (error.suggestion) {
10
+ console.error(chalk.yellow('Tip:'), error.suggestion);
11
+ }
12
+ }
13
+ else {
14
+ console.error(chalk.red('Error:'), error.message || error);
15
+ }
16
+ process.exit(1);
17
+ }
18
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,UAAU,WAAW,CAAC,KAAU;IACpC,IAAI,KAAK,YAAY,QAAQ,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAC/D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@thinkbrowse/cli",
3
+ "version": "0.1.0",
4
+ "description": "CLI for controlling browsers via ThinkBrowse cloud and local infrastructure",
5
+ "type": "module",
6
+ "bin": {
7
+ "thinkbrowse": "./dist/bin/thinkbrowse.js"
8
+ },
9
+ "files": [
10
+ "dist",
11
+ "README.md"
12
+ ],
13
+ "scripts": {
14
+ "build": "tsc",
15
+ "dev": "tsc --watch",
16
+ "prepare": "bun run build",
17
+ "test": "bun test",
18
+ "lint": "eslint src/**/*.ts"
19
+ },
20
+ "keywords": [
21
+ "browser",
22
+ "automation",
23
+ "playwright",
24
+ "cli",
25
+ "thinkbrowse",
26
+ "ai",
27
+ "web-scraping"
28
+ ],
29
+ "author": "ThinkBrowse",
30
+ "license": "MIT",
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "https://github.com/thinkbrowse/thinkbrowse.git",
34
+ "directory": "packages/cli"
35
+ },
36
+ "homepage": "https://thinkbrowse.io",
37
+ "bugs": {
38
+ "url": "https://github.com/thinkbrowse/thinkbrowse/issues"
39
+ },
40
+ "dependencies": {
41
+ "commander": "^12.1.0",
42
+ "conf": "^13.0.1",
43
+ "chalk": "^5.3.0",
44
+ "ora": "^8.1.0"
45
+ },
46
+ "devDependencies": {
47
+ "@types/node": "^20.11.16",
48
+ "typescript": "^5.3.3"
49
+ },
50
+ "engines": {
51
+ "node": ">=18.0.0"
52
+ }
53
+ }