@rsdoctor/types 1.5.8 → 1.5.10
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/babel.d.cts +13 -0
- package/dist/client.d.cts +164 -0
- package/dist/common.d.cts +26 -0
- package/dist/config.d.cts +75 -0
- package/dist/constants.d.cts +19 -0
- package/dist/emo.d.cts +28 -0
- package/dist/error.d.cts +137 -0
- package/dist/esbuild.d.cts +30 -0
- package/dist/index.d.cts +15 -0
- package/dist/linter/diagnostic.d.cts +48 -0
- package/dist/linter/index.d.cts +2 -0
- package/dist/linter/rule.d.cts +105 -0
- package/dist/logger.d.cts +9 -0
- package/dist/manifest.d.cts +68 -0
- package/dist/modules.d.cts +7 -0
- package/dist/plugin/baseCompiler.d.cts +33 -0
- package/dist/plugin/baseLoader.d.cts +78 -0
- package/dist/plugin/baseStats.d.cts +139 -0
- package/dist/plugin/index.d.cts +7 -0
- package/dist/plugin/internal-rules.d.cts +4 -0
- package/dist/plugin/plugin.d.cts +159 -0
- package/dist/plugin/rspack.d.cts +37 -0
- package/dist/plugin/webpack.d.cts +13 -0
- package/dist/rule/code/E1001.d.cts +3 -0
- package/dist/rule/code/E1002.d.cts +3 -0
- package/dist/rule/code/E1003.d.cts +3 -0
- package/dist/rule/code/E1004.d.cts +3 -0
- package/dist/rule/code/E1005.d.cts +3 -0
- package/dist/rule/code/E1006.d.cts +3 -0
- package/dist/rule/code/E1007.d.cts +3 -0
- package/dist/rule/code/E1008.d.cts +3 -0
- package/dist/rule/code/E1009.d.cts +3 -0
- package/dist/rule/code/index.d.cts +33 -0
- package/dist/rule/code/type.d.cts +27 -0
- package/dist/rule/data.d.cts +217 -0
- package/dist/rule/index.d.cts +2 -0
- package/dist/sdk/chunk.d.cts +142 -0
- package/dist/sdk/config.d.cts +12 -0
- package/dist/sdk/context.d.cts +23 -0
- package/dist/sdk/envinfo.d.cts +19 -0
- package/dist/sdk/hooks.d.cts +14 -0
- package/dist/sdk/index.d.cts +16 -0
- package/dist/sdk/instance.d.cts +110 -0
- package/dist/sdk/loader.d.cts +70 -0
- package/dist/sdk/module.d.cts +405 -0
- package/dist/sdk/package.d.cts +124 -0
- package/dist/sdk/plugin.d.cts +21 -0
- package/dist/sdk/process.d.cts +10 -0
- package/dist/sdk/resolver.d.cts +52 -0
- package/dist/sdk/result.d.cts +42 -0
- package/dist/sdk/server/apis/alerts.d.cts +30 -0
- package/dist/sdk/server/apis/graph.d.cts +49 -0
- package/dist/sdk/server/apis/index.d.cts +189 -0
- package/dist/sdk/server/apis/loader.d.cts +53 -0
- package/dist/sdk/server/apis/pagination.d.cts +11 -0
- package/dist/sdk/server/apis/plugin.d.cts +19 -0
- package/dist/sdk/server/apis/project.d.cts +18 -0
- package/dist/sdk/server/apis/resolver.d.cts +18 -0
- package/dist/sdk/server/index.d.cts +24 -0
- package/dist/sdk/statement.d.cts +178 -0
- package/dist/sdk/summary.d.cts +18 -0
- package/dist/sdk/treeShaking.d.cts +152 -0
- package/dist/thirdparty.d.cts +2 -0
- package/package.json +10 -5
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
import type { Program } from 'estree';
|
|
2
|
+
import type { SourceMapConsumer } from 'source-map';
|
|
3
|
+
import type { NonFunctionProperties } from '../common';
|
|
4
|
+
import type { ChunkInstance } from './chunk';
|
|
5
|
+
import type { BriefModeOptions } from '../config';
|
|
6
|
+
import type { StatementInstance, StatementData } from './statement';
|
|
7
|
+
import type { PackageData } from './package';
|
|
8
|
+
import type { ModuleGraphModuleInstance, ModuleGraphModuleData, ExportData, ExportInstance, SideEffectData, SideEffectInstance, VariableData, VariableInstance } from './treeShaking';
|
|
9
|
+
import type { StatsModule } from '../plugin';
|
|
10
|
+
export declare enum DependencyKind {
|
|
11
|
+
Unknown = 0,
|
|
12
|
+
ImportStatement = 1,
|
|
13
|
+
DynamicImport = 2,
|
|
14
|
+
RequireCall = 3,
|
|
15
|
+
AMDRequire = 4
|
|
16
|
+
}
|
|
17
|
+
/** Source code location */
|
|
18
|
+
export interface SourcePosition {
|
|
19
|
+
line?: number;
|
|
20
|
+
column?: number;
|
|
21
|
+
index?: number;
|
|
22
|
+
}
|
|
23
|
+
/** Source code range */
|
|
24
|
+
export interface SourceRange {
|
|
25
|
+
start: SourcePosition;
|
|
26
|
+
end?: SourcePosition;
|
|
27
|
+
}
|
|
28
|
+
/** Side effect location from bundler (e.g. Rspack JsRsdoctorSideEffectLocation) */
|
|
29
|
+
export interface SideEffectLocationData {
|
|
30
|
+
location: string;
|
|
31
|
+
nodeType: string;
|
|
32
|
+
module: number;
|
|
33
|
+
request: string;
|
|
34
|
+
}
|
|
35
|
+
/** Pre-computed side-effects-only import result (from Rust analysis) */
|
|
36
|
+
export interface ConnectionsOnlyImportData {
|
|
37
|
+
moduleUkey: number;
|
|
38
|
+
modulePath: string;
|
|
39
|
+
connections: Array<{
|
|
40
|
+
originModule?: number;
|
|
41
|
+
dependencyType: string;
|
|
42
|
+
userRequest: string;
|
|
43
|
+
}>;
|
|
44
|
+
}
|
|
45
|
+
/** Side effect code snippet data */
|
|
46
|
+
export interface SideEffectCodeData {
|
|
47
|
+
/** Module ID */
|
|
48
|
+
moduleId: number;
|
|
49
|
+
/** Start line number (1-indexed) */
|
|
50
|
+
startLine: number;
|
|
51
|
+
/** Extracted source code snippet */
|
|
52
|
+
code: string;
|
|
53
|
+
}
|
|
54
|
+
/** Module size */
|
|
55
|
+
export interface ModuleSize {
|
|
56
|
+
sourceSize: number;
|
|
57
|
+
/** Code size after transformed */
|
|
58
|
+
transformedSize: number;
|
|
59
|
+
/**
|
|
60
|
+
* Code size after compiled
|
|
61
|
+
* - The size the module occupies in the product after packing.
|
|
62
|
+
*/
|
|
63
|
+
parsedSize: number;
|
|
64
|
+
/**
|
|
65
|
+
* Gzipped size of the module source (optional)
|
|
66
|
+
*/
|
|
67
|
+
gzipSize: number;
|
|
68
|
+
}
|
|
69
|
+
/** Module source code */
|
|
70
|
+
export interface ModuleSource {
|
|
71
|
+
/** source code */
|
|
72
|
+
source: string;
|
|
73
|
+
/** transformed code */
|
|
74
|
+
transformed: string;
|
|
75
|
+
parsedSource: string;
|
|
76
|
+
}
|
|
77
|
+
/** Module Metadata */
|
|
78
|
+
export interface ModuleBuildMeta {
|
|
79
|
+
/**
|
|
80
|
+
* Whether to include the esModule flag statement
|
|
81
|
+
* ```js
|
|
82
|
+
* Object.defineProperty(exports, "__esModule", { value: true });
|
|
83
|
+
* ```
|
|
84
|
+
* - This statement usually appears in the object code of the tsc to cjs module.
|
|
85
|
+
*/
|
|
86
|
+
hasSetEsModuleStatement: boolean;
|
|
87
|
+
/**
|
|
88
|
+
* Strict ESM module.
|
|
89
|
+
*/
|
|
90
|
+
strictHarmonyModule: boolean;
|
|
91
|
+
packageData?: PackageData;
|
|
92
|
+
}
|
|
93
|
+
/** Module type */
|
|
94
|
+
export declare enum ModuleKind {
|
|
95
|
+
/** Normal module */
|
|
96
|
+
Normal = 0,
|
|
97
|
+
/** Aggregation module */
|
|
98
|
+
Concatenation = 1
|
|
99
|
+
}
|
|
100
|
+
export declare enum ToDataType {
|
|
101
|
+
NoCode = 0,
|
|
102
|
+
/** Normal mode */
|
|
103
|
+
Normal = 1,
|
|
104
|
+
/** Lite mode: no source code */
|
|
105
|
+
NoSource = 2,
|
|
106
|
+
/** Lite & No Assets Code mode */
|
|
107
|
+
NoSourceAndAssets = 3,
|
|
108
|
+
/** All Data, include module transformed data. */
|
|
109
|
+
All = 4
|
|
110
|
+
}
|
|
111
|
+
export interface ModuleInstance {
|
|
112
|
+
/** Module identifier */
|
|
113
|
+
readonly id: number;
|
|
114
|
+
/** webpack render identifier */
|
|
115
|
+
readonly renderId?: string;
|
|
116
|
+
/** webpack identifier */
|
|
117
|
+
readonly webpackId: string;
|
|
118
|
+
/** Module path */
|
|
119
|
+
readonly path: string;
|
|
120
|
+
readonly isEntry: boolean;
|
|
121
|
+
readonly kind: ModuleKind;
|
|
122
|
+
/** Root module in aggregate module */
|
|
123
|
+
readonly rootModule?: ModuleInstance;
|
|
124
|
+
readonly layer?: string;
|
|
125
|
+
/**
|
|
126
|
+
* Preference to source location
|
|
127
|
+
* - Indicates that the source code is not empty and there is source code location mapping data.
|
|
128
|
+
*/
|
|
129
|
+
isPreferSource: boolean;
|
|
130
|
+
/** Build properties */
|
|
131
|
+
meta: ModuleBuildMeta;
|
|
132
|
+
/** Issuer paths */
|
|
133
|
+
issuerPath?: StatsModule['issuerPath'];
|
|
134
|
+
bailoutReason?: string[];
|
|
135
|
+
/** Get the Chunks instance where the module in.*/
|
|
136
|
+
getChunks(): ChunkInstance[];
|
|
137
|
+
/** Add Chunk instance */
|
|
138
|
+
addChunk(chunk: ChunkInstance): void;
|
|
139
|
+
removeChunk(chunk: ChunkInstance): void;
|
|
140
|
+
getDependencies(): DependencyInstance[];
|
|
141
|
+
getDependencyByRequest(request: string): DependencyInstance | undefined;
|
|
142
|
+
/** Get dependency data from module */
|
|
143
|
+
getDependencyByModule(module: ModuleInstance): DependencyInstance | undefined;
|
|
144
|
+
removeDependency(dependency: DependencyInstance): void;
|
|
145
|
+
/** Remove dependency data from module */
|
|
146
|
+
removeDependencyByModule(module: ModuleInstance): void;
|
|
147
|
+
removeImported(module: ModuleInstance): void;
|
|
148
|
+
getImported(): ModuleInstance[];
|
|
149
|
+
addImported(module: ModuleInstance): void;
|
|
150
|
+
addDependency(request: string, module: ModuleInstance, kind: DependencyKind, statements?: StatementInstance[]): DependencyInstance | undefined;
|
|
151
|
+
toData(contextPath?: string, isBrief?: boolean): ModuleData;
|
|
152
|
+
setSource(source: Partial<ModuleSource>): void;
|
|
153
|
+
getSource(type?: ToDataType): ModuleSource;
|
|
154
|
+
/**Set code AST after transform */
|
|
155
|
+
setProgram(program: Program): void;
|
|
156
|
+
/** Get the converted code AST */
|
|
157
|
+
getProgram(): Program | undefined;
|
|
158
|
+
/** Set module size information */
|
|
159
|
+
setSize(size: Partial<ModuleSize>): void;
|
|
160
|
+
getSize(): ModuleSize;
|
|
161
|
+
setSourceMap(sourcemap: SourceMapConsumer): void;
|
|
162
|
+
/** Get source code mapping */
|
|
163
|
+
getSourceMap(): SourceMapConsumer | undefined;
|
|
164
|
+
/**
|
|
165
|
+
* Generate statement instances
|
|
166
|
+
* @param transformed {SourceRange} The location of the transformed code.
|
|
167
|
+
*/
|
|
168
|
+
getStatement(transformed: SourceRange): StatementInstance | undefined;
|
|
169
|
+
/**
|
|
170
|
+
* Generate original code location
|
|
171
|
+
* @param transformed {SourceRange} The location of the transformed code.
|
|
172
|
+
*/
|
|
173
|
+
getSourceRange(transformed: SourceRange): SourceRange | undefined;
|
|
174
|
+
/** Add connected submodules */
|
|
175
|
+
addNormalModule(module: ModuleInstance): void;
|
|
176
|
+
/** If it is currently a connection module, return all connected base sub packages */
|
|
177
|
+
getNormalModules(): ModuleInstance[];
|
|
178
|
+
/** Added aggregation module */
|
|
179
|
+
addConcatenationModule(module: ModuleInstance): void;
|
|
180
|
+
/** Get all aggregated modules to which the current module belongs */
|
|
181
|
+
getConcatenationModules(): ModuleInstance[];
|
|
182
|
+
setId(id: number): void;
|
|
183
|
+
setChunks(chunks: ChunkInstance[]): void;
|
|
184
|
+
setDependencies(dependencies: DependencyInstance[]): void;
|
|
185
|
+
setImported(imported: ModuleInstance[]): void;
|
|
186
|
+
setModules(modules: ModuleInstance[]): void;
|
|
187
|
+
setConcatenationModules(modules: ModuleInstance[]): void;
|
|
188
|
+
setRenderId(renderId: string): void;
|
|
189
|
+
/** Add an issuer path */
|
|
190
|
+
addIssuerPath(issuerPath: StatsModule['issuerPath']): void;
|
|
191
|
+
/** Get issuer path */
|
|
192
|
+
getIssuerPath(): StatsModule['issuerPath'];
|
|
193
|
+
/** Add bailout reason */
|
|
194
|
+
addBailoutReason(reason: string): void;
|
|
195
|
+
/** Get bailout reason */
|
|
196
|
+
getBailoutReason(): string[];
|
|
197
|
+
/** Side effect location data (e.g. from Rspack sideEffectsLocations) */
|
|
198
|
+
sideEffectLocations?: SideEffectLocationData[];
|
|
199
|
+
/** Add a side effect location */
|
|
200
|
+
addSideEffectLocation(location: SideEffectLocationData): void;
|
|
201
|
+
/** Get side effect locations */
|
|
202
|
+
getSideEffectLocations(): SideEffectLocationData[];
|
|
203
|
+
/** Add side effect code */
|
|
204
|
+
addSideEffectCode(codeData: SideEffectCodeData): void;
|
|
205
|
+
/** Get side effect codes */
|
|
206
|
+
getSideEffectCodes(): SideEffectCodeData[];
|
|
207
|
+
}
|
|
208
|
+
/** Depends on Metadata */
|
|
209
|
+
export interface DependencyBuildMeta {
|
|
210
|
+
/**
|
|
211
|
+
* Types of dependencies between modules
|
|
212
|
+
* - The basis for webpack to add runtime to modules.
|
|
213
|
+
*
|
|
214
|
+
* @link https://github.com/webpack/webpack/blob/v5.75.0/lib/Module.js#L428
|
|
215
|
+
* @link https://github.com/webpack/webpack/blob/v4.46.0/lib/RuntimeTemplate.js#L215
|
|
216
|
+
*/
|
|
217
|
+
exportsType: 'namespace' | 'default-only' | 'default-with-named' | 'dynamic';
|
|
218
|
+
}
|
|
219
|
+
export interface DependencyInstance {
|
|
220
|
+
/** Identifier */
|
|
221
|
+
readonly id: number;
|
|
222
|
+
/**
|
|
223
|
+
* Original request
|
|
224
|
+
* - refers to the original request in the import statement
|
|
225
|
+
* - @example `import {Instance} from'chalk'` in the statement 'chalk'
|
|
226
|
+
*/
|
|
227
|
+
readonly request: string;
|
|
228
|
+
/** actual requested path */
|
|
229
|
+
readonly resolvedRequest: string;
|
|
230
|
+
/** Module */
|
|
231
|
+
readonly module: ModuleInstance;
|
|
232
|
+
/**
|
|
233
|
+
* Dependency Module
|
|
234
|
+
* - Always non-aggregated modules
|
|
235
|
+
*/
|
|
236
|
+
readonly dependency: ModuleInstance;
|
|
237
|
+
/**
|
|
238
|
+
* Original dependency module
|
|
239
|
+
* - Aggregation module preferred
|
|
240
|
+
*/
|
|
241
|
+
readonly originDependency: ModuleInstance;
|
|
242
|
+
/**
|
|
243
|
+
* Citation method
|
|
244
|
+
* - Numeric enumeration
|
|
245
|
+
*/
|
|
246
|
+
readonly kind: DependencyKind;
|
|
247
|
+
/**
|
|
248
|
+
* Citation method
|
|
249
|
+
* - string enumeration
|
|
250
|
+
*/
|
|
251
|
+
readonly kindString: keyof typeof DependencyKind;
|
|
252
|
+
/**
|
|
253
|
+
* Original dependency type string from the bundler (e.g. 'cjs require', 'cjs full require', 'esm import')
|
|
254
|
+
*/
|
|
255
|
+
typeString?: string;
|
|
256
|
+
/** Whether to connect to the aggregation module */
|
|
257
|
+
readonly resolveConcatenationModule: boolean;
|
|
258
|
+
/** quote statement */
|
|
259
|
+
readonly statements: StatementInstance[];
|
|
260
|
+
/** build attribute */
|
|
261
|
+
meta: DependencyBuildMeta;
|
|
262
|
+
/** Generate data */
|
|
263
|
+
toData(): DependencyData;
|
|
264
|
+
/** Add statement */
|
|
265
|
+
addStatement(statement: StatementInstance): void;
|
|
266
|
+
/** Whether this statement is included */
|
|
267
|
+
hasStatement(statement: StatementInstance): boolean;
|
|
268
|
+
/**
|
|
269
|
+
* Is it the same dependency?
|
|
270
|
+
* - Check properties other than id and statements
|
|
271
|
+
*/
|
|
272
|
+
isSameWithoutStatements(dep: DependencyInstance): boolean;
|
|
273
|
+
setBuildMeta(data: DependencyBuildMeta): void;
|
|
274
|
+
setId(id: number): void;
|
|
275
|
+
}
|
|
276
|
+
export type ModuleGraphToDataArgs = {
|
|
277
|
+
contextPath: string;
|
|
278
|
+
briefOptions?: BriefModeOptions;
|
|
279
|
+
};
|
|
280
|
+
export interface ModuleGraphInstance {
|
|
281
|
+
/** Clear data */
|
|
282
|
+
clear(): void;
|
|
283
|
+
/** How many modules are there in total */
|
|
284
|
+
size(): number;
|
|
285
|
+
/** overwrite data */
|
|
286
|
+
fromInstance(data: ModuleGraphInstance): void;
|
|
287
|
+
/** Create module connection data */
|
|
288
|
+
addModuleGraphModule(info: ModuleGraphModuleInstance): void;
|
|
289
|
+
/** Get module connection data */
|
|
290
|
+
getModuleGraphModule(module: ModuleInstance): ModuleGraphModuleInstance;
|
|
291
|
+
/** Get all module connection data */
|
|
292
|
+
getModuleGraphModules(): ModuleGraphModuleInstance[];
|
|
293
|
+
/** Get all modules */
|
|
294
|
+
getModules(): ModuleInstance[];
|
|
295
|
+
/** Get all modules */
|
|
296
|
+
getDependencies(): DependencyInstance[];
|
|
297
|
+
/** Get connection by id */
|
|
298
|
+
getDependencyById(id: number): DependencyInstance | undefined;
|
|
299
|
+
/** Get entrance module */
|
|
300
|
+
getEntryModules(): ModuleInstance[];
|
|
301
|
+
/** Get the subgraph of the current node as the entry point */
|
|
302
|
+
getSubGraphByModule(module: ModuleInstance): ModuleInstance[];
|
|
303
|
+
/** Get module by id */
|
|
304
|
+
getModuleById(id: number): ModuleInstance | undefined;
|
|
305
|
+
/** get module by webpackId */
|
|
306
|
+
getModuleByWebpackId(webpackId: string): ModuleInstance | undefined;
|
|
307
|
+
/** Get module by path */
|
|
308
|
+
getModuleByFile(file: string, layer?: string): ModuleInstance[] | [];
|
|
309
|
+
/** Add Module */
|
|
310
|
+
addModule(module: ModuleInstance): void;
|
|
311
|
+
/** Add module connection */
|
|
312
|
+
addDependency(module: DependencyInstance): void;
|
|
313
|
+
/**
|
|
314
|
+
* Remove module
|
|
315
|
+
* - The connection relationship of this module will also be removed
|
|
316
|
+
*/
|
|
317
|
+
removeModule(module: ModuleInstance): void;
|
|
318
|
+
/**
|
|
319
|
+
* Remove connection
|
|
320
|
+
* - If one of the connected endpoints is an independent module, this module will also be removed from the module diagram
|
|
321
|
+
*/
|
|
322
|
+
removeDependency(dependency: DependencyInstance): void;
|
|
323
|
+
/** Add export data */
|
|
324
|
+
addExportInfo(data: ExportInstance): void;
|
|
325
|
+
/** Add side effect data */
|
|
326
|
+
addSideEffect(data: SideEffectInstance): void;
|
|
327
|
+
/** Add variable data */
|
|
328
|
+
addVariable(data: VariableInstance): void;
|
|
329
|
+
/** Generate data */
|
|
330
|
+
toData(configs?: ModuleGraphToDataArgs): ModuleGraphData;
|
|
331
|
+
/** Generate tree shaking data */
|
|
332
|
+
toTreeShakingData(): TreeShakingData;
|
|
333
|
+
/** Generate data */
|
|
334
|
+
toCodeData(type?: ToDataType): ModuleCodeData;
|
|
335
|
+
setModules(modules: ModuleInstance[]): void;
|
|
336
|
+
setDependencies(dependencies: DependencyInstance[]): void;
|
|
337
|
+
setConnectionsOnlyImports(items: ConnectionsOnlyImportData[]): void;
|
|
338
|
+
getConnectionsOnlyImports(): ConnectionsOnlyImportData[];
|
|
339
|
+
}
|
|
340
|
+
export interface ModuleData extends Omit<NonFunctionProperties<ModuleInstance>, 'rootModule' | 'isEntry' | 'concatenationModules' | 'meta' | 'issuerPath'> {
|
|
341
|
+
/** chunk identifier */
|
|
342
|
+
chunks: string[];
|
|
343
|
+
/** Module identifier on which the module depends */
|
|
344
|
+
dependencies: number[];
|
|
345
|
+
/** Identifier of the dependent module */
|
|
346
|
+
imported: number[];
|
|
347
|
+
/** Is it an entrance module */
|
|
348
|
+
isEntry?: boolean | undefined;
|
|
349
|
+
/** Use source code location first */
|
|
350
|
+
isPreferSource: boolean;
|
|
351
|
+
/** Module size */
|
|
352
|
+
size: ModuleSize;
|
|
353
|
+
layer?: string;
|
|
354
|
+
/** Connected base subpackage */
|
|
355
|
+
modules?: number[];
|
|
356
|
+
/** root module number */
|
|
357
|
+
rootModule?: number;
|
|
358
|
+
/** Affiliated aggregation module number */
|
|
359
|
+
concatenationModules?: number[];
|
|
360
|
+
/** Module Id */
|
|
361
|
+
webpackId: string;
|
|
362
|
+
/** Build original attributes */
|
|
363
|
+
meta?: Partial<Omit<ModuleBuildMeta, 'packageData'>>;
|
|
364
|
+
/** Issuer path */
|
|
365
|
+
issuerPath?: string[] | number[];
|
|
366
|
+
/** Side effect location data (e.g. from Rspack sideEffectsLocations) */
|
|
367
|
+
sideEffectLocations?: SideEffectLocationData[];
|
|
368
|
+
}
|
|
369
|
+
export type ModuleCodeData = Record<number, ModuleSource>;
|
|
370
|
+
/** Tree shaking analysis data */
|
|
371
|
+
export interface TreeShakingData {
|
|
372
|
+
sideEffectCodes: Record<number, SideEffectCodeData[]>;
|
|
373
|
+
}
|
|
374
|
+
export interface DependencyData extends Omit<NonFunctionProperties<DependencyInstance>, 'module' | 'dependency' | 'statements' | 'originDependency' | 'kindString' | 'resolveConcatenationModule' | 'meta'> {
|
|
375
|
+
/** Module Identifier */
|
|
376
|
+
module: number;
|
|
377
|
+
/** Dependency Module Identifier */
|
|
378
|
+
dependency: number;
|
|
379
|
+
/** Original module identifier */
|
|
380
|
+
originDependency: number;
|
|
381
|
+
/** quote statement */
|
|
382
|
+
statements: StatementData[];
|
|
383
|
+
}
|
|
384
|
+
/** Module connection data from rspack module graph */
|
|
385
|
+
export interface ConnectionData {
|
|
386
|
+
ukey: number;
|
|
387
|
+
dependencyId: string;
|
|
388
|
+
module: number;
|
|
389
|
+
originModule?: number;
|
|
390
|
+
resolvedModule: number;
|
|
391
|
+
dependencyType: string;
|
|
392
|
+
userRequest: string;
|
|
393
|
+
loc?: string;
|
|
394
|
+
active: boolean;
|
|
395
|
+
}
|
|
396
|
+
export interface ModuleGraphData {
|
|
397
|
+
dependencies: DependencyData[];
|
|
398
|
+
modules: ModuleData[];
|
|
399
|
+
moduleGraphModules: ModuleGraphModuleData[];
|
|
400
|
+
exports: ExportData[];
|
|
401
|
+
sideEffects: SideEffectData[];
|
|
402
|
+
variables: VariableData[];
|
|
403
|
+
layers?: string[];
|
|
404
|
+
connections?: ConnectionData[];
|
|
405
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import type { ModuleInstance, DependencyInstance, ModuleSize } from './module';
|
|
2
|
+
import type { NonFunctionProperties } from '../common';
|
|
3
|
+
export interface PackageJSONData {
|
|
4
|
+
/** package name */
|
|
5
|
+
name: string;
|
|
6
|
+
version: string;
|
|
7
|
+
type?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface PackageBasicData extends PackageJSONData {
|
|
10
|
+
/** Directory where the package is located */
|
|
11
|
+
root: string;
|
|
12
|
+
}
|
|
13
|
+
export type CrossChunksPackageType = {
|
|
14
|
+
module: {
|
|
15
|
+
id: number;
|
|
16
|
+
path: string;
|
|
17
|
+
};
|
|
18
|
+
chunks: {
|
|
19
|
+
name: string;
|
|
20
|
+
}[];
|
|
21
|
+
};
|
|
22
|
+
export interface PackageInstance extends PackageBasicData {
|
|
23
|
+
id: number;
|
|
24
|
+
duplicates?: CrossChunksPackageType[];
|
|
25
|
+
setDuplicates(data: CrossChunksPackageType): void;
|
|
26
|
+
/** Get all modules contained in the package */
|
|
27
|
+
getModules(): ModuleInstance[];
|
|
28
|
+
/** Get all dependencies */
|
|
29
|
+
getDependencies(): PackageDependencyInstance[];
|
|
30
|
+
/** Get the dependency chain of the current package */
|
|
31
|
+
getDependenciesChain(graph: PackageGraphInstance): PackageDependencyInstance[];
|
|
32
|
+
/** Get all dependencies */
|
|
33
|
+
getImported(): PackageInstance[];
|
|
34
|
+
addModule(module: ModuleInstance): void;
|
|
35
|
+
/** Add package dependencies */
|
|
36
|
+
addDependency(dep: PackageDependencyInstance): void;
|
|
37
|
+
/** Add dependency */
|
|
38
|
+
addImported(pkg: PackageInstance): void;
|
|
39
|
+
/** Whether this path is included */
|
|
40
|
+
contain(path: string): boolean;
|
|
41
|
+
/** Is it the same package */
|
|
42
|
+
isSame(pkg: PackageInstance): boolean;
|
|
43
|
+
/** Get package size */
|
|
44
|
+
getSize(): ModuleSize;
|
|
45
|
+
/** Get data */
|
|
46
|
+
toData(): PackageData;
|
|
47
|
+
}
|
|
48
|
+
export interface PackageData extends NonFunctionProperties<PackageInstance> {
|
|
49
|
+
modules?: number[];
|
|
50
|
+
size: ModuleSize;
|
|
51
|
+
}
|
|
52
|
+
export interface PackageDependencyInstance {
|
|
53
|
+
/** Number */
|
|
54
|
+
id: number;
|
|
55
|
+
/** Dependency package */
|
|
56
|
+
dependency: PackageInstance;
|
|
57
|
+
/**
|
|
58
|
+
* Current package
|
|
59
|
+
* - This item is local package data when using user code
|
|
60
|
+
*/
|
|
61
|
+
package: PackageInstance;
|
|
62
|
+
/** Module dependency where the dependency statement is located */
|
|
63
|
+
refDependency: DependencyInstance;
|
|
64
|
+
/** Is it the same reference */
|
|
65
|
+
isSame(dep: PackageDependencyInstance): boolean;
|
|
66
|
+
/** Get data */
|
|
67
|
+
toData(): PackageDependencyData;
|
|
68
|
+
}
|
|
69
|
+
export interface PackageDependencyData extends Omit<NonFunctionProperties<PackageDependencyInstance>, 'dependency' | 'package' | 'refDependency'> {
|
|
70
|
+
dependency: number;
|
|
71
|
+
package: number;
|
|
72
|
+
refDependency: number;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Get the contents of the package.json file
|
|
76
|
+
* @param {string} Relative project root directory path
|
|
77
|
+
*/
|
|
78
|
+
export type GetPackageFile = (path: string) => PackageJSONData | undefined;
|
|
79
|
+
export interface PackageGraphInstance {
|
|
80
|
+
/**
|
|
81
|
+
* Get all package data
|
|
82
|
+
*/
|
|
83
|
+
getPackages(): PackageInstance[];
|
|
84
|
+
/**
|
|
85
|
+
* Get package data from module
|
|
86
|
+
* The new package will create new data and join the cache
|
|
87
|
+
* - If created, old data will be returned
|
|
88
|
+
*/
|
|
89
|
+
getPackageByModule(module: ModuleInstance, readFile?: GetPackageFile): PackageInstance | undefined;
|
|
90
|
+
/**
|
|
91
|
+
* Get package data from file
|
|
92
|
+
* - No new data will be created
|
|
93
|
+
*/
|
|
94
|
+
getPackageByFile(file: string): PackageInstance | undefined;
|
|
95
|
+
/**
|
|
96
|
+
* Get package data from data
|
|
97
|
+
* - No new data will be created
|
|
98
|
+
*/
|
|
99
|
+
getPackageByData(data: PackageBasicData): PackageInstance | undefined;
|
|
100
|
+
/**
|
|
101
|
+
* Get package data from name
|
|
102
|
+
*/
|
|
103
|
+
getPackagesByName(name: string): PackageInstance[];
|
|
104
|
+
/**
|
|
105
|
+
* Get dependencies from package
|
|
106
|
+
* - The input package is dependent
|
|
107
|
+
*/
|
|
108
|
+
getDependenciesFromPackage(pkg: PackageInstance): PackageDependencyInstance[];
|
|
109
|
+
/** Get package dependencies imported from user code */
|
|
110
|
+
getDependenciesFromOrigin(): PackageDependencyInstance[];
|
|
111
|
+
/** Add package data */
|
|
112
|
+
addPackage(pkg: PackageInstance): void;
|
|
113
|
+
/** Add dependency data */
|
|
114
|
+
addDependency(dep: PackageDependencyInstance): void;
|
|
115
|
+
/** Get duplicate package data */
|
|
116
|
+
getDuplicatePackages(): PackageInstance[][];
|
|
117
|
+
toData(): PackageGraphData;
|
|
118
|
+
}
|
|
119
|
+
export interface PackageGraphData {
|
|
120
|
+
packages: PackageData[];
|
|
121
|
+
dependencies: PackageDependencyData[];
|
|
122
|
+
}
|
|
123
|
+
export interface OtherReports {
|
|
124
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DevToolErrorInstance } from '../error';
|
|
2
|
+
export interface PluginHookData {
|
|
3
|
+
/** hook tap name */
|
|
4
|
+
tapName: string;
|
|
5
|
+
/** hook call time-consuming */
|
|
6
|
+
costs: number;
|
|
7
|
+
startAt: number;
|
|
8
|
+
endAt: number;
|
|
9
|
+
/** hook function type */
|
|
10
|
+
type: 'sync' | 'async' | 'promise';
|
|
11
|
+
/** hook function result */
|
|
12
|
+
result: any;
|
|
13
|
+
/** hook function running error */
|
|
14
|
+
error: DevToolErrorInstance[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Plugin data
|
|
18
|
+
* - Key name Hook name
|
|
19
|
+
* - Key value is the hook data array
|
|
20
|
+
*/
|
|
21
|
+
export type PluginData = Record<string, PluginHookData[]>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ProcessData } from './process';
|
|
2
|
+
export interface ResolveStackData {
|
|
3
|
+
/** Step name */
|
|
4
|
+
name: string;
|
|
5
|
+
/** trying to resolve path */
|
|
6
|
+
path: string;
|
|
7
|
+
/** Request parameters */
|
|
8
|
+
request?: string;
|
|
9
|
+
/** Request path parameter */
|
|
10
|
+
query?: string;
|
|
11
|
+
/** Request fragment connection */
|
|
12
|
+
fragment?: string;
|
|
13
|
+
/** Whether to request a module */
|
|
14
|
+
module?: boolean;
|
|
15
|
+
/** Whether to request a module */
|
|
16
|
+
file?: boolean;
|
|
17
|
+
/** Whether to request a folder */
|
|
18
|
+
directory?: boolean;
|
|
19
|
+
/** Whether to request internal module */
|
|
20
|
+
internal?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface PathResolverBaseData extends ProcessData {
|
|
23
|
+
/** Is it an entry file request */
|
|
24
|
+
isEntry: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* The path to send the request
|
|
27
|
+
* - When the entry file is requested, it is represented as the project root directory
|
|
28
|
+
* - When requesting a file, it is represented as a file directory
|
|
29
|
+
*/
|
|
30
|
+
issuerPath: string;
|
|
31
|
+
/** Original request */
|
|
32
|
+
request: string;
|
|
33
|
+
/** Request parameters */
|
|
34
|
+
query?: string;
|
|
35
|
+
startAt: number;
|
|
36
|
+
endAt: number;
|
|
37
|
+
}
|
|
38
|
+
export interface PathResolverSuccessData extends PathResolverBaseData {
|
|
39
|
+
/**
|
|
40
|
+
* the resolved result.
|
|
41
|
+
*/
|
|
42
|
+
result: string;
|
|
43
|
+
}
|
|
44
|
+
export interface PathResolverFailData extends PathResolverBaseData {
|
|
45
|
+
error: Error;
|
|
46
|
+
/**
|
|
47
|
+
* stacks of the resolve paths which try to resolve.
|
|
48
|
+
*/
|
|
49
|
+
stacks: ResolveStackData[];
|
|
50
|
+
}
|
|
51
|
+
export type PathResolverData = PathResolverSuccessData | PathResolverFailData;
|
|
52
|
+
export type ResolverData = PathResolverData[];
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { EmoCheckData } from '../emo';
|
|
2
|
+
import { LoaderData } from './loader';
|
|
3
|
+
import { ModuleGraphData, ModuleCodeData, TreeShakingData } from './module';
|
|
4
|
+
import { ChunkGraphData } from './chunk';
|
|
5
|
+
import { ResolverData } from './resolver';
|
|
6
|
+
import { PluginData } from './plugin';
|
|
7
|
+
import { SummaryData } from './summary';
|
|
8
|
+
import { ConfigData } from './config';
|
|
9
|
+
import { RuleStoreData } from '../rule';
|
|
10
|
+
import type { EnvInfo } from './envinfo';
|
|
11
|
+
import { PackageGraphData, OtherReports } from './package';
|
|
12
|
+
export type ErrorsData = RuleStoreData;
|
|
13
|
+
interface StoreCommonData {
|
|
14
|
+
hash: string;
|
|
15
|
+
root: string;
|
|
16
|
+
pid: number;
|
|
17
|
+
envinfo: EnvInfo;
|
|
18
|
+
}
|
|
19
|
+
export interface BuilderStoreData extends StoreCommonData {
|
|
20
|
+
[key: string]: any;
|
|
21
|
+
errors: ErrorsData;
|
|
22
|
+
configs: ConfigData;
|
|
23
|
+
summary: SummaryData;
|
|
24
|
+
resolver: ResolverData;
|
|
25
|
+
loader: LoaderData;
|
|
26
|
+
plugin: PluginData;
|
|
27
|
+
moduleGraph: ModuleGraphData;
|
|
28
|
+
chunkGraph: ChunkGraphData;
|
|
29
|
+
packageGraph: PackageGraphData;
|
|
30
|
+
moduleCodeMap: ModuleCodeData;
|
|
31
|
+
treeShaking?: TreeShakingData;
|
|
32
|
+
otherReports?: OtherReports | undefined;
|
|
33
|
+
}
|
|
34
|
+
export interface EMOStoreData extends StoreCommonData {
|
|
35
|
+
emoCheck: EmoCheckData;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* @deprecated
|
|
39
|
+
*/
|
|
40
|
+
export interface StoreData extends Partial<Omit<EMOStoreData, keyof StoreCommonData>>, BuilderStoreData {
|
|
41
|
+
}
|
|
42
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { API } from './index';
|
|
2
|
+
import { OverlayRuleStoreData, RuleStoreDataItem } from '../../../rule';
|
|
3
|
+
import { DependencyData, ModuleData, ModuleSource } from '../../module';
|
|
4
|
+
import { PackageBasicData } from '../../package';
|
|
5
|
+
export interface AlertsAPIResponse {
|
|
6
|
+
/**
|
|
7
|
+
* get the details of the alerts which type is "package-relation"
|
|
8
|
+
*/
|
|
9
|
+
[API.GetPackageRelationAlertDetails]: {
|
|
10
|
+
group: string | void;
|
|
11
|
+
module: ModuleData;
|
|
12
|
+
dependency: DependencyData;
|
|
13
|
+
relativePath: string;
|
|
14
|
+
moduleCode: ModuleSource;
|
|
15
|
+
}[];
|
|
16
|
+
/**
|
|
17
|
+
* get the alerts list which use to display in overlay at the client page
|
|
18
|
+
*/
|
|
19
|
+
[API.GetOverlayAlerts]: OverlayRuleStoreData[];
|
|
20
|
+
/**
|
|
21
|
+
* get the alerts list which use to display in category bundle at the client page
|
|
22
|
+
*/
|
|
23
|
+
[API.GetBundleAlerts]: OverlayRuleStoreData[];
|
|
24
|
+
}
|
|
25
|
+
export interface AlertsAPIRequestBody {
|
|
26
|
+
[API.GetPackageRelationAlertDetails]: {
|
|
27
|
+
id: RuleStoreDataItem['id'];
|
|
28
|
+
target: PackageBasicData;
|
|
29
|
+
};
|
|
30
|
+
}
|