@dynamicu/chromedebug-mcp 2.4.0 → 2.4.1

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
@@ -102,10 +102,35 @@ Chrome Debug includes a Chrome extension that enables visual element selection f
102
102
 
103
103
  ### Installing the Extension
104
104
 
105
+ #### Option 1: Chrome Web Store (Recommended - FREE Version)
106
+
107
+ Install the FREE version directly from the Chrome Web Store:
108
+
109
+ 🌐 **[Install from Chrome Web Store](https://chromewebstore.google.com/detail/lemgbmdnephoaniipapgeciebfeakffn?utm_source=item-share-cb)**
110
+
111
+ - āœ… 5 recordings per day
112
+ - āœ… Full MCP integration
113
+ - āœ… Visual element selection
114
+ - āœ… Automatic updates
115
+ - āœ… No manual installation needed
116
+
117
+ #### Option 2: Manual Installation (Development)
118
+
105
119
  1. Open Chrome and navigate to `chrome://extensions/`
106
- 2. Enable "Developer mode"
120
+ 2. Enable "Developer mode"
107
121
  3. Click "Load unpacked" and select the `chrome-extension` directory
108
122
 
123
+ #### Option 3: PRO Version (Unlimited)
124
+
125
+ For unlimited recordings and advanced features, purchase the PRO version:
126
+
127
+ šŸ’Ž **[Get PRO Version](https://dynamicu.lemonsqueezy.com/buy/641143)**
128
+
129
+ - āœ… Unlimited recordings
130
+ - āœ… Advanced function tracing
131
+ - āœ… Enhanced capture features
132
+ - āœ… Priority support
133
+
109
134
  ### Using the Extension
110
135
 
111
136
  1. **Element Selection**
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "manifest_version": 3,
3
- "name": "ChromeDebug MCP Assistant FREE v2.1.1",
4
- "version": "2.1.1",
5
- "description": "ChromeDebug MCP visual element selector [FREE Edition] [Build: 2025-01-20-v2.1.1]",
3
+ "name": "ChromeDebug MCP Assistant FREE v2.4.0",
4
+ "version": "2.4.0",
5
+ "description": "ChromeDebug MCP visual element selector [FREE Edition] [Build: 2025-01-20-v2.4.0]",
6
6
  "permissions": [
7
7
  "activeTab",
8
8
  "scripting",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamicu/chromedebug-mcp",
3
- "version": "2.4.0",
3
+ "version": "2.4.1",
4
4
  "description": "ChromeDebug MCP - MCP server that provides full control over a Chrome browser instance for debugging and automation with AI assistants like Claude Code",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
@@ -56,7 +56,9 @@
56
56
  "tbv:microtest": "cd chrome-extension && npm run tbv:microtest",
57
57
  "build:free": "webpack --config scripts/webpack.config.free.cjs",
58
58
  "build:pro": "webpack --config scripts/webpack.config.pro.cjs",
59
- "build:both": "npm run build:free && npm run build:pro"
59
+ "build:both": "npm run build:free && npm run build:pro",
60
+ "package-pro": "node scripts/package-pro-extension.js",
61
+ "package-webstore": "node scripts/package-webstore-extension.js"
60
62
  },
61
63
  "keywords": [
62
64
  "mcp",
@@ -0,0 +1,81 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Package PRO Chrome extension for LemonSqueezy distribution
5
+ * Creates a .zip file with the PRO version including activation manager
6
+ */
7
+
8
+ import { createWriteStream, promises as fs } from 'fs';
9
+ import { join, dirname } from 'path';
10
+ import { fileURLToPath } from 'url';
11
+ import { execSync } from 'child_process';
12
+ import archiver from 'archiver';
13
+
14
+ const __filename = fileURLToPath(import.meta.url);
15
+ const __dirname = dirname(__filename);
16
+ const rootDir = join(__dirname, '..');
17
+ const proExtensionDir = join(rootDir, 'scripts', 'dist', 'pro');
18
+ const outputDir = join(rootDir, 'dist');
19
+ const outputFile = join(outputDir, 'chromedebug-extension-pro.zip');
20
+
21
+ async function packageProExtension() {
22
+ console.log('šŸ“¦ Building and packaging PRO Chrome extension...');
23
+
24
+ // Step 1: Build the pro version
25
+ console.log('šŸ”Ø Building PRO version...');
26
+ try {
27
+ execSync('npm run build:pro', {
28
+ cwd: rootDir,
29
+ stdio: 'inherit'
30
+ });
31
+ } catch (error) {
32
+ console.error('āŒ Failed to build PRO version');
33
+ throw error;
34
+ }
35
+
36
+ // Step 2: Verify the build output exists
37
+ try {
38
+ await fs.access(proExtensionDir);
39
+ } catch {
40
+ throw new Error(`Build output not found at ${proExtensionDir}`);
41
+ }
42
+
43
+ // Step 3: Ensure output directory exists
44
+ try {
45
+ await fs.mkdir(outputDir, { recursive: true });
46
+ } catch (error) {
47
+ // Directory might already exist, that's fine
48
+ }
49
+
50
+ // Step 4: Create zip file
51
+ console.log('šŸ“¦ Creating PRO zip package...');
52
+
53
+ const output = createWriteStream(outputFile);
54
+ const archive = archiver('zip', { zlib: { level: 9 } });
55
+
56
+ return new Promise((resolve, reject) => {
57
+ output.on('close', () => {
58
+ const sizeKB = (archive.pointer() / 1024).toFixed(2);
59
+ console.log(`āœ… PRO extension packaged successfully!`);
60
+ console.log(` Size: ${sizeKB} KB`);
61
+ console.log(` Location: ${outputFile}`);
62
+ console.log(` šŸ“Œ This is the PRO version with activation manager`);
63
+ console.log(` šŸ”’ For LemonSqueezy distribution only`);
64
+ resolve();
65
+ });
66
+
67
+ archive.on('error', reject);
68
+
69
+ archive.pipe(output);
70
+
71
+ // Add all files from the pro build directory
72
+ archive.directory(proExtensionDir, false);
73
+
74
+ archive.finalize();
75
+ });
76
+ }
77
+
78
+ packageProExtension().catch(err => {
79
+ console.error('āŒ Failed to package PRO extension:', err);
80
+ process.exit(1);
81
+ });
@@ -0,0 +1,89 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Package FREE Chrome extension for Chrome Web Store distribution
5
+ * Creates a .zip file optimized for Chrome Web Store submission
6
+ */
7
+
8
+ import { createWriteStream, promises as fs } from 'fs';
9
+ import { join, dirname } from 'path';
10
+ import { fileURLToPath } from 'url';
11
+ import { execSync } from 'child_process';
12
+ import archiver from 'archiver';
13
+
14
+ const __filename = fileURLToPath(import.meta.url);
15
+ const __dirname = dirname(__filename);
16
+ const rootDir = join(__dirname, '..');
17
+ const freeExtensionDir = join(rootDir, 'scripts', 'dist', 'free');
18
+ const outputDir = join(rootDir, 'dist');
19
+ const outputFile = join(outputDir, 'chromedebug-webstore-free.zip');
20
+
21
+ async function packageWebStoreExtension() {
22
+ console.log('šŸ“¦ Building and packaging FREE Chrome extension for Web Store...');
23
+
24
+ // Step 1: Build the free version
25
+ console.log('šŸ”Ø Building free version...');
26
+ try {
27
+ execSync('npm run build:free', {
28
+ cwd: rootDir,
29
+ stdio: 'inherit'
30
+ });
31
+ } catch (error) {
32
+ console.error('āŒ Failed to build free version');
33
+ throw error;
34
+ }
35
+
36
+ // Step 2: Verify the build output exists
37
+ try {
38
+ await fs.access(freeExtensionDir);
39
+ } catch {
40
+ throw new Error(`Build output not found at ${freeExtensionDir}`);
41
+ }
42
+
43
+ // Step 3: Ensure output directory exists
44
+ try {
45
+ await fs.mkdir(outputDir, { recursive: true });
46
+ } catch (error) {
47
+ // Directory might already exist, that's fine
48
+ }
49
+
50
+ // Step 4: Create zip file optimized for Chrome Web Store
51
+ console.log('šŸ“¦ Creating Chrome Web Store package...');
52
+
53
+ const output = createWriteStream(outputFile);
54
+ const archive = archiver('zip', {
55
+ zlib: { level: 9 }
56
+ });
57
+
58
+ return new Promise((resolve, reject) => {
59
+ output.on('close', () => {
60
+ const sizeKB = (archive.pointer() / 1024).toFixed(2);
61
+ console.log(`āœ… Chrome Web Store package created successfully!`);
62
+ console.log(` Size: ${sizeKB} KB`);
63
+ console.log(` Location: ${outputFile}`);
64
+ console.log(` šŸ“Œ This is the FREE version for Chrome Web Store`);
65
+ console.log(` 🌐 Ready to upload to: https://chrome.google.com/webstore/devconsole`);
66
+ console.log(`\nšŸ“‹ Next steps:`);
67
+ console.log(` 1. Go to Chrome Web Store Developer Dashboard`);
68
+ console.log(` 2. Upload this zip file`);
69
+ console.log(` 3. Fill in store listing details`);
70
+ console.log(` 4. Submit for review`);
71
+ resolve();
72
+ });
73
+
74
+ archive.on('error', reject);
75
+
76
+ archive.pipe(output);
77
+
78
+ // Add all files from the free build directory
79
+ // Chrome Web Store expects all files to be in the root of the zip
80
+ archive.directory(freeExtensionDir, false);
81
+
82
+ archive.finalize();
83
+ });
84
+ }
85
+
86
+ packageWebStoreExtension().catch(err => {
87
+ console.error('āŒ Failed to package Chrome Web Store extension:', err);
88
+ process.exit(1);
89
+ });