@lcap/nasl 2.18.0-beta.4 → 2.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/out/concepts/MatchExpression__.d.ts +97 -0
  2. package/out/concepts/MatchExpression__.js +281 -0
  3. package/out/concepts/MatchExpression__.js.map +1 -0
  4. package/out/concepts/Param__.js +1 -1
  5. package/out/concepts/Param__.js.map +1 -1
  6. package/out/concepts/Return__.js +1 -1
  7. package/out/concepts/Return__.js.map +1 -1
  8. package/out/concepts/Variable__.js +1 -1
  9. package/out/concepts/Variable__.js.map +1 -1
  10. package/out/server/naslServer.js +27 -31
  11. package/out/server/naslServer.js.map +1 -1
  12. package/out/templator/sql-parser/index.d.ts +1 -0
  13. package/out/templator/sql-parser/index.js +228 -0
  14. package/out/templator/sql-parser/index.js.map +1 -0
  15. package/out/templator/sql-parser/parser.js +26664 -0
  16. package/out/templator/sql-parser/parser.js.map +1 -0
  17. package/package.json +2 -2
  18. package/src/automate/engine/dist/index.dev.js +517 -0
  19. package/src/common/dist/BaseNode.js +1101 -0
  20. package/src/concepts/Param__.ts +1 -1
  21. package/src/concepts/Return__.ts +1 -1
  22. package/src/concepts/Variable__.ts +1 -1
  23. package/src/concepts/basics/stdlib/dist/reference2TypeAnnotationList.js +24 -0
  24. package/src/concepts/dist/Anchor__.js +179 -0
  25. package/src/concepts/dist/Assignment__.js +301 -0
  26. package/src/concepts/dist/CallFunction__.js +473 -0
  27. package/src/concepts/dist/CallInterface__.js +533 -0
  28. package/src/concepts/dist/CallLogic__.js +864 -0
  29. package/src/concepts/dist/ForEachStatement__.js +426 -0
  30. package/src/concepts/dist/MatchCase__.js +587 -0
  31. package/src/concepts/dist/MemberExpression__.js +348 -0
  32. package/src/concepts/dist/Param__.js +537 -0
  33. package/src/concepts/dist/Return__.js +493 -0
  34. package/src/generator/dist/genBundleFiles.js +414 -0
  35. package/src/server/dist/formatTsUtils.js +683 -0
  36. package/src/server/dist/naslServer.js +3396 -0
  37. package/src/server/naslServer.ts +28 -31
  38. package/src/service/storage/dist/init.js +541 -0
  39. package/ts-worker/dist/webpack.config.dev.js +104 -0
  40. package/ts-worker/lib/dist/tsserver.dev.js +22953 -0
  41. package/ts-worker/sources/lib/dist/tsserver.dev.js +22912 -0
  42. package/dist/bundle.js +0 -3962
  43. package/dist/bundle.js.LICENSE.txt +0 -16
  44. package/out/generator/release.d.ts +0 -1
  45. package/out/generator/release.js +0 -51
  46. package/out/generator/release.js.map +0 -1
@@ -0,0 +1,228 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templator/sql-parser/index.js"],"names":[],"mappings":"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"}