lcd-router-webpack-plugin 9.2.10 → 9.2.11-alpha.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/babel/index.ts"],"names":[],"mappings":";AAGA,wBA8BG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/babel/index.ts"],"names":[],"mappings":";AAGA,wBAoCG"}
@@ -19,6 +19,8 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => {
19
19
  }], [require.resolve("./plugins/enhance-reducer"), {
20
20
  pageRootAbs: pathService.getPageRootAbs(),
21
21
  reducerName: options.reducerName
22
+ }], [require.resolve("./plugins/detect-state-yield-assignment"), {
23
+ pageRootAbs: pathService.getPageRootAbs()
22
24
  }]]
23
25
  };
24
26
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_helperPluginUtils","require","_utils","_default","declare","api","options","assertVersion","pathService","PathService","plugins","resolve","srcAbs","getSrcRootAbs","disableBuiltInRoute","pageRootAbs","getPageRootAbs","externals","reducerName","exports","default"],"sources":["../../index.ts"],"sourcesContent":["import { declare } from '@babel/helper-plugin-utils';\nimport { PathService, Options } from '../utils';\n\nexport default declare((api, options: Options) => {\n api.assertVersion(7);\n\n const pathService = new PathService(options);\n\n return {\n plugins: [\n [\n require.resolve('./plugins/replace-source'),\n {\n srcAbs: pathService.getSrcRootAbs(),\n disableBuiltInRoute: options.disableBuiltInRoute,\n },\n ],\n [\n require.resolve('./plugins/external-wrap'),\n {\n pageRootAbs: pathService.getPageRootAbs(),\n externals: options.externals,\n },\n ],\n [\n require.resolve('./plugins/enhance-reducer'),\n {\n pageRootAbs: pathService.getPageRootAbs(),\n reducerName: options.reducerName,\n },\n ],\n ],\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAAgD,IAAAE,QAAA,GAEjC,IAAAC,0BAAO,EAAC,CAACC,GAAG,EAAEC,OAAgB,KAAK;EAChDD,GAAG,CAACE,aAAa,CAAC,CAAC,CAAC;EAEpB,MAAMC,WAAW,GAAG,IAAIC,kBAAW,CAACH,OAAO,CAAC;EAE5C,OAAO;IACLI,OAAO,EAAE,CACP,CACET,OAAO,CAACU,OAAO,4BAA4B,EAC3C;MACEC,MAAM,EAAEJ,WAAW,CAACK,aAAa,EAAE;MACnCC,mBAAmB,EAAER,OAAO,CAACQ;IAC/B,CAAC,CACF,EACD,CACEb,OAAO,CAACU,OAAO,2BAA2B,EAC1C;MACEI,WAAW,EAAEP,WAAW,CAACQ,cAAc,EAAE;MACzCC,SAAS,EAAEX,OAAO,CAACW;IACrB,CAAC,CACF,EACD,CACEhB,OAAO,CAACU,OAAO,6BAA6B,EAC5C;MACEI,WAAW,EAAEP,WAAW,CAACQ,cAAc,EAAE;MACzCE,WAAW,EAAEZ,OAAO,CAACY;IACvB,CAAC,CACF;EAEL,CAAC;AACH,CAAC,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAjB,QAAA"}
1
+ {"version":3,"file":"index.js","names":["_helperPluginUtils","require","_utils","_default","declare","api","options","assertVersion","pathService","PathService","plugins","resolve","srcAbs","getSrcRootAbs","disableBuiltInRoute","pageRootAbs","getPageRootAbs","externals","reducerName","exports","default"],"sources":["../../index.ts"],"sourcesContent":["import { declare } from '@babel/helper-plugin-utils';\nimport { PathService, Options } from '../utils';\n\nexport default declare((api, options: Options) => {\n api.assertVersion(7);\n\n const pathService = new PathService(options);\n\n return {\n plugins: [\n [\n require.resolve('./plugins/replace-source'),\n {\n srcAbs: pathService.getSrcRootAbs(),\n disableBuiltInRoute: options.disableBuiltInRoute,\n },\n ],\n [\n require.resolve('./plugins/external-wrap'),\n {\n pageRootAbs: pathService.getPageRootAbs(),\n externals: options.externals,\n },\n ],\n [\n require.resolve('./plugins/enhance-reducer'),\n {\n pageRootAbs: pathService.getPageRootAbs(),\n reducerName: options.reducerName,\n },\n ],\n [\n require.resolve('./plugins/detect-state-yield-assignment'),\n {\n pageRootAbs: pathService.getPageRootAbs(),\n },\n ],\n ],\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAAgD,IAAAE,QAAA,GAEjC,IAAAC,0BAAO,EAAC,CAACC,GAAG,EAAEC,OAAgB,KAAK;EAChDD,GAAG,CAACE,aAAa,CAAC,CAAC,CAAC;EAEpB,MAAMC,WAAW,GAAG,IAAIC,kBAAW,CAACH,OAAO,CAAC;EAE5C,OAAO;IACLI,OAAO,EAAE,CACP,CACET,OAAO,CAACU,OAAO,4BAA4B,EAC3C;MACEC,MAAM,EAAEJ,WAAW,CAACK,aAAa,EAAE;MACnCC,mBAAmB,EAAER,OAAO,CAACQ;IAC/B,CAAC,CACF,EACD,CACEb,OAAO,CAACU,OAAO,2BAA2B,EAC1C;MACEI,WAAW,EAAEP,WAAW,CAACQ,cAAc,EAAE;MACzCC,SAAS,EAAEX,OAAO,CAACW;IACrB,CAAC,CACF,EACD,CACEhB,OAAO,CAACU,OAAO,6BAA6B,EAC5C;MACEI,WAAW,EAAEP,WAAW,CAACQ,cAAc,EAAE;MACzCE,WAAW,EAAEZ,OAAO,CAACY;IACvB,CAAC,CACF,EACD,CACEjB,OAAO,CAACU,OAAO,2CAA2C,EAC1D;MACEI,WAAW,EAAEP,WAAW,CAACQ,cAAc;IACzC,CAAC,CACF;EAEL,CAAC;AACH,CAAC,CAAC;AAAAG,OAAA,CAAAC,OAAA,GAAAjB,QAAA"}
@@ -0,0 +1,3 @@
1
+ declare const _default: any;
2
+ export default _default;
3
+ //# sourceMappingURL=detect-state-yield-assignment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect-state-yield-assignment.d.ts","sourceRoot":"","sources":["../../../src/babel/plugins/detect-state-yield-assignment.ts"],"names":[],"mappings":";AAOA,wBAoLG"}
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _helperPluginUtils = require("@babel/helper-plugin-utils");
8
+ var _default = (0, _helperPluginUtils.declare)((api, options) => {
9
+ const {
10
+ assertVersion,
11
+ types: t
12
+ } = api;
13
+ assertVersion(7);
14
+
15
+ /**
16
+ * 检查节点是否是 this.state 的成员表达式
17
+ * 包括: this.state.xxx, this.state.xx1.xx2 等
18
+ */
19
+ function isThisStateMemberExpression(node) {
20
+ if (!t.isMemberExpression(node)) {
21
+ return false;
22
+ }
23
+
24
+ // 找到最顶层的对象
25
+ let current = node;
26
+ while (t.isMemberExpression(current.object)) {
27
+ current = current.object;
28
+ }
29
+
30
+ // 检查最顶层是否是 this.state
31
+ // 此时 current 应该是类似 this.state 的结构
32
+ if (t.isMemberExpression(current) && t.isThisExpression(current.object) && t.isIdentifier(current.property, {
33
+ name: 'state'
34
+ })) {
35
+ return true;
36
+ }
37
+ return false;
38
+ }
39
+
40
+ /**
41
+ * 检查表达式中是否包含 yield
42
+ */
43
+ function containsYieldExpression(node) {
44
+ if (!node) return false;
45
+ if (t.isYieldExpression(node)) {
46
+ return true;
47
+ }
48
+
49
+ // 检查二元表达式 (例如: yield fn() || [])
50
+ if (t.isLogicalExpression(node) || t.isBinaryExpression(node)) {
51
+ return containsYieldExpression(node.left) || containsYieldExpression(node.right);
52
+ }
53
+
54
+ // 检查条件表达式 (例如: (yield fn()) ? a : b)
55
+ if (t.isConditionalExpression(node)) {
56
+ return containsYieldExpression(node.test) || containsYieldExpression(node.consequent) || containsYieldExpression(node.alternate);
57
+ }
58
+
59
+ // 检查序列表达式 (例如: (a, yield fn()))
60
+ if (t.isSequenceExpression(node)) {
61
+ return node.expressions.some(expr => containsYieldExpression(expr));
62
+ }
63
+
64
+ // 检查括号表达式
65
+ if (t.isParenthesizedExpression(node)) {
66
+ return containsYieldExpression(node.expression);
67
+ }
68
+
69
+ // 检查 await 表达式
70
+ if (t.isAwaitExpression(node)) {
71
+ return containsYieldExpression(node.argument);
72
+ }
73
+
74
+ // 检查一元表达式 (例如: !yield fn())
75
+ if (t.isUnaryExpression(node)) {
76
+ return containsYieldExpression(node.argument);
77
+ }
78
+ return false;
79
+ }
80
+
81
+ /**
82
+ * 检查对象属性中是否有 this.state 赋值包含 yield
83
+ */
84
+ function checkObjectProperties(properties, path, filename) {
85
+ properties.forEach(prop => {
86
+ if (t.isObjectProperty(prop) && containsYieldExpression(prop.value)) {
87
+ // 检查是否在对象展开后的属性中
88
+ throw path.buildCodeFrameError(`[lcd-router-webpack-plugin] 检测到不安全的语法: 在 generator 函数中不能使用 "this.state.xxx = yield fn()" 形式的赋值。\n` + `这种写法可能导致状态更新不生效。\n` + `文件: ${filename}\n` + `建议修改为: const result = yield fn(); this.state.xxx = result;`);
89
+ }
90
+ // 递归检查嵌套对象
91
+ if (t.isObjectProperty(prop) && t.isObjectExpression(prop.value)) {
92
+ checkObjectProperties(prop.value.properties, path, filename);
93
+ }
94
+ });
95
+ }
96
+ return {
97
+ name: 'babel-plugin-detect-state-yield-assignment',
98
+ visitor: {
99
+ // 检测赋值表达式
100
+ AssignmentExpression(path, state) {
101
+ const filename = state.filename || 'unknown';
102
+
103
+ // 检查是否在 generator 函数内
104
+ const generatorParent = path.findParent(p => p.isFunctionDeclaration({
105
+ generator: true
106
+ }) || p.isFunctionExpression({
107
+ generator: true
108
+ }) || p.isObjectMethod({
109
+ generator: true
110
+ }) || p.isClassMethod({
111
+ generator: true
112
+ }));
113
+ if (!generatorParent) {
114
+ return;
115
+ }
116
+ const {
117
+ left,
118
+ right
119
+ } = path.node;
120
+
121
+ // 情况1: 直接赋值 this.state.xxx = yield fn()
122
+ // 情况2: 嵌套赋值 this.state.xx1.xx2 = (yield fn222()) || []
123
+ if (isThisStateMemberExpression(left) && containsYieldExpression(right)) {
124
+ throw path.buildCodeFrameError(`[lcd-router-webpack-plugin] 检测到不安全的语法: 在 generator 函数中不能使用 "this.state.xxx = yield fn()" 形式的赋值。\n` + `这种写法可能导致状态更新不生效。\n` + `文件: ${filename}\n` + `建议修改为: const result = yield fn(); this.state.xxx = result;`);
125
+ }
126
+
127
+ // 情况3: 对象赋值 this.state.f2 = { ...this.state.f2, [xx1]: yield fn() }
128
+ if (isThisStateMemberExpression(left) && t.isObjectExpression(right)) {
129
+ checkObjectProperties(right.properties, path, filename);
130
+ }
131
+ },
132
+ // 检测变量声明中的对象属性
133
+ VariableDeclarator(path, state) {
134
+ const filename = state.filename || 'unknown';
135
+
136
+ // 检查是否在 generator 函数内
137
+ const generatorParent = path.findParent(p => p.isFunctionDeclaration({
138
+ generator: true
139
+ }) || p.isFunctionExpression({
140
+ generator: true
141
+ }) || p.isObjectMethod({
142
+ generator: true
143
+ }) || p.isClassMethod({
144
+ generator: true
145
+ }));
146
+ if (!generatorParent) {
147
+ return;
148
+ }
149
+ const {
150
+ init
151
+ } = path.node;
152
+
153
+ // 检查对象表达式中的属性
154
+ if (t.isObjectExpression(init)) {
155
+ init.properties.forEach(prop => {
156
+ if (t.isObjectProperty(prop)) {
157
+ // 检查属性值是否包含对 this.state 的赋值
158
+ if (t.isAssignmentExpression(prop.value)) {
159
+ const {
160
+ left,
161
+ right
162
+ } = prop.value;
163
+ if (isThisStateMemberExpression(left) && containsYieldExpression(right)) {
164
+ throw path.buildCodeFrameError(`[lcd-router-webpack-plugin] 检测到不安全的语法: 在 generator 函数中不能使用 "this.state.xxx = yield fn()" 形式的赋值。\n` + `这种写法可能导致状态更新不生效。\n` + `文件: ${filename}\n` + `建议修改为: const result = yield fn(); this.state.xxx = result;`);
165
+ }
166
+ }
167
+ }
168
+ });
169
+ }
170
+ }
171
+ }
172
+ };
173
+ });
174
+ exports.default = _default;
175
+ //# sourceMappingURL=detect-state-yield-assignment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect-state-yield-assignment.js","names":["_helperPluginUtils","require","_default","declare","api","options","assertVersion","types","t","isThisStateMemberExpression","node","isMemberExpression","current","object","isThisExpression","isIdentifier","property","name","containsYieldExpression","isYieldExpression","isLogicalExpression","isBinaryExpression","left","right","isConditionalExpression","test","consequent","alternate","isSequenceExpression","expressions","some","expr","isParenthesizedExpression","expression","isAwaitExpression","argument","isUnaryExpression","checkObjectProperties","properties","path","filename","forEach","prop","isObjectProperty","value","buildCodeFrameError","isObjectExpression","visitor","AssignmentExpression","state","generatorParent","findParent","p","isFunctionDeclaration","generator","isFunctionExpression","isObjectMethod","isClassMethod","VariableDeclarator","init","isAssignmentExpression","exports","default"],"sources":["../../../detect-state-yield-assignment.ts"],"sourcesContent":["import type * as __babel__core from '@babel/core';\nimport { declare } from '@babel/helper-plugin-utils';\n\ninterface Options {\n pageRootAbs?: string;\n}\n\nexport default declare<Options>((api, options) => {\n const { assertVersion, types: t } = api;\n assertVersion(7);\n\n /**\n * 检查节点是否是 this.state 的成员表达式\n * 包括: this.state.xxx, this.state.xx1.xx2 等\n */\n function isThisStateMemberExpression(node: any): boolean {\n if (!t.isMemberExpression(node)) {\n return false;\n }\n\n // 找到最顶层的对象\n let current = node;\n while (t.isMemberExpression(current.object)) {\n current = current.object;\n }\n\n // 检查最顶层是否是 this.state\n // 此时 current 应该是类似 this.state 的结构\n if (\n t.isMemberExpression(current) &&\n t.isThisExpression(current.object) &&\n t.isIdentifier(current.property, { name: 'state' })\n ) {\n return true;\n }\n\n return false;\n }\n\n /**\n * 检查表达式中是否包含 yield\n */\n function containsYieldExpression(node: any): boolean {\n if (!node) return false;\n\n if (t.isYieldExpression(node)) {\n return true;\n }\n\n // 检查二元表达式 (例如: yield fn() || [])\n if (t.isLogicalExpression(node) || t.isBinaryExpression(node)) {\n return containsYieldExpression(node.left) || containsYieldExpression(node.right);\n }\n\n // 检查条件表达式 (例如: (yield fn()) ? a : b)\n if (t.isConditionalExpression(node)) {\n return (\n containsYieldExpression(node.test) ||\n containsYieldExpression(node.consequent) ||\n containsYieldExpression(node.alternate)\n );\n }\n\n // 检查序列表达式 (例如: (a, yield fn()))\n if (t.isSequenceExpression(node)) {\n return node.expressions.some((expr: any) => containsYieldExpression(expr));\n }\n\n // 检查括号表达式\n if (t.isParenthesizedExpression(node)) {\n return containsYieldExpression(node.expression);\n }\n\n // 检查 await 表达式\n if (t.isAwaitExpression(node)) {\n return containsYieldExpression(node.argument);\n }\n\n // 检查一元表达式 (例如: !yield fn())\n if (t.isUnaryExpression(node)) {\n return containsYieldExpression(node.argument);\n }\n\n return false;\n }\n\n /**\n * 检查对象属性中是否有 this.state 赋值包含 yield\n */\n function checkObjectProperties(properties: any[], path: any, filename: string) {\n properties.forEach((prop) => {\n if (t.isObjectProperty(prop) && containsYieldExpression(prop.value)) {\n // 检查是否在对象展开后的属性中\n throw path.buildCodeFrameError(\n `[lcd-router-webpack-plugin] 检测到不安全的语法: 在 generator 函数中不能使用 \"this.state.xxx = yield fn()\" 形式的赋值。\\n` +\n `这种写法可能导致状态更新不生效。\\n` +\n `文件: ${filename}\\n` +\n `建议修改为: const result = yield fn(); this.state.xxx = result;`,\n );\n }\n // 递归检查嵌套对象\n if (t.isObjectProperty(prop) && t.isObjectExpression(prop.value)) {\n checkObjectProperties(prop.value.properties, path, filename);\n }\n });\n }\n\n return {\n name: 'babel-plugin-detect-state-yield-assignment',\n visitor: {\n // 检测赋值表达式\n AssignmentExpression(path, state) {\n const filename = state.filename || 'unknown';\n\n // 检查是否在 generator 函数内\n const generatorParent = path.findParent(\n (p) =>\n p.isFunctionDeclaration({ generator: true }) ||\n p.isFunctionExpression({ generator: true }) ||\n p.isObjectMethod({ generator: true }) ||\n p.isClassMethod({ generator: true }),\n );\n\n if (!generatorParent) {\n return;\n }\n\n const { left, right } = path.node;\n\n // 情况1: 直接赋值 this.state.xxx = yield fn()\n // 情况2: 嵌套赋值 this.state.xx1.xx2 = (yield fn222()) || []\n if (isThisStateMemberExpression(left) && containsYieldExpression(right)) {\n throw path.buildCodeFrameError(\n `[lcd-router-webpack-plugin] 检测到不安全的语法: 在 generator 函数中不能使用 \"this.state.xxx = yield fn()\" 形式的赋值。\\n` +\n `这种写法可能导致状态更新不生效。\\n` +\n `文件: ${filename}\\n` +\n `建议修改为: const result = yield fn(); this.state.xxx = result;`,\n );\n }\n\n // 情况3: 对象赋值 this.state.f2 = { ...this.state.f2, [xx1]: yield fn() }\n if (isThisStateMemberExpression(left) && t.isObjectExpression(right)) {\n checkObjectProperties(right.properties, path, filename);\n }\n },\n\n // 检测变量声明中的对象属性\n VariableDeclarator(path, state) {\n const filename = state.filename || 'unknown';\n\n // 检查是否在 generator 函数内\n const generatorParent = path.findParent(\n (p) =>\n p.isFunctionDeclaration({ generator: true }) ||\n p.isFunctionExpression({ generator: true }) ||\n p.isObjectMethod({ generator: true }) ||\n p.isClassMethod({ generator: true }),\n );\n\n if (!generatorParent) {\n return;\n }\n\n const { init } = path.node;\n\n // 检查对象表达式中的属性\n if (t.isObjectExpression(init)) {\n init.properties.forEach((prop) => {\n if (t.isObjectProperty(prop)) {\n // 检查属性值是否包含对 this.state 的赋值\n if (t.isAssignmentExpression(prop.value)) {\n const { left, right } = prop.value;\n if (isThisStateMemberExpression(left) && containsYieldExpression(right)) {\n throw path.buildCodeFrameError(\n `[lcd-router-webpack-plugin] 检测到不安全的语法: 在 generator 函数中不能使用 \"this.state.xxx = yield fn()\" 形式的赋值。\\n` +\n `这种写法可能导致状态更新不生效。\\n` +\n `文件: ${filename}\\n` +\n `建议修改为: const result = yield fn(); this.state.xxx = result;`,\n );\n }\n }\n }\n });\n }\n },\n },\n };\n});\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lcd-router-webpack-plugin",
3
- "version": "9.2.10",
3
+ "version": "9.2.11-alpha.0",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "files": [