appium-mcp 1.86.10 → 1.86.12
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/CHANGELOG.md +8 -0
- package/README.md +2 -0
- package/dist/ui/mcp-ui-utils.d.ts.map +1 -1
- package/dist/ui/mcp-ui-utils.js +73 -35
- package/dist/ui/mcp-ui-utils.js.map +1 -1
- package/package.json +2 -2
- package/server.json +2 -2
- package/src/ui/mcp-ui-utils.ts +73 -35
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
## [1.86.12](https://github.com/appium/appium-mcp/compare/v1.86.11...v1.86.12) (2026-07-02)
|
|
2
|
+
|
|
3
|
+
### Miscellaneous Chores
|
|
4
|
+
|
|
5
|
+
* downgrade conventional-changelog-conventionalcommits to v9 ([#435](https://github.com/appium/appium-mcp/issues/435)) ([b2d330a](https://github.com/appium/appium-mcp/commit/b2d330abbe6fe73cc640cc06f3fff0c3a985e9c2))
|
|
6
|
+
|
|
7
|
+
## [1.86.11](https://github.com/appium/appium-mcp/compare/v1.86.10...v1.86.11) (2026-07-01)
|
|
8
|
+
|
|
1
9
|
## [1.86.10](https://github.com/appium/appium-mcp/compare/v1.86.9...v1.86.10) (2026-07-01)
|
|
2
10
|
|
|
3
11
|
## [1.86.9](https://github.com/appium/appium-mcp/compare/v1.86.8...v1.86.9) (2026-06-30)
|
package/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# MCP Appium - MCP server for Mobile Development and Automation | iOS, Android, Simulator, Emulator, and Real Devices
|
|
2
2
|
|
|
3
|
+
[](https://npmjs.org/package/appium-mcp)
|
|
4
|
+
|
|
3
5
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
4
6
|
|
|
5
7
|
MCP Appium is an intelligent MCP (Model Context Protocol) server designed to empower AI assistants with a robust suite of tools for mobile automation. It streamlines mobile app testing by enabling natural language interactions, intelligent locator generation, and automated test creation for both Android and iOS platforms.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-ui-utils.d.ts","sourceRoot":"","sources":["../../src/ui/mcp-ui-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,GAClB;IACD,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,WAAW,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CASA;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC,EACF,QAAQ,EAAE,SAAS,GAAG,KAAK,EAC3B,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAChC,MAAM,CA+LR;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,GACf,MAAM,CAwMR;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE;IACpD,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,MAAM,CAiPT;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,KAAK,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC,GACD,MAAM,CAmMR;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"mcp-ui-utils.d.ts","sourceRoot":"","sources":["../../src/ui/mcp-ui-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,GAClB;IACD,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,WAAW,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CASA;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC,EACF,QAAQ,EAAE,SAAS,GAAG,KAAK,EAC3B,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAChC,MAAM,CA+LR;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,GACf,MAAM,CAwMR;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE;IACpD,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,MAAM,CAiPT;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,KAAK,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC,GACD,MAAM,CAmMR;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAmMtE;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAAE,EAClB,cAAc,EAAE,MAAM,GAAG,IAAI,GAC5B,MAAM,CAgKR;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,KAAK,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACrD,MAAM,CAgNR;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,MAAe,GACxB,MAAM,CAyJR;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,EAC7D,UAAU,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,GAC9C;IAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;CAAE,CAQzB"}
|
package/dist/ui/mcp-ui-utils.js
CHANGED
|
@@ -862,13 +862,7 @@ export function createLocatorGeneratorUI(locators) {
|
|
|
862
862
|
* @returns HTML string for page source inspector
|
|
863
863
|
*/
|
|
864
864
|
export function createPageSourceInspectorUI(pageSource) {
|
|
865
|
-
|
|
866
|
-
const escapedSource = pageSource
|
|
867
|
-
.replace(/&/g, '&')
|
|
868
|
-
.replace(/</g, '<')
|
|
869
|
-
.replace(/>/g, '>')
|
|
870
|
-
.replace(/"/g, '"')
|
|
871
|
-
.replace(/'/g, ''');
|
|
865
|
+
const escapedSource = escapeHtml(pageSource);
|
|
872
866
|
return `
|
|
873
867
|
<!DOCTYPE html>
|
|
874
868
|
<html lang="en">
|
|
@@ -1012,19 +1006,50 @@ export function createPageSourceInspectorUI(pageSource) {
|
|
|
1012
1006
|
}, '*');
|
|
1013
1007
|
}
|
|
1014
1008
|
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1009
|
+
const xmlContent = document.getElementById('xmlContent');
|
|
1010
|
+
const originalSource = xmlContent.textContent;
|
|
1011
|
+
|
|
1012
|
+
function appendTextWithHighlights(container, text, searchTerm) {
|
|
1013
|
+
const searchLower = searchTerm.toLowerCase();
|
|
1014
|
+
const textLower = text.toLowerCase();
|
|
1015
|
+
let position = 0;
|
|
1016
|
+
|
|
1017
|
+
while (position < text.length) {
|
|
1018
|
+
const matchIndex = textLower.indexOf(searchLower, position);
|
|
1019
|
+
if (matchIndex === -1) {
|
|
1020
|
+
container.appendChild(document.createTextNode(text.slice(position)));
|
|
1021
|
+
return;
|
|
1022
|
+
}
|
|
1023
|
+
|
|
1024
|
+
if (matchIndex > position) {
|
|
1025
|
+
container.appendChild(
|
|
1026
|
+
document.createTextNode(text.slice(position, matchIndex))
|
|
1027
|
+
);
|
|
1028
|
+
}
|
|
1029
|
+
|
|
1030
|
+
const mark = document.createElement('mark');
|
|
1031
|
+
mark.style.background = '#ffd700';
|
|
1032
|
+
mark.style.color = '#000';
|
|
1033
|
+
mark.textContent = text.slice(matchIndex, matchIndex + searchTerm.length);
|
|
1034
|
+
container.appendChild(mark);
|
|
1035
|
+
position = matchIndex + searchTerm.length;
|
|
1036
|
+
}
|
|
1037
|
+
}
|
|
1038
|
+
|
|
1039
|
+
function renderSource(searchTerm = '') {
|
|
1040
|
+
xmlContent.textContent = '';
|
|
1019
1041
|
if (!searchTerm) {
|
|
1020
|
-
|
|
1042
|
+
xmlContent.textContent = originalSource;
|
|
1021
1043
|
return;
|
|
1022
1044
|
}
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1045
|
+
|
|
1046
|
+
appendTextWithHighlights(xmlContent, originalSource, searchTerm);
|
|
1047
|
+
}
|
|
1048
|
+
|
|
1049
|
+
// Search functionality
|
|
1050
|
+
document.getElementById('searchBox').addEventListener('input', (e) => {
|
|
1051
|
+
const searchTerm = e.target.value.toLowerCase();
|
|
1052
|
+
renderSource(searchTerm);
|
|
1028
1053
|
});
|
|
1029
1054
|
</script>
|
|
1030
1055
|
</body>
|
|
@@ -1041,15 +1066,15 @@ export function createContextSwitcherUI(contexts, currentContext) {
|
|
|
1041
1066
|
const contextCards = contexts
|
|
1042
1067
|
.map((context) => `
|
|
1043
1068
|
<div class="context-card ${context === currentContext ? 'active' : ''}"
|
|
1044
|
-
|
|
1069
|
+
data-context="${escapeHtml(context)}">
|
|
1045
1070
|
<div class="context-header">
|
|
1046
|
-
<h3>${context}</h3>
|
|
1071
|
+
<h3>${escapeHtml(context)}</h3>
|
|
1047
1072
|
${context === currentContext ? '<span class="badge-active">Active</span>' : ''}
|
|
1048
1073
|
</div>
|
|
1049
1074
|
<div class="context-type">
|
|
1050
1075
|
${context === 'NATIVE_APP' ? '📱 Native App' : '🌐 WebView'}
|
|
1051
1076
|
</div>
|
|
1052
|
-
<button class="switch-btn"
|
|
1077
|
+
<button class="switch-btn">
|
|
1053
1078
|
${context === currentContext ? 'Current' : 'Switch'}
|
|
1054
1079
|
</button>
|
|
1055
1080
|
</div>
|
|
@@ -1180,6 +1205,16 @@ export function createContextSwitcherUI(contexts, currentContext) {
|
|
|
1180
1205
|
}
|
|
1181
1206
|
}, '*');
|
|
1182
1207
|
}
|
|
1208
|
+
|
|
1209
|
+
document.addEventListener('click', (event) => {
|
|
1210
|
+
const target = event.target;
|
|
1211
|
+
const card = target instanceof Element ? target.closest('.context-card') : null;
|
|
1212
|
+
if (!card) {
|
|
1213
|
+
return;
|
|
1214
|
+
}
|
|
1215
|
+
|
|
1216
|
+
switchContext(card.dataset.context || '');
|
|
1217
|
+
});
|
|
1183
1218
|
</script>
|
|
1184
1219
|
</body>
|
|
1185
1220
|
</html>
|
|
@@ -1403,13 +1438,9 @@ export function createAppListUI(apps) {
|
|
|
1403
1438
|
* @returns HTML string for test code viewer
|
|
1404
1439
|
*/
|
|
1405
1440
|
export function createTestCodeViewerUI(code, language = 'java') {
|
|
1406
|
-
|
|
1407
|
-
const
|
|
1408
|
-
|
|
1409
|
-
.replace(/</g, '<')
|
|
1410
|
-
.replace(/>/g, '>')
|
|
1411
|
-
.replace(/"/g, '"')
|
|
1412
|
-
.replace(/'/g, ''');
|
|
1441
|
+
const escapedCode = escapeHtml(code);
|
|
1442
|
+
const languageLabel = escapeHtml(language);
|
|
1443
|
+
const downloadExtension = language === 'java' ? 'java' : 'js';
|
|
1413
1444
|
return `
|
|
1414
1445
|
<!DOCTYPE html>
|
|
1415
1446
|
<html lang="en">
|
|
@@ -1502,7 +1533,7 @@ export function createTestCodeViewerUI(code, language = 'java') {
|
|
|
1502
1533
|
<div class="toolbar">
|
|
1503
1534
|
<div class="toolbar-left">
|
|
1504
1535
|
<span style="font-size: 14px; font-weight: 500;">💻 Test Code Viewer</span>
|
|
1505
|
-
<span class="language-badge">${
|
|
1536
|
+
<span class="language-badge">${languageLabel}</span>
|
|
1506
1537
|
<span style="font-size: 12px; color: #999;">${code.length} characters, ${code.split('\\n').length} lines</span>
|
|
1507
1538
|
</div>
|
|
1508
1539
|
<div class="toolbar-right">
|
|
@@ -1528,21 +1559,28 @@ export function createTestCodeViewerUI(code, language = 'java') {
|
|
|
1528
1559
|
const url = URL.createObjectURL(blob);
|
|
1529
1560
|
const a = document.createElement('a');
|
|
1530
1561
|
a.href = url;
|
|
1531
|
-
a.download = 'TestCode.${
|
|
1562
|
+
a.download = 'TestCode.${downloadExtension}';
|
|
1532
1563
|
a.click();
|
|
1533
1564
|
URL.revokeObjectURL(url);
|
|
1534
1565
|
}
|
|
1535
1566
|
|
|
1536
1567
|
function formatCode() {
|
|
1537
|
-
// Basic formatting - could be enhanced with a proper formatter
|
|
1538
1568
|
const content = document.getElementById('codeContent');
|
|
1539
1569
|
const text = content.textContent;
|
|
1540
|
-
// Add line numbers
|
|
1541
1570
|
const lines = text.split('\\n');
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1571
|
+
content.textContent = '';
|
|
1572
|
+
|
|
1573
|
+
lines.forEach((line, index) => {
|
|
1574
|
+
if (index > 0) {
|
|
1575
|
+
content.appendChild(document.createTextNode('\\n'));
|
|
1576
|
+
}
|
|
1577
|
+
|
|
1578
|
+
const lineNumber = document.createElement('span');
|
|
1579
|
+
lineNumber.className = 'line-numbers';
|
|
1580
|
+
lineNumber.textContent = String(index + 1);
|
|
1581
|
+
content.appendChild(lineNumber);
|
|
1582
|
+
content.appendChild(document.createTextNode(line));
|
|
1583
|
+
});
|
|
1546
1584
|
}
|
|
1547
1585
|
|
|
1548
1586
|
// Initial format
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-ui-utils.js","sourceRoot":"","sources":["../../src/ui/mcp-ui-utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mcp-ui-utils.js","sourceRoot":"","sources":["../../src/ui/mcp-ui-utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appium-mcp",
|
|
3
3
|
"mcpName": "io.github.appium/appium-mcp",
|
|
4
|
-
"version": "1.86.
|
|
4
|
+
"version": "1.86.12",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
"@semantic-release/git": "^10.0.1",
|
|
96
96
|
"@types/jest": "^30.0.0",
|
|
97
97
|
"@types/node": "^26.0.0",
|
|
98
|
-
"conventional-changelog-conventionalcommits": "^
|
|
98
|
+
"conventional-changelog-conventionalcommits": "^9.3.1",
|
|
99
99
|
"husky": "^9.1.7",
|
|
100
100
|
"jest": "^30.2.0",
|
|
101
101
|
"lint-staged": "^17.0.2",
|
package/server.json
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
"name": "io.github.appium/appium-mcp",
|
|
4
4
|
"title": "MCP Appium - Mobile Development and Automation Server",
|
|
5
5
|
"description": "MCP server for Appium mobile automation on iOS and Android devices with test creation tools.",
|
|
6
|
-
"version": "1.86.
|
|
6
|
+
"version": "1.86.12",
|
|
7
7
|
"packages": [
|
|
8
8
|
{
|
|
9
9
|
"registryType": "npm",
|
|
10
10
|
"identifier": "appium-mcp",
|
|
11
|
-
"version": "1.86.
|
|
11
|
+
"version": "1.86.12",
|
|
12
12
|
"transport": {
|
|
13
13
|
"type": "stdio"
|
|
14
14
|
}
|
package/src/ui/mcp-ui-utils.ts
CHANGED
|
@@ -928,13 +928,7 @@ export function createLocatorGeneratorUI(
|
|
|
928
928
|
* @returns HTML string for page source inspector
|
|
929
929
|
*/
|
|
930
930
|
export function createPageSourceInspectorUI(pageSource: string): string {
|
|
931
|
-
|
|
932
|
-
const escapedSource = pageSource
|
|
933
|
-
.replace(/&/g, '&')
|
|
934
|
-
.replace(/</g, '<')
|
|
935
|
-
.replace(/>/g, '>')
|
|
936
|
-
.replace(/"/g, '"')
|
|
937
|
-
.replace(/'/g, ''');
|
|
931
|
+
const escapedSource = escapeHtml(pageSource);
|
|
938
932
|
|
|
939
933
|
return `
|
|
940
934
|
<!DOCTYPE html>
|
|
@@ -1079,19 +1073,50 @@ export function createPageSourceInspectorUI(pageSource: string): string {
|
|
|
1079
1073
|
}, '*');
|
|
1080
1074
|
}
|
|
1081
1075
|
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1076
|
+
const xmlContent = document.getElementById('xmlContent');
|
|
1077
|
+
const originalSource = xmlContent.textContent;
|
|
1078
|
+
|
|
1079
|
+
function appendTextWithHighlights(container, text, searchTerm) {
|
|
1080
|
+
const searchLower = searchTerm.toLowerCase();
|
|
1081
|
+
const textLower = text.toLowerCase();
|
|
1082
|
+
let position = 0;
|
|
1083
|
+
|
|
1084
|
+
while (position < text.length) {
|
|
1085
|
+
const matchIndex = textLower.indexOf(searchLower, position);
|
|
1086
|
+
if (matchIndex === -1) {
|
|
1087
|
+
container.appendChild(document.createTextNode(text.slice(position)));
|
|
1088
|
+
return;
|
|
1089
|
+
}
|
|
1090
|
+
|
|
1091
|
+
if (matchIndex > position) {
|
|
1092
|
+
container.appendChild(
|
|
1093
|
+
document.createTextNode(text.slice(position, matchIndex))
|
|
1094
|
+
);
|
|
1095
|
+
}
|
|
1096
|
+
|
|
1097
|
+
const mark = document.createElement('mark');
|
|
1098
|
+
mark.style.background = '#ffd700';
|
|
1099
|
+
mark.style.color = '#000';
|
|
1100
|
+
mark.textContent = text.slice(matchIndex, matchIndex + searchTerm.length);
|
|
1101
|
+
container.appendChild(mark);
|
|
1102
|
+
position = matchIndex + searchTerm.length;
|
|
1103
|
+
}
|
|
1104
|
+
}
|
|
1105
|
+
|
|
1106
|
+
function renderSource(searchTerm = '') {
|
|
1107
|
+
xmlContent.textContent = '';
|
|
1086
1108
|
if (!searchTerm) {
|
|
1087
|
-
|
|
1109
|
+
xmlContent.textContent = originalSource;
|
|
1088
1110
|
return;
|
|
1089
1111
|
}
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1112
|
+
|
|
1113
|
+
appendTextWithHighlights(xmlContent, originalSource, searchTerm);
|
|
1114
|
+
}
|
|
1115
|
+
|
|
1116
|
+
// Search functionality
|
|
1117
|
+
document.getElementById('searchBox').addEventListener('input', (e) => {
|
|
1118
|
+
const searchTerm = e.target.value.toLowerCase();
|
|
1119
|
+
renderSource(searchTerm);
|
|
1095
1120
|
});
|
|
1096
1121
|
</script>
|
|
1097
1122
|
</body>
|
|
@@ -1113,15 +1138,15 @@ export function createContextSwitcherUI(
|
|
|
1113
1138
|
.map(
|
|
1114
1139
|
(context) => `
|
|
1115
1140
|
<div class="context-card ${context === currentContext ? 'active' : ''}"
|
|
1116
|
-
|
|
1141
|
+
data-context="${escapeHtml(context)}">
|
|
1117
1142
|
<div class="context-header">
|
|
1118
|
-
<h3>${context}</h3>
|
|
1143
|
+
<h3>${escapeHtml(context)}</h3>
|
|
1119
1144
|
${context === currentContext ? '<span class="badge-active">Active</span>' : ''}
|
|
1120
1145
|
</div>
|
|
1121
1146
|
<div class="context-type">
|
|
1122
1147
|
${context === 'NATIVE_APP' ? '📱 Native App' : '🌐 WebView'}
|
|
1123
1148
|
</div>
|
|
1124
|
-
<button class="switch-btn"
|
|
1149
|
+
<button class="switch-btn">
|
|
1125
1150
|
${context === currentContext ? 'Current' : 'Switch'}
|
|
1126
1151
|
</button>
|
|
1127
1152
|
</div>
|
|
@@ -1254,6 +1279,16 @@ export function createContextSwitcherUI(
|
|
|
1254
1279
|
}
|
|
1255
1280
|
}, '*');
|
|
1256
1281
|
}
|
|
1282
|
+
|
|
1283
|
+
document.addEventListener('click', (event) => {
|
|
1284
|
+
const target = event.target;
|
|
1285
|
+
const card = target instanceof Element ? target.closest('.context-card') : null;
|
|
1286
|
+
if (!card) {
|
|
1287
|
+
return;
|
|
1288
|
+
}
|
|
1289
|
+
|
|
1290
|
+
switchContext(card.dataset.context || '');
|
|
1291
|
+
});
|
|
1257
1292
|
</script>
|
|
1258
1293
|
</body>
|
|
1259
1294
|
</html>
|
|
@@ -1487,13 +1522,9 @@ export function createTestCodeViewerUI(
|
|
|
1487
1522
|
code: string,
|
|
1488
1523
|
language: string = 'java'
|
|
1489
1524
|
): string {
|
|
1490
|
-
|
|
1491
|
-
const
|
|
1492
|
-
|
|
1493
|
-
.replace(/</g, '<')
|
|
1494
|
-
.replace(/>/g, '>')
|
|
1495
|
-
.replace(/"/g, '"')
|
|
1496
|
-
.replace(/'/g, ''');
|
|
1525
|
+
const escapedCode = escapeHtml(code);
|
|
1526
|
+
const languageLabel = escapeHtml(language);
|
|
1527
|
+
const downloadExtension = language === 'java' ? 'java' : 'js';
|
|
1497
1528
|
|
|
1498
1529
|
return `
|
|
1499
1530
|
<!DOCTYPE html>
|
|
@@ -1587,7 +1618,7 @@ export function createTestCodeViewerUI(
|
|
|
1587
1618
|
<div class="toolbar">
|
|
1588
1619
|
<div class="toolbar-left">
|
|
1589
1620
|
<span style="font-size: 14px; font-weight: 500;">💻 Test Code Viewer</span>
|
|
1590
|
-
<span class="language-badge">${
|
|
1621
|
+
<span class="language-badge">${languageLabel}</span>
|
|
1591
1622
|
<span style="font-size: 12px; color: #999;">${code.length} characters, ${code.split('\\n').length} lines</span>
|
|
1592
1623
|
</div>
|
|
1593
1624
|
<div class="toolbar-right">
|
|
@@ -1613,21 +1644,28 @@ export function createTestCodeViewerUI(
|
|
|
1613
1644
|
const url = URL.createObjectURL(blob);
|
|
1614
1645
|
const a = document.createElement('a');
|
|
1615
1646
|
a.href = url;
|
|
1616
|
-
a.download = 'TestCode.${
|
|
1647
|
+
a.download = 'TestCode.${downloadExtension}';
|
|
1617
1648
|
a.click();
|
|
1618
1649
|
URL.revokeObjectURL(url);
|
|
1619
1650
|
}
|
|
1620
1651
|
|
|
1621
1652
|
function formatCode() {
|
|
1622
|
-
// Basic formatting - could be enhanced with a proper formatter
|
|
1623
1653
|
const content = document.getElementById('codeContent');
|
|
1624
1654
|
const text = content.textContent;
|
|
1625
|
-
// Add line numbers
|
|
1626
1655
|
const lines = text.split('\\n');
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1656
|
+
content.textContent = '';
|
|
1657
|
+
|
|
1658
|
+
lines.forEach((line, index) => {
|
|
1659
|
+
if (index > 0) {
|
|
1660
|
+
content.appendChild(document.createTextNode('\\n'));
|
|
1661
|
+
}
|
|
1662
|
+
|
|
1663
|
+
const lineNumber = document.createElement('span');
|
|
1664
|
+
lineNumber.className = 'line-numbers';
|
|
1665
|
+
lineNumber.textContent = String(index + 1);
|
|
1666
|
+
content.appendChild(lineNumber);
|
|
1667
|
+
content.appendChild(document.createTextNode(line));
|
|
1668
|
+
});
|
|
1631
1669
|
}
|
|
1632
1670
|
|
|
1633
1671
|
// Initial format
|