@lcap/nasl 2.20.0-beta.2 → 2.20.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 (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 +27 -14
  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 +31 -15
  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
@@ -1,9 +1,40 @@
1
- type IfEquals<T, U, Y=unknown, N=never> =
1
+ type IfEquals<T, U, Y = unknown, N = never> =
2
2
  (<G>() => G extends T ? 1 : 2) extends
3
3
  (<G>() => G extends U ? 1 : 2) ? Y : N;
4
4
 
5
+ type GetItem<T> = T extends Array<infer U> ? U : T;
6
+
7
+ type KeysExclude__name<T> = Exclude<keyof T, '__name'>;
8
+ type Values<T> = T[keyof T]
9
+
10
+ type UnionToIntersection<U> =
11
+ (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never
12
+ type LastOfUnion<T> =
13
+ UnionToIntersection<T extends any ? () => T : never> extends () => (infer R) ? R : never
14
+ // TS4.0+
15
+ type Push<T extends any[], V> = [...T, V];
16
+ // TS4.1+
17
+ type TuplifyUnion<T, L = LastOfUnion<T>, N = [T] extends [never] ? true : false> =
18
+ true extends N ? [] : Push<TuplifyUnion<Exclude<T, L>>, L>
19
+
20
+ type GetTypeIfOnlyOneField<T> = TuplifyUnion<keyof T>['length'] extends 0 | 1 ? Values<T> : T;
21
+ type GetFinalType<T, NoList = false> = NoList extends true ? GetTypeIfOnlyOneField<T> : (GetTypeIfOnlyOneField<T> extends never ? never : nasl.collection.List<GetTypeIfOnlyOneField<T>>);
22
+
23
+ type Shift<T extends any[]> = T extends [infer First, ...infer RightRest]
24
+ ? RightRest
25
+ : never;
26
+ type FirstOf<T extends any[]> = T extends [infer First, ...infer RightRest]
27
+ ? First
28
+ : never;
29
+ type CheckUniqueKeys<T extends any[], E = {}, Keys = never> =
30
+ E extends never ? true : (
31
+ KeysExclude__name<E> & Keys extends never ? CheckUniqueKeys<Shift<T>, FirstOf<T>, Keys | KeysExclude__name<E>>
32
+ : (KeysExclude__name<E> & Keys extends Keys ? KeysExclude__name<E> & Keys : CheckUniqueKeys<Shift<T>, FirstOf<T>, Keys | KeysExclude__name<E>>)
33
+ );
34
+
5
35
  declare namespace nasl.oql {
6
36
  // 一次平铺的查询视为一次Query,FROM查询的依据为实体Entity
37
+ function checkUniqueKeys<RecordList extends unknown[]>(...args: RecordList): CheckUniqueKeys<RecordList>;
7
38
  export class Query<Record extends Array<any>> {
8
39
  FROM<Record>(): Query<[Record]>;
9
40
  FROM<JoinRecord extends Array<any>>(query: Query<JoinRecord>): Query<[...Record, ...JoinRecord]>;
@@ -18,13 +49,15 @@ declare namespace nasl.oql {
18
49
  WHERE(...expr: Array<(...record: Record) => nasl.core.Boolean>): Query<Record>;
19
50
  GROUP_BY(...expr: Array<(...record: Record) => any>): Query<Record>;
20
51
  HAVING(...expr: Array<(...record: Record) => nasl.core.Boolean>): Query<Record>;
21
- SELECT<SelectRecord>(expr: (...record: Record) => SelectRecord): Query<[SelectRecord]>;
52
+ SELECT<SelectRecord>(expr: (...record: Record) => SelectRecord, check?: (...record: Record) => true): Query<[SelectRecord]>;
22
53
  // 内存临时表
23
54
  SELECT_WITH_TEMP_TABLE<SelectRecord>(expr: (...record: Record) => SelectRecord): Query<[SelectRecord, ...Record]>;
24
55
  SELECT_SUBQUERY_EXPR<SelectRecord>(expr: (...record: Record) => SelectRecord): SelectRecord;
25
56
  ORDER_BY(...expr: Array<(...record: Record) => any>): Query<Record>;
26
57
  LIMIT_OFFSET(limit: nasl.core.Long, offset?: nasl.core.Long): Query<Record>;
27
58
  PAGINATE(page: nasl.core.Long, size: nasl.core.Long): Query<Record>;
59
+
60
+ GET<NoList extends boolean>(noList?: NoList): GetFinalType<GetItem<Record>, NoList>;
28
61
  }
29
62
 
30
63
  // String functions
@@ -33,7 +66,7 @@ declare namespace nasl.oql {
33
66
  export function BIT_LENGTH(str: nasl.core.String | nasl.core.Text): nasl.core.Integer;
34
67
  export function CHAR(charset?: nasl.core.String | nasl.core.Text, ...exprs: Array<any>): nasl.core.String;
35
68
  export function CHAR_LENGTH(str: nasl.core.String | nasl.core.Text): nasl.core.Integer;
36
- export function CONCAT(...strs: Array<nasl.core.String | nasl.core.Text>): nasl.core.String;
69
+ export function CONCAT(...strs: Array<any>): nasl.core.String;
37
70
  export function CONCAT_WS(seperator: nasl.core.String | nasl.core.Text, ...strs: Array<nasl.core.String | nasl.core.Text>): nasl.core.String;
38
71
  export function ELT(expr: nasl.core.Integer, ...strs: Array<nasl.core.String | nasl.core.Text>): nasl.core.String;
39
72
  export function EXPORT_SET(bits: nasl.core.Integer, on: nasl.core.String | nasl.core.Text, off: nasl.core.String | nasl.core.Text, separator?: nasl.core.String | nasl.core.Text, number_of_bits?: nasl.core.Integer): nasl.core.String;
@@ -45,7 +78,7 @@ declare namespace nasl.oql {
45
78
  export function INSERT(str: nasl.core.String | nasl.core.Text, pos: nasl.core.Integer, len: nasl.core.Integer, newStr: nasl.core.String | nasl.core.Text): nasl.core.String;
46
79
  export function INSTR(str: nasl.core.String | nasl.core.Text, newStr: nasl.core.String | nasl.core.Text): nasl.core.Integer;
47
80
  export function LCASE(str: nasl.core.String | nasl.core.Text): nasl.core.String;
48
- export function LEFT(str: nasl.core.String | nasl.core.Text, len: nasl.core.Integer): nasl.core.String;
81
+ export function LEFT(str: nasl.core.String | nasl.core.Text | nasl.core.Date, len: nasl.core.Integer): nasl.core.String;
49
82
  export function LENGTH(str: nasl.core.String | nasl.core.Text): nasl.core.Integer;
50
83
  export function LOAD_FILE(fileName: nasl.core.String | nasl.core.Text): nasl.core.String;
51
84
  export function LOCATE(subStr: nasl.core.String | nasl.core.Text, str: nasl.core.String, pos?: nasl.core.Integer): nasl.core.Integer;
@@ -76,7 +109,7 @@ declare namespace nasl.oql {
76
109
  export function UCASE(str: nasl.core.String | nasl.core.Text): nasl.core.String;
77
110
  export function UNHEX(str: nasl.core.String | nasl.core.Text): nasl.core.String;
78
111
  export function UPPER(str: nasl.core.String | nasl.core.Text): nasl.core.String;
79
- export function WEIGHT_STRING(str: nasl.core.String | nasl.core.Text, as: 'CHAR'|'BINARY', ...level: Array<nasl.core.Integer>): nasl.core.String;
112
+ export function WEIGHT_STRING(str: nasl.core.String | nasl.core.Text, as: 'CHAR' | 'BINARY', ...level: Array<nasl.core.Integer>): nasl.core.String;
80
113
  // String comparison functions
81
114
  export function LIKE(str1: nasl.core.String | nasl.core.Text, str2: nasl.core.String | nasl.core.Text, escape?: nasl.core.String | nasl.core.Text): nasl.core.Boolean;
82
115
  export function NOT_LIKE(str1: nasl.core.String | nasl.core.Text, str2: nasl.core.String | nasl.core.Text, escape?: nasl.core.String | nasl.core.Text): nasl.core.Boolean;
@@ -153,17 +186,17 @@ declare namespace nasl.oql {
153
186
  // Date and Time Functions
154
187
  type TIME_UNIT = 'MICROSECOND' | 'SECOND' | 'MINUTE' | 'HOUR' | 'DAY' | 'WEEK' | 'MONTH' | 'QUARTER' | 'YEAR' | 'SECOND_MICROSECOND' | 'MINUTE_MICROSECOND' | 'MINUTE_SECOND' | 'HOUR_MICROSECOND' | 'HOUR_SECOND' | 'HOUR_MINUTE' | 'DAY_MICROSECOND' | 'DAY_SECOND' | 'DAY_MINUTE' | 'DAY_HOUR' | 'YEAR_MONTH';
155
188
  type fsp = 0 | 1 | 2 | 3 | 4 | 5 | 6; // fractional seconds precision
156
- export function DATE_ADD(date: nasl.core.Date, interval: "INTERVAL", expr: nasl.core.Integer, unit: 'YEAR'|'MONTH'|'DAY'): nasl.core.Date;
189
+ export function DATE_ADD(date: nasl.core.Date, interval: "INTERVAL", expr: nasl.core.Integer, unit: 'YEAR' | 'MONTH' | 'DAY'): nasl.core.Date;
157
190
  export function DATE_ADD(date: nasl.core.DateTime, interval: "INTERVAL", expr: nasl.core.Integer, unit: TIME_UNIT): nasl.core.DateTime;
158
- export function DATE_ADD(date: nasl.core.Date, interval: "INTERVAL", expr: nasl.core.String, unit: 'YEAR'|'MONTH'|'DAY'): nasl.core.Date;
191
+ export function DATE_ADD(date: nasl.core.Date, interval: "INTERVAL", expr: nasl.core.String, unit: 'YEAR' | 'MONTH' | 'DAY'): nasl.core.Date;
159
192
  export function DATE_ADD(date: nasl.core.DateTime, interval: "INTERVAL", expr: nasl.core.String, unit: TIME_UNIT): nasl.core.DateTime;
160
- export function DATE_SUB(date: nasl.core.Date, interval: "INTERVAL", expr: nasl.core.Integer, unit: 'YEAR'|'MONTH'|'DAY'): nasl.core.Date;
193
+ export function DATE_SUB(date: nasl.core.Date, interval: "INTERVAL", expr: nasl.core.Integer, unit: 'YEAR' | 'MONTH' | 'DAY'): nasl.core.Date;
161
194
  export function DATE_SUB(date: nasl.core.DateTime, interval: "INTERVAL", expr: nasl.core.Integer, unit: TIME_UNIT): nasl.core.DateTime;
162
- export function DATE_SUB(date: nasl.core.Date, interval: "INTERVAL", expr: nasl.core.String, unit: 'YEAR'|'MONTH'|'DAY'): nasl.core.Date;
195
+ export function DATE_SUB(date: nasl.core.Date, interval: "INTERVAL", expr: nasl.core.String, unit: 'YEAR' | 'MONTH' | 'DAY'): nasl.core.Date;
163
196
  export function DATE_SUB(date: nasl.core.DateTime, interval: "INTERVAL", expr: nasl.core.String, unit: TIME_UNIT): nasl.core.DateTime;
164
- export function ADDDATE(date: nasl.core.Date, interval: "INTERVAL", expr: nasl.core.Integer, unit: 'YEAR'|'MONTH'|'DAY'): nasl.core.Date;
197
+ export function ADDDATE(date: nasl.core.Date, interval: "INTERVAL", expr: nasl.core.Integer, unit: 'YEAR' | 'MONTH' | 'DAY'): nasl.core.Date;
165
198
  export function ADDDATE(date: nasl.core.DateTime, interval: "INTERVAL", expr: nasl.core.Integer, unit: TIME_UNIT): nasl.core.DateTime;
166
- export function ADDDATE(date: nasl.core.Date, interval: "INTERVAL", expr: nasl.core.String, unit: 'YEAR'|'MONTH'|'DAY'): nasl.core.Date;
199
+ export function ADDDATE(date: nasl.core.Date, interval: "INTERVAL", expr: nasl.core.String, unit: 'YEAR' | 'MONTH' | 'DAY'): nasl.core.Date;
167
200
  export function ADDDATE(date: nasl.core.DateTime, interval: "INTERVAL", expr: nasl.core.String, unit: TIME_UNIT): nasl.core.DateTime;
168
201
  export function ADDDATE(date: nasl.core.Date, expr: nasl.core.Integer): nasl.core.Date;
169
202
  export function ADDDATE(date: nasl.core.DateTime, expr: nasl.core.Integer): nasl.core.DateTime;
@@ -178,7 +211,7 @@ declare namespace nasl.oql {
178
211
  export function CURRENT_TIME(fsp: fsp): nasl.core.Double;
179
212
  export function DATE(expr: nasl.core.Date | nasl.core.DateTime): nasl.core.Date;
180
213
  export function DATEDIFF(expr1: nasl.core.Date | nasl.core.DateTime, expr2: nasl.core.Date | nasl.core.DateTime): nasl.core.Integer;
181
- export function DATE_FORMAT(expr1: nasl.core.Date | nasl.core.DateTime, format: nasl.core.String): nasl.core.String;
214
+ export function DATE_FORMAT(expr1: nasl.core.Date | nasl.core.DateTime | nasl.core.Time, format: nasl.core.String): nasl.core.String;
182
215
  export function DAY(expr1: nasl.core.Date | nasl.core.DateTime): nasl.core.Integer;
183
216
  export function DAYNAME(expr1: nasl.core.Date | nasl.core.DateTime): nasl.core.String;
184
217
  export function DAYOFMONTH(expr1: nasl.core.Date | nasl.core.DateTime): nasl.core.Integer;
@@ -202,9 +235,9 @@ declare namespace nasl.oql {
202
235
  export function SECOND(expr1: nasl.core.Time | nasl.core.DateTime): nasl.core.Integer;
203
236
  export function SEC_TO_TIME(expr1: nasl.core.Integer): nasl.core.Time;
204
237
  export function STR_TO_DATE(str: nasl.core.String, format: nasl.core.String): nasl.core.DateTime;
205
- export function SUBDATE(date: nasl.core.Date, interval: "INTERVAL", expr: nasl.core.Integer, unit: 'YEAR'|'MONTH'|'DAY'): nasl.core.Date;
238
+ export function SUBDATE(date: nasl.core.Date, interval: "INTERVAL", expr: nasl.core.Integer, unit: 'YEAR' | 'MONTH' | 'DAY'): nasl.core.Date;
206
239
  export function SUBDATE(date: nasl.core.DateTime, interval: "INTERVAL", expr: nasl.core.Integer, unit: TIME_UNIT): nasl.core.DateTime;
207
- export function SUBDATE(date: nasl.core.Date, interval: "INTERVAL", expr: nasl.core.String, unit: 'YEAR'|'MONTH'|'DAY'): nasl.core.Date;
240
+ export function SUBDATE(date: nasl.core.Date, interval: "INTERVAL", expr: nasl.core.String, unit: 'YEAR' | 'MONTH' | 'DAY'): nasl.core.Date;
208
241
  export function SUBDATE(date: nasl.core.DateTime, interval: "INTERVAL", expr: nasl.core.String, unit: TIME_UNIT): nasl.core.DateTime;
209
242
  export function SUBDATE(date: nasl.core.Date, expr: nasl.core.Integer): nasl.core.Date;
210
243
  export function SUBDATE(date: nasl.core.DateTime, expr: nasl.core.Integer): nasl.core.DateTime;
@@ -223,6 +256,7 @@ declare namespace nasl.oql {
223
256
  export function WEEKOFYEAR(date: nasl.core.Date | nasl.core.DateTime): nasl.core.Integer;
224
257
  export function YEAR(date: nasl.core.Date | nasl.core.DateTime): nasl.core.Integer;
225
258
  export function YEARWEEK(date: nasl.core.Date, mode?: nasl.core.Integer): nasl.core.Integer;
259
+ export function HOUR(date: nasl.core.Date | nasl.core.DateTime): nasl.core.Integer;
226
260
  export function NOW(): nasl.core.DateTime;
227
261
 
228
262
  // Comparison Functions
@@ -254,15 +288,20 @@ declare namespace nasl.oql {
254
288
  export function SUM(value: nasl.core.Long): nasl.core.Long;
255
289
  export function SUM(value: nasl.core.Double): nasl.core.Double;
256
290
  export function SUM(value: nasl.core.Decimal): nasl.core.Decimal;
257
- export function AVG(value: nasl.core.Integer | nasl.core.Long | nasl.core.Double | nasl.core.Decimal): nasl.core.Integer | nasl.core.Long | nasl.core.Double | nasl.core.Decimal;
291
+ export function AVG(value: nasl.core.Integer | nasl.core.Long | nasl.core.Double): nasl.core.Double;
292
+ export function AVG(value: nasl.core.Decimal): nasl.core.Decimal;
258
293
  export function MAX(value: nasl.core.Integer): nasl.core.Integer;
259
294
  export function MAX(value: nasl.core.Long): nasl.core.Long;
260
295
  export function MAX(value: nasl.core.Double): nasl.core.Double;
261
296
  export function MAX(value: nasl.core.Decimal): nasl.core.Decimal;
297
+ export function MAX(value: nasl.core.Date): nasl.core.Date;
298
+ export function MAX(value: nasl.core.Boolean): nasl.core.Boolean;
262
299
  export function MIN(value: nasl.core.Integer): nasl.core.Integer;
263
300
  export function MIN(value: nasl.core.Long): nasl.core.Long;
264
301
  export function MIN(value: nasl.core.Double): nasl.core.Double;
265
302
  export function MIN(value: nasl.core.Decimal): nasl.core.Decimal;
303
+ export function MIN(value: nasl.core.Date): nasl.core.Date;
304
+ export function MIN(value: nasl.core.Boolean): nasl.core.Boolean;
266
305
 
267
306
  // self
268
307
  export function STARTWITH(str1: nasl.core.String, str2: nasl.core.String): nasl.core.Boolean;
@@ -272,6 +311,7 @@ declare namespace nasl.oql {
272
311
  export function IN_SUBQUERY<SelectRecord, T>(value: T, expr: Query<[SelectRecord]>): nasl.core.Boolean;
273
312
  export function COMPARE_SUBQUERY<SelectRecord, T extends SelectRecord>(value: T, expr: Query<[SelectRecord]>): nasl.core.Boolean;
274
313
  export function ISNULL(value: any): nasl.core.Boolean;
314
+ export function IFNULL<T1, T2>(expr1: T1, expr2: T2): T1 | T2;
275
315
  export function CASE_WHEN<THEN>(caseCase: any, caseElse: THEN, ...caseWhen: Array<[() => any, () => THEN]>): THEN;
276
316
  export function CASE_WHEN<THEN>(caseCase: any, ...caseWhen: Array<[() => any, () => THEN]>): THEN;
277
317
  export function BETWEEN_AND<T>(value: T, between: T, and: T): nasl.core.Boolean;
@@ -284,4 +324,20 @@ declare namespace nasl.oql {
284
324
  export function CONVERT<T>(value: T): T;
285
325
 
286
326
  export function EXISTS_EXPR<Record extends Array<any>>(value: Query<Record>): nasl.core.Boolean;
327
+ export function COALESCE<T>(...args: Array<T>): T
287
328
  }
329
+
330
+
331
+ // let result = new nasl.oql.Query()
332
+ // .FROM_SUBQUERY(
333
+ // new nasl.oql.Query()
334
+ // .FROM<app.dataSources.defaultDS.entities.Student>()
335
+ // .SELECT_WITH_TEMP_TABLE((s) => ({...s}))
336
+ // .SELECT((_mock_temp_table_alias, s) => ({..._mock_temp_table_alias, ...s}))
337
+ // )
338
+ // .SELECT_WITH_TEMP_TABLE((sub) => ({...sub, id: sub.id}))
339
+ // .SELECT(
340
+ // (_mock_temp_table_alias, sub) => ({ ..._mock_temp_table_alias, id2: sub.id }),
341
+ // (_mock_temp_table_alias, sub) => nasl.oql.checkUniqueKeys(_mock_temp_table_alias, { id2: sub.id }),
342
+ // )
343
+ // .GET(true);
@@ -54,8 +54,9 @@ declare namespace nasl.util {
54
54
  export function ListProduct<T extends nasl.core.Integer | nasl.core.Long | nasl.core.Double | nasl.core.Decimal>(list: nasl.collection.List<T>): T;
55
55
  export function ListMax<T extends nasl.core.Integer | nasl.core.Long | nasl.core.Double | nasl.core.Decimal | nasl.core.String>(list: nasl.collection.List<T>): T;
56
56
  export function ListMin<T extends nasl.core.Integer | nasl.core.Long | nasl.core.Double | nasl.core.Decimal | nasl.core.String>(list: nasl.collection.List<T>): T;
57
- export function ListAverage(list: nasl.collection.List<nasl.core.Decimal>): nasl.core.Decimal;
57
+
58
58
  export function ListAverage<T extends nasl.core.Integer | nasl.core.Long | nasl.core.Double>(list: nasl.collection.List<T>): nasl.core.Double;
59
+ export function ListAverage(list: nasl.collection.List<nasl.core.Decimal>): nasl.core.Decimal;
59
60
 
60
61
  export function ListSort<T>(list: nasl.collection.List<T>, by: (item: T) => any, sort: nasl.core.Boolean): void;
61
62
  export function ListFind<T>(list: nasl.collection.List<T>, by: (item: T) => nasl.core.Boolean): T;
@@ -96,7 +97,12 @@ declare namespace nasl.util {
96
97
  export function RandomInt(start: nasl.core.Integer, end: nasl.core.Integer): nasl.core.Integer;
97
98
  export function New<T>(): T;
98
99
  export function NewList<T>(...args: T[]): nasl.collection.List<T>;
99
- export function NewMap<K, T>(key: K, ...args: T[]): nasl.collection.Map<K, T>;
100
+ export function NewMap<K extends nasl.core.String, T>(key: K, ...args: T[]): nasl.collection.Map<K, T>;
101
+ export function NewMap<K extends nasl.core.Integer, T>(key: K, ...args: T[]): nasl.collection.Map<K, T>;
102
+ export function NewMap<K extends nasl.core.Boolean, T>(key: K, ...args: T[]): nasl.collection.Map<K, T>;
103
+ export function NewMap<K extends nasl.core.Long, T>(key: K, ...args: T[]): nasl.collection.Map<K, T>;
104
+ export function NewMap<K extends nasl.core.Decimal, T>(key: K, ...args: T[]): nasl.collection.Map<K, T>;
105
+ export function NewMap<K extends nasl.core.None, T>(key: K, ...args: T[]): nasl.collection.Map<K, T>;
100
106
 
101
107
  export function CreateListPage<T>(list: nasl.collection.List<T>, total: nasl.core.Integer): { list: nasl.collection.List<T>, total: nasl.core.Integer };
102
108
 
@@ -105,7 +111,7 @@ declare namespace nasl.util {
105
111
  export function jsonDeserialize<T>(arg: nasl.core.String): T;
106
112
 
107
113
  export function concatString(...args: nasl.core.String[]): any;
108
- export function stringInterpolation(...args: (nasl.core.String | nasl.core.Boolean | nasl.core.Integer | nasl.core.Double | nasl.core.Decimal | nasl.core.Long | nasl.core.Text | nasl.core.Date | nasl.core.Time | nasl.core.DateTime | nasl.core.Email)[]): String;
114
+ export function stringInterpolation(...args: nasl.core.Any[]): nasl.core.String;
109
115
  }
110
116
 
111
117