@lcap/nasl 2.18.0-beta.7 → 2.19.0-beta.1

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 (265) hide show
  1. package/out/automate/template/myProcess.js +1 -1
  2. package/out/automate/template/myProcess.js.map +1 -1
  3. package/out/bak/translator.js +2 -1
  4. package/out/bak/translator.js.map +1 -1
  5. package/out/common/Command.d.ts +1 -0
  6. package/out/common/Command.js +5 -1
  7. package/out/common/Command.js.map +1 -1
  8. package/out/concepts/AnonymousFunction__.d.ts +1 -0
  9. package/out/concepts/AnonymousFunction__.js +40 -2
  10. package/out/concepts/AnonymousFunction__.js.map +1 -1
  11. package/out/concepts/App__.d.ts +10 -0
  12. package/out/concepts/App__.js +132 -0
  13. package/out/concepts/App__.js.map +1 -1
  14. package/out/concepts/Assignee__.js +4 -3
  15. package/out/concepts/Assignee__.js.map +1 -1
  16. package/out/concepts/BatchAssignment__.d.ts +2 -0
  17. package/out/concepts/BatchAssignment__.js +45 -1
  18. package/out/concepts/BatchAssignment__.js.map +1 -1
  19. package/out/concepts/BindAttribute__.js +8 -1
  20. package/out/concepts/BindAttribute__.js.map +1 -1
  21. package/out/concepts/CallFunction__.js +51 -18
  22. package/out/concepts/CallFunction__.js.map +1 -1
  23. package/out/concepts/CallInterface__.js +6 -4
  24. package/out/concepts/CallInterface__.js.map +1 -1
  25. package/out/concepts/CallLogic__.js +87 -15
  26. package/out/concepts/CallLogic__.js.map +1 -1
  27. package/out/concepts/CallQueryComponent__.js +4 -1
  28. package/out/concepts/CallQueryComponent__.js.map +1 -1
  29. package/out/concepts/DataSource__.d.ts +2 -0
  30. package/out/concepts/DataSource__.js +55 -1
  31. package/out/concepts/DataSource__.js.map +1 -1
  32. package/out/concepts/ForEachStatement__.js +2 -0
  33. package/out/concepts/ForEachStatement__.js.map +1 -1
  34. package/out/concepts/Identifier__.d.ts +1 -0
  35. package/out/concepts/Identifier__.js +18 -7
  36. package/out/concepts/Identifier__.js.map +1 -1
  37. package/out/concepts/LogicItem__.d.ts +1 -1
  38. package/out/concepts/LogicItem__.js.map +1 -1
  39. package/out/concepts/Logic__.d.ts +1 -0
  40. package/out/concepts/Logic__.js +27 -14
  41. package/out/concepts/Logic__.js.map +1 -1
  42. package/out/concepts/Match__.js +13 -8
  43. package/out/concepts/Match__.js.map +1 -1
  44. package/out/concepts/NewComposite__.d.ts +345 -0
  45. package/out/concepts/NewComposite__.js +1067 -0
  46. package/out/concepts/NewComposite__.js.map +1 -0
  47. package/out/concepts/NewList__.d.ts +130 -0
  48. package/out/concepts/NewList__.js +353 -0
  49. package/out/concepts/NewList__.js.map +1 -0
  50. package/out/concepts/NewMap__.d.ts +221 -0
  51. package/out/concepts/NewMap__.js +492 -0
  52. package/out/concepts/NewMap__.js.map +1 -0
  53. package/out/concepts/New__.d.ts +19 -0
  54. package/out/concepts/New__.js +66 -0
  55. package/out/concepts/New__.js.map +1 -0
  56. package/out/concepts/Param__.d.ts +2 -0
  57. package/out/concepts/Param__.js +40 -3
  58. package/out/concepts/Param__.js.map +1 -1
  59. package/out/concepts/ProcessElement__.js +31 -10
  60. package/out/concepts/ProcessElement__.js.map +1 -1
  61. package/out/concepts/ProcessOutcome__.js +1 -1
  62. package/out/concepts/ProcessOutcome__.js.map +1 -1
  63. package/out/concepts/ProcessOutcomes__.d.ts +30 -0
  64. package/out/concepts/{ConstructArgument__.js → ProcessOutcomes__.js} +27 -48
  65. package/out/concepts/ProcessOutcomes__.js.map +1 -0
  66. package/out/concepts/Return__.js +2 -1
  67. package/out/concepts/Return__.js.map +1 -1
  68. package/out/concepts/SelectMembers__.js +3 -3
  69. package/out/concepts/SelectMembers__.js.map +1 -1
  70. package/out/concepts/StringInterpolation__.js +12 -2
  71. package/out/concepts/StringInterpolation__.js.map +1 -1
  72. package/out/concepts/TypeAnnotation__.d.ts +4 -0
  73. package/out/concepts/TypeAnnotation__.js +66 -12
  74. package/out/concepts/TypeAnnotation__.js.map +1 -1
  75. package/out/concepts/ValidationRule__.js +1 -1
  76. package/out/concepts/ValidationRule__.js.map +1 -1
  77. package/out/concepts/Variable__.js +2 -1
  78. package/out/concepts/Variable__.js.map +1 -1
  79. package/out/concepts/ViewElement__.js +12 -0
  80. package/out/concepts/ViewElement__.js.map +1 -1
  81. package/out/concepts/View__.d.ts +1 -0
  82. package/out/concepts/View__.js +9 -0
  83. package/out/concepts/View__.js.map +1 -1
  84. package/out/concepts/basics/stdlib/nasl.auth.js +1 -1
  85. package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -1
  86. package/out/concepts/basics/stdlib/nasl.logging.js +5 -0
  87. package/out/concepts/basics/stdlib/nasl.logging.js.map +1 -1
  88. package/out/concepts/basics/stdlib/nasl.ui.js +2 -0
  89. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  90. package/out/concepts/basics/stdlib/nasl.util.js +151 -19
  91. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  92. package/out/concepts/index__.d.ts +5 -0
  93. package/out/concepts/index__.js +5 -0
  94. package/out/concepts/index__.js.map +1 -1
  95. package/out/enums/KEYWORDS.js +1 -0
  96. package/out/enums/KEYWORDS.js.map +1 -1
  97. package/out/generator/genMetaData.js +1 -6
  98. package/out/generator/genMetaData.js.map +1 -1
  99. package/out/generator/genReleaseBody.d.ts +2 -0
  100. package/out/generator/genReleaseBody.js +18 -1
  101. package/out/generator/genReleaseBody.js.map +1 -1
  102. package/out/generator/index.d.ts +1 -0
  103. package/out/generator/index.js +1 -0
  104. package/out/generator/index.js.map +1 -1
  105. package/out/generator/permission.d.ts +9 -0
  106. package/out/generator/permission.js +235 -0
  107. package/out/generator/permission.js.map +1 -0
  108. package/out/index.d.ts +1 -1
  109. package/out/index.js +2 -1
  110. package/out/index.js.map +1 -1
  111. package/out/server/entity2LogicNamespace.js +69 -9
  112. package/out/server/entity2LogicNamespace.js.map +1 -1
  113. package/out/server/extendBaseNode.js +7 -3
  114. package/out/server/extendBaseNode.js.map +1 -1
  115. package/out/server/formatTsUtils.js +6 -0
  116. package/out/server/formatTsUtils.js.map +1 -1
  117. package/out/server/getLogics.d.ts +2 -1
  118. package/out/server/getLogics.js +11 -0
  119. package/out/server/getLogics.js.map +1 -1
  120. package/out/server/getMemberIdentifier.js +1 -1
  121. package/out/server/getMemberIdentifier.js.map +1 -1
  122. package/out/server/naslServer.d.ts +1 -1
  123. package/out/server/naslServer.js +161 -22
  124. package/out/server/naslServer.js.map +1 -1
  125. package/out/server/process2LogicNamespace.js +8 -0
  126. package/out/server/process2LogicNamespace.js.map +1 -1
  127. package/out/server/translator.js +53 -8
  128. package/out/server/translator.js.map +1 -1
  129. package/out/service/creator/add.configs.js +4 -0
  130. package/out/service/creator/add.configs.js.map +1 -1
  131. package/out/service/datasource/api.d.ts +12 -0
  132. package/out/service/datasource/api.js +14 -0
  133. package/out/service/datasource/api.js.map +1 -0
  134. package/out/service/datasource/index.d.ts +2 -0
  135. package/out/service/datasource/index.js +10 -0
  136. package/out/service/datasource/index.js.map +1 -0
  137. package/out/service/storage/init.js +8 -1
  138. package/out/service/storage/init.js.map +1 -1
  139. package/out/templator/genEditTableBlock.js +4 -5
  140. package/out/templator/genEditTableBlock.js.map +1 -1
  141. package/out/templator/genGetBlock.js +4 -3
  142. package/out/templator/genGetBlock.js.map +1 -1
  143. package/out/templator/genGridViewBlock.js +16 -14
  144. package/out/templator/genGridViewBlock.js.map +1 -1
  145. package/out/templator/genListViewBlock.js +5 -5
  146. package/out/templator/genListViewBlock.js.map +1 -1
  147. package/out/templator/genTableBlock.js +6 -10
  148. package/out/templator/genTableBlock.js.map +1 -1
  149. package/package.json +1 -1
  150. package/sandbox/stdlib/dist/nasl.util.js +0 -0
  151. package/sandbox/stdlib/nasl.auth.ts +1 -1
  152. package/sandbox/stdlib/nasl.core.ts +4 -0
  153. package/sandbox/stdlib/nasl.logging.ts +4 -4
  154. package/sandbox/stdlib/nasl.util.ts +13 -4
  155. package/src/automate/template/myProcess.js +1 -1
  156. package/src/bak/translator.js +4 -1
  157. package/src/common/Command.ts +4 -0
  158. package/src/concepts/AnonymousFunction__.ts +48 -2
  159. package/src/concepts/App__.ts +140 -41
  160. package/src/concepts/Assignee__.ts +4 -3
  161. package/src/concepts/BatchAssignment__.ts +45 -1
  162. package/src/concepts/BindAttribute__.ts +9 -2
  163. package/src/concepts/CallFunction__.ts +65 -31
  164. package/src/concepts/CallInterface__.ts +6 -22
  165. package/src/concepts/CallLogic__.ts +62 -13
  166. package/src/concepts/CallQueryComponent__.ts +4 -1
  167. package/src/concepts/DataSource__.ts +56 -1
  168. package/src/concepts/ForEachStatement__.ts +2 -0
  169. package/src/concepts/Identifier__.ts +18 -7
  170. package/src/concepts/LogicItem__.ts +1 -1
  171. package/src/concepts/Logic__.ts +48 -32
  172. package/src/concepts/Match__.ts +12 -8
  173. package/src/concepts/NewComposite__.ts +1356 -0
  174. package/src/concepts/NewList__.ts +444 -0
  175. package/src/concepts/NewMap__.ts +678 -0
  176. package/src/concepts/New__.ts +73 -0
  177. package/src/concepts/Param__.ts +238 -199
  178. package/src/concepts/ProcessElement__.ts +32 -10
  179. package/src/concepts/ProcessOutcome__.ts +1 -1
  180. package/src/concepts/ProcessOutcomes__.ts +90 -0
  181. package/src/concepts/Return__.ts +4 -1
  182. package/src/concepts/SelectMembers__.ts +3 -3
  183. package/src/concepts/StringInterpolation__.ts +21 -11
  184. package/src/concepts/TypeAnnotation__.ts +71 -50
  185. package/src/concepts/ValidationRule__.ts +19 -1
  186. package/src/concepts/Variable__.ts +4 -1
  187. package/src/concepts/ViewElement__.ts +38 -1
  188. package/src/concepts/View__.ts +12 -2
  189. package/src/concepts/basics/stdlib/dist/nasl.util.js +133 -34
  190. package/src/concepts/basics/stdlib/nasl.auth.ts +1 -1
  191. package/src/concepts/basics/stdlib/nasl.logging.ts +5 -0
  192. package/src/concepts/basics/stdlib/nasl.ui.ts +2 -0
  193. package/src/concepts/basics/stdlib/nasl.util.ts +153 -19
  194. package/src/concepts/dist/BindAttribute__.js +760 -0
  195. package/src/concepts/dist/BindEvent__.js +732 -0
  196. package/src/concepts/dist/CallFunction__.js +21 -7
  197. package/src/concepts/dist/CallLogic__.js +50 -10
  198. package/src/concepts/dist/Identifier__.js +311 -0
  199. package/src/concepts/dist/StringInterpolation__.js +231 -0
  200. package/src/concepts/dist/TypeAnnotation__.js +834 -0
  201. package/src/concepts/dist/ViewElement__.js +12 -0
  202. package/src/concepts/dist/View__.js +1601 -0
  203. package/src/concepts/index__.ts +5 -0
  204. package/src/enums/KEYWORDS.ts +1 -0
  205. package/src/generator/dist/genMetaData.js +1 -5
  206. package/src/generator/dist/permission.js +392 -0
  207. package/src/generator/genMetaData.ts +1 -6
  208. package/src/generator/genReleaseBody.ts +21 -3
  209. package/src/generator/index.ts +1 -0
  210. package/src/generator/permission.ts +271 -0
  211. package/src/index.ts +1 -1
  212. package/src/server/dist/naslServer.js +385 -269
  213. package/src/server/entity2LogicNamespace.ts +70 -10
  214. package/src/server/extendBaseNode.ts +7 -3
  215. package/src/server/formatTsUtils.ts +6 -0
  216. package/src/server/getLogics.ts +13 -1
  217. package/src/server/getMemberIdentifier.ts +1 -1
  218. package/src/server/naslServer.ts +162 -29
  219. package/src/server/process2LogicNamespace.ts +8 -0
  220. package/src/server/translator.ts +52 -9
  221. package/src/service/creator/add.configs.js +4 -0
  222. package/src/service/dataSource/api.js +11 -0
  223. package/src/service/dataSource/index.js +6 -0
  224. package/src/service/storage/dist/init.js +8 -1
  225. package/src/service/storage/init.ts +9 -2
  226. package/src/service/video/VideoTranscribe.js +1 -0
  227. package/src/templator/dist/genEditTableBlock.js +204 -0
  228. package/src/templator/dist/genGridViewBlock.js +265 -0
  229. package/src/templator/dist/genListViewBlock.js +84 -0
  230. package/src/templator/dist/genTableBlock.js +209 -0
  231. package/src/templator/dist/utils.js +527 -0
  232. package/src/templator/genEditTableBlock.ts +8 -16
  233. package/src/templator/genGetBlock.ts +18 -19
  234. package/src/templator/genGridViewBlock.ts +18 -18
  235. package/src/templator/genListViewBlock.ts +8 -11
  236. package/src/templator/genTableBlock.ts +6 -10
  237. package/ts-worker/dist/webpack.config.dev.js +1 -3
  238. package/ts-worker/lib/tsserver.js +8 -1
  239. package/out/automate/engine/2.14-components.d.ts +0 -1115
  240. package/out/automate/engine/2.14-components.js +0 -1087
  241. package/out/automate/engine/2.14-components.js.map +0 -1
  242. package/out/concepts/ConstructArgument__.d.ts +0 -40
  243. package/out/concepts/ConstructArgument__.js.map +0 -1
  244. package/out/concepts/Construct__.d.ts +0 -189
  245. package/out/concepts/Construct__.js +0 -340
  246. package/out/concepts/Construct__.js.map +0 -1
  247. package/out/concepts/MatchExpression__.d.ts +0 -97
  248. package/out/concepts/MatchExpression__.js +0 -281
  249. package/out/concepts/MatchExpression__.js.map +0 -1
  250. package/out/templator/sql-parser/index.d.ts +0 -1
  251. package/out/templator/sql-parser/index.js +0 -228
  252. package/out/templator/sql-parser/index.js.map +0 -1
  253. package/out/templator/sql-parser/parser.js +0 -26664
  254. package/out/templator/sql-parser/parser.js.map +0 -1
  255. package/src/concepts/dist/Anchor__.js +0 -179
  256. package/src/concepts/dist/Assignment__.js +0 -301
  257. package/src/concepts/dist/CallInterface__.js +0 -533
  258. package/src/concepts/dist/ForEachStatement__.js +0 -426
  259. package/src/concepts/dist/MatchCase__.js +0 -587
  260. package/src/concepts/dist/Match__.js +0 -631
  261. package/src/concepts/dist/MemberExpression__.js +0 -348
  262. package/src/concepts/dist/Param__.js +0 -538
  263. package/src/concepts/dist/Return__.js +0 -494
  264. package/src/concepts/dist/Variable__.js +0 -537
  265. package/src/server/dist/formatTsUtils.js +0 -683
@@ -1,97 +0,0 @@
1
- import { TranslatorState } from '../translator';
2
- import { EventPayload, Params } from '../common/EventEmitter';
3
- import LogicItem from './LogicItem__';
4
- import MatchCase from './MatchCase__';
5
- /**
6
- * 选择分支
7
- */
8
- export declare class MatchExpression extends LogicItem {
9
- /**
10
- * 产品概念
11
- */
12
- concept: 'MatchExpression';
13
- /**
14
- * 逻辑项
15
- */
16
- expression: LogicItem;
17
- /**
18
- * 选择分支情况列表
19
- */
20
- cases: Array<MatchCase>;
21
- /**
22
- * @param source 需要合并的部分参数
23
- */
24
- constructor(source?: Partial<MatchExpression>);
25
- static from(source: any, parentNode?: any, parentKey?: string): MatchExpression;
26
- /**
27
- * 插入选择分支情况
28
- * @internal
29
- * @param matchCaseOptions 选择分支情况参数
30
- */
31
- _insertMatchCaseAt(matchCaseOptions: Partial<MatchCase>, index: number): MatchCase;
32
- /**
33
- * 插入选择分支情况
34
- * @internal
35
- * @param matchCase 已有的选择分支情况实例
36
- */
37
- _insertMatchCaseAt(matchCase: MatchCase, index: number): MatchCase;
38
- /**
39
- * 插入选择分支情况
40
- * @param matchCaseOptions 选择分支情况参数
41
- */
42
- insertMatchCaseAt(matchCaseOptions: Partial<MatchCase>, index: number): MatchCase;
43
- /**
44
- * 插入选择分支情况
45
- * @param matchCase 已有的选择分支情况实例
46
- */
47
- insertMatchCaseAt(matchCase: MatchCase, index: number): MatchCase;
48
- /**
49
- * 添加选择分支情况
50
- * @internal
51
- * @param matchCaseOptions 选择分支情况参数
52
- */
53
- _addMatchCase(matchCaseOptions: Partial<MatchCase>): MatchCase;
54
- /**
55
- * 添加选择分支情况
56
- * @internal
57
- * @param matchCase 已有的选择分支情况实例
58
- */
59
- _addMatchCase(matchCase: MatchCase): MatchCase;
60
- /**
61
- * 添加选择分支情况
62
- * @param matchCaseOptions 选择分支情况参数
63
- */
64
- addMatchCase(matchCaseOptions: Partial<MatchCase>): MatchCase;
65
- /**
66
- * 添加选择分支情况
67
- * @param matchCase 已有的选择分支情况实例
68
- */
69
- addMatchCase(matchCase: MatchCase): MatchCase;
70
- /**
71
- * 删除逻辑项
72
- * @param name 逻辑项名称
73
- */
74
- removeExpression(name: string): void;
75
- /**
76
- * 删除逻辑项
77
- * @param expression 已有的逻辑项实例
78
- */
79
- removeExpression(expression: LogicItem): void;
80
- /**
81
- * 删除选择分支情况
82
- * @param matchCase 已有的选择分支情况实例
83
- */
84
- removeMatchCaseInCases(matchCase: MatchCase): void;
85
- __removeLogicItem(logicItem: LogicItem): Params;
86
- /**
87
- * 设置逻辑项
88
- */
89
- setExpression(expression: LogicItem): void;
90
- static getDefaultOptions(): {
91
- label: string;
92
- };
93
- onChange($event?: EventPayload): void;
94
- toJS(): string;
95
- toEmbeddedTS(state?: TranslatorState): string;
96
- }
97
- export default MatchExpression;
@@ -1,281 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
- return c > 3 && r && Object.defineProperty(target, key, r), r;
23
- };
24
- var __importStar = (this && this.__importStar) || function (mod) {
25
- if (mod && mod.__esModule) return mod;
26
- var result = {};
27
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
- __setModuleDefault(result, mod);
29
- return result;
30
- };
31
- var __importDefault = (this && this.__importDefault) || function (mod) {
32
- return (mod && mod.__esModule) ? mod : { "default": mod };
33
- };
34
- var MatchExpression_1;
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.MatchExpression = void 0;
37
- const translator_1 = require("../translator");
38
- const jsoner = __importStar(require("../service/storage/jsoner"));
39
- const BooleanLiteral__1 = __importDefault(require("./BooleanLiteral__"));
40
- const decorators_1 = require("../decorators");
41
- const classMap_1 = __importDefault(require("../common/classMap"));
42
- const LogicItem__1 = __importDefault(require("./LogicItem__"));
43
- const MatchCase__1 = __importDefault(require("./MatchCase__"));
44
- /**
45
- * 选择分支
46
- */
47
- let MatchExpression = MatchExpression_1 = class MatchExpression extends LogicItem__1.default {
48
- /**
49
- * 产品概念
50
- */
51
- concept = 'MatchExpression';
52
- /**
53
- * 逻辑项
54
- */
55
- expression = undefined;
56
- /**
57
- * 选择分支情况列表
58
- */
59
- cases = [];
60
- /**
61
- * @param source 需要合并的部分参数
62
- */
63
- constructor(source) {
64
- source = Object.assign({}, MatchExpression_1.getDefaultOptions(), source);
65
- super(source);
66
- super.subConstructor(source);
67
- }
68
- static from(source, parentNode, parentKey) {
69
- return super.from(source, parentNode, parentKey);
70
- }
71
- _insertMatchCaseAt(options, index) {
72
- const matchCaseOptions = {};
73
- const relationOptions = { parentNode: this, parentKey: 'cases' };
74
- let matchCase;
75
- if (options instanceof MatchCase__1.default) {
76
- options.ensureDelete(); // 同一实例不支持多处存在
77
- matchCase = options;
78
- Object.assign(matchCase, relationOptions);
79
- }
80
- else {
81
- matchCase = MatchCase__1.default.from({
82
- ...matchCaseOptions,
83
- ...options,
84
- }, this, 'cases');
85
- }
86
- this.cases.splice(index, 0, matchCase);
87
- return matchCase;
88
- }
89
- insertMatchCaseAt(options, index) {
90
- const node = this._insertMatchCaseAt(options, index);
91
- node.create({
92
- index,
93
- parentNode: this,
94
- parentKey: 'cases',
95
- });
96
- return node;
97
- }
98
- _addMatchCase(options) {
99
- const index = this.cases.length;
100
- return this._insertMatchCaseAt(options, index);
101
- }
102
- addMatchCase(options) {
103
- const node = this._addMatchCase(options);
104
- const index = this.cases.indexOf(node);
105
- node.create({
106
- index,
107
- parentNode: this,
108
- parentKey: 'cases',
109
- });
110
- return node;
111
- }
112
- removeExpression(options) {
113
- let expression;
114
- if (typeof options === 'string') {
115
- expression = this.expression;
116
- if (!expression) {
117
- throw new Error('找不到逻辑项 ' + options);
118
- }
119
- }
120
- else {
121
- expression = options;
122
- }
123
- return expression.delete();
124
- }
125
- removeMatchCaseInCases(options) {
126
- const matchCase = options;
127
- return matchCase.delete();
128
- }
129
- __removeLogicItem(logicItem) {
130
- const parentKey = logicItem.parentKey;
131
- const params = {
132
- parentNode: this,
133
- parentKey,
134
- index: -1,
135
- object: null,
136
- oldObject: logicItem,
137
- };
138
- if (parentKey) {
139
- params.parentKey = parentKey;
140
- if (Array.isArray(this[parentKey])) {
141
- const index = this[parentKey].indexOf(logicItem);
142
- ~index && this[parentKey].splice(index, 1);
143
- params.index = index;
144
- }
145
- else if (this[parentKey] === logicItem) {
146
- params.index = 0;
147
- this[parentKey] = undefined;
148
- }
149
- }
150
- return params;
151
- }
152
- //================================================================================
153
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
154
- // 自动生成的代码已结束。下面可以手动编写。
155
- //================================================================================
156
- /**
157
- * 设置逻辑项
158
- */
159
- setExpression(expression) {
160
- expression._delete();
161
- const relationOptions = { parentNode: this, parentKey: 'expression' };
162
- Object.assign(expression, relationOptions);
163
- const object = {
164
- expression,
165
- };
166
- let cases = [new MatchCase__1.default(), new MatchCase__1.default()];
167
- if (expression) {
168
- const typeAnnotation = expression?.typeAnnotation;
169
- const { typeKind, typeNamespace, typeName, typeArguments } = typeAnnotation || {};
170
- let typeNode;
171
- if (typeKind === 'union' && Array.isArray(typeArguments)) {
172
- cases = typeArguments.map((typeArg) => new MatchCase__1.default({
173
- patterns: [typeArg],
174
- }));
175
- cases.push(new MatchCase__1.default());
176
- }
177
- else if (typeKind === 'reference') {
178
- const nameArr = [typeName];
179
- if (typeNamespace) {
180
- nameArr.unshift(typeNamespace);
181
- }
182
- typeNode = this.app.findNodeByCompleteName(nameArr.join('.')) || {};
183
- if (typeNode.concept === 'Enum') {
184
- const { enumItems } = typeNode;
185
- if (Array.isArray(enumItems)) {
186
- cases = enumItems.map((enumItem) => new MatchCase__1.default({
187
- patterns: [enumItem],
188
- }));
189
- }
190
- cases.push(new MatchCase__1.default());
191
- }
192
- }
193
- else if (typeKind === 'primitive' && typeNamespace === 'nasl.core' && typeName === 'Boolean') {
194
- cases = [
195
- new MatchCase__1.default({
196
- patterns: [
197
- new BooleanLiteral__1.default({
198
- value: 'true',
199
- }),
200
- ],
201
- }),
202
- new MatchCase__1.default({
203
- patterns: [
204
- new BooleanLiteral__1.default({
205
- value: 'false',
206
- }),
207
- ],
208
- }),
209
- new MatchCase__1.default(),
210
- ];
211
- }
212
- }
213
- object.cases = cases;
214
- console.log(object);
215
- this.update({
216
- ...object,
217
- });
218
- }
219
- static getDefaultOptions() {
220
- return {
221
- label: '选择分支',
222
- };
223
- }
224
- onChange($event) {
225
- this.emit('change', $event);
226
- }
227
- toJS() {
228
- let code = '';
229
- if (this.expression && Array.isArray(this.cases)) {
230
- // 标注过类型的表达式
231
- const jsonNode = jsoner.queryNodeByPath(this.app.NaslAnnotatedJSON, this.expression.getNodePath(false));
232
- const expressionTypeAnnotation = jsonNode?.typeAnnotation;
233
- this.cases.forEach((item, index) => {
234
- code += item?.toJS?.(this.expression, expressionTypeAnnotation || true, index, this.cases.length);
235
- });
236
- }
237
- return code;
238
- }
239
- toEmbeddedTS(state) {
240
- let code = '\n';
241
- code += (0, translator_1.indent)((state?.tabSize || 0));
242
- code += '(() => {\n';
243
- code += (0, translator_1.indent)((state?.tabSize || 0));
244
- code += `const __MatchExpression = `;
245
- code += this.expression?.toEmbeddedTS((0, translator_1.shiftState)(state, code, {
246
- tabSize: (state?.tabSize || 0),
247
- }));
248
- code += ';\n';
249
- // 最后一项是else
250
- this.cases.forEach((item, index) => {
251
- // 如果是最后一项
252
- code += item.toEmbeddedTS((0, translator_1.shiftState)(state, code), index);
253
- });
254
- code += (0, translator_1.indent)((state?.tabSize || 0));
255
- code += '})();\n';
256
- return code;
257
- }
258
- };
259
- __decorate([
260
- (0, decorators_1.property)()
261
- ], MatchExpression.prototype, "concept", void 0);
262
- __decorate([
263
- (0, decorators_1.property)('LogicItem')
264
- ], MatchExpression.prototype, "expression", void 0);
265
- __decorate([
266
- (0, decorators_1.property)('MatchCase')
267
- ], MatchExpression.prototype, "cases", void 0);
268
- __decorate([
269
- (0, translator_1.withSourceMap)()
270
- ], MatchExpression.prototype, "toEmbeddedTS", null);
271
- MatchExpression = MatchExpression_1 = __decorate([
272
- (0, decorators_1.concept)('选择分支')
273
- ], MatchExpression);
274
- exports.MatchExpression = MatchExpression;
275
- classMap_1.default.MatchExpression = MatchExpression;
276
- exports.default = MatchExpression;
277
- //================================================================================
278
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
279
- // 自动生成的代码已结束。下面可以手动编写。
280
- //================================================================================
281
- //# sourceMappingURL=MatchExpression__.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MatchExpression__.js","sourceRoot":"","sources":["../../src/concepts/MatchExpression__.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export function parse(source: any, start: any, dataSource: any): any;
@@ -1,228 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parse = void 0;
4
- const Parser = require('./parser');
5
- /*
6
-
7
- FROM(new Collection<[app.Student]>()
8
- .LEFT_JOIN(new Collection<[app.School]>())
9
- .ON((student, school) => student.schoolId === school.id))
10
- .WHERE((student, school) => IN(student.age, [10, 20]))
11
- .ORDER_BY((student, school) => student.name, "ASC")
12
- .PAGINATE(page, size)
13
- .SELECT_PAGE_OF((student, school) => ({
14
- school,
15
- student,
16
- }));
17
- */
18
- /*
19
- sourcemapItem {
20
- sqlLoction: {},
21
- nasqLocation: {},
22
- }
23
- */
24
- function transformer(root, startOffset = 0, dataSource = 'defaultDS') {
25
- const sourceMap = [];
26
- const argmentsStack = [];
27
- const newLine = () => '\n';
28
- const indent = (tabSize) => ' '.repeat(tabSize * 4);
29
- let code = '';
30
- function currentArgs() {
31
- return argmentsStack[argmentsStack.length - 1];
32
- }
33
- function argumentList() {
34
- const args = currentArgs();
35
- const lang = args.map((a) => a.table).join(', ');
36
- code += `(${lang})`;
37
- }
38
- function returnList() {
39
- const args = currentArgs();
40
- const lang = args.map((a) => a.table).join(', ');
41
- code += `({${lang}})`;
42
- }
43
- function ColumnRef(ast, refName) {
44
- const { table, column, location, } = ast;
45
- const start = code.length;
46
- const c = `${refName || table}.${column}`;
47
- code += c;
48
- sourceMap.push({
49
- sqlLoction: location,
50
- nasqLocation: {
51
- rawStart: start,
52
- start: start + startOffset,
53
- length: c.length,
54
- code: c,
55
- },
56
- });
57
- }
58
- function Conllection(tableDesc) {
59
- const { location, table, } = tableDesc;
60
- code += `new nasl.langUtil.Collection<[app.dataSources.${dataSource}.entities.`;
61
- const start = code.length;
62
- code += table;
63
- sourceMap.push({
64
- sqlLoction: location,
65
- nasqLocation: {
66
- rawStart: start,
67
- start: start + startOffset,
68
- length: table.length,
69
- code: table,
70
- },
71
- });
72
- code += ']>()';
73
- }
74
- function BasicExpr(ast, refName) {
75
- if (ast.type === 'expr_list') {
76
- ast.value.forEach((v, idx) => {
77
- if (v.ast) {
78
- SQLSyntx(v);
79
- }
80
- else {
81
- BasicExpr(v, refName);
82
- if (idx !== ast.value.length - 1) {
83
- code += ',';
84
- }
85
- }
86
- });
87
- }
88
- else if (ast.type === 'column_ref') {
89
- ColumnRef(ast, refName);
90
- }
91
- else if (ast.type === 'single_quote_string') {
92
- code += `'${ast.value}'`;
93
- }
94
- else {
95
- code += ast.value;
96
- }
97
- }
98
- function Operator(op) {
99
- if (op === '=') {
100
- code += '===';
101
- return;
102
- }
103
- code += op;
104
- }
105
- function binaryExp(ast) {
106
- const { operator, left, right, } = ast;
107
- const args = currentArgs();
108
- argumentList();
109
- code += ` => `;
110
- if (operator === 'IN') {
111
- code += 'IN(';
112
- BasicExpr(left, args[0]?.table);
113
- code += ', [';
114
- BasicExpr(right, args[1]?.table);
115
- code += '])';
116
- }
117
- else {
118
- BasicExpr(left, args[0]?.table);
119
- Operator(operator);
120
- BasicExpr(right, args[1]?.table);
121
- }
122
- }
123
- function FromSyntax(ast) {
124
- code += 'nasl.langUtil.FROM(';
125
- ast.forEach((tableDesc) => {
126
- const { table, join, on, } = tableDesc;
127
- if (join || on) {
128
- if (join) {
129
- code += `.LEFT_JOIN(`;
130
- Conllection(tableDesc);
131
- code += `)`;
132
- }
133
- if (on) {
134
- const { type } = on;
135
- if (type === 'binary_expr') {
136
- code += `.ON(`;
137
- binaryExp(on);
138
- code += `)`;
139
- }
140
- }
141
- }
142
- else {
143
- Conllection(tableDesc);
144
- }
145
- });
146
- code += ')';
147
- }
148
- function WhereSyntax(ast) {
149
- code += '.WHERE(';
150
- const { type } = ast;
151
- if (type === 'binary_expr') {
152
- binaryExp(ast);
153
- }
154
- code += ')';
155
- }
156
- function ExprSyntax(expr) {
157
- const type = expr.type;
158
- if (type === 'binary_expr') {
159
- return binaryExp(expr);
160
- }
161
- }
162
- function OrderBySyntax(ast) {
163
- code += '.ORDER_BY(';
164
- argumentList();
165
- code += ' => ';
166
- const { expr, type } = ast[0];
167
- if (expr.type === 'column_ref') {
168
- ColumnRef(expr);
169
- }
170
- else {
171
- ExprSyntax(expr);
172
- }
173
- code += `, '${type.toUpperCase()}')`;
174
- }
175
- function SQLSyntx(root) {
176
- const { ast } = root;
177
- const sql_op = ast.type;
178
- const sql_arguments = root.tableList.map((arg) => {
179
- const meta = arg.split('::');
180
- return {
181
- table: meta[2],
182
- };
183
- });
184
- argmentsStack.push(sql_arguments);
185
- if (ast.from) {
186
- FromSyntax(ast.from);
187
- }
188
- if (ast.where) {
189
- WhereSyntax(ast.where);
190
- }
191
- if (ast.orderby) {
192
- OrderBySyntax(ast.orderby);
193
- }
194
- code += '.SELECT(';
195
- argumentList();
196
- code += ' => ';
197
- returnList();
198
- code += ')';
199
- argmentsStack.pop();
200
- }
201
- SQLSyntx(root);
202
- return {
203
- NASQ: code,
204
- sourceMap,
205
- };
206
- }
207
- function parse(source, start, dataSource) {
208
- const parseObj = Parser.parse(source);
209
- console.log(parseObj);
210
- // const result = transformer(parseObj, start, dataSource);
211
- // console.log(result.NASQ);
212
- // return result;
213
- return {
214
- ...parseObj,
215
- };
216
- }
217
- exports.parse = parse;
218
- const sql1 = `SELECT * FROM student
219
- LEFT JOIN school
220
- ON student.schoolId = school.id
221
- WHERE student.age > 20
222
- ORDER BY student.name`;
223
- // const sql2 = `SELECT * FROM bbc
224
- // WHERE region IN
225
- // (SELECT region FROM bbc
226
- // WHERE name IN ('India','Iran'))`
227
- // parse(sql1);
228
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templator/sql-parser/index.js"],"names":[],"mappings":"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"}