react-scanner-ui 0.0.9 → 0.0.11
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/.husky/commit-msg +3 -0
- package/.husky/pre-commit +1 -0
- package/.prettierignore +34 -0
- package/.prettierrc +15 -0
- package/dist/commands/start.d.ts +1 -1
- package/dist/commands/start.js +18 -18
- package/dist/commands/start.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/server/index.js +19 -19
- package/dist/server/index.js.map +1 -1
- package/dist/utils/config.js +4 -4
- package/dist/utils/dependencies.d.ts.map +1 -1
- package/dist/utils/dependencies.js +3 -3
- package/dist/utils/dependencies.js.map +1 -1
- package/dist/utils/index.d.ts +5 -5
- package/dist/utils/port.js +1 -1
- package/dist/utils/scannerConfig.d.ts +3 -3
- package/dist/utils/scannerConfig.d.ts.map +1 -1
- package/dist/utils/scannerConfig.js +49 -17
- package/dist/utils/scannerConfig.js.map +1 -1
- package/docs/.vitepress/config.ts +44 -0
- package/docs/README.md +23 -0
- package/docs/api/index.md +11 -0
- package/docs/guide/index.md +14 -0
- package/docs/guide/installation.md +19 -0
- package/docs/guide/usage.md +14 -0
- package/docs/index.md +23 -0
- package/eslint.config.js +90 -0
- package/package.json +33 -3
- package/ui/components/App.tsx +11 -11
- package/ui/components/ComponentTable.css +78 -78
- package/ui/components/ComponentTable.tsx +39 -39
- package/ui/index.css +6 -2
- package/ui/index.html +9 -9
- package/ui/main.tsx +6 -6
- package/ui/vite.config.ts +6 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
npx lint-staged
|
package/.prettierignore
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Dependencies
|
|
2
|
+
node_modules/
|
|
3
|
+
|
|
4
|
+
# Build outputs
|
|
5
|
+
dist/
|
|
6
|
+
build/
|
|
7
|
+
coverage/
|
|
8
|
+
|
|
9
|
+
# VitePress
|
|
10
|
+
docs/.vitepress/dist/
|
|
11
|
+
docs/.vitepress/cache/
|
|
12
|
+
|
|
13
|
+
# Logs
|
|
14
|
+
*.log
|
|
15
|
+
npm-debug.log*
|
|
16
|
+
yarn-debug.log*
|
|
17
|
+
yarn-error.log*
|
|
18
|
+
|
|
19
|
+
# Package files
|
|
20
|
+
package-lock.json
|
|
21
|
+
yarn.lock
|
|
22
|
+
|
|
23
|
+
# Generated files
|
|
24
|
+
*.min.js
|
|
25
|
+
*.min.css
|
|
26
|
+
|
|
27
|
+
# Documentation
|
|
28
|
+
README.md
|
|
29
|
+
CHANGELOG.md
|
|
30
|
+
|
|
31
|
+
# Config files that should not be formatted
|
|
32
|
+
.env*
|
|
33
|
+
.gitignore
|
|
34
|
+
.npmignore
|
package/.prettierrc
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"semi": true,
|
|
3
|
+
"trailingComma": "es5",
|
|
4
|
+
"singleQuote": true,
|
|
5
|
+
"printWidth": 80,
|
|
6
|
+
"tabWidth": 2,
|
|
7
|
+
"useTabs": false,
|
|
8
|
+
"bracketSpacing": true,
|
|
9
|
+
"bracketSameLine": false,
|
|
10
|
+
"arrowParens": "avoid",
|
|
11
|
+
"endOfLine": "lf",
|
|
12
|
+
"quoteProps": "as-needed",
|
|
13
|
+
"jsxSingleQuote": true,
|
|
14
|
+
"proseWrap": "preserve"
|
|
15
|
+
}
|
package/dist/commands/start.d.ts
CHANGED
package/dist/commands/start.js
CHANGED
|
@@ -47,14 +47,14 @@ async function promptForPortChange(requestedPort, availablePort) {
|
|
|
47
47
|
input: process.stdin,
|
|
48
48
|
output: process.stdout,
|
|
49
49
|
});
|
|
50
|
-
return new Promise(
|
|
51
|
-
rl.question(`Port ${requestedPort} is not available. Would you like to run on port ${availablePort} instead? (Y/n): `,
|
|
50
|
+
return new Promise(resolve => {
|
|
51
|
+
rl.question(`Port ${requestedPort} is not available. Would you like to run on port ${availablePort} instead? (Y/n): `, answer => {
|
|
52
52
|
rl.close();
|
|
53
53
|
const normalizedAnswer = answer.trim().toLowerCase();
|
|
54
54
|
// Default to yes if user just presses enter
|
|
55
|
-
resolve(normalizedAnswer ===
|
|
56
|
-
normalizedAnswer ===
|
|
57
|
-
normalizedAnswer ===
|
|
55
|
+
resolve(normalizedAnswer === '' ||
|
|
56
|
+
normalizedAnswer === 'y' ||
|
|
57
|
+
normalizedAnswer === 'yes');
|
|
58
58
|
});
|
|
59
59
|
});
|
|
60
60
|
}
|
|
@@ -64,19 +64,19 @@ async function promptForPortChange(requestedPort, availablePort) {
|
|
|
64
64
|
async function openBrowser(url) {
|
|
65
65
|
const { platform } = process;
|
|
66
66
|
try {
|
|
67
|
-
const { exec } = await Promise.resolve().then(() => __importStar(require(
|
|
67
|
+
const { exec } = await Promise.resolve().then(() => __importStar(require('child_process')));
|
|
68
68
|
let command;
|
|
69
|
-
if (platform ===
|
|
69
|
+
if (platform === 'darwin') {
|
|
70
70
|
command = `open "${url}"`;
|
|
71
71
|
}
|
|
72
|
-
else if (platform ===
|
|
72
|
+
else if (platform === 'win32') {
|
|
73
73
|
command = `start "" "${url}"`;
|
|
74
74
|
}
|
|
75
75
|
else {
|
|
76
76
|
// Linux and other platforms
|
|
77
77
|
command = `xdg-open "${url}"`;
|
|
78
78
|
}
|
|
79
|
-
exec(command,
|
|
79
|
+
exec(command, error => {
|
|
80
80
|
if (error) {
|
|
81
81
|
console.log(`Could not open browser automatically. Please visit: ${url}`);
|
|
82
82
|
}
|
|
@@ -88,17 +88,17 @@ async function openBrowser(url) {
|
|
|
88
88
|
}
|
|
89
89
|
function startCommand(program) {
|
|
90
90
|
program
|
|
91
|
-
.command(
|
|
92
|
-
.description(
|
|
93
|
-
.option(
|
|
94
|
-
.option(
|
|
95
|
-
.option(
|
|
96
|
-
.option(
|
|
91
|
+
.command('start')
|
|
92
|
+
.description('Start the React Scanner UI server')
|
|
93
|
+
.option('-p, --port <number>', 'Port to run the server on', String(DEFAULT_PORT))
|
|
94
|
+
.option('--exact-port', 'Exit if the specified port is not available', false)
|
|
95
|
+
.option('--ci', 'Run in CI mode (no interactive prompts)', false)
|
|
96
|
+
.option('--open', 'Open the browser automatically', false)
|
|
97
97
|
.action(async (options) => {
|
|
98
98
|
(0, dependencies_1.checkPeerDependency)();
|
|
99
99
|
const requestedPort = parseInt(options.port, 10);
|
|
100
100
|
if (isNaN(requestedPort) || requestedPort < 1 || requestedPort > 65535) {
|
|
101
|
-
console.error(
|
|
101
|
+
console.error('Error: Invalid port number. Please specify a port between 1 and 65535.');
|
|
102
102
|
process.exit(1);
|
|
103
103
|
}
|
|
104
104
|
// Use detect-port to find an available port
|
|
@@ -111,7 +111,7 @@ function startCommand(program) {
|
|
|
111
111
|
!options.exactPort) {
|
|
112
112
|
const shouldChangePort = await promptForPortChange(requestedPort, availablePort);
|
|
113
113
|
if (!shouldChangePort) {
|
|
114
|
-
console.log(
|
|
114
|
+
console.log('Exiting.');
|
|
115
115
|
process.exit(1);
|
|
116
116
|
}
|
|
117
117
|
}
|
|
@@ -128,7 +128,7 @@ function startCommand(program) {
|
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
catch (error) {
|
|
131
|
-
console.error(
|
|
131
|
+
console.error('Failed to start server:', error);
|
|
132
132
|
process.exit(1);
|
|
133
133
|
}
|
|
134
134
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEA,oCAoEC;AAvID,uCAA2C;AAC3C,wDAA4D;AAC5D,
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,yCAKoB;AAEpB,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,kBAAkB,CAAC;KACxB,WAAW,CAAC,2CAA2C,CAAC;KACxD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,oBAAoB;AACpB,IAAA,sBAAW,EAAC,OAAO,CAAC,CAAC;AACrB,IAAA,sBAAW,EAAC,OAAO,CAAC,CAAC;AACrB,IAAA,uBAAY,EAAC,OAAO,CAAC,CAAC;AACtB,IAAA,uBAAY,EAAC,OAAO,CAAC,CAAC;AAEtB,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/server/index.js
CHANGED
|
@@ -46,7 +46,7 @@ function getUiRoot() {
|
|
|
46
46
|
// UI is always at project-root/ui
|
|
47
47
|
const currentDir = __dirname;
|
|
48
48
|
// Go up from server/ to src/ or dist/, then up to project root, then into ui/
|
|
49
|
-
return (0, path_1.resolve)(currentDir,
|
|
49
|
+
return (0, path_1.resolve)(currentDir, '../../ui');
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
52
52
|
* Start the HTTP server using Polka with Vite middleware mode
|
|
@@ -54,24 +54,24 @@ function getUiRoot() {
|
|
|
54
54
|
*/
|
|
55
55
|
async function startServer(port) {
|
|
56
56
|
// Dynamically import Vite to create dev server in middleware mode
|
|
57
|
-
const { createServer: createViteServer } = await Promise.resolve().then(() => __importStar(require(
|
|
57
|
+
const { createServer: createViteServer } = await Promise.resolve().then(() => __importStar(require('vite')));
|
|
58
58
|
const uiRoot = getUiRoot();
|
|
59
59
|
const vite = await createViteServer({
|
|
60
60
|
root: uiRoot,
|
|
61
|
-
configFile: (0, path_1.resolve)(uiRoot,
|
|
61
|
+
configFile: (0, path_1.resolve)(uiRoot, 'vite.config.ts'),
|
|
62
62
|
server: {
|
|
63
63
|
middlewareMode: true,
|
|
64
64
|
},
|
|
65
|
-
appType:
|
|
65
|
+
appType: 'spa',
|
|
66
66
|
});
|
|
67
67
|
// Create HTTP server with manual routing
|
|
68
|
-
const server = (0, http_1.createServer)((req, res) => {
|
|
69
|
-
const url = req.url ||
|
|
68
|
+
const server = (0, http_1.createServer)(async (req, res) => {
|
|
69
|
+
const url = req.url || '';
|
|
70
70
|
// Handle API routes FIRST - before Vite middleware
|
|
71
|
-
if (url ===
|
|
72
|
-
res.setHeader(
|
|
73
|
-
res.setHeader(
|
|
74
|
-
const result = (0, scannerConfig_1.getScanData)();
|
|
71
|
+
if (url === '/api/scan-data' || url.startsWith('/api/scan-data?')) {
|
|
72
|
+
res.setHeader('Content-Type', 'application/json');
|
|
73
|
+
res.setHeader('Cache-Control', 'no-cache');
|
|
74
|
+
const result = await (0, scannerConfig_1.getScanData)();
|
|
75
75
|
res.end(JSON.stringify(result));
|
|
76
76
|
return;
|
|
77
77
|
}
|
|
@@ -79,26 +79,26 @@ async function startServer(port) {
|
|
|
79
79
|
vite.middlewares(req, res);
|
|
80
80
|
});
|
|
81
81
|
// Handle server errors
|
|
82
|
-
server.on(
|
|
83
|
-
console.error(
|
|
82
|
+
server.on('error', (err) => {
|
|
83
|
+
console.error('Server error:', err);
|
|
84
84
|
vite.close();
|
|
85
85
|
process.exit(1);
|
|
86
86
|
});
|
|
87
87
|
// Handle graceful shutdown
|
|
88
88
|
const shutdown = async () => {
|
|
89
|
-
console.log(
|
|
89
|
+
console.log('\nShutting down...');
|
|
90
90
|
await vite.close();
|
|
91
91
|
server.close();
|
|
92
92
|
process.exit(0);
|
|
93
93
|
};
|
|
94
|
-
process.on(
|
|
95
|
-
process.on(
|
|
94
|
+
process.on('SIGINT', shutdown);
|
|
95
|
+
process.on('SIGTERM', shutdown);
|
|
96
96
|
return new Promise((resolvePromise, reject) => {
|
|
97
|
-
server.on(
|
|
98
|
-
server.listen(port,
|
|
97
|
+
server.on('error', reject);
|
|
98
|
+
server.listen(port, '127.0.0.1', () => {
|
|
99
99
|
console.log(`\n🚀 React Scanner UI is running at http://localhost:${port}\n`);
|
|
100
|
-
console.log(
|
|
101
|
-
console.log(
|
|
100
|
+
console.log(' ➜ Hot Module Replacement enabled');
|
|
101
|
+
console.log(' ➜ Press Ctrl+C to stop the server.\n');
|
|
102
102
|
resolvePromise();
|
|
103
103
|
});
|
|
104
104
|
});
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,kCAgEC;AAzFD,+BAIc;AACd,+BAA+B;AAC/B,0DAAqD;AAErD;;;GAGG;AACH,SAAS,SAAS;IAChB,qDAAqD;IACrD,kCAAkC;IAClC,MAAM,UAAU,GAAG,SAAS,CAAC;IAE7B,8EAA8E;IAC9E,OAAO,IAAA,cAAO,EAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACzC,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,WAAW,CAAC,IAAY;IAC5C,kEAAkE;IAClE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,wDAAa,MAAM,GAAC,CAAC;IAEhE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC;QAClC,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,IAAA,cAAO,EAAC,MAAM,EAAE,gBAAgB,CAAC;QAC7C,MAAM,EAAE;YACN,cAAc,EAAE,IAAI;SACrB;QACD,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IAEH,yCAAyC;IACzC,MAAM,MAAM,GAAG,IAAA,mBAAgB,EAC7B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/config.js
CHANGED
|
@@ -4,9 +4,9 @@ exports.createReactScannerConfig = createReactScannerConfig;
|
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
5
|
const path_1 = require("path");
|
|
6
6
|
function createReactScannerConfig() {
|
|
7
|
-
const configPath = (0, path_1.join)(process.cwd(),
|
|
7
|
+
const configPath = (0, path_1.join)(process.cwd(), 'react-scanner.config.js');
|
|
8
8
|
if ((0, fs_1.existsSync)(configPath)) {
|
|
9
|
-
console.log(
|
|
9
|
+
console.log('react-scanner.config.js already exists.');
|
|
10
10
|
return;
|
|
11
11
|
}
|
|
12
12
|
const configContent = `module.exports = {
|
|
@@ -20,10 +20,10 @@ function createReactScannerConfig() {
|
|
|
20
20
|
`;
|
|
21
21
|
try {
|
|
22
22
|
(0, fs_1.writeFileSync)(configPath, configContent);
|
|
23
|
-
console.log(
|
|
23
|
+
console.log('Created react-scanner.config.js');
|
|
24
24
|
}
|
|
25
25
|
catch (error) {
|
|
26
|
-
console.error(
|
|
26
|
+
console.error('Failed to create react-scanner.config.js', error);
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/utils/dependencies.ts"],"names":[],"mappings":"AAIA,wBAAgB,uBAAuB,IAAI,OAAO,CAOjD;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CAU7C;AAED,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/utils/dependencies.ts"],"names":[],"mappings":"AAIA,wBAAgB,uBAAuB,IAAI,OAAO,CAOjD;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CAU7C;AAED,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC,CAelE;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CA6B1C"}
|
|
@@ -32,8 +32,8 @@ async function promptInstallReactScanner() {
|
|
|
32
32
|
input: process.stdin,
|
|
33
33
|
output: process.stdout,
|
|
34
34
|
});
|
|
35
|
-
return new Promise(
|
|
36
|
-
rl.question('react-scanner is required. Would you like to install it? (y/n): ',
|
|
35
|
+
return new Promise(resolve => {
|
|
36
|
+
rl.question('react-scanner is required. Would you like to install it? (y/n): ', answer => {
|
|
37
37
|
rl.close();
|
|
38
38
|
resolve(answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes');
|
|
39
39
|
});
|
|
@@ -61,7 +61,7 @@ function installReactScanner() {
|
|
|
61
61
|
(0, child_process_1.execSync)(command, { stdio: 'inherit' });
|
|
62
62
|
console.log('react-scanner installed successfully!');
|
|
63
63
|
}
|
|
64
|
-
catch
|
|
64
|
+
catch {
|
|
65
65
|
console.error('Failed to install react-scanner. Please install it manually.');
|
|
66
66
|
process.exit(1);
|
|
67
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/utils/dependencies.ts"],"names":[],"mappings":";;AAIA,0DAOC;AAED,kDAUC;AAED,
|
|
1
|
+
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/utils/dependencies.ts"],"names":[],"mappings":";;AAIA,0DAOC;AAED,kDAUC;AAED,8DAeC;AAED,kDA6BC;AAvED,2BAA8C;AAC9C,iDAAyC;AACzC,uCAA2C;AAE3C,SAAgB,uBAAuB;IACrC,IAAI,CAAC;QACH,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAgB,mBAAmB;IACjC,IAAI,CAAC,uBAAuB,EAAE,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACxD,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,KAAK,UAAU,yBAAyB;IAC7C,MAAM,EAAE,GAAG,IAAA,0BAAe,EAAC;QACzB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,EAAE,CAAC,QAAQ,CACT,kEAAkE,EAClE,MAAM,CAAC,EAAE;YACP,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;QAC1E,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,mBAAmB;IACjC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAA,eAAU,EAAC,WAAW,CAAC,CAAC;QACxC,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,IAAI,IAAA,eAAU,EAAC,cAAc,CAAC,EAAE,CAAC;YAC/B,MAAM,cAAc,GAAG,IAAA,iBAAY,EAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC/C,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;gBAC3B,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC;QACZ,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,GAAG,gDAAgD,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACvF,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,sCAAsC,CAAC;QACnD,CAAC;QAED,IAAA,wBAAQ,EAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CACX,8DAA8D,CAC/D,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { isReactScannerInstalled, checkPeerDependency, promptInstallReactScanner, installReactScanner, } from
|
|
2
|
-
export { createReactScannerConfig } from
|
|
3
|
-
export { getServerPort, isPortAvailable } from
|
|
4
|
-
export type { PortOptions } from
|
|
5
|
-
export { readScannerConfig, readScanData, getScanData } from
|
|
1
|
+
export { isReactScannerInstalled, checkPeerDependency, promptInstallReactScanner, installReactScanner, } from './dependencies';
|
|
2
|
+
export { createReactScannerConfig } from './config';
|
|
3
|
+
export { getServerPort, isPortAvailable } from './port';
|
|
4
|
+
export type { PortOptions } from './port';
|
|
5
|
+
export { readScannerConfig, readScanData, getScanData } from './scannerConfig';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/utils/port.js
CHANGED
|
@@ -15,7 +15,7 @@ export interface ScanData {
|
|
|
15
15
|
/**
|
|
16
16
|
* Read and parse the react-scanner.config.js file
|
|
17
17
|
*/
|
|
18
|
-
export declare function readScannerConfig(): ScannerConfig | null
|
|
18
|
+
export declare function readScannerConfig(): Promise<ScannerConfig | null>;
|
|
19
19
|
/**
|
|
20
20
|
* Get the output file path from the scanner config
|
|
21
21
|
*/
|
|
@@ -27,8 +27,8 @@ export declare function readScanData(filePath: string): ScanData | null;
|
|
|
27
27
|
/**
|
|
28
28
|
* Get the scan data from the react-scanner output
|
|
29
29
|
*/
|
|
30
|
-
export declare function getScanData(): {
|
|
30
|
+
export declare function getScanData(): Promise<{
|
|
31
31
|
data: ScanData | null;
|
|
32
32
|
error: string | null;
|
|
33
|
-
}
|
|
33
|
+
}>;
|
|
34
34
|
//# sourceMappingURL=scannerConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scannerConfig.d.ts","sourceRoot":"","sources":["../../src/utils/scannerConfig.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,QAAQ;IACvB,CAAC,aAAa,EAAE,MAAM,GAAG;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAChC,CAAC;CACH;AAED;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"scannerConfig.d.ts","sourceRoot":"","sources":["../../src/utils/scannerConfig.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,QAAQ;IACvB,CAAC,aAAa,EAAE,MAAM,GAAG;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAChC,CAAC;CACH;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAkBvE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAgBlE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAgB9D;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC;IAC3C,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC,CAqBD"}
|
|
@@ -1,4 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.readScannerConfig = readScannerConfig;
|
|
4
37
|
exports.getOutputFile = getOutputFile;
|
|
@@ -9,20 +42,19 @@ const path_1 = require("path");
|
|
|
9
42
|
/**
|
|
10
43
|
* Read and parse the react-scanner.config.js file
|
|
11
44
|
*/
|
|
12
|
-
function readScannerConfig() {
|
|
13
|
-
const configPath = (0, path_1.join)(process.cwd(),
|
|
45
|
+
async function readScannerConfig() {
|
|
46
|
+
const configPath = (0, path_1.join)(process.cwd(), 'react-scanner.config.js');
|
|
14
47
|
if (!(0, fs_1.existsSync)(configPath)) {
|
|
15
|
-
console.error(
|
|
48
|
+
console.error('react-scanner.config.js not found. Run `react-scanner-ui init` first.');
|
|
16
49
|
return null;
|
|
17
50
|
}
|
|
18
51
|
try {
|
|
19
|
-
//
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return config;
|
|
52
|
+
// Use dynamic import for ES modules
|
|
53
|
+
const config = await Promise.resolve(`${configPath}`).then(s => __importStar(require(s)));
|
|
54
|
+
return config.default || config;
|
|
23
55
|
}
|
|
24
56
|
catch (error) {
|
|
25
|
-
console.error(
|
|
57
|
+
console.error('Failed to read react-scanner.config.js:', error);
|
|
26
58
|
return null;
|
|
27
59
|
}
|
|
28
60
|
}
|
|
@@ -35,7 +67,7 @@ function getOutputFile(config) {
|
|
|
35
67
|
}
|
|
36
68
|
for (const processor of config.processors) {
|
|
37
69
|
if (Array.isArray(processor) &&
|
|
38
|
-
processor[0] ===
|
|
70
|
+
processor[0] === 'count-components-and-props' &&
|
|
39
71
|
processor[1]?.outputTo) {
|
|
40
72
|
return processor[1].outputTo;
|
|
41
73
|
}
|
|
@@ -49,36 +81,36 @@ function readScanData(filePath) {
|
|
|
49
81
|
const absolutePath = (0, path_1.resolve)(process.cwd(), filePath);
|
|
50
82
|
if (!(0, fs_1.existsSync)(absolutePath)) {
|
|
51
83
|
console.error(`Scan data file not found: ${absolutePath}`);
|
|
52
|
-
console.error(
|
|
84
|
+
console.error('Run react-scanner first to generate scan data.');
|
|
53
85
|
return null;
|
|
54
86
|
}
|
|
55
87
|
try {
|
|
56
|
-
const content = (0, fs_1.readFileSync)(absolutePath,
|
|
88
|
+
const content = (0, fs_1.readFileSync)(absolutePath, 'utf-8');
|
|
57
89
|
return JSON.parse(content);
|
|
58
90
|
}
|
|
59
91
|
catch (error) {
|
|
60
|
-
console.error(
|
|
92
|
+
console.error('Failed to read scan data:', error);
|
|
61
93
|
return null;
|
|
62
94
|
}
|
|
63
95
|
}
|
|
64
96
|
/**
|
|
65
97
|
* Get the scan data from the react-scanner output
|
|
66
98
|
*/
|
|
67
|
-
function getScanData() {
|
|
68
|
-
const config = readScannerConfig();
|
|
99
|
+
async function getScanData() {
|
|
100
|
+
const config = await readScannerConfig();
|
|
69
101
|
if (!config) {
|
|
70
|
-
return { data: null, error:
|
|
102
|
+
return { data: null, error: 'Could not read react-scanner.config.js' };
|
|
71
103
|
}
|
|
72
104
|
const scanFile = getOutputFile(config);
|
|
73
105
|
if (!scanFile) {
|
|
74
106
|
return {
|
|
75
107
|
data: null,
|
|
76
|
-
error:
|
|
108
|
+
error: 'Could not find output file in config. Make sure you have a count-components-and-props processor configured with outputTo.',
|
|
77
109
|
};
|
|
78
110
|
}
|
|
79
111
|
const data = readScanData(scanFile);
|
|
80
112
|
if (!data) {
|
|
81
|
-
return { data: null, error:
|
|
113
|
+
return { data: null, error: 'Failed to parse scan data.' };
|
|
82
114
|
}
|
|
83
115
|
return { data, error: null };
|
|
84
116
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scannerConfig.js","sourceRoot":"","sources":["../../src/utils/scannerConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scannerConfig.js","sourceRoot":"","sources":["../../src/utils/scannerConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { defineConfig } from 'vitepress';
|
|
2
|
+
|
|
3
|
+
export default defineConfig({
|
|
4
|
+
title: 'React Scanner UI',
|
|
5
|
+
description: 'A React component scanner and visualization tool',
|
|
6
|
+
base: '/react-scanner-ui/',
|
|
7
|
+
|
|
8
|
+
themeConfig: {
|
|
9
|
+
nav: [
|
|
10
|
+
{ text: 'Home', link: '/' },
|
|
11
|
+
{ text: 'Guide', link: '/guide/' },
|
|
12
|
+
{ text: 'API', link: '/api/' },
|
|
13
|
+
],
|
|
14
|
+
|
|
15
|
+
sidebar: [
|
|
16
|
+
{
|
|
17
|
+
text: 'Guide',
|
|
18
|
+
items: [
|
|
19
|
+
{ text: 'Getting Started', link: '/guide/' },
|
|
20
|
+
{ text: 'Installation', link: '/guide/installation' },
|
|
21
|
+
{ text: 'Usage', link: '/guide/usage' },
|
|
22
|
+
],
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
text: 'API Reference',
|
|
26
|
+
items: [{ text: 'API Overview', link: '/api/' }],
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
|
|
30
|
+
socialLinks: [
|
|
31
|
+
{
|
|
32
|
+
icon: 'github',
|
|
33
|
+
link: 'https://github.com/vimalmunjani/react-scanner-ui',
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
|
|
37
|
+
footer: {
|
|
38
|
+
message: 'Released under the MIT License.',
|
|
39
|
+
copyright: 'Copyright © 2024 Vimal Munjani',
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
|
|
43
|
+
head: [['link', { rel: 'icon', href: '/react-scanner-ui/favicon.ico' }]],
|
|
44
|
+
});
|
package/docs/README.md
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Documentation
|
|
2
|
+
|
|
3
|
+
This directory contains the VitePress documentation for React Scanner UI.
|
|
4
|
+
|
|
5
|
+
## Development
|
|
6
|
+
|
|
7
|
+
To run the documentation locally:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
yarn dev:docs
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Building
|
|
14
|
+
|
|
15
|
+
To build the documentation:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
yarn build:docs
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Deployment
|
|
22
|
+
|
|
23
|
+
The documentation is automatically deployed to GitHub Pages when changes are pushed to the main branch via GitHub Actions.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Getting Started
|
|
2
|
+
|
|
3
|
+
React Scanner UI is a tool for scanning and visualizing React components in your project.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
1. Install the package globally or use npx
|
|
8
|
+
2. Run the scanner in your React project
|
|
9
|
+
3. View the interactive UI
|
|
10
|
+
|
|
11
|
+
## Next Steps
|
|
12
|
+
|
|
13
|
+
- [Installation Guide](./installation)
|
|
14
|
+
- [Usage Instructions](./usage)
|