@promakeai/inspector 0.0.3 → 0.0.4
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 +5 -18
- package/dist/hook.d.ts.map +1 -1
- package/dist/hook.js +15 -2
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +40 -12
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -179,7 +179,8 @@ interface SelectedElementData {
|
|
|
179
179
|
id: string;
|
|
180
180
|
component: ComponentInfo | null;
|
|
181
181
|
position: ElementPosition;
|
|
182
|
-
isTextNode?: boolean; // Whether the element is a text
|
|
182
|
+
isTextNode?: boolean; // Whether the element is a text node
|
|
183
|
+
textContent?: string; // Text content of the element (if text node)
|
|
183
184
|
}
|
|
184
185
|
```
|
|
185
186
|
|
|
@@ -458,31 +459,17 @@ const { toggleInspector } = useInspector(iframeRef, {
|
|
|
458
459
|
|
|
459
460
|
## CI/CD
|
|
460
461
|
|
|
461
|
-
This project includes GitHub Actions
|
|
462
|
+
This project includes GitHub Actions workflow:
|
|
462
463
|
|
|
463
464
|
### Build Workflow (`.github/workflows/build.yml`)
|
|
464
465
|
|
|
465
466
|
Automatically runs on every push and pull request:
|
|
466
467
|
|
|
467
|
-
- ✅
|
|
468
|
-
- ✅
|
|
468
|
+
- ✅ Uses Bun for fast installation and build
|
|
469
|
+
- ✅ Runs `bun install` and `bun run build`
|
|
469
470
|
- ✅ Checks for build artifacts
|
|
470
471
|
- ✅ Uploads build artifacts for review
|
|
471
472
|
|
|
472
|
-
### Publish Workflow (`.github/workflows/publish.yml`)
|
|
473
|
-
|
|
474
|
-
Automatically publishes to NPM when a release is created:
|
|
475
|
-
|
|
476
|
-
- ✅ Builds the package
|
|
477
|
-
- ✅ Publishes to NPM with `--access public`
|
|
478
|
-
- ✅ Manual trigger support via workflow_dispatch
|
|
479
|
-
|
|
480
|
-
**Setup for NPM publishing:**
|
|
481
|
-
|
|
482
|
-
1. Create an NPM access token at [npmjs.com](https://www.npmjs.com/settings/YOUR_USERNAME/tokens)
|
|
483
|
-
2. Add the token as `NPM_TOKEN` secret in your GitHub repository settings
|
|
484
|
-
3. Create a release on GitHub to trigger automatic publishing
|
|
485
|
-
|
|
486
473
|
## License
|
|
487
474
|
|
|
488
475
|
MIT
|
package/dist/hook.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AAEH,OAAO,EAAoC,SAAS,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,kBAAkB,EAMnB,MAAM,SAAS,CAAC;AAoCjB,wBAAgB,YAAY,CAC1B,SAAS,EAAE,SAAS,CAAC,iBAAiB,CAAC,EACvC,SAAS,CAAC,EAAE,kBAAkB,EAC9B,MAAM,CAAC,EAAE,eAAe,EACxB,KAAK,CAAC,EAAE,cAAc,GACrB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AAEH,OAAO,EAAoC,SAAS,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,kBAAkB,EAMnB,MAAM,SAAS,CAAC;AAoCjB,wBAAgB,YAAY,CAC1B,SAAS,EAAE,SAAS,CAAC,iBAAiB,CAAC,EACvC,SAAS,CAAC,EAAE,kBAAkB,EAC9B,MAAM,CAAC,EAAE,eAAe,EACxB,KAAK,CAAC,EAAE,cAAc,GACrB,kBAAkB,CAsJpB;AAGD,mBAAmB,SAAS,CAAC"}
|
package/dist/hook.js
CHANGED
|
@@ -133,11 +133,24 @@ export function useInspector(iframeRef, callbacks, labels, theme) {
|
|
|
133
133
|
*/
|
|
134
134
|
useEffect(() => {
|
|
135
135
|
const handleMessage = (event) => {
|
|
136
|
+
// Parse message if it's a string (JSON stringified)
|
|
137
|
+
let messageData;
|
|
138
|
+
if (typeof event.data === "string") {
|
|
139
|
+
try {
|
|
140
|
+
messageData = JSON.parse(event.data);
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
return; // Invalid JSON, ignore
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
messageData = event.data;
|
|
148
|
+
}
|
|
136
149
|
// Security: Only handle expected message types
|
|
137
|
-
if (!
|
|
150
|
+
if (!messageData || typeof messageData.type !== "string") {
|
|
138
151
|
return;
|
|
139
152
|
}
|
|
140
|
-
const { type, data } =
|
|
153
|
+
const { type, data } = messageData;
|
|
141
154
|
switch (type) {
|
|
142
155
|
case "INSPECTOR_ELEMENT_SELECTED":
|
|
143
156
|
callbacks?.onElementSelected?.(data);
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,wBAAgB,eAAe,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,wBAAgB,eAAe,IAAI,MAAM,CAyrBxC"}
|
package/dist/plugin.js
CHANGED
|
@@ -208,13 +208,14 @@ export function inspectorPlugin() {
|
|
|
208
208
|
const prompt = promptInput.value.trim();
|
|
209
209
|
if (prompt) {
|
|
210
210
|
if (window.parent !== window) {
|
|
211
|
-
|
|
211
|
+
const message = JSON.stringify({
|
|
212
212
|
type: 'INSPECTOR_PROMPT_SUBMITTED',
|
|
213
213
|
data: {
|
|
214
214
|
prompt: prompt,
|
|
215
215
|
element: elementData
|
|
216
216
|
}
|
|
217
|
-
}
|
|
217
|
+
});
|
|
218
|
+
window.parent.postMessage(message, '*');
|
|
218
219
|
}
|
|
219
220
|
console.log('Prompt submitted:', elementData);
|
|
220
221
|
|
|
@@ -299,14 +300,15 @@ export function inspectorPlugin() {
|
|
|
299
300
|
e.stopPropagation();
|
|
300
301
|
const newText = textInput.value;
|
|
301
302
|
if (window.parent !== window) {
|
|
302
|
-
|
|
303
|
+
const message = JSON.stringify({
|
|
303
304
|
type: 'INSPECTOR_TEXT_UPDATED',
|
|
304
305
|
data: {
|
|
305
306
|
text: newText,
|
|
306
307
|
originalText: currentText,
|
|
307
308
|
element: selectedElementData
|
|
308
309
|
}
|
|
309
|
-
}
|
|
310
|
+
});
|
|
311
|
+
window.parent.postMessage(message, '*');
|
|
310
312
|
}
|
|
311
313
|
console.log('Text updated:', newText);
|
|
312
314
|
|
|
@@ -499,6 +501,23 @@ export function inspectorPlugin() {
|
|
|
499
501
|
highlightElement(hoveredElement);
|
|
500
502
|
}
|
|
501
503
|
|
|
504
|
+
// Handle scroll - update highlight position
|
|
505
|
+
function handleScroll() {
|
|
506
|
+
if (!inspectMode) return;
|
|
507
|
+
|
|
508
|
+
if (isPaused && selectedElement) {
|
|
509
|
+
// Update overlay for selected element
|
|
510
|
+
highlightElement(selectedElement);
|
|
511
|
+
// Update control box position
|
|
512
|
+
if (controlBox) {
|
|
513
|
+
adjustControlBoxPosition();
|
|
514
|
+
}
|
|
515
|
+
} else if (hoveredElement) {
|
|
516
|
+
// Update overlay for hovered element
|
|
517
|
+
highlightElement(hoveredElement);
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
|
|
502
521
|
// Handle click
|
|
503
522
|
function handleClick(e) {
|
|
504
523
|
if (!inspectMode) return;
|
|
@@ -528,6 +547,7 @@ export function inspectorPlugin() {
|
|
|
528
547
|
|
|
529
548
|
// Check if element is a text node
|
|
530
549
|
const isTextNode = element.textContent && element.children.length === 0;
|
|
550
|
+
const textContent = isTextNode ? element.textContent.trim() : '';
|
|
531
551
|
|
|
532
552
|
const elementData = {
|
|
533
553
|
tagName: element.tagName,
|
|
@@ -540,22 +560,26 @@ export function inspectorPlugin() {
|
|
|
540
560
|
width: element.getBoundingClientRect().width,
|
|
541
561
|
height: element.getBoundingClientRect().height
|
|
542
562
|
},
|
|
543
|
-
isTextNode: isTextNode
|
|
563
|
+
isTextNode: isTextNode,
|
|
564
|
+
textContent: textContent
|
|
544
565
|
};
|
|
545
566
|
|
|
546
567
|
// Send info to parent window
|
|
547
568
|
if (window.parent !== window) {
|
|
548
|
-
|
|
569
|
+
// Use JSON.stringify to ensure all properties are serialized correctly
|
|
570
|
+
const message = JSON.stringify({
|
|
549
571
|
type: 'INSPECTOR_ELEMENT_SELECTED',
|
|
550
572
|
data: elementData
|
|
551
|
-
}
|
|
573
|
+
});
|
|
574
|
+
window.parent.postMessage(message, '*');
|
|
552
575
|
}
|
|
553
576
|
|
|
554
577
|
// Log for debugging
|
|
555
578
|
console.log('Element selected:', {
|
|
556
579
|
element,
|
|
557
580
|
componentInfo,
|
|
558
|
-
isTextNode
|
|
581
|
+
isTextNode,
|
|
582
|
+
textContent
|
|
559
583
|
});
|
|
560
584
|
|
|
561
585
|
// Pause inspection and show control box
|
|
@@ -571,6 +595,7 @@ export function inspectorPlugin() {
|
|
|
571
595
|
document.body.style.cursor = 'crosshair';
|
|
572
596
|
document.addEventListener('mousemove', handleMouseMove, true);
|
|
573
597
|
document.addEventListener('click', handleClick, true);
|
|
598
|
+
document.addEventListener('scroll', handleScroll, true);
|
|
574
599
|
} else {
|
|
575
600
|
// Clean up everything
|
|
576
601
|
clearHighlight();
|
|
@@ -578,6 +603,7 @@ export function inspectorPlugin() {
|
|
|
578
603
|
document.body.style.cursor = '';
|
|
579
604
|
document.removeEventListener('mousemove', handleMouseMove, true);
|
|
580
605
|
document.removeEventListener('click', handleClick, true);
|
|
606
|
+
document.removeEventListener('scroll', handleScroll, true);
|
|
581
607
|
}
|
|
582
608
|
}
|
|
583
609
|
|
|
@@ -609,7 +635,7 @@ export function inspectorPlugin() {
|
|
|
609
635
|
lastUrl = newUrl;
|
|
610
636
|
|
|
611
637
|
if (window.parent !== window) {
|
|
612
|
-
|
|
638
|
+
const message = JSON.stringify({
|
|
613
639
|
type: 'URL_CHANGED',
|
|
614
640
|
data: {
|
|
615
641
|
url: newUrl,
|
|
@@ -617,7 +643,8 @@ export function inspectorPlugin() {
|
|
|
617
643
|
search: location.search,
|
|
618
644
|
hash: location.hash
|
|
619
645
|
}
|
|
620
|
-
}
|
|
646
|
+
});
|
|
647
|
+
window.parent.postMessage(message, '*');
|
|
621
648
|
}
|
|
622
649
|
}
|
|
623
650
|
}
|
|
@@ -650,10 +677,11 @@ export function inspectorPlugin() {
|
|
|
650
677
|
|
|
651
678
|
function sendError(errorData) {
|
|
652
679
|
if (window.parent !== window) {
|
|
653
|
-
|
|
680
|
+
const message = JSON.stringify({
|
|
654
681
|
type: 'INSPECTOR_ERROR',
|
|
655
682
|
data: errorData
|
|
656
|
-
}
|
|
683
|
+
});
|
|
684
|
+
window.parent.postMessage(message, '*');
|
|
657
685
|
}
|
|
658
686
|
// Use original console.error to avoid infinite loop
|
|
659
687
|
originalConsoleError.call(console, '🔍 Inspector Error:', errorData);
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promakeai/inspector",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "Visual element inspector for React apps in iframe with AI prompt support",
|
|
5
5
|
"author": "Promake",
|
|
6
6
|
"license": "MIT",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"scripts": {
|
|
35
35
|
"build": "tsc && tsc -p tsconfig.plugin.json",
|
|
36
36
|
"prepublishOnly": "npm run build",
|
|
37
|
-
"
|
|
37
|
+
"release": "npm run build && npm publish --access public"
|
|
38
38
|
},
|
|
39
39
|
"keywords": [
|
|
40
40
|
"vite",
|