@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.
Files changed (64) hide show
  1. package/dist/babel.d.cts +13 -0
  2. package/dist/client.d.cts +164 -0
  3. package/dist/common.d.cts +26 -0
  4. package/dist/config.d.cts +75 -0
  5. package/dist/constants.d.cts +19 -0
  6. package/dist/emo.d.cts +28 -0
  7. package/dist/error.d.cts +137 -0
  8. package/dist/esbuild.d.cts +30 -0
  9. package/dist/index.d.cts +15 -0
  10. package/dist/linter/diagnostic.d.cts +48 -0
  11. package/dist/linter/index.d.cts +2 -0
  12. package/dist/linter/rule.d.cts +105 -0
  13. package/dist/logger.d.cts +9 -0
  14. package/dist/manifest.d.cts +68 -0
  15. package/dist/modules.d.cts +7 -0
  16. package/dist/plugin/baseCompiler.d.cts +33 -0
  17. package/dist/plugin/baseLoader.d.cts +78 -0
  18. package/dist/plugin/baseStats.d.cts +139 -0
  19. package/dist/plugin/index.d.cts +7 -0
  20. package/dist/plugin/internal-rules.d.cts +4 -0
  21. package/dist/plugin/plugin.d.cts +159 -0
  22. package/dist/plugin/rspack.d.cts +37 -0
  23. package/dist/plugin/webpack.d.cts +13 -0
  24. package/dist/rule/code/E1001.d.cts +3 -0
  25. package/dist/rule/code/E1002.d.cts +3 -0
  26. package/dist/rule/code/E1003.d.cts +3 -0
  27. package/dist/rule/code/E1004.d.cts +3 -0
  28. package/dist/rule/code/E1005.d.cts +3 -0
  29. package/dist/rule/code/E1006.d.cts +3 -0
  30. package/dist/rule/code/E1007.d.cts +3 -0
  31. package/dist/rule/code/E1008.d.cts +3 -0
  32. package/dist/rule/code/E1009.d.cts +3 -0
  33. package/dist/rule/code/index.d.cts +33 -0
  34. package/dist/rule/code/type.d.cts +27 -0
  35. package/dist/rule/data.d.cts +217 -0
  36. package/dist/rule/index.d.cts +2 -0
  37. package/dist/sdk/chunk.d.cts +142 -0
  38. package/dist/sdk/config.d.cts +12 -0
  39. package/dist/sdk/context.d.cts +23 -0
  40. package/dist/sdk/envinfo.d.cts +19 -0
  41. package/dist/sdk/hooks.d.cts +14 -0
  42. package/dist/sdk/index.d.cts +16 -0
  43. package/dist/sdk/instance.d.cts +110 -0
  44. package/dist/sdk/loader.d.cts +70 -0
  45. package/dist/sdk/module.d.cts +405 -0
  46. package/dist/sdk/package.d.cts +124 -0
  47. package/dist/sdk/plugin.d.cts +21 -0
  48. package/dist/sdk/process.d.cts +10 -0
  49. package/dist/sdk/resolver.d.cts +52 -0
  50. package/dist/sdk/result.d.cts +42 -0
  51. package/dist/sdk/server/apis/alerts.d.cts +30 -0
  52. package/dist/sdk/server/apis/graph.d.cts +49 -0
  53. package/dist/sdk/server/apis/index.d.cts +189 -0
  54. package/dist/sdk/server/apis/loader.d.cts +53 -0
  55. package/dist/sdk/server/apis/pagination.d.cts +11 -0
  56. package/dist/sdk/server/apis/plugin.d.cts +19 -0
  57. package/dist/sdk/server/apis/project.d.cts +18 -0
  58. package/dist/sdk/server/apis/resolver.d.cts +18 -0
  59. package/dist/sdk/server/index.d.cts +24 -0
  60. package/dist/sdk/statement.d.cts +178 -0
  61. package/dist/sdk/summary.d.cts +18 -0
  62. package/dist/sdk/treeShaking.d.cts +152 -0
  63. package/dist/thirdparty.d.cts +2 -0
  64. 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,10 @@
1
+ export interface ProcessData {
2
+ /**
3
+ * process id
4
+ */
5
+ pid: number;
6
+ /**
7
+ * parent process id
8
+ */
9
+ ppid: number | null;
10
+ }
@@ -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
+ }