@lcap/nasl 3.1.0-beta.4 → 3.1.0-beta.5

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 (245) hide show
  1. package/out/automate/engine/utils.js +4 -0
  2. package/out/automate/engine/utils.js.map +1 -1
  3. package/out/automate/upgrader/2.12.js +1 -5
  4. package/out/automate/upgrader/2.12.js.map +1 -1
  5. package/out/automate/upgrader/2.14.js +1 -5
  6. package/out/automate/upgrader/2.14.js.map +1 -1
  7. package/out/automate/upgrader/2.16.js +1 -5
  8. package/out/automate/upgrader/2.16.js.map +1 -1
  9. package/out/automate/upgrader/2.17.js +1 -5
  10. package/out/automate/upgrader/2.17.js.map +1 -1
  11. package/out/automate/upgrader/2.18.js +1 -5
  12. package/out/automate/upgrader/2.18.js.map +1 -1
  13. package/out/automate/upgrader/2.20.js +1 -5
  14. package/out/automate/upgrader/2.20.js.map +1 -1
  15. package/out/breakpoint/generator/BreakpointNode.js +14 -4
  16. package/out/breakpoint/generator/BreakpointNode.js.map +1 -1
  17. package/out/breakpoint/index.js +1 -5
  18. package/out/breakpoint/index.js.map +1 -1
  19. package/out/breakpoint/shared/index.js +1 -5
  20. package/out/breakpoint/shared/index.js.map +1 -1
  21. package/out/breakpoint/shared/utils.js +1 -1
  22. package/out/breakpoint/shared/utils.js.map +1 -1
  23. package/out/breakpoint/store/core.js +1 -5
  24. package/out/breakpoint/store/core.js.map +1 -1
  25. package/out/breakpoint/store/dock.js +1 -5
  26. package/out/breakpoint/store/dock.js.map +1 -1
  27. package/out/breakpoint/store/index.js +1 -5
  28. package/out/breakpoint/store/index.js.map +1 -1
  29. package/out/common/BaseNode.d.ts +1 -1
  30. package/out/common/BaseNode.js +17 -11
  31. package/out/common/BaseNode.js.map +1 -1
  32. package/out/common/index.js +1 -5
  33. package/out/common/index.js.map +1 -1
  34. package/out/concepts/Anchor__.js +1 -5
  35. package/out/concepts/Anchor__.js.map +1 -1
  36. package/out/concepts/AnonymousFunction__.d.ts +9 -8
  37. package/out/concepts/AnonymousFunction__.js +14 -18
  38. package/out/concepts/AnonymousFunction__.js.map +1 -1
  39. package/out/concepts/App__.js +1 -5
  40. package/out/concepts/App__.js.map +1 -1
  41. package/out/concepts/Argument__.js +2 -11
  42. package/out/concepts/Argument__.js.map +1 -1
  43. package/out/concepts/Assignee__.js +1 -5
  44. package/out/concepts/Assignee__.js.map +1 -1
  45. package/out/concepts/Assignment__.js +1 -1
  46. package/out/concepts/Assignment__.js.map +1 -1
  47. package/out/concepts/AuthLogicForCallInterface__.js +1 -5
  48. package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
  49. package/out/concepts/Backend__.js +1 -5
  50. package/out/concepts/Backend__.js.map +1 -1
  51. package/out/concepts/BatchAssignment__.js +3 -8
  52. package/out/concepts/BatchAssignment__.js.map +1 -1
  53. package/out/concepts/BindAttribute__.js +2 -15
  54. package/out/concepts/BindAttribute__.js.map +1 -1
  55. package/out/concepts/BindDirective__.js +1 -5
  56. package/out/concepts/BindDirective__.js.map +1 -1
  57. package/out/concepts/BindEvent__.js +1 -5
  58. package/out/concepts/BindEvent__.js.map +1 -1
  59. package/out/concepts/BindStyle__.js +1 -5
  60. package/out/concepts/BindStyle__.js.map +1 -1
  61. package/out/concepts/CallAuthInterface__.js +1 -5
  62. package/out/concepts/CallAuthInterface__.js.map +1 -1
  63. package/out/concepts/CallFunction__.js +2 -2
  64. package/out/concepts/CallFunction__.js.map +1 -1
  65. package/out/concepts/CallInterface__.js +50 -62
  66. package/out/concepts/CallInterface__.js.map +1 -1
  67. package/out/concepts/CallLogic__.d.ts +4 -1
  68. package/out/concepts/CallLogic__.js +86 -123
  69. package/out/concepts/CallLogic__.js.map +1 -1
  70. package/out/concepts/CallQueryComponent__.d.ts +1 -1
  71. package/out/concepts/CallQueryComponent__.js +1 -5
  72. package/out/concepts/CallQueryComponent__.js.map +1 -1
  73. package/out/concepts/CompletionProperty__.js +8 -1
  74. package/out/concepts/CompletionProperty__.js.map +1 -1
  75. package/out/concepts/ConfigGroup__.js +1 -5
  76. package/out/concepts/ConfigGroup__.js.map +1 -1
  77. package/out/concepts/ConfigProperty__.js +1 -5
  78. package/out/concepts/ConfigProperty__.js.map +1 -1
  79. package/out/concepts/Configuration__.js +1 -5
  80. package/out/concepts/Configuration__.js.map +1 -1
  81. package/out/concepts/Connector__.js +1 -5
  82. package/out/concepts/Connector__.js.map +1 -1
  83. package/out/concepts/DataSource__.js +1 -5
  84. package/out/concepts/DataSource__.js.map +1 -1
  85. package/out/concepts/Destination__.js +1 -5
  86. package/out/concepts/Destination__.js.map +1 -1
  87. package/out/concepts/EntityProperty__.js +1 -5
  88. package/out/concepts/EntityProperty__.js.map +1 -1
  89. package/out/concepts/Entity__.js +1 -5
  90. package/out/concepts/Entity__.js.map +1 -1
  91. package/out/concepts/Enum__.js +1 -5
  92. package/out/concepts/Enum__.js.map +1 -1
  93. package/out/concepts/Event__.js +1 -5
  94. package/out/concepts/Event__.js.map +1 -1
  95. package/out/concepts/ForEachStatement__.js +1 -5
  96. package/out/concepts/ForEachStatement__.js.map +1 -1
  97. package/out/concepts/FrontendLibrary__.d.ts +29 -29
  98. package/out/concepts/FrontendLibrary__.js +3 -7
  99. package/out/concepts/FrontendLibrary__.js.map +1 -1
  100. package/out/concepts/Frontend__.js +1 -5
  101. package/out/concepts/Frontend__.js.map +1 -1
  102. package/out/concepts/Function__.js +2 -6
  103. package/out/concepts/Function__.js.map +1 -1
  104. package/out/concepts/Interface__.js +1 -5
  105. package/out/concepts/Interface__.js.map +1 -1
  106. package/out/concepts/LogicItem__.d.ts +6 -6
  107. package/out/concepts/LogicItem__.js +6 -6
  108. package/out/concepts/LogicItem__.js.map +1 -1
  109. package/out/concepts/Logic__.js +5 -24
  110. package/out/concepts/Logic__.js.map +1 -1
  111. package/out/concepts/MatchCase__.js +1 -5
  112. package/out/concepts/MatchCase__.js.map +1 -1
  113. package/out/concepts/Module__.js +1 -5
  114. package/out/concepts/Module__.js.map +1 -1
  115. package/out/concepts/MsgTriggerEvent__.js +1 -5
  116. package/out/concepts/MsgTriggerEvent__.js.map +1 -1
  117. package/out/concepts/MsgTriggerLauncher__.js +1 -5
  118. package/out/concepts/MsgTriggerLauncher__.js.map +1 -1
  119. package/out/concepts/Namespace__.d.ts +29 -29
  120. package/out/concepts/Namespace__.js +3 -7
  121. package/out/concepts/Namespace__.js.map +1 -1
  122. package/out/concepts/NewComposite__.d.ts +0 -1
  123. package/out/concepts/NewComposite__.js +4 -72
  124. package/out/concepts/NewComposite__.js.map +1 -1
  125. package/out/concepts/NewList__.d.ts +0 -1
  126. package/out/concepts/NewList__.js +2 -22
  127. package/out/concepts/NewList__.js.map +1 -1
  128. package/out/concepts/NewMap__.js +1 -5
  129. package/out/concepts/NewMap__.js.map +1 -1
  130. package/out/concepts/OverriddenLogic__.js +1 -5
  131. package/out/concepts/OverriddenLogic__.js.map +1 -1
  132. package/out/concepts/ProcessComponent__.js +1 -5
  133. package/out/concepts/ProcessComponent__.js.map +1 -1
  134. package/out/concepts/ProcessElement__.js +1 -5
  135. package/out/concepts/ProcessElement__.js.map +1 -1
  136. package/out/concepts/Process__.js +1 -5
  137. package/out/concepts/Process__.js.map +1 -1
  138. package/out/concepts/QueryJoinExpression__.js +1 -5
  139. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  140. package/out/concepts/QuerySelectExpression__.js +1 -5
  141. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  142. package/out/concepts/SelectMembers__.js +1 -5
  143. package/out/concepts/SelectMembers__.js.map +1 -1
  144. package/out/concepts/StringInterpolation__.js +1 -5
  145. package/out/concepts/StringInterpolation__.js.map +1 -1
  146. package/out/concepts/Structure__.js +1 -5
  147. package/out/concepts/Structure__.js.map +1 -1
  148. package/out/concepts/TriggerEvent__.js +1 -5
  149. package/out/concepts/TriggerEvent__.js.map +1 -1
  150. package/out/concepts/TypeAnnotation__.js +5 -5
  151. package/out/concepts/TypeAnnotation__.js.map +1 -1
  152. package/out/concepts/ValidationRule__.js +10 -4
  153. package/out/concepts/ValidationRule__.js.map +1 -1
  154. package/out/concepts/ViewComponent__.d.ts +33 -33
  155. package/out/concepts/ViewComponent__.js +8 -12
  156. package/out/concepts/ViewComponent__.js.map +1 -1
  157. package/out/concepts/ViewElement__.js +53 -74
  158. package/out/concepts/ViewElement__.js.map +1 -1
  159. package/out/concepts/View__.js +5 -9
  160. package/out/concepts/View__.js.map +1 -1
  161. package/out/concepts/basics/stdlib/nasl.http.js +2 -2
  162. package/out/concepts/basics/stdlib/nasl.util.js +9 -17
  163. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  164. package/out/concepts/basics/types/index.js +1 -1
  165. package/out/concepts/basics/types/index.js.map +1 -1
  166. package/out/concepts/index.js +1 -5
  167. package/out/concepts/index.js.map +1 -1
  168. package/out/concepts/index__.js +1 -5
  169. package/out/concepts/index__.js.map +1 -1
  170. package/out/generator/genBundleFiles.js +1 -5
  171. package/out/generator/genBundleFiles.js.map +1 -1
  172. package/out/generator/genHash.js +1 -5
  173. package/out/generator/genHash.js.map +1 -1
  174. package/out/generator/genMetaData.js +1 -13
  175. package/out/generator/genMetaData.js.map +1 -1
  176. package/out/generator/index.js +1 -5
  177. package/out/generator/index.js.map +1 -1
  178. package/out/generator/permission.js +48 -24
  179. package/out/generator/permission.js.map +1 -1
  180. package/out/generator/styleReplacer.js +1 -5
  181. package/out/generator/styleReplacer.js.map +1 -1
  182. package/out/index.js +1 -5
  183. package/out/index.js.map +1 -1
  184. package/out/sentry/index.js +1 -8
  185. package/out/sentry/index.js.map +1 -1
  186. package/out/server/formatTsUtils.js +28 -29
  187. package/out/server/formatTsUtils.js.map +1 -1
  188. package/out/server/getMemberIdentifier.js +1 -1
  189. package/out/server/getMemberIdentifier.js.map +1 -1
  190. package/out/server/naslServer.js +17 -20
  191. package/out/server/naslServer.js.map +1 -1
  192. package/out/service/creator/errHandles.d.ts +1 -1
  193. package/out/service/storage/init.js +5 -8
  194. package/out/service/storage/init.js.map +1 -1
  195. package/out/templator/genCreateBlock.js +1 -5
  196. package/out/templator/genCreateBlock.js.map +1 -1
  197. package/out/templator/genCurdEditMultipleKeyBlock.js +2 -6
  198. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  199. package/out/templator/genCurdMultipleKeyBlock.js +3 -7
  200. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  201. package/out/templator/genEditTableBlock.d.ts +1 -1
  202. package/out/templator/genEditTableBlock.js +3 -11
  203. package/out/templator/genEditTableBlock.js.map +1 -1
  204. package/out/templator/genGetBlock.js +1 -5
  205. package/out/templator/genGetBlock.js.map +1 -1
  206. package/out/templator/genGridViewBlock.d.ts +2 -2
  207. package/out/templator/genGridViewBlock.js +9 -19
  208. package/out/templator/genGridViewBlock.js.map +1 -1
  209. package/out/templator/genListViewBlock.d.ts +2 -2
  210. package/out/templator/genListViewBlock.js +6 -14
  211. package/out/templator/genListViewBlock.js.map +1 -1
  212. package/out/templator/genQueryComponent.js +1 -5
  213. package/out/templator/genQueryComponent.js.map +1 -1
  214. package/out/templator/genSelectBlock.d.ts +2 -2
  215. package/out/templator/genSelectBlock.js +10 -20
  216. package/out/templator/genSelectBlock.js.map +1 -1
  217. package/out/templator/genTableBlock.d.ts +1 -1
  218. package/out/templator/genTableBlock.js +4 -12
  219. package/out/templator/genTableBlock.js.map +1 -1
  220. package/out/templator/genUpdateBlock.js +1 -5
  221. package/out/templator/genUpdateBlock.js.map +1 -1
  222. package/out/templator/index.js +1 -5
  223. package/out/templator/index.js.map +1 -1
  224. package/out/utils/index.js +1 -5
  225. package/out/utils/index.js.map +1 -1
  226. package/package.json +2 -2
  227. package/src/breakpoint/generator/BreakpointNode.ts +19 -4
  228. package/src/breakpoint/shared/utils.ts +1 -1
  229. package/src/common/BaseNode.ts +15 -3
  230. package/src/concepts/CallLogic__.ts +45 -15
  231. package/src/concepts/ValidationRule__.ts +15 -5
  232. package/src/concepts/ViewElement__.ts +9 -6
  233. package/src/generator/permission.ts +28 -8
  234. package/src/server/formatTsUtils.ts +26 -28
  235. package/src/server/getMemberIdentifier.ts +1 -1
  236. package/src/server/naslServer.ts +0 -1
  237. package/test/concepts/call-logic/__snapshots__/getQuickInfoOffset.spec.ts.snap +106 -0
  238. package/test/concepts/call-logic/__snapshots__/toEmbeddedTS.spec.ts.snap +45 -0
  239. package/test/concepts/call-logic/__snapshots__/toJS.spec.ts.snap +102 -0
  240. package/test/concepts/call-logic/fixtures/nested-call-logic.json +934 -0
  241. package/test/concepts/call-logic/getQuickInfoOffset.spec.ts +23 -0
  242. package/test/concepts/validation-rule/__snapshots__/toEmbeddedTS.spec.ts.snap +6 -0
  243. package/test/concepts/validation-rule/__snapshots__/toJS.spec.ts.snap +5 -0
  244. package/test/concepts/validation-rule/fixtures/argument-without-keyout.json +34 -0
  245. package/test/concepts/validation-rule/validation-rule.spec.ts +15 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@lcap/nasl",
3
3
  "description": "NetEase Application Specific Language",
4
- "version": "3.1.0-beta.4",
4
+ "version": "3.1.0-beta.5",
5
5
  "author": "Forrest <rainforest92@126.com>",
6
6
  "scripts": {
7
7
  "clear": "rimraf ./out",
8
8
  "build": "npm run clear && tsc -p ./tsconfig.build.json",
9
9
  "watch": "npm run build -- -w",
10
10
  "test": "mocha --file ./test/setup.ts",
11
- "test:update": "mocha --file ./test/setup.ts --update",
11
+ "test:update": "npm run test -- --update",
12
12
  "release:beta": "npm run build && npm publish --tag beta --access public --no-git-checks",
13
13
  "release": "npm run build && npm publish --tag latest --access public",
14
14
  "doc": "typedoc --out docs src --options docs-build/typedoc.json",
@@ -74,6 +74,7 @@ const callLogicGenerator = (instance: BreakpointNode) => (breaker: string) => {
74
74
  const base = args || [];
75
75
 
76
76
  breakpointArgument.name = attribute;
77
+ breakpointArgument.keyword = attribute;
77
78
  breakpointArgument.expression = breakpointExpression as any;
78
79
  breakpointExpression._nodePath = _nodePath;
79
80
  source.arguments = base.concat(breakpointArgument);
@@ -100,19 +101,33 @@ const callFunctionGenerator = (instance: BreakpointNode) => (breaker: string) =>
100
101
  return;
101
102
  }
102
103
 
103
- const { typeArguments } = source;
104
+ const {
105
+ arguments: sourceArguments,
106
+ typeArguments: sourceTypeArguments,
107
+ } = source;
104
108
 
105
109
  const breakpointExpression = new BreakpointNode();
106
110
  const breakpointArgument = new Argument();
107
- const base = typeArguments || [];
111
+
112
+ const baseArguments = sourceArguments || [];
113
+ const baseTypeArguments = sourceTypeArguments || [];
114
+ const addToTypeArguments = baseTypeArguments?.length;
108
115
 
109
116
  breakpointArgument.name = attribute;
117
+ breakpointArgument.keyword = attribute;
110
118
  breakpointArgument.expression = breakpointExpression as any;
111
119
  breakpointExpression._nodePath = _nodePath;
112
- source.typeArguments = base.concat(breakpointArgument);
120
+
121
+ if (addToTypeArguments) {
122
+ source.typeArguments = baseTypeArguments.concat(breakpointArgument);
123
+ } else {
124
+ source.arguments = baseArguments.concat(breakpointArgument);
125
+ }
113
126
 
114
127
  const code = source.toJS();
115
- source.typeArguments = typeArguments;
128
+
129
+ source.arguments = sourceArguments;
130
+ source.typeArguments = sourceTypeArguments;
116
131
 
117
132
  return code;
118
133
  };
@@ -196,7 +196,7 @@ export const getLogics = (app: App) => {
196
196
  frontends.forEach((frontend) => {
197
197
  const { views = [] } = frontend;
198
198
 
199
- views.forEach(forView);
199
+ views && views.forEach(forView);
200
200
  });
201
201
 
202
202
  return result;
@@ -199,13 +199,20 @@ export class BaseNode extends EventEmitter {
199
199
 
200
200
  // 测试时用的标记属性
201
201
  if (process.env.NODE_ENV === 'testing') {
202
- properties.push('__$Selected');
202
+ properties.push('__$Selected', '__TypeAnnotation');
203
203
  }
204
204
 
205
205
  properties.forEach((key) => {
206
- const property = propertyMap.get(key);
207
206
  const sourceItem = (source as any)[key] !== undefined ? (source as any)[key] : (this as any)[key];
207
+
208
+ let property = propertyMap.get(key);
208
209
  let objectRefCtor: any;
210
+
211
+ // 测试环境下,类型节点由外部注入,所以需要在初始化的时候必须带上类型节点
212
+ if (process.env.NODE_ENV === 'testing' && key === '__TypeAnnotation' && sourceItem) {
213
+ property = { objectRef: 'TypeAnnotation' };
214
+ }
215
+
209
216
  try {
210
217
  if (property?.objectRef) {
211
218
  const arr = property.objectRef.split(' | ');
@@ -218,8 +225,13 @@ export class BaseNode extends EventEmitter {
218
225
  }
219
226
  }
220
227
  }
228
+
221
229
  // 数组的情况也在这里做掉了
222
- (this as any)[key] = objectRefCtor && sourceItem && !(sourceItem instanceof objectRefCtor) ? this.instantiateSub(sourceItem, key) : sourceItem;
230
+ const value = objectRefCtor && sourceItem && !(sourceItem instanceof objectRefCtor) ? this.instantiateSub(sourceItem, key) : sourceItem;
231
+
232
+ if (value !== undefined) {
233
+ (this as any)[key] = value;
234
+ }
223
235
  } catch (e) {
224
236
  // Function has non-object prototype 'undefined' in instanceof check
225
237
  if (!e.message.includes('Function has non-object prototype'))
@@ -776,6 +776,16 @@ export class CallLogic extends LogicItem {
776
776
  typeArguments,
777
777
  } = this;
778
778
 
779
+ const isShowArgument = (arg?: Argument) => {
780
+ return (
781
+ arg.expression ||
782
+ (
783
+ arg.paramDefaultValue &&
784
+ arg.paramTypeAnnotation
785
+ )
786
+ );
787
+ }
788
+
779
789
  const keywordProcessIndex = findConceptKeyWordIndexFromNamespace(calleeNamespace, 'processes');
780
790
  const isProcessLogic = keywordProcessIndex !== -1;
781
791
  const isFrontendLibrary = calleeNamespace.startsWith('extensions') && calleeNamespace.indexOf('frontends');
@@ -811,7 +821,7 @@ export class CallLogic extends LogicItem {
811
821
  arg: actualArg,
812
822
  };
813
823
  })
814
- .filter((item) => Boolean(item.arg.expression))
824
+ .filter((item) => isShowArgument(item.arg))
815
825
  .map((obj: any) => `\n${obj?.keyword}: ${obj?.arg?.toJS(shiftState(state, code))}`)
816
826
  .join(', ');
817
827
  code += argsStr;
@@ -849,7 +859,6 @@ export class CallLogic extends LogicItem {
849
859
  case 'batchUpdate': {
850
860
  code += `body: {\n`;
851
861
  const argsStr = logicArgs
852
- .filter((arg) => arg.expression)
853
862
  .map((arg) => {
854
863
  const name = arg.keyword === 'body' ? (this.calleeName === 'batchUpdate' ? 'entities' : 'entity') : arg.keyword;
855
864
  return `${name}: ${arg.expression.toJS(shiftState(state, code))}`;
@@ -864,7 +873,6 @@ export class CallLogic extends LogicItem {
864
873
  case 'updateBy': {
865
874
  code += `body: {`;
866
875
  const argsStr = logicArgs
867
- .filter((arg) => arg.expression)
868
876
  .map((arg: any) => {
869
877
  const name = arg.keyword === 'body' ? 'entity' : arg.keyword;
870
878
  // filter回调函数
@@ -920,7 +928,7 @@ export class CallLogic extends LogicItem {
920
928
  arg: actualArg,
921
929
  };
922
930
  })
923
- .filter((item) => Boolean(item.arg.expression))
931
+ .filter((item) => isShowArgument(item.arg))
924
932
  .map((obj) => `\n${obj?.keyword}: ${obj?.arg?.toJS(shiftState(state, code))}`)
925
933
  .join(', ');
926
934
  code += argsStr;
@@ -1237,19 +1245,41 @@ export class CallLogic extends LogicItem {
1237
1245
 
1238
1246
  /** 获取类型标注时的偏移量 */
1239
1247
  getQuickInfoOffset(detail: TSPPosition, code: string): TSPPosition {
1240
- if (!this.useIife) {
1241
- return { ...detail };
1242
- }
1248
+ if (this.useIife) {
1249
+ const characterOffset = 8;
1250
+ const lines = code.split('\n');
1251
+ const lineOffset = lines.findIndex((item) => item.startsWith('return wrapper'));
1243
1252
 
1244
- const characterOffset = 8;
1245
- const lines = code.split('\n');
1246
- // @ts-ignore
1247
- const lineOffset = lines.findLastIndex((item) => item.startsWith('return wrapper'));
1253
+ return {
1254
+ line: detail.line + lineOffset,
1255
+ offset: characterOffset,
1256
+ };
1257
+ } else {
1258
+ let indexOf = 0;
1248
1259
 
1249
- return {
1250
- line: detail.line + lineOffset,
1251
- offset: characterOffset,
1252
- };
1260
+ // 没有括号,表示括号在外面
1261
+ if (!code.includes('(')) {
1262
+ indexOf = -1;
1263
+ }
1264
+ // 有括号就找到括号的位置
1265
+ else {
1266
+ // 如果有泛型先往前找一找
1267
+ if (code.includes('<')) {
1268
+ indexOf = Math.min(code.indexOf('<'), code.indexOf('('));
1269
+ } else {
1270
+ indexOf = code.indexOf('(');
1271
+ }
1272
+ const subStr = code.substring(0, indexOf);
1273
+ const codeArr = subStr?.split('.');
1274
+ const lastLen = codeArr?.[codeArr.length - 1]?.length;
1275
+ indexOf = subStr.length - lastLen;
1276
+ }
1277
+
1278
+ return {
1279
+ ...detail,
1280
+ offset: detail.offset + indexOf,
1281
+ };
1282
+ }
1253
1283
  }
1254
1284
 
1255
1285
  /**
@@ -500,15 +500,25 @@ export class ValidationRule extends LogicItem {
500
500
  code += calleeKey;
501
501
  code += '(';
502
502
  args.forEach((arg, index) => {
503
+ const param = validationInFunction?.params?.[index];
504
+
505
+ // 当前参数缺失 keyword,且原始形参中有名称,则补充参数
506
+ if (!arg.keyword && param.name) {
507
+ arg.keyword = param.name;
508
+ }
509
+
503
510
  // 如果找到函数而且有参数,就用参数的必填非必填
504
- if (validationInFunction && validationInFunction.params[index]) {
505
- code += arg.toEmbeddedTS(shiftState(state, code), validationInFunction.params[index].required, false);
506
- } else {
507
- // 如果没有就默认不必填
511
+ if (validationInFunction && param) {
512
+ code += arg.toEmbeddedTS(shiftState(state, code), param.required, false);
513
+ }
514
+ // 如果没有就默认不必填
515
+ else {
508
516
  code += arg.toEmbeddedTS(shiftState(state, code), false, false);
509
517
  }
510
- if (index !== args.length - 1)
518
+
519
+ if (index !== args.length - 1) {
511
520
  code += ', ';
521
+ }
512
522
  });
513
523
  code += ');';
514
524
  }
@@ -1453,7 +1453,7 @@ export class ViewElement extends BaseNode {
1453
1453
  if (bindAttrs && bindAttrs.length) {
1454
1454
  const attr = bindAttrs.find((item) => item.name === 'data-source');
1455
1455
  if (attr && attr.expression) {
1456
- const datasourceName = `datasourceName${index}`;
1456
+ const datasourceName = `datasourceName${element.name}`;
1457
1457
  (element as any).__tsDataSourceTypeName = datasourceName;
1458
1458
  if (attr.expression instanceof MemberExpression || attr.expression instanceof Identifier) {
1459
1459
  const value = attr.expression.toEmbeddedTS(shiftState(state, code));
@@ -1667,11 +1667,14 @@ export class ViewElement extends BaseNode {
1667
1667
 
1668
1668
  utils.traverse((current) => {
1669
1669
  const node = current.node as any;
1670
- if (node.concept === 'CallLogic' && /elements.(.+).logics/.test(node.calleeNamespace)) {
1671
- const oldName = node.calleeNamespace.split('.')[1];
1672
- if(nameMap.has(oldName)) {
1673
- const newName = nameMap.get(oldName);
1674
- node.calleeNamespace = `elements.${newName}.logics`
1670
+ if (node.concept === 'CallLogic') {
1671
+ node.uuid = uuidv4().replace(/-/g, '');
1672
+ if (/elements.(.+).logics/.test(node.calleeNamespace)) {
1673
+ const oldName = node.calleeNamespace.split('.')[1];
1674
+ if (nameMap.has(oldName)) {
1675
+ const newName = nameMap.get(oldName);
1676
+ node.calleeNamespace = `elements.${newName}.logics`
1677
+ }
1675
1678
  }
1676
1679
  }
1677
1680
  }, { node: element }, { mode: 'anyObject', excludedKeySet: element.JSON_EXCLUDED_KEYS });
@@ -224,20 +224,40 @@ function getAllLogics(app: App) {
224
224
  }
225
225
 
226
226
  function findUploaders(app: App) {
227
- const map = new Map<string, ViewElement[]>();
227
+ const uploaders = new Map<string, ViewElement[]>();
228
+ const callLogicUploadList = new Map<string, any>();
229
+ let callLogicUploadFlag = false;
228
230
  app.traverseChildren((node) => {
229
231
  if (node instanceof ViewElement && node.tag?.includes('uploader')) {
230
232
  const urlAttr = node.bindAttrs.find((item) => item.name === 'url');
231
233
  const url = urlAttr?.value;
232
234
  if (url) {
233
- if (!map.has(url))
234
- map.set(url, [node]);
235
- else
236
- map.get(url).push(node);
235
+ if (!uploaders.has(url)) uploaders.set(url, [node]);
236
+ else uploaders.get(url).push(node);
237
+ }
238
+ }
239
+ if (node instanceof CallLogic && node?.calleeName?.includes('downloadFile') && node?.calleeNamespace === 'nasl.io' && !callLogicUploadFlag) {
240
+ const viewElement = node?.getAncestor('ViewElement');
241
+ const view = node?.getAncestor('View');
242
+ // ViewElement 权限优先
243
+ if (viewElement instanceof ViewElement && viewElement?.auth) {
244
+ callLogicUploadList.set(viewElement?.authPath, [{
245
+ type: 'component',
246
+ path: viewElement?.authPath
247
+ }]);
248
+ } else if (view instanceof View && view?.auth) {
249
+ callLogicUploadList.set(view?.authPath, [{
250
+ type: 'page',
251
+ path: view?.authPath
252
+ }]);
253
+ } else {
254
+ // 如果开启权限和未开启权限都有,以未开启权限为准,清空 map,设置为 [[]]
255
+ callLogicUploadFlag = true;
256
+ callLogicUploadList.clear();
237
257
  }
238
258
  }
239
259
  });
240
- return map;
260
+ return { uploaders, callLogicUploadList: callLogicUploadList.size === 0 ? [[]] : Array.from(callLogicUploadList.values()) };
241
261
  }
242
262
  function checkUploadAuth(view: View | ViewElement) {
243
263
  const res: ResourceNode[] = [];
@@ -274,7 +294,7 @@ export async function genPermissionData(app: App) {
274
294
  openCache();
275
295
  const logicPageResourceDtoList: { [key: string]: ResourceNode[][] } = {};
276
296
  const { logics, processLogics } = getAllLogics(app);
277
- const uploaders = findUploaders(app);
297
+ const {uploaders, callLogicUploadList} = findUploaders(app);
278
298
  for (const logic of [...logics, ...processLogics]) {
279
299
  const resources = await findResourcesOfLogic(logic, uploaders);
280
300
  if (resources.length === 0)
@@ -288,7 +308,7 @@ export async function genPermissionData(app: App) {
288
308
  if (authValue?.length) {
289
309
  logicPageResourceDtoList['/upload:POST'] = checkPageAndUploadAuth(uploaders) != -1 ? [[]] : authValue
290
310
  }
291
-
311
+ logicPageResourceDtoList['/upload/download_files:POST'] = callLogicUploadList;
292
312
  closeCache();
293
313
  // console.timeEnd('xxx');
294
314
  return logicPageResourceDtoList;
@@ -510,36 +510,34 @@ function getNodeTypeVariableData(nodeType: any, item: any, node: SynatxNode) {
510
510
  const app = (node.rootNode) as App;
511
511
  let structure: any = {};
512
512
 
513
- // 偶尔会报这个错误,先跳过吧
514
- if (!typeAnnotation) {
515
- return;
516
- }
513
+ // 有类型在进行下一步运算
514
+ if (typeAnnotation) {
515
+ // 数据查询没有输出参数,特殊处理
516
+ if (typeAnnotation.typeKind === 'anonymousStructure') {
517
+ structure = { properties: typeAnnotation.properties };
518
+ } else if (typeAnnotation.typeArguments) {
519
+ structure = { properties: app.getSelectRef(typeAnnotation, true) };
520
+ } else {
521
+ structure = app.findNodeByCompleteName(typeAnnotation.typeNamespace + '.' + typeAnnotation.typeName);
522
+ }
523
+ structure?.properties?.forEach((structureProperty: StructureProperty) => {
524
+ const { name, typeAnnotation } = structureProperty;
525
+ const expression = new MemberExpression({
526
+ object: parentExpression,
527
+ property: new Identifier({ name }),
528
+ });
529
+ const completionData = new CompletionProperty({
530
+ name,
531
+ value: name,
532
+ expression,
533
+ children: [],
534
+ });
535
+ completionData.icon = 'refProperty';
517
536
 
518
- // 数据查询没有输出参数,特殊处理
519
- if (typeAnnotation.typeKind === 'anonymousStructure') {
520
- structure = { properties: typeAnnotation.properties };
521
- } else if (typeAnnotation.typeArguments) {
522
- structure = { properties: app.getSelectRef(typeAnnotation, true) };
523
- } else {
524
- structure = app.findNodeByCompleteName(typeAnnotation.typeNamespace + '.' + typeAnnotation.typeName);
525
- }
526
- structure?.properties?.forEach((structureProperty: StructureProperty) => {
527
- const { name, typeAnnotation } = structureProperty;
528
- const expression = new MemberExpression({
529
- object: parentExpression,
530
- property: new Identifier({ name }),
537
+ item.children.push(completionData);
538
+ recursionProperty(typeAnnotation, completionData, node, typeKeyMap);
531
539
  });
532
- const completionData = new CompletionProperty({
533
- name,
534
- value: name,
535
- expression,
536
- children: [],
537
- });
538
- completionData.icon = 'refProperty';
539
-
540
- item.children.push(completionData);
541
- recursionProperty(typeAnnotation, completionData, node, typeKeyMap);
542
- });
540
+ }
543
541
  }
544
542
 
545
543
  const completionData = new CompletionProperty(item);
@@ -326,7 +326,7 @@ export function getConfigsIdentifier(node: BaseNode): CompletionProperty[] {
326
326
  const isView = !!(node as Identifier).view;
327
327
  const newProperties = formatConfigProperties(properties, isView);
328
328
  // 添加依赖库的枚举选择
329
- const modules = app?.dependencies?.filter((module) => module.enable && module.type === 'extension') || [];
329
+ const modules = app?.dependencies?.filter((module) => module.type === 'extension') || [];
330
330
  const extensionConfigProperties: any[] = [];
331
331
  modules.forEach((module) => {
332
332
  const groups = module?.configuration?.groups || [];
@@ -3717,7 +3717,6 @@ class NaslServer {
3717
3717
  // TODO: 之后考虑把这些偏移量计算全都挪到节点内部去
3718
3718
  if (
3719
3719
  node.concept === 'BinaryExpression' ||
3720
- node.concept === 'CallLogic' ||
3721
3720
  node.concept === 'CallFunction' ||
3722
3721
  node.concept === 'CallInterface'
3723
3722
  ) {
@@ -0,0 +1,106 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`call-logic:getQuickInfoOffset entries-get-with-arguments 1`] = `
4
+ Object {
5
+ "code": "app.dataSources.defaultDS.entities.Entity1.logics.get(new nasl.core.Long(123));",
6
+ "line": 1,
7
+ "offset": 51,
8
+ }
9
+ `;
10
+
11
+ exports[`call-logic:getQuickInfoOffset entries-update-with-arguments 1`] = `
12
+ Object {
13
+ "code": "app.dataSources.defaultDS.entities.Entity1.logics.update((() => {
14
+ new nasl.core.Long(123);
15
+ new nasl.core.String('StringLiteral');
16
+ new nasl.core.Long(1234);
17
+ function __newComposite() {
18
+ let __obj = nasl.util.New<app.dataSources.defaultDS.entities.Entity1>();
19
+ const { id, name, value } = __obj;
20
+ nasl.core.compareNew(new nasl.core.Long(123), id);
21
+ nasl.core.compareNew(new nasl.core.String('StringLiteral'), name);
22
+ nasl.core.compareNew(new nasl.core.Long(1234), value);
23
+ return __obj;
24
+ };
25
+ return __newComposite();
26
+ })());",
27
+ "line": 1,
28
+ "offset": 51,
29
+ }
30
+ `;
31
+
32
+ exports[`call-logic:getQuickInfoOffset global-logic-argument-no-expression 1`] = `
33
+ Object {
34
+ "code": "app.logics.logic1(__IDENTIFIER__, __IDENTIFIER__, __IDENTIFIER__);",
35
+ "line": 1,
36
+ "offset": 12,
37
+ }
38
+ `;
39
+
40
+ exports[`call-logic:getQuickInfoOffset global-logic-argument-some-expression 1`] = `
41
+ Object {
42
+ "code": "app.logics.logic1(new nasl.core.String('StringLiteral'), __IDENTIFIER__, nasl.util.New<app.dataSources.defaultDS.entities.Entity1>());",
43
+ "line": 1,
44
+ "offset": 12,
45
+ }
46
+ `;
47
+
48
+ exports[`call-logic:getQuickInfoOffset nested-call-logic 1`] = `
49
+ Object {
50
+ "code": "(() =>{
51
+ const wrapper = nasl.util.autoHandleError(extensions.httpclient.logics.exchange);
52
+ return wrapper(nasl.util.stringInterpolation(new nasl.core.String('StringLiteral'), (() =>{
53
+ const wrapper = nasl.util.autoHandleError(extensions.encrypt_tool.logics.encryptWithUrlEncode);
54
+ return wrapper(sign);
55
+ })(), new nasl.core.String('StringLiteral'), (() =>{
56
+ const wrapper = nasl.util.autoHandleError(extensions.encrypt_tool.logics.encryptWithUrlEncode);
57
+ return wrapper(currDate);
58
+ })(), new nasl.core.String('StringLiteral'), SignatureNonce, new nasl.core.String('StringLiteral'), receiver, new nasl.core.String('StringLiteral'), signName, new nasl.core.String('StringLiteral'), templateCode, new nasl.core.String('StringLiteral'), (() =>{
59
+ const wrapper = nasl.util.autoHandleError(extensions.encrypt_tool.logics.encryptWithUrlEncode);
60
+ return wrapper(templateParam);
61
+ })())
62
+ , new nasl.core.String('StringLiteral'), header, body);
63
+ })();",
64
+ "line": 3,
65
+ "offset": 8,
66
+ }
67
+ `;
68
+
69
+ exports[`call-logic:getQuickInfoOffset only-call-logic 1`] = `
70
+ Object {
71
+ "code": "nasl.auth.logout();",
72
+ "line": 1,
73
+ "offset": 11,
74
+ }
75
+ `;
76
+
77
+ exports[`call-logic:getQuickInfoOffset view-buildin-logic-with-argument 1`] = `
78
+ Object {
79
+ "code": "nasl.io.downloadFile(new nasl.core.String('StringLiteral'), new nasl.core.String('StringLiteral'));",
80
+ "line": 1,
81
+ "offset": 9,
82
+ }
83
+ `;
84
+
85
+ exports[`call-logic:getQuickInfoOffset view-component-logic-no-argument 1`] = `
86
+ Object {
87
+ "code": "__elements.uLinearLayout1.openLoading();",
88
+ "line": 1,
89
+ "offset": 27,
90
+ }
91
+ `;
92
+
93
+ exports[`call-logic:getQuickInfoOffset view-component-with-validation 1`] = `
94
+ Object {
95
+ "code": "(() =>{
96
+ const wrapper = nasl.util.callLogicWithChecker(app.logics.logic1, (param1) => {
97
+ () => {param1.length;
98
+ nasl.validation.max(new nasl.core.Long(5));;
99
+ };
100
+ });
101
+ return wrapper(new nasl.core.String('StringLiteral'));
102
+ })();",
103
+ "line": 7,
104
+ "offset": 8,
105
+ }
106
+ `;
@@ -39,6 +39,51 @@ exports[`call-logic:toEmbeddedTS global-logic-argument-some-expression 1`] = `
39
39
  "
40
40
  `;
41
41
 
42
+ exports[`call-logic:toEmbeddedTS nested-call-logic 1`] = `
43
+ "(() => {
44
+ const wrapper = nasl.util.autoHandleError(
45
+ extensions.httpclient.logics.exchange
46
+ );
47
+ return wrapper(
48
+ nasl.util.stringInterpolation(
49
+ new nasl.core.String(\\"StringLiteral\\"),
50
+ (() => {
51
+ const wrapper = nasl.util.autoHandleError(
52
+ extensions.encrypt_tool.logics.encryptWithUrlEncode
53
+ );
54
+ return wrapper(sign);
55
+ })(),
56
+ new nasl.core.String(\\"StringLiteral\\"),
57
+ (() => {
58
+ const wrapper = nasl.util.autoHandleError(
59
+ extensions.encrypt_tool.logics.encryptWithUrlEncode
60
+ );
61
+ return wrapper(currDate);
62
+ })(),
63
+ new nasl.core.String(\\"StringLiteral\\"),
64
+ SignatureNonce,
65
+ new nasl.core.String(\\"StringLiteral\\"),
66
+ receiver,
67
+ new nasl.core.String(\\"StringLiteral\\"),
68
+ signName,
69
+ new nasl.core.String(\\"StringLiteral\\"),
70
+ templateCode,
71
+ new nasl.core.String(\\"StringLiteral\\"),
72
+ (() => {
73
+ const wrapper = nasl.util.autoHandleError(
74
+ extensions.encrypt_tool.logics.encryptWithUrlEncode
75
+ );
76
+ return wrapper(templateParam);
77
+ })()
78
+ ),
79
+ new nasl.core.String(\\"StringLiteral\\"),
80
+ header,
81
+ body
82
+ );
83
+ })();
84
+ "
85
+ `;
86
+
42
87
  exports[`call-logic:toEmbeddedTS only-call-logic 1`] = `
43
88
  "nasl.auth.logout();
44
89
  "