@wtdlee/repomap 0.6.0 → 0.7.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 +44 -12
- package/dist/analyzers/index.d.ts +175 -25
- package/dist/analyzers/index.js +1 -1
- package/dist/{chunk-QZWPOG5B.js → chunk-GCIRJGW3.js} +78 -45
- package/dist/chunk-H7VVRHQZ.js +34 -0
- package/dist/chunk-HPBPEGHS.js +19 -0
- package/dist/{chunk-WQANJ7IA.js → chunk-JDM7Y7PX.js} +34 -28
- package/dist/{chunk-H4YGP3GL.js → chunk-OQAXO3X2.js} +346 -22
- package/dist/chunk-TNUKDIO7.js +5 -0
- package/dist/cli.js +17 -33
- package/dist/dataflow-analyzer-CJ2T0cGS.d.ts +345 -0
- package/dist/generators/assets/docs.css +176 -46
- package/dist/generators/assets/favicon/apple-touch-icon.png +0 -0
- package/dist/generators/assets/favicon/favicon-96x96.png +0 -0
- package/dist/generators/assets/favicon/favicon.ico +0 -0
- package/dist/generators/assets/favicon/favicon.svg +3 -0
- package/dist/generators/assets/favicon/site.webmanifest +21 -0
- package/dist/generators/assets/favicon/web-app-manifest-192x192.png +0 -0
- package/dist/generators/assets/favicon/web-app-manifest-512x512.png +0 -0
- package/dist/generators/assets/page-map.css +392 -87
- package/dist/generators/assets/rails-map.css +221 -48
- package/dist/generators/index.d.ts +0 -8
- package/dist/generators/index.js +1 -1
- package/dist/index.d.ts +18 -9
- package/dist/index.js +1 -1
- package/dist/page-map-generator-3GO6GL2P.js +1 -0
- package/dist/{rails-FFISZ4AE.js → rails-3HNUFTQV.js} +1 -1
- package/dist/rails-map-generator-CAQZUBI6.js +1 -0
- package/dist/server/index.d.ts +2 -6
- package/dist/server/index.js +1 -1
- package/dist/types.d.ts +12 -3
- package/package.json +1 -1
- package/dist/chunk-BPV4UZSW.js +0 -2
- package/dist/chunk-PTR5IROV.js +0 -36
- package/dist/chunk-XWZH2RDG.js +0 -19
- package/dist/dataflow-analyzer-s6ufFkKC.d.ts +0 -215
- package/dist/page-map-generator-HBKSOX2E.js +0 -1
- package/dist/rails-map-generator-UFLCMFAT.js +0 -1
package/README.md
CHANGED
|
@@ -1,14 +1,36 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="./src/generators/assets/favicon/favicon.svg" alt="Repomap" width="120">
|
|
3
|
+
</p>
|
|
2
4
|
|
|
3
|
-
|
|
4
|
-
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
<h1 align="center">@wtdlee/repomap</h1>
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
<p align="center">
|
|
8
|
+
<a href="https://www.npmjs.com/package/@wtdlee/repomap"><img src="https://badge.fury.io/js/@wtdlee%2Frepomap.svg" alt="npm version"></a>
|
|
9
|
+
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
|
|
10
|
+
</p>
|
|
11
|
+
|
|
12
|
+
<p align="center">
|
|
13
|
+
Interactive documentation generator for code repositories.<br>
|
|
14
|
+
Visualize pages, components, routes, and data flows with an intuitive web interface.
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
## ⚡ Performance
|
|
18
|
+
|
|
19
|
+
Powered by [SWC](https://swc.rs/) for blazing-fast AST parsing. Analyze large-scale codebases in seconds.
|
|
20
|
+
|
|
21
|
+
| Codebase | Scale | Analysis Time |
|
|
22
|
+
|----------|-------|---------------|
|
|
23
|
+
| Next.js Frontend | 30 pages, 970+ components, 640+ GraphQL ops | **~3.2s** |
|
|
24
|
+
| Rails + React Monolith | 5,700+ routes, 490 controllers, 820 models, 80+ gRPC | **~3.5s** |
|
|
25
|
+
|
|
26
|
+
> 🚀 **10x faster** than ts-morph based solutions. No caching needed!
|
|
7
27
|
|
|
8
28
|
## Features
|
|
9
29
|
|
|
10
30
|
### 🗺️ Page Map
|
|
11
|
-
- **Multi-framework support** - Next.js (Pages/App Router), React, Rails
|
|
31
|
+
- **Multi-framework support** - Next.js (Pages/App Router), React SPA, Rails
|
|
32
|
+
- **SPA support** - Automatic detection of react-router-dom routes from App.tsx/jsx/js
|
|
33
|
+
- **Zero config for JS projects** - Works without tsconfig.json using smart defaults
|
|
12
34
|
- **Interactive graph view** - Visual representation of page relationships
|
|
13
35
|
- **Route analysis** - Automatic detection of routes, authentication, and data dependencies
|
|
14
36
|
- **React component tracking** - Detect React components used in Rails views
|
|
@@ -24,13 +46,16 @@ Interactive documentation generator for code repositories. Visualize pages, comp
|
|
|
24
46
|
|
|
25
47
|
### 🔗 GraphQL Analysis
|
|
26
48
|
- **Operations mapping** - Extract queries, mutations, and fragments
|
|
49
|
+
- **Code Generator support** - Parse `__generated__/graphql.ts` (client preset)
|
|
27
50
|
- **Field details** - View all fields with types and arguments
|
|
28
|
-
- **Usage tracking** - See where operations are used
|
|
51
|
+
- **Usage tracking** - See where operations are used in components
|
|
52
|
+
- **Component integration** - Track GraphQL usage through component dependencies
|
|
29
53
|
|
|
30
54
|
### 📊 Data Flow
|
|
31
55
|
- **Visual diagrams** - Mermaid-generated flowcharts
|
|
32
56
|
- **Cross-component tracking** - Follow data through your application
|
|
33
57
|
- **REST API detection** - Automatic API endpoint discovery
|
|
58
|
+
- **High performance** - SWC-based parsing (10x faster than ts-morph)
|
|
34
59
|
|
|
35
60
|
## Installation
|
|
36
61
|
|
|
@@ -77,7 +102,6 @@ repomap serve [options]
|
|
|
77
102
|
-p, --port <number> Server port (default: 3030)
|
|
78
103
|
-c, --config <path> Path to config file
|
|
79
104
|
--path <path> Path to repository to analyze
|
|
80
|
-
--no-cache Disable caching (always analyze from scratch)
|
|
81
105
|
--no-open Don't open browser automatically
|
|
82
106
|
|
|
83
107
|
# generate command options
|
|
@@ -86,7 +110,6 @@ repomap generate [options]
|
|
|
86
110
|
-o, --output <path> Output directory
|
|
87
111
|
--repo <name> Analyze specific repository only
|
|
88
112
|
--watch Watch for changes and regenerate
|
|
89
|
-
--no-cache Disable caching
|
|
90
113
|
--static Generate standalone HTML files (for GitHub Pages)
|
|
91
114
|
--ci CI mode: minimal output, exit codes for errors
|
|
92
115
|
--format <type> Output format: json, html, markdown (default: all)
|
|
@@ -261,7 +284,7 @@ console.log(`Total pages: ${report.repositories[0].summary.totalPages}`);
|
|
|
261
284
|
```typescript
|
|
262
285
|
import { DocServer } from "@wtdlee/repomap";
|
|
263
286
|
|
|
264
|
-
const server = new DocServer(config, 3030
|
|
287
|
+
const server = new DocServer(config, 3030);
|
|
265
288
|
await server.start(true); // true = open browser automatically
|
|
266
289
|
```
|
|
267
290
|
|
|
@@ -392,9 +415,19 @@ export default config;
|
|
|
392
415
|
| Framework | Features |
|
|
393
416
|
|-----------|----------|
|
|
394
417
|
| **Next.js** | Pages Router, App Router, API routes, data fetching |
|
|
395
|
-
| **React** |
|
|
418
|
+
| **React SPA** | react-router-dom routes, components, hooks (auto-detected from App.tsx) |
|
|
419
|
+
| **React (JS)** | JavaScript projects without tsconfig.json |
|
|
396
420
|
| **Rails** | Routes, Controllers, Models, Views, gRPC, React integration |
|
|
397
421
|
|
|
422
|
+
### GraphQL Support
|
|
423
|
+
|
|
424
|
+
| Pattern | Support |
|
|
425
|
+
|---------|---------|
|
|
426
|
+
| `.graphql` files | ✅ Full support |
|
|
427
|
+
| `gql` template literals | ✅ Full support |
|
|
428
|
+
| GraphQL Code Generator (`__generated__/graphql.ts`) | ✅ Full support |
|
|
429
|
+
| `useQuery`, `useMutation`, `useLazyQuery` hooks | ✅ Tracked |
|
|
430
|
+
|
|
398
431
|
## Type Definitions
|
|
399
432
|
|
|
400
433
|
### Main Types
|
|
@@ -462,8 +495,7 @@ src/
|
|
|
462
495
|
├── server/
|
|
463
496
|
│ └── doc-server.ts # Express server with live reload
|
|
464
497
|
├── core/
|
|
465
|
-
│
|
|
466
|
-
│ └── cache.ts # Caching utilities
|
|
498
|
+
│ └── engine.ts # Main documentation engine
|
|
467
499
|
├── utils/
|
|
468
500
|
│ ├── env-detector.ts # Environment detection
|
|
469
501
|
│ └── parallel.ts # Parallel processing utilities
|
|
@@ -1,63 +1,213 @@
|
|
|
1
|
-
import { B as BaseAnalyzer } from '../dataflow-analyzer-
|
|
2
|
-
export { D as DataFlowAnalyzer, G as GraphQLAnalyzer, P as PagesAnalyzer } from '../dataflow-analyzer-
|
|
3
|
-
import {
|
|
1
|
+
import { B as BaseAnalyzer } from '../dataflow-analyzer-CJ2T0cGS.js';
|
|
2
|
+
export { D as DataFlowAnalyzer, G as GraphQLAnalyzer, P as PagesAnalyzer } from '../dataflow-analyzer-CJ2T0cGS.js';
|
|
3
|
+
import { Module, CallExpression } from '@swc/core';
|
|
4
|
+
import { DataFetchingInfo, RepositoryConfig, AnalysisResult } from '../types.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Unified GraphQL extraction utilities
|
|
8
|
+
*
|
|
9
|
+
* This module provides a single source of truth for all GraphQL operation extraction.
|
|
10
|
+
* All analyzers should use these utilities instead of implementing their own logic.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* All supported Apollo/GraphQL query hooks
|
|
15
|
+
*/
|
|
16
|
+
declare const GRAPHQL_QUERY_HOOKS: readonly ["useQuery", "useLazyQuery", "useSuspenseQuery", "useBackgroundQuery", "useReadQuery"];
|
|
17
|
+
/**
|
|
18
|
+
* All supported Apollo/GraphQL mutation hooks
|
|
19
|
+
*/
|
|
20
|
+
declare const GRAPHQL_MUTATION_HOOKS: readonly ["useMutation"];
|
|
21
|
+
/**
|
|
22
|
+
* All supported Apollo/GraphQL subscription and other hooks
|
|
23
|
+
*/
|
|
24
|
+
declare const GRAPHQL_OTHER_HOOKS: readonly ["useSubscription", "useFragment", "useApolloClient"];
|
|
25
|
+
/**
|
|
26
|
+
* All GraphQL hooks combined
|
|
27
|
+
*/
|
|
28
|
+
declare const ALL_GRAPHQL_HOOKS: readonly ["useQuery", "useLazyQuery", "useSuspenseQuery", "useBackgroundQuery", "useReadQuery", "useMutation", "useSubscription", "useFragment", "useApolloClient"];
|
|
29
|
+
/**
|
|
30
|
+
* Hook type mapping for data fetching info
|
|
31
|
+
*/
|
|
32
|
+
declare const HOOK_TYPE_MAP: Record<string, DataFetchingInfo['type']>;
|
|
33
|
+
/**
|
|
34
|
+
* Keywords that indicate GraphQL usage in a file
|
|
35
|
+
*/
|
|
36
|
+
declare const GRAPHQL_INDICATORS: readonly ["Document", "useQuery", "useMutation", "useLazyQuery", "useSuspenseQuery", "useBackgroundQuery", "useSubscription", "Query", "Mutation", "gql", "graphql", "GET_", "FETCH_", "SEARCH_", "CREATE_", "UPDATE_", "DELETE_", "SUBSCRIBE_", "@apollo", "ApolloClient"];
|
|
37
|
+
/**
|
|
38
|
+
* Context extracted from a file for GraphQL operation resolution
|
|
39
|
+
*/
|
|
40
|
+
interface GraphQLFileContext {
|
|
41
|
+
/** Document imports: import { GetUserDocument } from '...' */
|
|
42
|
+
documentImports: Map<string, string>;
|
|
43
|
+
/** Variable -> operation name mapping from gql() calls */
|
|
44
|
+
variableOperations: Map<string, string>;
|
|
45
|
+
/** Static property mappings: Component.Query = gql`...` */
|
|
46
|
+
staticPropertyOperations: Map<string, string>;
|
|
47
|
+
/** Codegen mapping: Document name -> operation name */
|
|
48
|
+
codegenMap: Map<string, {
|
|
49
|
+
operationName: string;
|
|
50
|
+
type: string;
|
|
51
|
+
}>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Result of extracting GraphQL operations from a hook call
|
|
55
|
+
*/
|
|
56
|
+
interface ExtractedGraphQLOperation {
|
|
57
|
+
operationName: string;
|
|
58
|
+
hookName: string;
|
|
59
|
+
type: DataFetchingInfo['type'];
|
|
60
|
+
variables?: Record<string, string>;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Check if a hook name is a GraphQL query hook
|
|
64
|
+
*/
|
|
65
|
+
declare function isQueryHook(hookName: string): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Check if a hook name is a GraphQL mutation hook
|
|
68
|
+
*/
|
|
69
|
+
declare function isMutationHook(hookName: string): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Check if a hook name is a GraphQL subscription hook
|
|
72
|
+
*/
|
|
73
|
+
declare function isSubscriptionHook(hookName: string): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Check if a hook name is any GraphQL hook
|
|
76
|
+
*/
|
|
77
|
+
declare function isGraphQLHook(hookName: string): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Get the data fetching type for a hook
|
|
80
|
+
*/
|
|
81
|
+
declare function getHookType(hookName: string): DataFetchingInfo['type'];
|
|
82
|
+
/**
|
|
83
|
+
* Check if content has any GraphQL indicators
|
|
84
|
+
*/
|
|
85
|
+
declare function hasGraphQLIndicators(content: string): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Clean operation name by removing common suffixes
|
|
88
|
+
*/
|
|
89
|
+
declare function cleanOperationName(name: string): string;
|
|
90
|
+
/**
|
|
91
|
+
* Safely parse TypeScript/TSX content to AST
|
|
92
|
+
*/
|
|
93
|
+
declare function parseToAst(content: string): Module | null;
|
|
94
|
+
/**
|
|
95
|
+
* Get callee name from a call expression
|
|
96
|
+
*/
|
|
97
|
+
declare function getCalleeName(callee: any): string | null;
|
|
98
|
+
/**
|
|
99
|
+
* Traverse AST and call callback for each node
|
|
100
|
+
*/
|
|
101
|
+
declare function traverseAst(node: any, callback: (node: any) => void): void;
|
|
102
|
+
/**
|
|
103
|
+
* Extract all GraphQL context from a file in a single AST pass
|
|
104
|
+
* This is the main entry point for file-level analysis
|
|
105
|
+
*/
|
|
106
|
+
declare function extractGraphQLContext(ast: Module, content: string, codegenMap?: Map<string, {
|
|
107
|
+
operationName: string;
|
|
108
|
+
type: string;
|
|
109
|
+
}>): GraphQLFileContext;
|
|
110
|
+
/**
|
|
111
|
+
* Extract operation name from gql() function call
|
|
112
|
+
*/
|
|
113
|
+
declare function extractOperationNameFromGqlCall(call: any, content: string): string | null;
|
|
114
|
+
/**
|
|
115
|
+
* Extract operation name from template literal
|
|
116
|
+
*/
|
|
117
|
+
declare function extractOperationNameFromTemplate(template: any, _content: string): string | null;
|
|
118
|
+
/**
|
|
119
|
+
* Check if a hook call has GraphQL-related arguments
|
|
120
|
+
* This verifies the hook is actually used for GraphQL, not just has a similar name
|
|
121
|
+
* e.g., useQueryParams() is NOT a GraphQL hook, but useQuery(GetUserDocument) IS
|
|
122
|
+
*/
|
|
123
|
+
declare function hasGraphQLArgument(call: CallExpression, content: string, context: GraphQLFileContext): boolean;
|
|
124
|
+
/**
|
|
125
|
+
* Resolve operation name from a hook call using file context
|
|
126
|
+
* This is the main API for resolving operation names
|
|
127
|
+
*/
|
|
128
|
+
declare function resolveOperationName(call: CallExpression, content: string, context: GraphQLFileContext): string | null;
|
|
129
|
+
/**
|
|
130
|
+
* Extract all GraphQL operations from a file
|
|
131
|
+
* Returns a list of operations with their hook names and types
|
|
132
|
+
*/
|
|
133
|
+
declare function extractGraphQLOperationsFromFile(content: string, codegenMap?: Map<string, {
|
|
134
|
+
operationName: string;
|
|
135
|
+
type: string;
|
|
136
|
+
}>): ExtractedGraphQLOperation[];
|
|
137
|
+
/**
|
|
138
|
+
* Get displayable hook info string (for backward compatibility)
|
|
139
|
+
*/
|
|
140
|
+
declare function getHookInfoString(op: ExtractedGraphQLOperation): string;
|
|
4
141
|
|
|
5
142
|
/**
|
|
6
143
|
* Analyzer for REST API calls (fetch, axios, useSWR, etc.)
|
|
7
|
-
*
|
|
144
|
+
* Uses @swc/core for fast parsing
|
|
8
145
|
*/
|
|
9
146
|
declare class RestApiAnalyzer extends BaseAnalyzer {
|
|
10
|
-
private project;
|
|
11
147
|
private apiCallCounter;
|
|
12
148
|
constructor(config: RepositoryConfig);
|
|
13
149
|
getName(): string;
|
|
14
150
|
analyze(): Promise<Partial<AnalysisResult>>;
|
|
15
151
|
/**
|
|
16
|
-
*
|
|
152
|
+
* Analyze a parsed module for API calls
|
|
153
|
+
*/
|
|
154
|
+
private analyzeModule;
|
|
155
|
+
/**
|
|
156
|
+
* Traverse AST nodes recursively
|
|
17
157
|
*/
|
|
18
|
-
private
|
|
158
|
+
private traverseNode;
|
|
19
159
|
/**
|
|
20
|
-
*
|
|
160
|
+
* Analyze a call expression for API calls
|
|
21
161
|
*/
|
|
22
|
-
private
|
|
162
|
+
private analyzeCallExpression;
|
|
23
163
|
/**
|
|
24
|
-
*
|
|
164
|
+
* Get callee name from expression
|
|
25
165
|
*/
|
|
26
|
-
private
|
|
166
|
+
private getCalleeName;
|
|
27
167
|
/**
|
|
28
|
-
* Extract API call
|
|
168
|
+
* Extract API call from fetch()
|
|
29
169
|
*/
|
|
30
170
|
private extractFetchCall;
|
|
31
171
|
/**
|
|
32
|
-
* Extract API call
|
|
172
|
+
* Extract API call from axios.method()
|
|
33
173
|
*/
|
|
34
|
-
private
|
|
174
|
+
private extractAxiosMethodCall;
|
|
35
175
|
/**
|
|
36
|
-
* Extract API call
|
|
176
|
+
* Extract API call from axios() direct call
|
|
37
177
|
*/
|
|
38
178
|
private extractAxiosDirectCall;
|
|
39
179
|
/**
|
|
40
|
-
* Extract API call
|
|
180
|
+
* Extract API call from useSWR()
|
|
41
181
|
*/
|
|
42
182
|
private extractSwrCall;
|
|
43
183
|
/**
|
|
44
|
-
*
|
|
184
|
+
* Extract URL from an expression
|
|
45
185
|
*/
|
|
46
|
-
private
|
|
186
|
+
private extractUrlFromExpression;
|
|
47
187
|
/**
|
|
48
|
-
*
|
|
188
|
+
* Get line number from byte offset
|
|
49
189
|
*/
|
|
50
|
-
private
|
|
190
|
+
private getLineNumber;
|
|
51
191
|
/**
|
|
52
|
-
*
|
|
192
|
+
* Static file extensions to exclude from API detection
|
|
53
193
|
*/
|
|
54
|
-
private
|
|
194
|
+
private static readonly STATIC_FILE_EXTENSIONS;
|
|
55
195
|
/**
|
|
56
|
-
*
|
|
196
|
+
* Non-API URL schemes to exclude
|
|
197
|
+
*/
|
|
198
|
+
private static readonly NON_API_SCHEMES;
|
|
199
|
+
/**
|
|
200
|
+
* Check if URL looks like an API endpoint (generic approach)
|
|
201
|
+
* Uses exclusion-based logic: if it's not a static file, it's likely an API
|
|
57
202
|
*/
|
|
58
203
|
private isApiUrl;
|
|
59
204
|
/**
|
|
60
|
-
*
|
|
205
|
+
* Known external service patterns for categorization
|
|
206
|
+
*/
|
|
207
|
+
private static readonly SERVICE_PATTERNS;
|
|
208
|
+
/**
|
|
209
|
+
* Categorize API by URL pattern (generic approach)
|
|
210
|
+
* Automatically extracts service name from domain if not in known patterns
|
|
61
211
|
*/
|
|
62
212
|
private categorizeApi;
|
|
63
213
|
/**
|
|
@@ -66,4 +216,4 @@ declare class RestApiAnalyzer extends BaseAnalyzer {
|
|
|
66
216
|
private normalizeMethod;
|
|
67
217
|
}
|
|
68
218
|
|
|
69
|
-
export { BaseAnalyzer, RestApiAnalyzer };
|
|
219
|
+
export { ALL_GRAPHQL_HOOKS, BaseAnalyzer, type ExtractedGraphQLOperation, GRAPHQL_INDICATORS, GRAPHQL_MUTATION_HOOKS, GRAPHQL_OTHER_HOOKS, GRAPHQL_QUERY_HOOKS, type GraphQLFileContext, HOOK_TYPE_MAP, RestApiAnalyzer, cleanOperationName, extractGraphQLContext, extractGraphQLOperationsFromFile, extractOperationNameFromGqlCall, extractOperationNameFromTemplate, getCalleeName, getHookInfoString, getHookType, hasGraphQLArgument, hasGraphQLIndicators, isGraphQLHook, isMutationHook, isQueryHook, isSubscriptionHook, parseToAst, resolveOperationName, traverseAst };
|
package/dist/analyzers/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{a as BaseAnalyzer,
|
|
1
|
+
export{e as ALL_GRAPHQL_HOOKS,a as BaseAnalyzer,A as DataFlowAnalyzer,g as GRAPHQL_INDICATORS,c as GRAPHQL_MUTATION_HOOKS,d as GRAPHQL_OTHER_HOOKS,b as GRAPHQL_QUERY_HOOKS,z as GraphQLAnalyzer,f as HOOK_TYPE_MAP,y as PagesAnalyzer,B as RestApiAnalyzer,n as cleanOperationName,r as extractGraphQLContext,w as extractGraphQLOperationsFromFile,s as extractOperationNameFromGqlCall,t as extractOperationNameFromTemplate,p as getCalleeName,x as getHookInfoString,l as getHookType,u as hasGraphQLArgument,m as hasGraphQLIndicators,k as isGraphQLHook,i as isMutationHook,h as isQueryHook,j as isSubscriptionHook,o as parseToAst,v as resolveOperationName,q as traverseAst}from'../chunk-TNUKDIO7.js';
|