@gxp-dev/tools 2.0.63 โ 2.0.64
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 +32 -31
- package/bin/gx-devtools.js +74 -54
- package/bin/lib/cli.js +23 -21
- package/bin/lib/commands/add-dependency.js +366 -325
- package/bin/lib/commands/assets.js +137 -139
- package/bin/lib/commands/build.js +169 -174
- package/bin/lib/commands/datastore.js +181 -183
- package/bin/lib/commands/dev.js +127 -131
- package/bin/lib/commands/extensions.js +147 -149
- package/bin/lib/commands/extract-config.js +73 -67
- package/bin/lib/commands/index.js +12 -12
- package/bin/lib/commands/init.js +342 -240
- package/bin/lib/commands/publish.js +69 -75
- package/bin/lib/commands/socket.js +69 -69
- package/bin/lib/commands/ssl.js +14 -14
- package/bin/lib/constants.js +10 -24
- package/bin/lib/tui/App.tsx +761 -705
- package/bin/lib/tui/components/AIPanel.tsx +191 -171
- package/bin/lib/tui/components/CommandInput.tsx +394 -343
- package/bin/lib/tui/components/GeminiPanel.tsx +175 -151
- package/bin/lib/tui/components/Header.tsx +23 -21
- package/bin/lib/tui/components/LogPanel.tsx +244 -220
- package/bin/lib/tui/components/TabBar.tsx +50 -48
- package/bin/lib/tui/components/WelcomeScreen.tsx +126 -71
- package/bin/lib/tui/index.tsx +37 -39
- package/bin/lib/tui/services/AIService.ts +518 -462
- package/bin/lib/tui/services/ExtensionService.ts +140 -129
- package/bin/lib/tui/services/GeminiService.ts +367 -337
- package/bin/lib/tui/services/ServiceManager.ts +344 -322
- package/bin/lib/tui/services/SocketService.ts +168 -168
- package/bin/lib/tui/services/ViteService.ts +88 -88
- package/bin/lib/tui/services/index.ts +47 -22
- package/bin/lib/utils/ai-scaffold.js +291 -280
- package/bin/lib/utils/extract-config.js +157 -140
- package/bin/lib/utils/files.js +82 -86
- package/bin/lib/utils/index.js +7 -7
- package/bin/lib/utils/paths.js +34 -34
- package/bin/lib/utils/prompts.js +194 -169
- package/bin/lib/utils/ssl.js +79 -81
- package/browser-extensions/README.md +0 -1
- package/browser-extensions/chrome/background.js +244 -237
- package/browser-extensions/chrome/content.js +32 -29
- package/browser-extensions/chrome/devtools.html +7 -7
- package/browser-extensions/chrome/devtools.js +19 -19
- package/browser-extensions/chrome/inspector.js +802 -767
- package/browser-extensions/chrome/manifest.json +71 -63
- package/browser-extensions/chrome/panel.html +674 -636
- package/browser-extensions/chrome/panel.js +722 -712
- package/browser-extensions/chrome/popup.html +586 -543
- package/browser-extensions/chrome/popup.js +282 -244
- package/browser-extensions/chrome/rules.json +1 -1
- package/browser-extensions/chrome/test-chrome.html +216 -136
- package/browser-extensions/chrome/test-mixed-content.html +284 -189
- package/browser-extensions/chrome/test-uri-pattern.html +221 -198
- package/browser-extensions/firefox/README.md +9 -6
- package/browser-extensions/firefox/background.js +221 -218
- package/browser-extensions/firefox/content.js +55 -52
- package/browser-extensions/firefox/debug-errors.html +386 -228
- package/browser-extensions/firefox/debug-https.html +153 -105
- package/browser-extensions/firefox/devtools.html +7 -7
- package/browser-extensions/firefox/devtools.js +23 -20
- package/browser-extensions/firefox/inspector.js +802 -767
- package/browser-extensions/firefox/manifest.json +68 -68
- package/browser-extensions/firefox/panel.html +674 -636
- package/browser-extensions/firefox/panel.js +722 -712
- package/browser-extensions/firefox/popup.html +572 -535
- package/browser-extensions/firefox/popup.js +281 -236
- package/browser-extensions/firefox/test-gramercy.html +170 -125
- package/browser-extensions/firefox/test-imports.html +59 -55
- package/browser-extensions/firefox/test-masking.html +231 -140
- package/browser-extensions/firefox/test-uri-pattern.html +221 -198
- package/dist/tui/App.d.ts +1 -1
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +154 -150
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/components/AIPanel.d.ts.map +1 -1
- package/dist/tui/components/AIPanel.js +42 -35
- package/dist/tui/components/AIPanel.js.map +1 -1
- package/dist/tui/components/CommandInput.d.ts +1 -1
- package/dist/tui/components/CommandInput.d.ts.map +1 -1
- package/dist/tui/components/CommandInput.js +92 -62
- package/dist/tui/components/CommandInput.js.map +1 -1
- package/dist/tui/components/GeminiPanel.d.ts.map +1 -1
- package/dist/tui/components/GeminiPanel.js +37 -30
- package/dist/tui/components/GeminiPanel.js.map +1 -1
- package/dist/tui/components/Header.d.ts.map +1 -1
- package/dist/tui/components/Header.js +1 -1
- package/dist/tui/components/Header.js.map +1 -1
- package/dist/tui/components/LogPanel.d.ts +1 -1
- package/dist/tui/components/LogPanel.d.ts.map +1 -1
- package/dist/tui/components/LogPanel.js +26 -24
- package/dist/tui/components/LogPanel.js.map +1 -1
- package/dist/tui/components/TabBar.d.ts +2 -2
- package/dist/tui/components/TabBar.d.ts.map +1 -1
- package/dist/tui/components/TabBar.js +11 -11
- package/dist/tui/components/TabBar.js.map +1 -1
- package/dist/tui/components/WelcomeScreen.d.ts.map +1 -1
- package/dist/tui/components/WelcomeScreen.js +6 -6
- package/dist/tui/components/WelcomeScreen.js.map +1 -1
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/index.js +8 -8
- package/dist/tui/index.js.map +1 -1
- package/dist/tui/services/AIService.d.ts +2 -2
- package/dist/tui/services/AIService.d.ts.map +1 -1
- package/dist/tui/services/AIService.js +165 -125
- package/dist/tui/services/AIService.js.map +1 -1
- package/dist/tui/services/ExtensionService.d.ts +1 -1
- package/dist/tui/services/ExtensionService.d.ts.map +1 -1
- package/dist/tui/services/ExtensionService.js +33 -26
- package/dist/tui/services/ExtensionService.js.map +1 -1
- package/dist/tui/services/GeminiService.d.ts +1 -1
- package/dist/tui/services/GeminiService.d.ts.map +1 -1
- package/dist/tui/services/GeminiService.js +87 -76
- package/dist/tui/services/GeminiService.js.map +1 -1
- package/dist/tui/services/ServiceManager.d.ts +3 -3
- package/dist/tui/services/ServiceManager.d.ts.map +1 -1
- package/dist/tui/services/ServiceManager.js +72 -58
- package/dist/tui/services/ServiceManager.js.map +1 -1
- package/dist/tui/services/SocketService.d.ts.map +1 -1
- package/dist/tui/services/SocketService.js +32 -32
- package/dist/tui/services/SocketService.js.map +1 -1
- package/dist/tui/services/ViteService.d.ts.map +1 -1
- package/dist/tui/services/ViteService.js +26 -28
- package/dist/tui/services/ViteService.js.map +1 -1
- package/dist/tui/services/index.d.ts +6 -6
- package/dist/tui/services/index.d.ts.map +1 -1
- package/dist/tui/services/index.js +6 -6
- package/dist/tui/services/index.js.map +1 -1
- package/mcp/gxp-api-server.js +83 -81
- package/package.json +109 -93
- package/runtime/PortalContainer.vue +258 -234
- package/runtime/dev-tools/DevToolsModal.vue +153 -155
- package/runtime/dev-tools/LayoutSwitcher.vue +144 -140
- package/runtime/dev-tools/MockDataEditor.vue +456 -433
- package/runtime/dev-tools/SocketSimulator.vue +379 -371
- package/runtime/dev-tools/StoreInspector.vue +517 -455
- package/runtime/dev-tools/index.js +5 -5
- package/runtime/fallback-layouts/PrivateLayout.vue +2 -2
- package/runtime/fallback-layouts/PublicLayout.vue +2 -2
- package/runtime/fallback-layouts/SystemLayout.vue +2 -2
- package/runtime/gxpStringsPlugin.js +159 -134
- package/runtime/index.html +17 -19
- package/runtime/main.js +24 -22
- package/runtime/mock-api/auth-middleware.js +15 -15
- package/runtime/mock-api/image-generator.js +46 -46
- package/runtime/mock-api/index.js +55 -55
- package/runtime/mock-api/response-generator.js +116 -105
- package/runtime/mock-api/route-generator.js +107 -84
- package/runtime/mock-api/socket-triggers.js +94 -93
- package/runtime/mock-api/spec-loader.js +79 -80
- package/runtime/package.json +3 -0
- package/runtime/server.js +68 -68
- package/runtime/stores/gxpPortalConfigStore.js +204 -186
- package/runtime/stores/index.js +2 -2
- package/runtime/vite-inspector-plugin.js +858 -707
- package/runtime/vite-source-tracker-plugin.js +132 -113
- package/runtime/vite.config.js +191 -139
- package/scripts/launch-chrome.js +41 -41
- package/scripts/pack-chrome.js +38 -39
- package/socket-events/AiSessionMessageCreated.json +17 -17
- package/socket-events/SocialStreamPostCreated.json +23 -23
- package/socket-events/SocialStreamPostVariantCompleted.json +22 -22
- package/template/.claude/agents/gxp-developer.md +100 -99
- package/template/.claude/settings.json +7 -7
- package/template/AGENTS.md +30 -23
- package/template/GEMINI.md +20 -20
- package/template/README.md +70 -53
- package/template/app-manifest.json +2 -4
- package/template/configuration.json +10 -10
- package/template/default-styling.css +1 -1
- package/template/index.html +18 -20
- package/template/main.js +24 -22
- package/template/src/DemoPage.vue +415 -362
- package/template/src/Plugin.vue +76 -85
- package/template/src/stores/index.js +3 -3
- package/template/src/stores/test-data.json +164 -172
- package/template/theme-layouts/AdditionalStyling.css +50 -50
- package/template/theme-layouts/PrivateLayout.vue +8 -12
- package/template/theme-layouts/PublicLayout.vue +8 -12
- package/template/theme-layouts/SystemLayout.vue +8 -12
- package/template/vite.extend.js +45 -0
- package/template/vite.config.js +0 -409
|
@@ -1,147 +1,238 @@
|
|
|
1
|
-
<!
|
|
1
|
+
<!doctype html>
|
|
2
2
|
<html>
|
|
3
|
-
<head>
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
3
|
+
<head>
|
|
4
|
+
<title>Test URL Masking vs Redirection</title>
|
|
5
|
+
<style>
|
|
6
|
+
body {
|
|
7
|
+
font-family: Arial, sans-serif;
|
|
8
|
+
padding: 20px;
|
|
9
|
+
max-width: 800px;
|
|
10
|
+
}
|
|
11
|
+
.mode-section {
|
|
12
|
+
margin: 20px 0;
|
|
13
|
+
padding: 20px;
|
|
14
|
+
border: 2px solid #ddd;
|
|
15
|
+
border-radius: 8px;
|
|
16
|
+
}
|
|
17
|
+
.redirect-mode {
|
|
18
|
+
border-color: #dc3545;
|
|
19
|
+
background: #fff5f5;
|
|
20
|
+
}
|
|
21
|
+
.masking-mode {
|
|
22
|
+
border-color: #28a745;
|
|
23
|
+
background: #f8fff8;
|
|
24
|
+
}
|
|
25
|
+
.test-buttons {
|
|
26
|
+
margin: 15px 0;
|
|
27
|
+
}
|
|
28
|
+
button {
|
|
29
|
+
padding: 10px 15px;
|
|
30
|
+
margin: 5px;
|
|
31
|
+
cursor: pointer;
|
|
32
|
+
}
|
|
33
|
+
.redirect-btn {
|
|
34
|
+
background: #dc3545;
|
|
35
|
+
color: white;
|
|
36
|
+
border: none;
|
|
37
|
+
border-radius: 4px;
|
|
38
|
+
}
|
|
39
|
+
.masking-btn {
|
|
40
|
+
background: #28a745;
|
|
41
|
+
color: white;
|
|
42
|
+
border: none;
|
|
43
|
+
border-radius: 4px;
|
|
44
|
+
}
|
|
45
|
+
.results {
|
|
46
|
+
background: #f5f5f5;
|
|
47
|
+
padding: 10px;
|
|
48
|
+
margin: 10px 0;
|
|
49
|
+
border-radius: 4px;
|
|
50
|
+
}
|
|
51
|
+
.code {
|
|
52
|
+
background: #e9ecef;
|
|
53
|
+
padding: 8px;
|
|
54
|
+
font-family: monospace;
|
|
55
|
+
margin: 8px 0;
|
|
56
|
+
}
|
|
57
|
+
</style>
|
|
58
|
+
</head>
|
|
59
|
+
<body>
|
|
60
|
+
<h1>URL Masking vs Redirection Test</h1>
|
|
35
61
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
<div id="maskingResults" class="results"></div>
|
|
51
|
-
</div>
|
|
62
|
+
<div class="mode-section redirect-mode">
|
|
63
|
+
<h2>๐ด Redirect Mode (Traditional)</h2>
|
|
64
|
+
<p>
|
|
65
|
+
<strong>How it works:</strong> Browser URL bar changes to show the new
|
|
66
|
+
destination
|
|
67
|
+
</p>
|
|
68
|
+
<div class="code">
|
|
69
|
+
Original URL: https://api.example.com/data<br />
|
|
70
|
+
Browser shows: https://api.alternative.com/data
|
|
71
|
+
</div>
|
|
72
|
+
<p>
|
|
73
|
+
<strong>Use case:</strong> When you want users to see they're being
|
|
74
|
+
redirected
|
|
75
|
+
</p>
|
|
52
76
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
<li>Leave "URL Masking Mode" unchecked</li>
|
|
61
|
-
</ul>
|
|
62
|
-
</li>
|
|
63
|
-
<li><strong>For Masking Mode:</strong>
|
|
64
|
-
<ul>
|
|
65
|
-
<li>Add rule: Pattern <code>httpbin\.org</code> โ Redirect <code>postman-echo.com</code></li>
|
|
66
|
-
<li>Check "Mask URL" checkbox for the rule, OR</li>
|
|
67
|
-
<li>Check "URL Masking Mode" for global masking</li>
|
|
68
|
-
</ul>
|
|
69
|
-
</li>
|
|
70
|
-
</ol>
|
|
71
|
-
|
|
72
|
-
<h3>๐ง Server Requirements for Masking</h3>
|
|
73
|
-
<p>Your proxy server needs to:</p>
|
|
74
|
-
<ul>
|
|
75
|
-
<li>Accept the original Host header</li>
|
|
76
|
-
<li>Read <code>X-Proxy-Original-Host</code> and <code>X-Proxy-Original-URL</code> headers</li>
|
|
77
|
-
<li>Route requests based on these headers</li>
|
|
78
|
-
<li>Return appropriate CORS headers if needed</li>
|
|
79
|
-
</ul>
|
|
80
|
-
</div>
|
|
77
|
+
<div class="test-buttons">
|
|
78
|
+
<button class="redirect-btn" onclick="testRedirect()">
|
|
79
|
+
Test Redirect Mode
|
|
80
|
+
</button>
|
|
81
|
+
</div>
|
|
82
|
+
<div id="redirectResults" class="results"></div>
|
|
83
|
+
</div>
|
|
81
84
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
<div class="mode-section masking-mode">
|
|
86
|
+
<h2>๐ข Masking Mode (Transparent Proxy)</h2>
|
|
87
|
+
<p>
|
|
88
|
+
<strong>How it works:</strong> Browser URL bar shows original URL, but
|
|
89
|
+
request goes to proxy server
|
|
90
|
+
</p>
|
|
91
|
+
<div class="code">
|
|
92
|
+
Original URL: https://api.example.com/data<br />
|
|
93
|
+
Browser shows: https://api.example.com/data<br />
|
|
94
|
+
Actual request goes to: https://api.alternative.com/data<br />
|
|
95
|
+
Headers include: X-Proxy-Original-Host: api.example.com
|
|
96
|
+
</div>
|
|
97
|
+
<p>
|
|
98
|
+
<strong>Use case:</strong> Transparent proxying without changing visible
|
|
99
|
+
URLs
|
|
100
|
+
</p>
|
|
88
101
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
try {
|
|
97
|
-
const response = await fetch('https://httpbin.org/get?test=redirect');
|
|
98
|
-
const data = await response.json();
|
|
99
|
-
log('redirectResults', `โ
Request successful to: ${data.url}`);
|
|
100
|
-
log('redirectResults', `๐ Check browser URL bar - should show redirected domain`);
|
|
101
|
-
} catch (error) {
|
|
102
|
-
log('redirectResults', `โ Request failed: ${error.message}`);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
102
|
+
<div class="test-buttons">
|
|
103
|
+
<button class="masking-btn" onclick="testMasking()">
|
|
104
|
+
Test Masking Mode
|
|
105
|
+
</button>
|
|
106
|
+
</div>
|
|
107
|
+
<div id="maskingResults" class="results"></div>
|
|
108
|
+
</div>
|
|
105
109
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
110
|
+
<div class="mode-section">
|
|
111
|
+
<h2>๐ Setup Instructions</h2>
|
|
112
|
+
<ol>
|
|
113
|
+
<li>
|
|
114
|
+
<strong>For Redirect Mode:</strong>
|
|
115
|
+
<ul>
|
|
116
|
+
<li>
|
|
117
|
+
Add rule: Pattern <code>httpbin\.org</code> โ Redirect
|
|
118
|
+
<code>postman-echo.com</code>
|
|
119
|
+
</li>
|
|
120
|
+
<li>Leave "Mask URL" checkbox unchecked</li>
|
|
121
|
+
<li>Leave "URL Masking Mode" unchecked</li>
|
|
122
|
+
</ul>
|
|
123
|
+
</li>
|
|
124
|
+
<li>
|
|
125
|
+
<strong>For Masking Mode:</strong>
|
|
126
|
+
<ul>
|
|
127
|
+
<li>
|
|
128
|
+
Add rule: Pattern <code>httpbin\.org</code> โ Redirect
|
|
129
|
+
<code>postman-echo.com</code>
|
|
130
|
+
</li>
|
|
131
|
+
<li>Check "Mask URL" checkbox for the rule, OR</li>
|
|
132
|
+
<li>Check "URL Masking Mode" for global masking</li>
|
|
133
|
+
</ul>
|
|
134
|
+
</li>
|
|
135
|
+
</ol>
|
|
131
136
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
137
|
+
<h3>๐ง Server Requirements for Masking</h3>
|
|
138
|
+
<p>Your proxy server needs to:</p>
|
|
139
|
+
<ul>
|
|
140
|
+
<li>Accept the original Host header</li>
|
|
141
|
+
<li>
|
|
142
|
+
Read <code>X-Proxy-Original-Host</code> and
|
|
143
|
+
<code>X-Proxy-Original-URL</code> headers
|
|
144
|
+
</li>
|
|
145
|
+
<li>Route requests based on these headers</li>
|
|
146
|
+
<li>Return appropriate CORS headers if needed</li>
|
|
147
|
+
</ul>
|
|
148
|
+
</div>
|
|
149
|
+
|
|
150
|
+
<script>
|
|
151
|
+
function log(elementId, message) {
|
|
152
|
+
const element = document.getElementById(elementId)
|
|
153
|
+
const timestamp = new Date().toLocaleTimeString()
|
|
154
|
+
element.innerHTML += `<div>${timestamp}: ${message}</div>`
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
async function testRedirect() {
|
|
158
|
+
const results = document.getElementById("redirectResults")
|
|
159
|
+
results.innerHTML = ""
|
|
160
|
+
|
|
161
|
+
log("redirectResults", "๐งช Testing redirect mode...")
|
|
162
|
+
log(
|
|
163
|
+
"redirectResults",
|
|
164
|
+
"๐ Make sure extension is in REDIRECT mode (Mask URL unchecked)",
|
|
165
|
+
)
|
|
166
|
+
|
|
167
|
+
try {
|
|
168
|
+
const response = await fetch("https://httpbin.org/get?test=redirect")
|
|
169
|
+
const data = await response.json()
|
|
170
|
+
log("redirectResults", `โ
Request successful to: ${data.url}`)
|
|
171
|
+
log(
|
|
172
|
+
"redirectResults",
|
|
173
|
+
`๐ Check browser URL bar - should show redirected domain`,
|
|
174
|
+
)
|
|
175
|
+
} catch (error) {
|
|
176
|
+
log("redirectResults", `โ Request failed: ${error.message}`)
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
async function testMasking() {
|
|
181
|
+
const results = document.getElementById("maskingResults")
|
|
182
|
+
results.innerHTML = ""
|
|
183
|
+
|
|
184
|
+
log("maskingResults", "๐งช Testing masking mode...")
|
|
185
|
+
log(
|
|
186
|
+
"maskingResults",
|
|
187
|
+
"๐ Make sure extension is in MASKING mode (Mask URL checked)",
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
try {
|
|
191
|
+
const response = await fetch("https://httpbin.org/get?test=masking")
|
|
192
|
+
const data = await response.json()
|
|
193
|
+
log("maskingResults", `โ
Request successful`)
|
|
194
|
+
log(
|
|
195
|
+
"maskingResults",
|
|
196
|
+
`๐ Check browser URL bar - should show original domain`,
|
|
197
|
+
)
|
|
198
|
+
log("maskingResults", `๐ Check Network tab for actual destination`)
|
|
199
|
+
|
|
200
|
+
// Check if proxy headers were included
|
|
201
|
+
if (data.headers && data.headers["X-Proxy-Original-Host"]) {
|
|
202
|
+
log(
|
|
203
|
+
"maskingResults",
|
|
204
|
+
`โ
Proxy headers detected: ${data.headers["X-Proxy-Original-Host"]}`,
|
|
205
|
+
)
|
|
206
|
+
} else {
|
|
207
|
+
log(
|
|
208
|
+
"maskingResults",
|
|
209
|
+
`โ ๏ธ No proxy headers detected - check masking configuration`,
|
|
210
|
+
)
|
|
211
|
+
}
|
|
212
|
+
} catch (error) {
|
|
213
|
+
log("maskingResults", `โ Request failed: ${error.message}`)
|
|
214
|
+
log(
|
|
215
|
+
"maskingResults",
|
|
216
|
+
`๐ก This might be expected if proxy server doesn't support masking`,
|
|
217
|
+
)
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// Auto-check extension status
|
|
222
|
+
window.addEventListener("load", async function () {
|
|
223
|
+
try {
|
|
224
|
+
if (typeof browser !== "undefined") {
|
|
225
|
+
const state = await browser.runtime.sendMessage({
|
|
226
|
+
action: "getState",
|
|
227
|
+
})
|
|
228
|
+
console.log("Extension state:", state)
|
|
229
|
+
} else {
|
|
230
|
+
console.log("Extension not detected")
|
|
231
|
+
}
|
|
232
|
+
} catch (error) {
|
|
233
|
+
console.log("Extension communication failed:", error)
|
|
234
|
+
}
|
|
235
|
+
})
|
|
236
|
+
</script>
|
|
237
|
+
</body>
|
|
238
|
+
</html>
|