@majkapp/plugin-kit 1.3.6 → 1.3.7
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/plugin-kit.d.ts.map +1 -1
- package/dist/plugin-kit.js +52 -6
- package/package.json +1 -1
package/dist/plugin-kit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-kit.d.ts","sourceRoot":"","sources":["../src/plugin-kit.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EAGb,eAAe,EACf,QAAQ,EACR,WAAW,EACX,WAAW,EACX,UAAU,EACV,QAAQ,EACR,WAAW,EACX,UAAU,EACV,eAAe,EACf,WAAW,EACX,KAAK,EACL,UAAU,EACV,SAAS,EACT,aAAa,EAIb,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,SAAS,EACT,iBAAiB,EAGjB,sBAAsB,EACvB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin-kit.d.ts","sourceRoot":"","sources":["../src/plugin-kit.ts"],"names":[],"mappings":"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"}
|
package/dist/plugin-kit.js
CHANGED
|
@@ -398,17 +398,49 @@ function serveSpa(ui, req, res, ctx) {
|
|
|
398
398
|
`window.__MAJK_IFRAME_BASE__=${JSON.stringify(ui.base)};` +
|
|
399
399
|
`window.__MAJK_PLUGIN_ID__=${JSON.stringify(ctx.pluginId)};` +
|
|
400
400
|
`</script>`;
|
|
401
|
+
// Inject html2canvas library (inline from node_modules)
|
|
402
|
+
const html2canvasScript = BuiltPlugin.html2canvasScript
|
|
403
|
+
? `<script>${BuiltPlugin.html2canvasScript}</script>`
|
|
404
|
+
: '';
|
|
401
405
|
// Inject MCP DOM Agent script
|
|
402
406
|
const mcpScript = BuiltPlugin.mcpDomAgentScript
|
|
403
407
|
? `<script>${BuiltPlugin.mcpDomAgentScript}</script>`
|
|
404
408
|
: '';
|
|
405
|
-
const allInjections = configInject + mcpScript;
|
|
409
|
+
const allInjections = configInject + html2canvasScript + mcpScript;
|
|
406
410
|
const injected = html.replace('</head>', `${allInjections}</head>`);
|
|
407
411
|
content = Buffer.from(injected, 'utf-8');
|
|
408
412
|
}
|
|
409
413
|
res.writeHead(200, corsHeaders({ 'Content-Type': getContentType(targetFile) }));
|
|
410
414
|
res.end(content);
|
|
411
415
|
}
|
|
416
|
+
/**
|
|
417
|
+
* Load html2canvas library from node_modules
|
|
418
|
+
*/
|
|
419
|
+
function loadHtml2CanvasScript() {
|
|
420
|
+
try {
|
|
421
|
+
// Try multiple possible paths for html2canvas
|
|
422
|
+
const possiblePaths = [
|
|
423
|
+
// When running from dist/ (after build)
|
|
424
|
+
path_1.default.join(__dirname, '..', 'node_modules', 'html2canvas', 'dist', 'html2canvas.min.js'),
|
|
425
|
+
// When running from src/ (development)
|
|
426
|
+
path_1.default.join(__dirname, '..', '..', 'node_modules', 'html2canvas', 'dist', 'html2canvas.min.js'),
|
|
427
|
+
// When installed as a dependency in user's project
|
|
428
|
+
path_1.default.join(__dirname, '..', '..', '..', 'html2canvas', 'dist', 'html2canvas.min.js'),
|
|
429
|
+
];
|
|
430
|
+
for (const scriptPath of possiblePaths) {
|
|
431
|
+
if (fs_1.default.existsSync(scriptPath)) {
|
|
432
|
+
log(`[html2canvas] Loaded from: ${scriptPath}`);
|
|
433
|
+
return fs_1.default.readFileSync(scriptPath, 'utf-8');
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
log('[html2canvas] Script file not found in any expected location');
|
|
437
|
+
return '';
|
|
438
|
+
}
|
|
439
|
+
catch (error) {
|
|
440
|
+
log(`[html2canvas] Failed to load script: ${error.message}`);
|
|
441
|
+
return '';
|
|
442
|
+
}
|
|
443
|
+
}
|
|
412
444
|
/**
|
|
413
445
|
* Load MCP DOM Agent script
|
|
414
446
|
*/
|
|
@@ -584,7 +616,16 @@ class BuiltPlugin {
|
|
|
584
616
|
context.logger.info(`🌐 HTTP Port: ${context.http.port}`);
|
|
585
617
|
context.logger.info(`🔗 Base URL: ${context.http.baseUrl}`);
|
|
586
618
|
context.logger.info('═══════════════════════════════════════════════════════');
|
|
587
|
-
// Load MCP DOM Agent
|
|
619
|
+
// Load html2canvas and MCP DOM Agent scripts once for all plugins
|
|
620
|
+
if (!BuiltPlugin.html2canvasScript) {
|
|
621
|
+
BuiltPlugin.html2canvasScript = loadHtml2CanvasScript();
|
|
622
|
+
if (BuiltPlugin.html2canvasScript) {
|
|
623
|
+
context.logger.info('✅ html2canvas library loaded - screenshot support enabled');
|
|
624
|
+
}
|
|
625
|
+
else {
|
|
626
|
+
context.logger.warn('⚠️ html2canvas not found - screenshots will use fallback mode');
|
|
627
|
+
}
|
|
628
|
+
}
|
|
588
629
|
if (!BuiltPlugin.mcpDomAgentScript) {
|
|
589
630
|
BuiltPlugin.mcpDomAgentScript = loadMcpDomAgentScript();
|
|
590
631
|
if (BuiltPlugin.mcpDomAgentScript) {
|
|
@@ -949,18 +990,22 @@ class BuiltPlugin {
|
|
|
949
990
|
return;
|
|
950
991
|
}
|
|
951
992
|
}
|
|
952
|
-
// Inject MCP DOM Agent script into HTML screens
|
|
993
|
+
// Inject html2canvas and MCP DOM Agent script into HTML screens
|
|
953
994
|
if (BuiltPlugin.mcpDomAgentScript) {
|
|
995
|
+
const html2canvasScript = BuiltPlugin.html2canvasScript
|
|
996
|
+
? `<script>${BuiltPlugin.html2canvasScript}</script>`
|
|
997
|
+
: '';
|
|
954
998
|
const mcpScript = `<script>${BuiltPlugin.mcpDomAgentScript}</script>`;
|
|
999
|
+
const allScripts = html2canvasScript + mcpScript;
|
|
955
1000
|
// Try to inject before </body>, fallback to </head>, fallback to end of HTML
|
|
956
1001
|
if (htmlContent.includes('</body>')) {
|
|
957
|
-
htmlContent = htmlContent.replace('</body>', `${
|
|
1002
|
+
htmlContent = htmlContent.replace('</body>', `${allScripts}</body>`);
|
|
958
1003
|
}
|
|
959
1004
|
else if (htmlContent.includes('</head>')) {
|
|
960
|
-
htmlContent = htmlContent.replace('</head>', `${
|
|
1005
|
+
htmlContent = htmlContent.replace('</head>', `${allScripts}</head>`);
|
|
961
1006
|
}
|
|
962
1007
|
else {
|
|
963
|
-
htmlContent +=
|
|
1008
|
+
htmlContent += allScripts;
|
|
964
1009
|
}
|
|
965
1010
|
}
|
|
966
1011
|
res.end(htmlContent);
|
|
@@ -1114,6 +1159,7 @@ class BuiltPlugin {
|
|
|
1114
1159
|
}
|
|
1115
1160
|
// MCP DOM Agent script (loaded once at startup, accessible to serveSpa function)
|
|
1116
1161
|
BuiltPlugin.mcpDomAgentScript = null;
|
|
1162
|
+
BuiltPlugin.html2canvasScript = null;
|
|
1117
1163
|
/**
|
|
1118
1164
|
* Group tools by scope
|
|
1119
1165
|
*/
|