@wtdlee/repomap 0.1.0 → 0.3.0
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 +20 -27
- package/dist/analyzers/base-analyzer.d.ts +0 -1
- package/dist/analyzers/base-analyzer.js +0 -1
- package/dist/analyzers/dataflow-analyzer.d.ts +0 -1
- package/dist/analyzers/dataflow-analyzer.js +0 -1
- package/dist/analyzers/graphql-analyzer.d.ts +0 -1
- package/dist/analyzers/graphql-analyzer.js +0 -1
- package/dist/analyzers/index.d.ts +0 -1
- package/dist/analyzers/index.js +0 -1
- package/dist/analyzers/pages-analyzer.d.ts +0 -1
- package/dist/analyzers/pages-analyzer.js +0 -1
- package/dist/analyzers/rails/index.d.ts +0 -1
- package/dist/analyzers/rails/index.js +0 -1
- package/dist/analyzers/rails/rails-controller-analyzer.d.ts +0 -1
- package/dist/analyzers/rails/rails-controller-analyzer.js +0 -1
- package/dist/analyzers/rails/rails-grpc-analyzer.d.ts +0 -1
- package/dist/analyzers/rails/rails-grpc-analyzer.js +0 -1
- package/dist/analyzers/rails/rails-model-analyzer.d.ts +0 -1
- package/dist/analyzers/rails/rails-model-analyzer.js +0 -1
- package/dist/analyzers/rails/rails-react-analyzer.d.ts +0 -1
- package/dist/analyzers/rails/rails-react-analyzer.js +0 -1
- package/dist/analyzers/rails/rails-routes-analyzer.d.ts +0 -1
- package/dist/analyzers/rails/rails-routes-analyzer.js +0 -1
- package/dist/analyzers/rails/rails-view-analyzer.d.ts +0 -1
- package/dist/analyzers/rails/rails-view-analyzer.js +0 -1
- package/dist/analyzers/rails/ruby-parser.d.ts +0 -1
- package/dist/analyzers/rails/ruby-parser.js +0 -1
- package/dist/analyzers/rest-api-analyzer.d.ts +0 -1
- package/dist/analyzers/rest-api-analyzer.js +0 -1
- package/dist/cli.d.ts +0 -1
- package/dist/cli.js +0 -1
- package/dist/core/cache.d.ts +0 -1
- package/dist/core/cache.js +0 -1
- package/dist/core/engine.d.ts +0 -1
- package/dist/core/engine.js +0 -1
- package/dist/core/index.d.ts +0 -1
- package/dist/core/index.js +0 -1
- package/dist/generators/index.d.ts +0 -1
- package/dist/generators/index.js +0 -1
- package/dist/generators/markdown-generator.d.ts +0 -1
- package/dist/generators/markdown-generator.js +0 -1
- package/dist/generators/mermaid-generator.d.ts +0 -1
- package/dist/generators/mermaid-generator.js +0 -1
- package/dist/generators/page-map-generator.d.ts +0 -1
- package/dist/generators/page-map-generator.js +0 -1
- package/dist/generators/rails-map-generator.d.ts +0 -1
- package/dist/generators/rails-map-generator.js +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/server/doc-server.d.ts +0 -1
- package/dist/server/doc-server.js +13 -1
- package/dist/server/index.d.ts +0 -1
- package/dist/server/index.js +0 -1
- package/dist/types.d.ts +0 -1
- package/dist/types.js +0 -1
- package/dist/utils/env-detector.d.ts +0 -1
- package/dist/utils/env-detector.js +0 -1
- package/dist/utils/parallel.d.ts +0 -1
- package/dist/utils/parallel.js +0 -1
- package/dist/utils/port.d.ts +15 -0
- package/dist/utils/port.js +41 -0
- package/package.json +25 -27
- package/dist/analyzers/base-analyzer.d.ts.map +0 -1
- package/dist/analyzers/base-analyzer.js.map +0 -1
- package/dist/analyzers/dataflow-analyzer.d.ts.map +0 -1
- package/dist/analyzers/dataflow-analyzer.js.map +0 -1
- package/dist/analyzers/graphql-analyzer.d.ts.map +0 -1
- package/dist/analyzers/graphql-analyzer.js.map +0 -1
- package/dist/analyzers/index.d.ts.map +0 -1
- package/dist/analyzers/index.js.map +0 -1
- package/dist/analyzers/pages-analyzer.d.ts.map +0 -1
- package/dist/analyzers/pages-analyzer.js.map +0 -1
- package/dist/analyzers/rails/index.d.ts.map +0 -1
- package/dist/analyzers/rails/index.js.map +0 -1
- package/dist/analyzers/rails/rails-controller-analyzer.d.ts.map +0 -1
- package/dist/analyzers/rails/rails-controller-analyzer.js.map +0 -1
- package/dist/analyzers/rails/rails-grpc-analyzer.d.ts.map +0 -1
- package/dist/analyzers/rails/rails-grpc-analyzer.js.map +0 -1
- package/dist/analyzers/rails/rails-model-analyzer.d.ts.map +0 -1
- package/dist/analyzers/rails/rails-model-analyzer.js.map +0 -1
- package/dist/analyzers/rails/rails-react-analyzer.d.ts.map +0 -1
- package/dist/analyzers/rails/rails-react-analyzer.js.map +0 -1
- package/dist/analyzers/rails/rails-routes-analyzer.d.ts.map +0 -1
- package/dist/analyzers/rails/rails-routes-analyzer.js.map +0 -1
- package/dist/analyzers/rails/rails-view-analyzer.d.ts.map +0 -1
- package/dist/analyzers/rails/rails-view-analyzer.js.map +0 -1
- package/dist/analyzers/rails/ruby-parser.d.ts.map +0 -1
- package/dist/analyzers/rails/ruby-parser.js.map +0 -1
- package/dist/analyzers/rest-api-analyzer.d.ts.map +0 -1
- package/dist/analyzers/rest-api-analyzer.js.map +0 -1
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/core/cache.d.ts.map +0 -1
- package/dist/core/cache.js.map +0 -1
- package/dist/core/engine.d.ts.map +0 -1
- package/dist/core/engine.js.map +0 -1
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js.map +0 -1
- package/dist/generators/index.d.ts.map +0 -1
- package/dist/generators/index.js.map +0 -1
- package/dist/generators/markdown-generator.d.ts.map +0 -1
- package/dist/generators/markdown-generator.js.map +0 -1
- package/dist/generators/mermaid-generator.d.ts.map +0 -1
- package/dist/generators/mermaid-generator.js.map +0 -1
- package/dist/generators/page-map-generator.d.ts.map +0 -1
- package/dist/generators/page-map-generator.js.map +0 -1
- package/dist/generators/rails-map-generator.d.ts.map +0 -1
- package/dist/generators/rails-map-generator.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/server/doc-server.d.ts.map +0 -1
- package/dist/server/doc-server.js.map +0 -1
- package/dist/server/index.d.ts.map +0 -1
- package/dist/server/index.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/utils/env-detector.d.ts.map +0 -1
- package/dist/utils/env-detector.js.map +0 -1
- package/dist/utils/parallel.d.ts.map +0 -1
- package/dist/utils/parallel.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# repomap
|
|
1
|
+
# @wtdlee/repomap
|
|
2
2
|
|
|
3
|
-
[](https://www.npmjs.com/package/@wtdlee/repomap)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
5
|
|
|
6
6
|
Interactive documentation generator for code repositories. Visualize pages, components, routes, and data flows with an intuitive web interface.
|
|
@@ -36,13 +36,13 @@ Interactive documentation generator for code repositories. Visualize pages, comp
|
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
38
|
# Global installation
|
|
39
|
-
npm install -g repomap
|
|
39
|
+
npm install -g @wtdlee/repomap
|
|
40
40
|
|
|
41
41
|
# Or use directly with npx
|
|
42
|
-
npx repomap serve
|
|
42
|
+
npx @wtdlee/repomap serve
|
|
43
43
|
|
|
44
44
|
# Or install as project dependency
|
|
45
|
-
npm install repomap
|
|
45
|
+
npm install @wtdlee/repomap
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
## Quick Start
|
|
@@ -54,7 +54,7 @@ npm install repomap
|
|
|
54
54
|
cd my-project
|
|
55
55
|
|
|
56
56
|
# Start the documentation server (auto-detects project type)
|
|
57
|
-
npx repomap serve
|
|
57
|
+
npx @wtdlee/repomap serve
|
|
58
58
|
|
|
59
59
|
# Open http://localhost:3030
|
|
60
60
|
```
|
|
@@ -105,10 +105,10 @@ Generate static documentation and deploy to GitHub Pages:
|
|
|
105
105
|
|
|
106
106
|
```bash
|
|
107
107
|
# Generate static HTML files
|
|
108
|
-
npx repomap generate --static --output ./docs
|
|
108
|
+
npx @wtdlee/repomap generate --static --output ./docs
|
|
109
109
|
|
|
110
110
|
# In CI mode (minimal output)
|
|
111
|
-
npx repomap generate --static --ci --output ./docs
|
|
111
|
+
npx @wtdlee/repomap generate --static --ci --output ./docs
|
|
112
112
|
```
|
|
113
113
|
|
|
114
114
|
Example GitHub Actions workflow (`.github/workflows/docs.yml`):
|
|
@@ -133,7 +133,7 @@ jobs:
|
|
|
133
133
|
with:
|
|
134
134
|
node-version: '20'
|
|
135
135
|
- run: npm ci
|
|
136
|
-
- run: npx repomap generate --static --ci --output ./docs
|
|
136
|
+
- run: npx @wtdlee/repomap generate --static --ci --output ./docs
|
|
137
137
|
- uses: actions/upload-pages-artifact@v3
|
|
138
138
|
with:
|
|
139
139
|
path: './docs'
|
|
@@ -170,7 +170,7 @@ jobs:
|
|
|
170
170
|
with:
|
|
171
171
|
node-version: '20'
|
|
172
172
|
- run: npm ci
|
|
173
|
-
- run: npx repomap generate --static --ci --format json --output ./docs
|
|
173
|
+
- run: npx @wtdlee/repomap generate --static --ci --format json --output ./docs
|
|
174
174
|
- name: Post Comment
|
|
175
175
|
uses: actions/github-script@v7
|
|
176
176
|
with:
|
|
@@ -202,8 +202,8 @@ See more examples in [`examples/ci/`](./examples/ci/)
|
|
|
202
202
|
### Basic Usage
|
|
203
203
|
|
|
204
204
|
```typescript
|
|
205
|
-
import { DocGeneratorEngine, DocServer } from "repomap";
|
|
206
|
-
import type { DocGeneratorConfig, DocumentationReport } from "repomap";
|
|
205
|
+
import { DocGeneratorEngine, DocServer } from "@wtdlee/repomap";
|
|
206
|
+
import type { DocGeneratorConfig, DocumentationReport } from "@wtdlee/repomap";
|
|
207
207
|
|
|
208
208
|
const config: DocGeneratorConfig = {
|
|
209
209
|
outputDir: "./.repomap",
|
|
@@ -259,7 +259,7 @@ console.log(`Total pages: ${report.repositories[0].summary.totalPages}`);
|
|
|
259
259
|
### Start Documentation Server
|
|
260
260
|
|
|
261
261
|
```typescript
|
|
262
|
-
import { DocServer } from "repomap";
|
|
262
|
+
import { DocServer } from "@wtdlee/repomap";
|
|
263
263
|
|
|
264
264
|
const server = new DocServer(config, 3030, { noCache: false });
|
|
265
265
|
await server.start(true); // true = open browser automatically
|
|
@@ -269,16 +269,16 @@ await server.start(true); // true = open browser automatically
|
|
|
269
269
|
|
|
270
270
|
```typescript
|
|
271
271
|
// Import specific modules
|
|
272
|
-
import { PagesAnalyzer, GraphQLAnalyzer } from "repomap/analyzers";
|
|
273
|
-
import { PageMapGenerator, MermaidGenerator } from "repomap/generators";
|
|
274
|
-
import { DocServer } from "repomap/server";
|
|
275
|
-
import type { PageInfo, GraphQLOperation } from "repomap/types";
|
|
272
|
+
import { PagesAnalyzer, GraphQLAnalyzer } from "@wtdlee/repomap/analyzers";
|
|
273
|
+
import { PageMapGenerator, MermaidGenerator } from "@wtdlee/repomap/generators";
|
|
274
|
+
import { DocServer } from "@wtdlee/repomap/server";
|
|
275
|
+
import type { PageInfo, GraphQLOperation } from "@wtdlee/repomap/types";
|
|
276
276
|
```
|
|
277
277
|
|
|
278
278
|
### Analyzing Rails Applications
|
|
279
279
|
|
|
280
280
|
```typescript
|
|
281
|
-
import { RailsMapGenerator } from "repomap";
|
|
281
|
+
import { RailsMapGenerator } from "@wtdlee/repomap";
|
|
282
282
|
|
|
283
283
|
const generator = new RailsMapGenerator("/path/to/rails-app");
|
|
284
284
|
await generator.generate({
|
|
@@ -292,7 +292,7 @@ await generator.generate({
|
|
|
292
292
|
Create `repomap.config.ts` in your project root:
|
|
293
293
|
|
|
294
294
|
```typescript
|
|
295
|
-
import type { DocGeneratorConfig } from "repomap";
|
|
295
|
+
import type { DocGeneratorConfig } from "@wtdlee/repomap";
|
|
296
296
|
|
|
297
297
|
export const config: DocGeneratorConfig = {
|
|
298
298
|
outputDir: "./.repomap",
|
|
@@ -517,11 +517,4 @@ MIT
|
|
|
517
517
|
|
|
518
518
|
## Changelog
|
|
519
519
|
|
|
520
|
-
|
|
521
|
-
- Initial release
|
|
522
|
-
- Page map visualization for Next.js/React
|
|
523
|
-
- Rails application analysis (routes, controllers, models, views)
|
|
524
|
-
- GraphQL operations detection and visualization
|
|
525
|
-
- Data flow analysis
|
|
526
|
-
- Interactive web interface with live reload
|
|
527
|
-
- Multi-repository support
|
|
520
|
+
See [GitHub Releases](https://github.com/wtdlee/repomap/releases) for a detailed changelog.
|
package/dist/analyzers/index.js
CHANGED
|
@@ -39,4 +39,3 @@ export interface DetectedPaths {
|
|
|
39
39
|
integrationPattern: 'react-rails' | 'react_on_rails' | 'webpacker' | 'vite' | 'custom' | 'unknown';
|
|
40
40
|
}
|
|
41
41
|
export declare function analyzeReactComponents(rootPath: string): Promise<ReactAnalysisResult>;
|
|
42
|
-
//# sourceMappingURL=rails-react-analyzer.d.ts.map
|
package/dist/cli.d.ts
CHANGED
package/dist/cli.js
CHANGED
package/dist/core/cache.d.ts
CHANGED
package/dist/core/cache.js
CHANGED
package/dist/core/engine.d.ts
CHANGED
package/dist/core/engine.js
CHANGED
package/dist/core/index.d.ts
CHANGED
package/dist/core/index.js
CHANGED
package/dist/generators/index.js
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -9,6 +9,7 @@ import { PageMapGenerator } from '../generators/page-map-generator.js';
|
|
|
9
9
|
import { RailsMapGenerator } from '../generators/rails-map-generator.js';
|
|
10
10
|
import { detectEnvironments } from '../utils/env-detector.js';
|
|
11
11
|
import { analyzeRailsApp } from '../analyzers/rails/index.js';
|
|
12
|
+
import { findAvailablePort } from '../utils/port.js';
|
|
12
13
|
/**
|
|
13
14
|
* Documentation server with live reload
|
|
14
15
|
* ライブリロード機能付きドキュメントサーバー
|
|
@@ -1167,6 +1168,18 @@ export class DocServer {
|
|
|
1167
1168
|
console.error(` ⚠️ Rails analysis failed:`, error.message);
|
|
1168
1169
|
}
|
|
1169
1170
|
}
|
|
1171
|
+
// Find available port (auto-detect if requested port is in use)
|
|
1172
|
+
try {
|
|
1173
|
+
const availablePort = await findAvailablePort(this.port);
|
|
1174
|
+
if (availablePort !== this.port) {
|
|
1175
|
+
console.log(`\n⚠️ Port ${this.port} is in use, using port ${availablePort} instead`);
|
|
1176
|
+
}
|
|
1177
|
+
this.port = availablePort;
|
|
1178
|
+
}
|
|
1179
|
+
catch (error) {
|
|
1180
|
+
console.error(`\n❌ Failed to find available port: ${error.message}`);
|
|
1181
|
+
process.exit(1);
|
|
1182
|
+
}
|
|
1170
1183
|
// Start server
|
|
1171
1184
|
this.server.listen(this.port, () => {
|
|
1172
1185
|
console.log(`\n🌐 Documentation server running at http://localhost:${this.port}`);
|
|
@@ -1230,4 +1243,3 @@ export class DocServer {
|
|
|
1230
1243
|
console.log('\n👋 Server stopped');
|
|
1231
1244
|
}
|
|
1232
1245
|
}
|
|
1233
|
-
//# sourceMappingURL=doc-server.js.map
|
package/dist/server/index.d.ts
CHANGED
package/dist/server/index.js
CHANGED
package/dist/types.d.ts
CHANGED
package/dist/types.js
CHANGED
package/dist/utils/parallel.d.ts
CHANGED
package/dist/utils/parallel.js
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check if a port is available
|
|
3
|
+
* ポートが使用可能かどうかを確認
|
|
4
|
+
*/
|
|
5
|
+
export declare function isPortAvailable(port: number): Promise<boolean>;
|
|
6
|
+
/**
|
|
7
|
+
* Find an available port starting from the given port
|
|
8
|
+
* 指定されたポートから利用可能なポートを探す
|
|
9
|
+
*
|
|
10
|
+
* @param startPort - Port to start searching from
|
|
11
|
+
* @param maxAttempts - Maximum number of ports to try (default: 10)
|
|
12
|
+
* @returns Available port number
|
|
13
|
+
* @throws Error if no available port found within maxAttempts
|
|
14
|
+
*/
|
|
15
|
+
export declare function findAvailablePort(startPort: number, maxAttempts?: number): Promise<number>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import * as net from 'net';
|
|
2
|
+
/**
|
|
3
|
+
* Check if a port is available
|
|
4
|
+
* ポートが使用可能かどうかを確認
|
|
5
|
+
*/
|
|
6
|
+
export function isPortAvailable(port) {
|
|
7
|
+
return new Promise((resolve) => {
|
|
8
|
+
const server = net.createServer();
|
|
9
|
+
server.once('error', (err) => {
|
|
10
|
+
if (err.code === 'EADDRINUSE') {
|
|
11
|
+
resolve(false);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
resolve(false);
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
server.once('listening', () => {
|
|
18
|
+
server.close();
|
|
19
|
+
resolve(true);
|
|
20
|
+
});
|
|
21
|
+
server.listen(port);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Find an available port starting from the given port
|
|
26
|
+
* 指定されたポートから利用可能なポートを探す
|
|
27
|
+
*
|
|
28
|
+
* @param startPort - Port to start searching from
|
|
29
|
+
* @param maxAttempts - Maximum number of ports to try (default: 10)
|
|
30
|
+
* @returns Available port number
|
|
31
|
+
* @throws Error if no available port found within maxAttempts
|
|
32
|
+
*/
|
|
33
|
+
export async function findAvailablePort(startPort, maxAttempts = 10) {
|
|
34
|
+
for (let i = 0; i < maxAttempts; i++) {
|
|
35
|
+
const port = startPort + i;
|
|
36
|
+
if (await isPortAvailable(port)) {
|
|
37
|
+
return port;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
throw new Error(`No available port found between ${startPort} and ${startPort + maxAttempts - 1}`);
|
|
41
|
+
}
|