@rsdoctor/core 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 (100) hide show
  1. package/dist/build-utils/build/chunks/assetsModules.d.cts +17 -0
  2. package/dist/build-utils/build/chunks/chunkTransform.d.cts +4 -0
  3. package/dist/build-utils/build/chunks/index.d.cts +3 -0
  4. package/dist/build-utils/build/chunks/rspack/transform.d.cts +13 -0
  5. package/dist/build-utils/build/index.d.cts +5 -0
  6. package/dist/build-utils/build/loader/index.d.cts +2 -0
  7. package/dist/build-utils/build/loader/probeLoader.d.cts +4 -0
  8. package/dist/build-utils/build/loader/probeLoaderPlugin.d.cts +5 -0
  9. package/dist/build-utils/build/module-graph/index.d.cts +4 -0
  10. package/dist/build-utils/build/module-graph/parser.d.cts +2 -0
  11. package/dist/build-utils/build/module-graph/rspack/transform.d.cts +26 -0
  12. package/dist/build-utils/build/module-graph/transform.d.cts +4 -0
  13. package/dist/build-utils/build/module-graph/treeShaking.d.cts +2 -0
  14. package/dist/build-utils/build/module-graph/utils.d.cts +3 -0
  15. package/dist/build-utils/build/module-graph/webpack/transform.cjs +1 -1
  16. package/dist/build-utils/build/module-graph/webpack/transform.d.cts +16 -0
  17. package/dist/build-utils/build/module-graph/webpack/transform.js +1 -1
  18. package/dist/build-utils/build/utils/index.d.cts +3 -0
  19. package/dist/build-utils/build/utils/loader.cjs +3 -4
  20. package/dist/build-utils/build/utils/loader.d.cts +20 -0
  21. package/dist/build-utils/build/utils/loader.js +3 -4
  22. package/dist/build-utils/build/utils/parseBundle.d.cts +12 -0
  23. package/dist/build-utils/build/utils/plugin.d.cts +5 -0
  24. package/dist/build-utils/index.d.cts +1 -0
  25. package/dist/index.d.cts +3 -0
  26. package/dist/inner-plugins/constants.d.cts +6 -0
  27. package/dist/inner-plugins/index.d.cts +2 -0
  28. package/dist/inner-plugins/loaders/proxy.cjs +10 -4
  29. package/dist/inner-plugins/loaders/proxy.d.cts +7 -0
  30. package/dist/inner-plugins/loaders/proxy.js +10 -4
  31. package/dist/inner-plugins/plugins/base.d.cts +12 -0
  32. package/dist/inner-plugins/plugins/bundle.d.cts +15 -0
  33. package/dist/inner-plugins/plugins/bundleTagPlugin.cjs +3 -3
  34. package/dist/inner-plugins/plugins/bundleTagPlugin.d.cts +6 -0
  35. package/dist/inner-plugins/plugins/bundleTagPlugin.js +3 -3
  36. package/dist/inner-plugins/plugins/ensureModulesChunkGraph.cjs +3 -3
  37. package/dist/inner-plugins/plugins/ensureModulesChunkGraph.d.cts +36 -0
  38. package/dist/inner-plugins/plugins/ensureModulesChunkGraph.js +3 -3
  39. package/dist/inner-plugins/plugins/errors.d.cts +11 -0
  40. package/dist/inner-plugins/plugins/index.d.cts +11 -0
  41. package/dist/inner-plugins/plugins/loader.d.cts +10 -0
  42. package/dist/inner-plugins/plugins/plugins.d.cts +8 -0
  43. package/dist/inner-plugins/plugins/progress.d.cts +8 -0
  44. package/dist/inner-plugins/plugins/resolver.d.cts +13 -0
  45. package/dist/inner-plugins/plugins/rspack.d.cts +4 -0
  46. package/dist/inner-plugins/plugins/rules.d.cts +8 -0
  47. package/dist/inner-plugins/plugins/sourcemapTool.cjs +2 -2
  48. package/dist/inner-plugins/plugins/sourcemapTool.d.cts +52 -0
  49. package/dist/inner-plugins/plugins/sourcemapTool.js +2 -2
  50. package/dist/inner-plugins/plugins/summary.cjs +1 -1
  51. package/dist/inner-plugins/plugins/summary.d.cts +14 -0
  52. package/dist/inner-plugins/plugins/summary.js +1 -1
  53. package/dist/inner-plugins/utils/circleDetect.d.cts +4 -0
  54. package/dist/inner-plugins/utils/config.d.cts +5 -0
  55. package/dist/inner-plugins/utils/index.d.cts +9 -0
  56. package/dist/inner-plugins/utils/loader.d.cts +13 -0
  57. package/dist/inner-plugins/utils/normalize-config.d.cts +40 -0
  58. package/dist/inner-plugins/utils/plugin-common.d.cts +11 -0
  59. package/dist/inner-plugins/utils/plugin.cjs +7 -7
  60. package/dist/inner-plugins/utils/plugin.d.cts +4 -0
  61. package/dist/inner-plugins/utils/plugin.js +7 -7
  62. package/dist/inner-plugins/utils/sdk.d.cts +8 -0
  63. package/dist/rules/index.d.cts +3 -0
  64. package/dist/rules/linter.d.cts +9 -0
  65. package/dist/rules/rule.cjs +1 -1
  66. package/dist/rules/rule.d.cts +27 -0
  67. package/dist/rules/rule.js +1 -1
  68. package/dist/rules/rules/cjs-require/index.d.cts +4 -0
  69. package/dist/rules/rules/cjs-require/types.d.cts +7 -0
  70. package/dist/rules/rules/cross-chunks-package/index.d.cts +4 -0
  71. package/dist/rules/rules/cross-chunks-package/types.d.cts +3 -0
  72. package/dist/rules/rules/cross-chunks-package/utils.d.cts +1 -0
  73. package/dist/rules/rules/default-import-check/index.d.cts +4 -0
  74. package/dist/rules/rules/default-import-check/types.d.cts +4 -0
  75. package/dist/rules/rules/default-import-check/utils.d.cts +10 -0
  76. package/dist/rules/rules/duplicate-package/index.d.cts +4 -0
  77. package/dist/rules/rules/duplicate-package/types.d.cts +24 -0
  78. package/dist/rules/rules/duplicate-package/utils.d.cts +3 -0
  79. package/dist/rules/rules/ecma-version-check/index.d.cts +4 -0
  80. package/dist/rules/rules/ecma-version-check/types.d.cts +3 -0
  81. package/dist/rules/rules/ecma-version-check/utils.d.cts +2 -0
  82. package/dist/rules/rules/esm-resolved-to-cjs/index.cjs +30 -2
  83. package/dist/rules/rules/esm-resolved-to-cjs/index.d.cts +4 -0
  84. package/dist/rules/rules/esm-resolved-to-cjs/index.js +30 -2
  85. package/dist/rules/rules/esm-resolved-to-cjs/types.d.cts +8 -0
  86. package/dist/rules/rules/index.d.cts +1 -0
  87. package/dist/rules/rules/loader-performance-optimization/index.d.cts +4 -0
  88. package/dist/rules/rules/loader-performance-optimization/types.d.cts +22 -0
  89. package/dist/rules/rules/loader-performance-optimization/utils.d.cts +1 -0
  90. package/dist/rules/rules/module-mixed-chunks/index.d.cts +4 -0
  91. package/dist/rules/rules/module-mixed-chunks/types.d.cts +3 -0
  92. package/dist/rules/rules/side-effects-only-imports/index.d.cts +4 -0
  93. package/dist/rules/rules/side-effects-only-imports/types.d.cts +9 -0
  94. package/dist/rules/utils.d.cts +3 -0
  95. package/dist/types/chunks.d.cts +6 -0
  96. package/dist/types/index.d.cts +4 -0
  97. package/dist/types/loader.d.cts +19 -0
  98. package/dist/types/plugin.d.cts +51 -0
  99. package/dist/types/rules.d.cts +7 -0
  100. package/package.json +46 -21
@@ -0,0 +1,22 @@
1
+ import type { SDK } from '@rsdoctor/types';
2
+ export interface Config {
3
+ /**
4
+ * loaders which should be ignore.
5
+ */
6
+ ignore?: (string | RegExp)[];
7
+ /**
8
+ * threshold which the loader total costs.
9
+ * @unit millisecond
10
+ * @default 5000
11
+ */
12
+ threshold?: number;
13
+ /**
14
+ * the file extensions which will be match in rule check.
15
+ * @default ["js", "css", "jpg", "jpeg", "png", "gif", "webp", "svg"]
16
+ */
17
+ extensions?: (string | RegExp)[];
18
+ }
19
+ export interface LoaderMapValue extends SDK.LoaderTransformData {
20
+ __resource__: SDK.ResourceData;
21
+ __costs__: number;
22
+ }
@@ -0,0 +1 @@
1
+ export declare function match(str: string, patterns: (string | RegExp)[]): boolean;
@@ -0,0 +1,4 @@
1
+ import { Linter } from '@rsdoctor/types';
2
+ import { Config } from './types';
3
+ export type { Config } from './types';
4
+ export declare const rule: Linter.RuleData<Config, "module-mixed-chunks">;
@@ -0,0 +1,3 @@
1
+ export interface Config {
2
+ ignore: string[];
3
+ }
@@ -0,0 +1,4 @@
1
+ import { Linter } from '@rsdoctor/types';
2
+ import type { Config } from './types';
3
+ export type { Config } from './types';
4
+ export declare const rule: Linter.RuleData<Config, "tree-shaking-side-effects-only">;
@@ -0,0 +1,9 @@
1
+ export interface Config {
2
+ /** Module path patterns to ignore */
3
+ ignore: string[];
4
+ /**
5
+ * Module path patterns to include when the module is under node_modules.
6
+ * Example: ['react', '@babel/runtime']
7
+ */
8
+ include: string[];
9
+ }
@@ -0,0 +1,3 @@
1
+ import { Linter } from '@rsdoctor/types';
2
+ export declare function toSeverity(input: Linter.SeverityInput, defaultLevel: Linter.Severity): Linter.Severity;
3
+ export declare function noop(): void;
@@ -0,0 +1,6 @@
1
+ import { Plugin } from '@rsdoctor/types';
2
+ export type AssetsModules = {
3
+ label?: string;
4
+ isAsset?: boolean;
5
+ modules?: Plugin.StatsModule[];
6
+ };
@@ -0,0 +1,4 @@
1
+ export * from './chunks';
2
+ export * from './rules';
3
+ export * from './loader';
4
+ export * from './plugin';
@@ -0,0 +1,19 @@
1
+ import { Loader } from '@rsdoctor/utils/common';
2
+ export interface ProxyLoaderInternalOptions {
3
+ cwd: string;
4
+ /**
5
+ * the url host of http server(which used to collect data).
6
+ */
7
+ host: string;
8
+ /**
9
+ * correct loader path.
10
+ */
11
+ loader: string;
12
+ /** include the loader option */
13
+ hasOptions: boolean;
14
+ skipLoaders: string[];
15
+ }
16
+ export interface ProxyLoaderOptions {
17
+ [key: string]: any;
18
+ [Loader.LoaderInternalPropertyName]: ProxyLoaderInternalOptions;
19
+ }
@@ -0,0 +1,51 @@
1
+ import type { RsdoctorPrimarySDK } from '@rsdoctor/sdk';
2
+ import type { Linter, Linter as LinterType, Plugin, SDK } from '@rsdoctor/types';
3
+ export interface RsdoctorMultiplePluginOptions<Rules extends LinterType.ExtendRuleData[] = LinterType.ExtendRuleData[]> extends Omit<Plugin.RsdoctorWebpackPluginOptions<Rules>, 'sdkInstance'>, Pick<ConstructorParameters<typeof RsdoctorPrimarySDK>[0], 'stage'> {
4
+ /**
5
+ * name of builder
6
+ */
7
+ name?: string;
8
+ }
9
+ export interface BasePluginInstance<T extends Plugin.BaseCompiler> {
10
+ apply: (compiler: T) => void;
11
+ [k: string]: any;
12
+ }
13
+ export interface InternalPlugin<T extends Plugin.BaseCompiler, Rules extends LinterType.ExtendRuleData[] = []> extends BasePluginInstance<T> {
14
+ readonly name: string;
15
+ readonly scheduler: RsdoctorPluginInstance<T, Rules>;
16
+ }
17
+ export interface RsdoctorPluginInstance<T extends Plugin.BaseCompiler, Rules extends LinterType.ExtendRuleData[] = []> extends BasePluginInstance<T> {
18
+ readonly name: string;
19
+ readonly options: Plugin.RsdoctorPluginOptionsNormalized<Rules>;
20
+ readonly sdk: SDK.RsdoctorBuilderSDKInstance;
21
+ readonly isRsdoctorPlugin: boolean;
22
+ _modulesGraphApplied?: boolean;
23
+ chunkGraph?: SDK.ChunkGraphInstance;
24
+ modulesGraph: SDK.ModuleGraphInstance;
25
+ ensureModulesChunksGraphApplied(compiler: T): void;
26
+ }
27
+ export interface RsdoctorRspackPluginInstance<Rules extends LinterType.ExtendRuleData[] = []> extends RsdoctorPluginInstance<Plugin.BaseCompilerType<'rspack'>, Rules> {
28
+ }
29
+ export interface NativePluginConfig {
30
+ moduleGraph?: boolean;
31
+ chunkGraph?: boolean;
32
+ }
33
+ export interface RsdoctorRspackPluginExperiments {
34
+ /**
35
+ * Whether to enable the native plugin to improve the performance.
36
+ * @default true
37
+ */
38
+ enableNativePlugin?: boolean;
39
+ }
40
+ export interface RsdoctorRspackPluginExperimentsNormalized {
41
+ enableNativePlugin?: NativePluginConfig;
42
+ }
43
+ export interface RsdoctorRspackPluginOptions<Rules extends LinterType.ExtendRuleData[]> extends Plugin.RsdoctorWebpackPluginOptions<Rules> {
44
+ /**
45
+ * The experiments of the Rsdoctor Rspack plugin.
46
+ */
47
+ experiments?: RsdoctorRspackPluginExperiments;
48
+ }
49
+ export type RsdoctorRspackPluginOptionsNormalized<Rules extends Linter.ExtendRuleData[]> = Plugin.RsdoctorPluginOptionsNormalized<Rules> & {
50
+ experiments?: RsdoctorRspackPluginExperimentsNormalized;
51
+ };
@@ -0,0 +1,7 @@
1
+ import { RuleSetRule } from 'webpack';
2
+ export interface Rule extends RuleSetRule {
3
+ /**
4
+ * https://webpack.js.org/configuration/module/#ruleloaders
5
+ */
6
+ loaders: RuleSetRule['use'];
7
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsdoctor/core",
3
- "version": "1.5.8",
3
+ "version": "1.5.10",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/web-infra-dev/rsdoctor",
@@ -16,29 +16,54 @@
16
16
  "type": "module",
17
17
  "exports": {
18
18
  ".": {
19
- "types": "./dist/index.d.ts",
20
- "import": "./dist/index.js",
21
- "default": "./dist/index.cjs"
19
+ "import": {
20
+ "types": "./dist/index.d.ts",
21
+ "default": "./dist/index.js"
22
+ },
23
+ "require": {
24
+ "types": "./dist/index.d.cts",
25
+ "default": "./dist/index.cjs"
26
+ }
22
27
  },
23
28
  "./build-utils": {
24
- "types": "./dist/build-utils/build/index.d.ts",
25
- "import": "./dist/build-utils/build/index.js",
26
- "default": "./dist/build-utils/build/index.cjs"
29
+ "import": {
30
+ "types": "./dist/build-utils/build/index.d.ts",
31
+ "default": "./dist/build-utils/build/index.js"
32
+ },
33
+ "require": {
34
+ "types": "./dist/build-utils/build/index.d.cts",
35
+ "default": "./dist/build-utils/build/index.cjs"
36
+ }
27
37
  },
28
38
  "./plugins": {
29
- "types": "./dist/inner-plugins/index.d.ts",
30
- "import": "./dist/inner-plugins/index.js",
31
- "default": "./dist/inner-plugins/index.cjs"
39
+ "import": {
40
+ "types": "./dist/inner-plugins/index.d.ts",
41
+ "default": "./dist/inner-plugins/index.js"
42
+ },
43
+ "require": {
44
+ "types": "./dist/inner-plugins/index.d.cts",
45
+ "default": "./dist/inner-plugins/index.cjs"
46
+ }
32
47
  },
33
48
  "./rules": {
34
- "types": "./dist/rules/index.d.ts",
35
- "import": "./dist/rules/index.js",
36
- "default": "./dist/rules/index.cjs"
49
+ "import": {
50
+ "types": "./dist/rules/index.d.ts",
51
+ "default": "./dist/rules/index.js"
52
+ },
53
+ "require": {
54
+ "types": "./dist/rules/index.d.cts",
55
+ "default": "./dist/rules/index.cjs"
56
+ }
37
57
  },
38
58
  "./types": {
39
- "types": "./dist/types/index.d.ts",
40
- "import": "./dist/types/index.js",
41
- "default": "./dist/types/index.cjs"
59
+ "import": {
60
+ "types": "./dist/types/index.d.ts",
61
+ "default": "./dist/types/index.js"
62
+ },
63
+ "require": {
64
+ "types": "./dist/types/index.d.cts",
65
+ "default": "./dist/types/index.cjs"
66
+ }
42
67
  }
43
68
  },
44
69
  "typesVersions": {
@@ -69,13 +94,13 @@
69
94
  "fs-extra": "^11.1.1",
70
95
  "semver": "^7.7.4",
71
96
  "source-map": "^0.7.6",
72
- "@rsdoctor/graph": "1.5.8",
73
- "@rsdoctor/sdk": "1.5.8",
74
- "@rsdoctor/utils": "1.5.8",
75
- "@rsdoctor/types": "1.5.8"
97
+ "@rsdoctor/graph": "1.5.10",
98
+ "@rsdoctor/utils": "1.5.10",
99
+ "@rsdoctor/sdk": "1.5.10",
100
+ "@rsdoctor/types": "1.5.10"
76
101
  },
77
102
  "devDependencies": {
78
- "@rspack/core": "2.0.0-rc.1",
103
+ "@rspack/core": "2.0.0",
79
104
  "@types/fs-extra": "^11.0.4",
80
105
  "@types/node": "^22.8.1",
81
106
  "@types/node-fetch": "^2.6.13",