@lcap/nasl 2.20.0-beta.3 → 2.20.0-beta.4

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 (323) hide show
  1. package/out/automate/engine/index.d.ts +1 -1
  2. package/out/automate/engine/index.js +2 -3
  3. package/out/automate/engine/index.js.map +1 -1
  4. package/out/automate/engine/uniqueName.d.ts +1 -1
  5. package/out/automate/engine/uniqueName.js +2 -2
  6. package/out/automate/engine/uniqueName.js.map +1 -1
  7. package/out/automate/engine/utils.js +4 -1
  8. package/out/automate/engine/utils.js.map +1 -1
  9. package/out/automate/template/myProcess.d.ts +1 -1
  10. package/out/automate/template/myProcess.js +2 -2
  11. package/out/automate/template/myProcess.js.map +1 -1
  12. package/out/bak/translator.js +14 -22
  13. package/out/bak/translator.js.map +1 -1
  14. package/out/common/BaseNode.js +4 -1
  15. package/out/common/BaseNode.js.map +1 -1
  16. package/out/common/Command.d.ts +1 -0
  17. package/out/common/Command.js +5 -1
  18. package/out/common/Command.js.map +1 -1
  19. package/out/concepts/App__.d.ts +4 -0
  20. package/out/concepts/App__.js +30 -6
  21. package/out/concepts/App__.js.map +1 -1
  22. package/out/concepts/Assignee__.js +4 -3
  23. package/out/concepts/Assignee__.js.map +1 -1
  24. package/out/concepts/BatchAssignment__.js +3 -3
  25. package/out/concepts/BatchAssignment__.js.map +1 -1
  26. package/out/concepts/BindAttribute__.d.ts +7 -0
  27. package/out/concepts/BindAttribute__.js +270 -39
  28. package/out/concepts/BindAttribute__.js.map +1 -1
  29. package/out/concepts/BindDirective__.d.ts +7 -0
  30. package/out/concepts/BindDirective__.js +215 -17
  31. package/out/concepts/BindDirective__.js.map +1 -1
  32. package/out/concepts/BindStyle__.d.ts +7 -0
  33. package/out/concepts/BindStyle__.js +194 -4
  34. package/out/concepts/BindStyle__.js.map +1 -1
  35. package/out/concepts/CallFunction__.js +22 -8
  36. package/out/concepts/CallFunction__.js.map +1 -1
  37. package/out/concepts/CallInterface__.js +3 -2
  38. package/out/concepts/CallInterface__.js.map +1 -1
  39. package/out/concepts/CallLogic__.d.ts +3 -0
  40. package/out/concepts/CallLogic__.js +78 -89
  41. package/out/concepts/CallLogic__.js.map +1 -1
  42. package/out/concepts/CallQueryComponent__.js +20 -3
  43. package/out/concepts/CallQueryComponent__.js.map +1 -1
  44. package/out/concepts/ConfigGroup__.d.ts +1 -0
  45. package/out/concepts/ConfigGroup__.js +13 -0
  46. package/out/concepts/ConfigGroup__.js.map +1 -1
  47. package/out/concepts/ConfigProperty__.d.ts +19 -0
  48. package/out/concepts/ConfigProperty__.js +61 -0
  49. package/out/concepts/ConfigProperty__.js.map +1 -1
  50. package/out/concepts/Configuration__.d.ts +1 -0
  51. package/out/concepts/Configuration__.js +13 -0
  52. package/out/concepts/Configuration__.js.map +1 -1
  53. package/out/concepts/DataSource__.js.map +1 -1
  54. package/out/concepts/Destination__.d.ts +1 -0
  55. package/out/concepts/Destination__.js +61 -7
  56. package/out/concepts/Destination__.js.map +1 -1
  57. package/out/concepts/EntityProperty__.js +9 -1
  58. package/out/concepts/EntityProperty__.js.map +1 -1
  59. package/out/concepts/EnumItem__.d.ts +5 -5
  60. package/out/concepts/EnumItem__.js +6 -6
  61. package/out/concepts/Enum__.d.ts +20 -19
  62. package/out/concepts/Enum__.js +28 -1
  63. package/out/concepts/Enum__.js.map +1 -1
  64. package/out/concepts/ExternalDestination__.d.ts +1 -0
  65. package/out/concepts/ExternalDestination__.js +21 -3
  66. package/out/concepts/ExternalDestination__.js.map +1 -1
  67. package/out/concepts/ForEachStatement__.js +2 -0
  68. package/out/concepts/ForEachStatement__.js.map +1 -1
  69. package/out/concepts/Frontend__.d.ts +2 -1
  70. package/out/concepts/Frontend__.js.map +1 -1
  71. package/out/concepts/Identifier__.js +16 -5
  72. package/out/concepts/Identifier__.js.map +1 -1
  73. package/out/concepts/InterfaceParam__.js +9 -1
  74. package/out/concepts/InterfaceParam__.js.map +1 -1
  75. package/out/concepts/JSBlock__.js +5 -1
  76. package/out/concepts/JSBlock__.js.map +1 -1
  77. package/out/concepts/Logic__.d.ts +79 -79
  78. package/out/concepts/Logic__.js +16 -3
  79. package/out/concepts/Logic__.js.map +1 -1
  80. package/out/concepts/Match__.d.ts +0 -3
  81. package/out/concepts/Match__.js +11 -66
  82. package/out/concepts/Match__.js.map +1 -1
  83. package/out/concepts/MemberExpression__.js +9 -0
  84. package/out/concepts/MemberExpression__.js.map +1 -1
  85. package/out/concepts/Module__.d.ts +16 -0
  86. package/out/concepts/Module__.js +43 -0
  87. package/out/concepts/Module__.js.map +1 -1
  88. package/out/concepts/NewComposite__.d.ts +2 -4
  89. package/out/concepts/NewComposite__.js +91 -126
  90. package/out/concepts/NewComposite__.js.map +1 -1
  91. package/out/concepts/NewList__.d.ts +1 -0
  92. package/out/concepts/NewList__.js +22 -2
  93. package/out/concepts/NewList__.js.map +1 -1
  94. package/out/concepts/NewMap__.d.ts +1 -0
  95. package/out/concepts/NewMap__.js +43 -11
  96. package/out/concepts/NewMap__.js.map +1 -1
  97. package/out/concepts/OqlQueryComponent__.js +40 -12
  98. package/out/concepts/OqlQueryComponent__.js.map +1 -1
  99. package/out/concepts/Param__.js +10 -2
  100. package/out/concepts/Param__.js.map +1 -1
  101. package/out/concepts/ProcessElement__.js +2 -1
  102. package/out/concepts/ProcessElement__.js.map +1 -1
  103. package/out/concepts/ProcessOutcome__.js +1 -1
  104. package/out/concepts/ProcessOutcome__.js.map +1 -1
  105. package/out/concepts/ProcessOutcomes__.js +1 -1
  106. package/out/concepts/ProcessOutcomes__.js.map +1 -1
  107. package/out/concepts/Process__.js +1 -0
  108. package/out/concepts/Process__.js.map +1 -1
  109. package/out/concepts/Return__.js +10 -2
  110. package/out/concepts/Return__.js.map +1 -1
  111. package/out/concepts/StringInterpolation__.js +14 -2
  112. package/out/concepts/StringInterpolation__.js.map +1 -1
  113. package/out/concepts/StringLiteral__.js +6 -6
  114. package/out/concepts/StringLiteral__.js.map +1 -1
  115. package/out/concepts/StructureProperty__.js +9 -1
  116. package/out/concepts/StructureProperty__.js.map +1 -1
  117. package/out/concepts/TypeAnnotation__.d.ts +6 -3
  118. package/out/concepts/TypeAnnotation__.js +67 -13
  119. package/out/concepts/TypeAnnotation__.js.map +1 -1
  120. package/out/concepts/ValidationRule__.d.ts +1 -0
  121. package/out/concepts/ValidationRule__.js +53 -0
  122. package/out/concepts/ValidationRule__.js.map +1 -1
  123. package/out/concepts/Variable__.js +9 -1
  124. package/out/concepts/Variable__.js.map +1 -1
  125. package/out/concepts/ViewElement__.js +17 -1
  126. package/out/concepts/ViewElement__.js.map +1 -1
  127. package/out/concepts/View__.d.ts +1 -3
  128. package/out/concepts/View__.js +22 -11
  129. package/out/concepts/View__.js.map +1 -1
  130. package/out/concepts/basics/stdlib/nasl.collection.js +6 -1
  131. package/out/concepts/basics/stdlib/nasl.collection.js.map +1 -1
  132. package/out/concepts/basics/stdlib/nasl.configuration.js +3 -0
  133. package/out/concepts/basics/stdlib/nasl.configuration.js.map +1 -1
  134. package/out/concepts/basics/stdlib/nasl.core.d.ts +2 -0
  135. package/out/concepts/basics/stdlib/nasl.core.js +34 -0
  136. package/out/concepts/basics/stdlib/nasl.core.js.map +1 -1
  137. package/out/concepts/basics/stdlib/nasl.util.js +4 -2
  138. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  139. package/out/concepts/basics/types/index.d.ts +1 -0
  140. package/out/concepts/basics/types/index.js +3 -1
  141. package/out/concepts/basics/types/index.js.map +1 -1
  142. package/out/concepts/index__.d.ts +0 -1
  143. package/out/concepts/index__.js +0 -1
  144. package/out/concepts/index__.js.map +1 -1
  145. package/out/enums/KEYWORDS.js +8 -0
  146. package/out/enums/KEYWORDS.js.map +1 -1
  147. package/out/generator/genBundleFiles.js +24 -5
  148. package/out/generator/genBundleFiles.js.map +1 -1
  149. package/out/generator/genReleaseBody.d.ts +2 -3
  150. package/out/generator/genReleaseBody.js +97 -23
  151. package/out/generator/genReleaseBody.js.map +1 -1
  152. package/out/generator/permission.d.ts +2 -10
  153. package/out/generator/permission.js +26 -13
  154. package/out/generator/permission.js.map +1 -1
  155. package/out/server/entity2LogicNamespace.js +2 -20
  156. package/out/server/entity2LogicNamespace.js.map +1 -1
  157. package/out/server/extendBaseNode.js +16 -5
  158. package/out/server/extendBaseNode.js.map +1 -1
  159. package/out/server/formatTsUtils.d.ts +2 -1
  160. package/out/server/formatTsUtils.js +40 -10
  161. package/out/server/formatTsUtils.js.map +1 -1
  162. package/out/server/getLogics.d.ts +2 -2
  163. package/out/server/getLogics.js +3 -3
  164. package/out/server/getLogics.js.map +1 -1
  165. package/out/server/getMemberIdentifier.d.ts +1 -0
  166. package/out/server/getMemberIdentifier.js +27 -1
  167. package/out/server/getMemberIdentifier.js.map +1 -1
  168. package/out/server/index.js +1 -0
  169. package/out/server/index.js.map +1 -1
  170. package/out/server/naslServer.d.ts +7 -1
  171. package/out/server/naslServer.js +519 -46
  172. package/out/server/naslServer.js.map +1 -1
  173. package/out/server/translator.js +109 -33
  174. package/out/server/translator.js.map +1 -1
  175. package/out/service/storage/init.js +21 -1
  176. package/out/service/storage/init.js.map +1 -1
  177. package/out/templator/genCreateBlock.js +1 -3
  178. package/out/templator/genCreateBlock.js.map +1 -1
  179. package/out/templator/genCurdEditMultipleKeyBlock.js +1 -3
  180. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  181. package/out/templator/genCurdMultipleKeyBlock.js +2 -4
  182. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  183. package/out/templator/genGetBlock.js +1 -1
  184. package/out/templator/genGetBlock.js.map +1 -1
  185. package/out/templator/genGridViewBlock.js +2 -2
  186. package/out/templator/genGridViewBlock.js.map +1 -1
  187. package/out/templator/genListViewBlock.js +7 -1
  188. package/out/templator/genListViewBlock.js.map +1 -1
  189. package/out/templator/genSelectBlock.js +1 -1
  190. package/out/templator/genSelectBlock.js.map +1 -1
  191. package/out/templator/genTableBlock.js +2 -2
  192. package/out/templator/genTableBlock.js.map +1 -1
  193. package/out/templator/genUpdateBlock.js +2 -3
  194. package/out/templator/genUpdateBlock.js.map +1 -1
  195. package/out/utils/traverse.js +8 -2
  196. package/out/utils/traverse.js.map +1 -1
  197. package/package.json +2 -2
  198. package/sandbox/stdlib/dist/nasl.logging.js +0 -0
  199. package/sandbox/stdlib/dist/nasl.util.js +0 -0
  200. package/sandbox/stdlib/nasl.collection.ts +1 -0
  201. package/sandbox/stdlib/nasl.core.ts +34 -0
  202. package/sandbox/stdlib/nasl.oql.ts +71 -15
  203. package/sandbox/stdlib/nasl.util.ts +9 -3
  204. package/src/automate/engine/dist/index.dev.js +517 -0
  205. package/src/automate/engine/index.js +2 -3
  206. package/src/automate/engine/uniqueName.js +2 -2
  207. package/src/automate/engine/utils.js +4 -2
  208. package/src/automate/template/myProcess.js +2 -2
  209. package/src/bak/translator.js +16 -25
  210. package/src/common/BaseNode.ts +3 -1
  211. package/src/common/Command.ts +4 -0
  212. package/src/common/dist/BaseNode.js +1101 -0
  213. package/src/concepts/App__.ts +36 -7
  214. package/src/concepts/Assignee__.ts +4 -3
  215. package/src/concepts/BatchAssignment__.ts +3 -3
  216. package/src/concepts/BindAttribute__.ts +299 -38
  217. package/src/concepts/BindDirective__.ts +204 -31
  218. package/src/concepts/BindStyle__.ts +187 -24
  219. package/src/concepts/CallFunction__.ts +55 -10
  220. package/src/concepts/CallInterface__.ts +3 -2
  221. package/src/concepts/CallLogic__.ts +110 -90
  222. package/src/concepts/CallQueryComponent__.ts +18 -3
  223. package/src/concepts/ConfigGroup__.ts +17 -4
  224. package/src/concepts/ConfigProperty__.ts +70 -4
  225. package/src/concepts/Configuration__.ts +14 -5
  226. package/src/concepts/DataSource__.ts +4 -1
  227. package/src/concepts/Destination__.ts +61 -7
  228. package/src/concepts/EntityProperty__.ts +7 -1
  229. package/src/concepts/EnumItem__.ts +6 -6
  230. package/src/concepts/Enum__.ts +22 -19
  231. package/src/concepts/ExternalDestination__.ts +28 -8
  232. package/src/concepts/ForEachStatement__.ts +2 -0
  233. package/src/concepts/Frontend__.ts +2 -1
  234. package/src/concepts/Identifier__.ts +16 -5
  235. package/src/concepts/InterfaceParam__.ts +7 -1
  236. package/src/concepts/JSBlock__.ts +3 -2
  237. package/src/concepts/Logic__.ts +95 -83
  238. package/src/concepts/Match__.ts +31 -67
  239. package/src/concepts/MemberExpression__.ts +6 -0
  240. package/src/concepts/Module__.ts +57 -0
  241. package/src/concepts/NewComposite__.ts +95 -140
  242. package/src/concepts/NewList__.ts +23 -2
  243. package/src/concepts/NewMap__.ts +48 -24
  244. package/src/concepts/OqlQueryComponent__.ts +40 -20
  245. package/src/concepts/Param__.ts +178 -176
  246. package/src/concepts/ProcessElement__.ts +2 -1
  247. package/src/concepts/ProcessOutcome__.ts +1 -1
  248. package/src/concepts/ProcessOutcomes__.ts +1 -1
  249. package/src/concepts/Process__.ts +1 -0
  250. package/src/concepts/Return__.ts +8 -2
  251. package/src/concepts/StringInterpolation__.ts +19 -7
  252. package/src/concepts/StringLiteral__.ts +7 -6
  253. package/src/concepts/StructureProperty__.ts +7 -1
  254. package/src/concepts/TypeAnnotation__.ts +101 -14
  255. package/src/concepts/ValidationRule__.ts +58 -9
  256. package/src/concepts/Variable__.ts +11 -1
  257. package/src/concepts/ViewElement__.ts +39 -2
  258. package/src/concepts/View__.ts +26 -14
  259. package/src/concepts/basics/stdlib/dist/nasl.util.js +1602 -0
  260. package/src/concepts/basics/stdlib/dist/reference2TypeAnnotationList.js +24 -0
  261. package/src/concepts/basics/stdlib/nasl.collection.ts +6 -1
  262. package/src/concepts/basics/stdlib/nasl.configuration.ts +3 -0
  263. package/src/concepts/basics/stdlib/nasl.core.ts +33 -2
  264. package/src/concepts/basics/stdlib/nasl.util.ts +4 -2
  265. package/src/concepts/basics/types/index.ts +1 -0
  266. package/src/concepts/dist/BindAttribute__.js +795 -0
  267. package/src/concepts/dist/BindEvent__.js +732 -0
  268. package/src/concepts/dist/CallFunction__.js +527 -0
  269. package/src/concepts/dist/CallLogic__.js +932 -0
  270. package/src/concepts/dist/Destination__.js +708 -0
  271. package/src/concepts/dist/ExternalDestination__.js +298 -0
  272. package/src/concepts/dist/Identifier__.js +311 -0
  273. package/src/concepts/dist/StringInterpolation__.js +231 -0
  274. package/src/concepts/dist/TypeAnnotation__.js +834 -0
  275. package/src/concepts/dist/ViewElement__.js +1692 -0
  276. package/src/concepts/dist/View__.js +1601 -0
  277. package/src/concepts/index__.ts +0 -1
  278. package/src/enums/KEYWORDS.ts +8 -0
  279. package/src/generator/dist/genBundleFiles.js +261 -0
  280. package/src/generator/dist/genMetaData.js +245 -0
  281. package/src/generator/dist/permission.js +405 -0
  282. package/src/generator/genBundleFiles.ts +24 -5
  283. package/src/generator/genReleaseBody.ts +75 -30
  284. package/src/generator/permission.ts +30 -14
  285. package/src/server/entity2LogicNamespace.ts +2 -20
  286. package/src/server/extendBaseNode.ts +15 -5
  287. package/src/server/formatTsUtils.ts +41 -10
  288. package/src/server/getLogics.ts +4 -4
  289. package/src/server/getMemberIdentifier.ts +27 -1
  290. package/src/server/index.ts +2 -0
  291. package/src/server/naslServer.ts +520 -48
  292. package/src/server/translator.ts +96 -34
  293. package/src/service/storage/dist/init.js +579 -0
  294. package/src/service/storage/init.ts +22 -2
  295. package/src/templator/dist/genEditTableBlock.js +204 -0
  296. package/src/templator/dist/genGridViewBlock.js +265 -0
  297. package/src/templator/dist/genListViewBlock.js +84 -0
  298. package/src/templator/dist/genTableBlock.js +209 -0
  299. package/src/templator/dist/utils.js +527 -0
  300. package/src/templator/genCreateBlock.ts +1 -3
  301. package/src/templator/genCurdEditMultipleKeyBlock.ts +1 -3
  302. package/src/templator/genCurdMultipleKeyBlock.ts +2 -4
  303. package/src/templator/genGetBlock.ts +1 -1
  304. package/src/templator/genGridViewBlock.ts +3 -4
  305. package/src/templator/genListViewBlock.ts +9 -3
  306. package/src/templator/genSelectBlock.ts +1 -1
  307. package/src/templator/genTableBlock.ts +3 -3
  308. package/src/templator/genUpdateBlock.ts +2 -3
  309. package/src/utils/traverse.ts +10 -2
  310. package/ts-worker/lib/tsserver.js +10 -2
  311. package/ts-worker/package.json +1 -0
  312. package/ts-worker/webpack.config.js +11 -2
  313. package/out/concepts/ConstructArgument__.d.ts +0 -40
  314. package/out/concepts/ConstructArgument__.js +0 -108
  315. package/out/concepts/ConstructArgument__.js.map +0 -1
  316. package/out/concepts/Construct__.d.ts +0 -189
  317. package/out/concepts/Construct__.js +0 -340
  318. package/out/concepts/Construct__.js.map +0 -1
  319. package/out/templator/sql-parser/index.d.ts +0 -1
  320. package/out/templator/sql-parser/index.js +0 -228
  321. package/out/templator/sql-parser/index.js.map +0 -1
  322. package/out/templator/sql-parser/parser.js +0 -26664
  323. package/out/templator/sql-parser/parser.js.map +0 -1
@@ -49,6 +49,7 @@ import {
49
49
  OqlQueryComponent,
50
50
  NewMap,
51
51
  NewList,
52
+ NewComposite,
52
53
  } from '../concepts';
53
54
  import { SourceMapItem } from '../translator';
54
55
  import { Diagnostic } from '../manager/diagnostic';
@@ -94,7 +95,7 @@ function transformType(tsType: string): string {
94
95
  return '拓展模块';
95
96
  else if (tsType === 'Promise<void>')
96
97
  return '未知类型';
97
- else if (tsType.startsWith('{') && tsType.endsWith('}') || tsType.startsWith('{') && tsType.endsWith('...')) {
98
+ else if ((tsType.startsWith('{') && tsType.endsWith('}')) || (tsType.startsWith('{') && tsType.endsWith('...'))) {
98
99
  if (tsType.includes('__name: "AStructure_')) {
99
100
  return tsType.replace(/__name: "AStructure_\w{8}";/g, '');
100
101
  }
@@ -141,6 +142,7 @@ const NAMESPACE_CONCEPT_MAP: Record<string, string> = {
141
142
  extensions: '扩展模块',
142
143
  apis: '接口应用',
143
144
  components: '扩展组件',
145
+ properties: '配置参数',
144
146
  };
145
147
 
146
148
  function transformNamespace(tsNamespace: string): string {
@@ -276,6 +278,10 @@ const TS_RULES: Array<{
276
278
  re: /Cannot find name '__(?:OQL_GRAMMAR_ERROR)__'/,
277
279
  result: 'SQL查询:语句可能有异常。',
278
280
  },
281
+ {
282
+ re: /Cannot find name '__(?:OQL_ALIAS_WARNING)__'/,
283
+ result: 'SQL查询:别名不符合规范。',
284
+ },
279
285
  {
280
286
  re: /Cannot find name '__(?:OQL_EMPTY_ERROR)__'/,
281
287
  result: 'SQL查询:语句不能为空。',
@@ -375,9 +381,17 @@ const TS_RULES: Array<{
375
381
  re: /'__destinationEmpty__' is declared but its value is never read./,
376
382
  result: '任务未关联页面',
377
383
  },
384
+ {
385
+ re: /'__devConfigValueEmpty' is declared but its value is never read./,
386
+ result: '配置参数开发环境取值未设置',
387
+ },
388
+ {
389
+ re: /'__onlineConfigValueEmpty' is declared but its value is never read./,
390
+ result: '配置参数生产环境取值未设置',
391
+ },
378
392
  {
379
393
  re: /Variable '(.+?)' implicitly has an 'any' type./,
380
- result: '$1推断不出类型!请连线或手动设置',
394
+ result: '$1推导不出类型!请连线或手动设置',
381
395
  transforms: [transformType],
382
396
  },
383
397
  ];
@@ -407,6 +421,14 @@ const POST_RULES: Array<{
407
421
  re: /Decimal|"Decimal"/g,
408
422
  result: '精确小数',
409
423
  },
424
+ {
425
+ re: /String|"String"/g,
426
+ result: '字符串',
427
+ },
428
+ {
429
+ re: /Boolean|"Boolean"/g,
430
+ result: '布尔值',
431
+ },
410
432
  {
411
433
  re: /never/g,
412
434
  result: '未知类型',
@@ -491,7 +513,7 @@ export function naslNodeTranslateMessage(minRange: MinRange, tsErrorDetail: Diag
491
513
  }
492
514
  }
493
515
 
494
- if (node instanceof ProcessElement && (['ExclusiveGateway', 'ParallelGateway', 'InclusiveGateway'].includes(node.type))) {
516
+ if (node instanceof ProcessElement && ['ExclusiveGateway', 'ParallelGateway', 'InclusiveGateway'].includes(node.type)) {
495
517
  const reg = /Expected (.+?) arguments, but got (.+?)./.exec(text);
496
518
  let u = '排他网关';
497
519
  if (node.type === 'ParallelGateway') {
@@ -513,15 +535,27 @@ export function naslNodeTranslateMessage(minRange: MinRange, tsErrorDetail: Diag
513
535
  node = node.getAncestor('CallLogic');
514
536
  }
515
537
  // 赋值左右侧类型不一致, 把文字换一下
516
- if (/Argument of type '(.+?)' is not assignable to parameter of type '(.+?)'/.exec(text) && node.parentNode instanceof Assignment) {
517
- // OQL 的返回类型报错需要转换翻译,其内部 SQL 语句的参数类型报错不转换翻译
538
+ if (/Argument of type '(.+?)' is not assignable to parameter of type '(.+?)'/.exec(text)) {
518
539
  if (node instanceof OqlQueryComponent) {
519
- if ((node.getCurrentSource().currentSource.range.start.line + 1) === tsErrorDetail.originalDiagnostic.start.line) {
540
+ tsErrorDetail.message = tsErrorDetail.message.replace('参数类型不一致!传入类型:', '类型不一致!传入类型:').replace('接收类型:', '期待类型:');
541
+ } else if (node.parentNode instanceof Assignment) {
542
+ // OQL 的返回类型报错需要转换翻译,其内部 SQL 语句的参数类型报错不转换翻译
543
+ if (node instanceof OqlQueryComponent) {
544
+ if (node.getCurrentSource().currentSource.range.start.line + 1 === tsErrorDetail.originalDiagnostic.start.line) {
545
+ tsErrorDetail.message = tsErrorDetail.message.replace('参数类型不一致!传入类型:', '赋值:类型不一致!右边类型:').replace('接收类型:', '左边类型:');
546
+ }
547
+ } else {
548
+ // node = node.getAncestor('CallLogic');
520
549
  tsErrorDetail.message = tsErrorDetail.message.replace('参数类型不一致!传入类型:', '赋值:类型不一致!右边类型:').replace('接收类型:', '左边类型:');
521
550
  }
522
- } else {
523
- // node = node.getAncestor('CallLogic');
524
- tsErrorDetail.message = tsErrorDetail.message.replace('参数类型不一致!传入类型:', '赋值:类型不一致!右边类型:').replace('接收类型:', '左边类型:');
551
+ } else if (node.parentNode instanceof NewMap) {
552
+ if (text.includes(`is not assignable to parameter of type 'None'`)) {
553
+ tsErrorDetail.message = tsErrorDetail.message = `'参数类型不一致!', 'map的key类型只能是String | Integer | Boolean | Long | Decimal'的其中一种`;
554
+ } else if (text.includes(`parameter of type 'never'`)) {
555
+ tsErrorDetail.message = '自动推导不出类型!newMap中有未知类型';
556
+ }
557
+ } else if (node.parentNode instanceof NewList && text.includes(`parameter of type 'never'`)) {
558
+ tsErrorDetail.message = '自动推导不出类型!newList中有未知类型';
525
559
  }
526
560
  }
527
561
  if (node instanceof Argument || node instanceof Anchor) {
@@ -552,10 +586,6 @@ export function naslNodeTranslateMessage(minRange: MinRange, tsErrorDetail: Diag
552
586
  tsErrorDetail.message = str;
553
587
  }
554
588
  }
555
- if (node instanceof OqlQueryComponent) {
556
- console.log(minRange, tsErrorDetail);
557
- }
558
-
559
589
  // 类型报错的,需要放到上一级
560
590
  if (/'(.+?)' has no exported member(?: named)? '(.+?)'/.exec(text) || /Property '(.+?)' does not exist on type '(.+?)'./.exec(text)) {
561
591
  if (node instanceof TypeAnnotation) {
@@ -592,6 +622,10 @@ export function naslNodeTranslateMessage(minRange: MinRange, tsErrorDetail: Diag
592
622
  tsErrorDetail.message = '调用逻辑:参数不能为空!';
593
623
  } else if (node instanceof ProcessOutcome || node instanceof Function || node instanceof MatchCase) {
594
624
  tsErrorDetail.message = (node as any).constructor.nodeTitle + ':不能为空!';
625
+ } else if (node instanceof NewMap) {
626
+ tsErrorDetail.message = 'Map推导不出类型!请手动设置!';
627
+ } else if (node instanceof NewList) {
628
+ tsErrorDetail.message = 'List推导不出类型!请手动设置!';
595
629
  } else if (node instanceof Argument) {
596
630
  let str = tsErrorDetail.message;
597
631
  str = (node.parentNode as any).constructor.nodeTitle + ':' + str;
@@ -627,23 +661,35 @@ export function naslNodeTranslateMessage(minRange: MinRange, tsErrorDetail: Diag
627
661
  if (/'__UpdateNoProperty__' is declared but its value is never read./.exec(text)) {
628
662
  tsErrorDetail.message = '局部更新:未选择任何属性';
629
663
  const callLogic = node.parentNode.parentNode.parentNode as CallLogic;
630
- const bodyArgument = callLogic.arguments.find(item => item.keyword === 'body');
664
+ const bodyArgument = callLogic.arguments.find((item) => item.keyword === 'body');
631
665
  node = bodyArgument.expression;
632
666
  }
633
667
 
634
668
  // 左右类型不一致的,把上级信息带上
635
669
  if (/^Type '(.+?)' is not assignable to type '(.+?)'\./.exec(text) || /^This condition will always return '(.+?)' since the types '(.+?)' and '(.+?)' have no overlap./.exec(text)) {
636
- let str = tsErrorDetail.message;
637
- str = (node.parentNode as any).constructor.nodeTitle + ':' + str;
638
- tsErrorDetail.message = str;
639
-
640
- if (node.parentNode instanceof AnonymousFunction) {
641
- // 匿名函数:左右参数类型不一致!左边类型:布尔值,右边类型:整数。
642
- tsErrorDetail.message = tsErrorDetail.message.replace('左右参数', '返回值')
643
- .replace('左边类型', '接收类型')
644
- .replace('右边类型', '传入类型');
645
- } else if (text === `Type 'void' is not assignable to type 'never'.`) {
646
- tsErrorDetail.message = `${node.name}推断不出类型!请连线或手动设置`;
670
+ if (node instanceof OqlQueryComponent) {
671
+ // SQL语句:查询字段重复:id
672
+ let cap = /^Type '(.+?)' is not assignable to type 'true'\./.exec(text);
673
+ if (cap) {
674
+ const errorMsg = 'SQL查询:查询字段重复:$1'.replace(/\$(\d+)/g, (m, index) => transformType(cap[index]));
675
+ tsErrorDetail.message = errorMsg;
676
+ } else {
677
+ cap = /^Type '(.+?)' is not assignable to type '(.+?)'\./.exec(text);
678
+ if (cap) {
679
+ const errorMsg = 'SQL查询:返回类型不一致:选择类型:$2,返回类型:$1'.replace(/\$(\d+)/g, (m, index) => transformType(cap[index]));
680
+ tsErrorDetail.message = errorMsg;
681
+ }
682
+ }
683
+ } else {
684
+ let str = tsErrorDetail.message;
685
+ str = (node.parentNode as any).constructor.nodeTitle + ':' + str;
686
+ tsErrorDetail.message = str;
687
+ if (node.parentNode instanceof AnonymousFunction) {
688
+ // 匿名函数:左右参数类型不一致!左边类型:布尔值,右边类型:整数。
689
+ tsErrorDetail.message = tsErrorDetail.message.replace('左右参数', '返回值').replace('左边类型', '接收类型').replace('右边类型', '传入类型');
690
+ } else if (text === `Type 'void' is not assignable to type 'never'.`) {
691
+ tsErrorDetail.message = `${node.name}推导不出类型!请连线或手动设置`;
692
+ }
647
693
  }
648
694
  }
649
695
  // 参数类型不一致!
@@ -673,18 +719,34 @@ export function naslNodeTranslateMessage(minRange: MinRange, tsErrorDetail: Diag
673
719
  node.isSmpty = true;
674
720
  }
675
721
  }
676
- if (/Variable '(.+?)' implicitly has an 'any' type./.exec(text)) {
677
- if (node.parentNode instanceof NewMap || node.parentNode instanceof NewList)
722
+ if (/Variable '(.+?)' implicitly has an 'any' type./.exec(text) || /Variable '(.+?)' implicitly has an 'any\[\]' type./.exec(text)) {
723
+ if (node.parentNode instanceof NewComposite) {
724
+ //
725
+ } else if (node.parentNode instanceof NewList) {
726
+ tsErrorDetail.message = tsErrorDetail.message.replace('!请连线或手动设置', '');
727
+ } else if (node.parentNode instanceof NewMap) {
728
+ tsErrorDetail.message = tsErrorDetail.message.replace('!请连线或手动设置', '');
729
+ } else {
678
730
  return;
679
- // if (node.parentNode instanceof NewMap) {
680
- // tsErrorDetail.message = 'newMap未设置类型,右侧属性' + tsErrorDetail.message.split('请连线或手动设置')[0];
681
- // } else if (node.parentNode instanceof NewList) {
682
- // tsErrorDetail.message = 'newList未设置类型,属性' + tsErrorDetail.message.split('请连线或手动设置')[0];
683
- // }
731
+ }
684
732
  }
685
733
  for (const rule of POST_RULES) {
686
- if (rule.re.test(tsErrorDetail.message))
687
- tsErrorDetail.message = tsErrorDetail.message.replace(rule.re, rule.result);
734
+ if (rule.re.test(tsErrorDetail.message)) {
735
+ tsErrorDetail.message = tsErrorDetail.message.replace(rule.re, (value, index, oldStr) => {
736
+ // 处理匹配到的值的左右的内容,是不是还是字母,要是字母就原样输出,防止展示问题
737
+ try {
738
+ const leftCode = index - 1 < 0 ? '' : oldStr[index - 1];
739
+ const rightCode = oldStr[index + value.length] || '';
740
+ if (/^[A-Za-z]+$/.test(leftCode) || /^[A-Za-z]+$/.test(rightCode)) {
741
+ return value;
742
+ } else {
743
+ return rule.result;
744
+ }
745
+ } catch (err) {
746
+ return value;
747
+ }
748
+ });
749
+ }
688
750
  }
689
751
  node.tsErrorDetail = tsErrorDetail;
690
752
  // 如果logic中有报错就把标识置为true