@lcap/nasl 1.0.0-alpha.9 → 1.0.2
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.
- package/out/automate/engine/index.d.ts +3 -0
- package/out/automate/engine/index.js +414 -0
- package/out/automate/engine/index.js.map +1 -0
- package/out/automate/engine/operators.d.ts +13 -0
- package/out/automate/engine/operators.js +63 -0
- package/out/automate/engine/operators.js.map +1 -0
- package/out/automate/engine/uniqueName.d.ts +6 -0
- package/out/automate/engine/uniqueName.js +39 -0
- package/out/automate/engine/uniqueName.js.map +1 -0
- package/out/automate/engine/utils.d.ts +24 -0
- package/out/automate/engine/utils.js +379 -0
- package/out/automate/engine/utils.js.map +1 -0
- package/out/common/BaseNode.d.ts +21 -1
- package/out/common/BaseNode.js +232 -84
- package/out/common/BaseNode.js.map +1 -1
- package/out/concepts/App__.d.ts +19 -1
- package/out/concepts/App__.js +88 -45
- package/out/concepts/App__.js.map +1 -1
- package/out/concepts/Argument__.d.ts +5 -1
- package/out/concepts/Argument__.js +21 -3
- package/out/concepts/Argument__.js.map +1 -1
- package/out/concepts/Assignee__.d.ts +201 -0
- package/out/concepts/Assignee__.js +298 -0
- package/out/concepts/Assignee__.js.map +1 -0
- package/out/concepts/Assignment__.js +5 -0
- package/out/concepts/Assignment__.js.map +1 -1
- package/out/concepts/BinaryExpression__.js +8 -7
- package/out/concepts/BinaryExpression__.js.map +1 -1
- package/out/concepts/BindAttribute__.d.ts +19 -0
- package/out/concepts/BindAttribute__.js +55 -10
- package/out/concepts/BindAttribute__.js.map +1 -1
- package/out/concepts/BindDirective__.js +23 -3
- package/out/concepts/BindDirective__.js.map +1 -1
- package/out/concepts/BindEvent__.d.ts +2 -2
- package/out/concepts/BindEvent__.js +67 -34
- package/out/concepts/BindEvent__.js.map +1 -1
- package/out/concepts/BooleanLiteral__.d.ts +2 -0
- package/out/concepts/BooleanLiteral__.js +10 -0
- package/out/concepts/BooleanLiteral__.js.map +1 -1
- package/out/concepts/CallFunction__.js +58 -25
- package/out/concepts/CallFunction__.js.map +1 -1
- package/out/concepts/CallInterface__.d.ts +5 -0
- package/out/concepts/CallInterface__.js +238 -31
- package/out/concepts/CallInterface__.js.map +1 -1
- package/out/concepts/CallLogic__.d.ts +4 -4
- package/out/concepts/CallLogic__.js +107 -50
- package/out/concepts/CallLogic__.js.map +1 -1
- package/out/concepts/CallQueryComponent__.d.ts +38 -3
- package/out/concepts/CallQueryComponent__.js +329 -75
- package/out/concepts/CallQueryComponent__.js.map +1 -1
- package/out/concepts/Comment__.js +6 -2
- package/out/concepts/Comment__.js.map +1 -1
- package/out/concepts/CompletionProperty__.d.ts +3 -1
- package/out/concepts/CompletionProperty__.js +2 -0
- package/out/concepts/CompletionProperty__.js.map +1 -1
- package/out/concepts/ConfigGroup__.js +3 -3
- package/out/concepts/ConfigGroup__.js.map +1 -1
- package/out/concepts/ConfigProperty__.js +3 -3
- package/out/concepts/ConfigProperty__.js.map +1 -1
- package/out/concepts/Configuration__.js +3 -3
- package/out/concepts/Configuration__.js.map +1 -1
- package/out/concepts/Constant__.d.ts +1 -0
- package/out/concepts/Constant__.js +16 -2
- package/out/concepts/Constant__.js.map +1 -1
- package/out/concepts/Destination__.d.ts +12 -0
- package/out/concepts/Destination__.js +115 -22
- package/out/concepts/Destination__.js.map +1 -1
- package/out/concepts/End__.js +9 -1
- package/out/concepts/End__.js.map +1 -1
- package/out/concepts/EntityIndex__.js +4 -2
- package/out/concepts/EntityIndex__.js.map +1 -1
- package/out/concepts/EntityProperty__.d.ts +11 -0
- package/out/concepts/EntityProperty__.js +71 -5
- package/out/concepts/EntityProperty__.js.map +1 -1
- package/out/concepts/Entity__.d.ts +5 -4
- package/out/concepts/Entity__.js +35 -19
- package/out/concepts/Entity__.js.map +1 -1
- package/out/concepts/Enum__.d.ts +5 -0
- package/out/concepts/Enum__.js +24 -12
- package/out/concepts/Enum__.js.map +1 -1
- package/out/concepts/Event__.js +3 -3
- package/out/concepts/Event__.js.map +1 -1
- package/out/concepts/ForEachStatement__.d.ts +1 -1
- package/out/concepts/ForEachStatement__.js +11 -15
- package/out/concepts/ForEachStatement__.js.map +1 -1
- package/out/concepts/Function__.js +13 -13
- package/out/concepts/Function__.js.map +1 -1
- package/out/concepts/Identifier__.d.ts +3 -0
- package/out/concepts/Identifier__.js +77 -30
- package/out/concepts/Identifier__.js.map +1 -1
- package/out/concepts/IfStatement__.js +4 -4
- package/out/concepts/IfStatement__.js.map +1 -1
- package/out/concepts/InterfaceParam__.d.ts +6 -4
- package/out/concepts/InterfaceParam__.js +57 -19
- package/out/concepts/InterfaceParam__.js.map +1 -1
- package/out/concepts/Interface__.d.ts +42 -30
- package/out/concepts/Interface__.js +133 -17
- package/out/concepts/Interface__.js.map +1 -1
- package/out/concepts/JSBlock__.d.ts +1 -0
- package/out/concepts/JSBlock__.js +3 -0
- package/out/concepts/JSBlock__.js.map +1 -1
- package/out/concepts/LogicItem__.d.ts +2 -1
- package/out/concepts/LogicItem__.js +14 -0
- package/out/concepts/LogicItem__.js.map +1 -1
- package/out/concepts/Logic__.d.ts +20 -1
- package/out/concepts/Logic__.js +194 -37
- package/out/concepts/Logic__.js.map +1 -1
- package/out/concepts/MemberExpression__.d.ts +2 -0
- package/out/concepts/MemberExpression__.js +49 -13
- package/out/concepts/MemberExpression__.js.map +1 -1
- package/out/concepts/Module__.d.ts +126 -120
- package/out/concepts/Module__.js +36 -26
- package/out/concepts/Module__.js.map +1 -1
- package/out/concepts/Namespace__.d.ts +5 -1
- package/out/concepts/Namespace__.js +48 -37
- package/out/concepts/Namespace__.js.map +1 -1
- package/out/concepts/NullLiteral__.d.ts +3 -0
- package/out/concepts/NullLiteral__.js +11 -1
- package/out/concepts/NullLiteral__.js.map +1 -1
- package/out/concepts/NumericLiteral__.d.ts +1 -1
- package/out/concepts/NumericLiteral__.js +17 -6
- package/out/concepts/NumericLiteral__.js.map +1 -1
- package/out/concepts/Param__.d.ts +7 -3
- package/out/concepts/Param__.js +64 -28
- package/out/concepts/Param__.js.map +1 -1
- package/out/concepts/ProcessComponent__.js +6 -6
- package/out/concepts/ProcessComponent__.js.map +1 -1
- package/out/concepts/ProcessElement__.d.ts +0 -4
- package/out/concepts/ProcessElement__.js +123 -54
- package/out/concepts/ProcessElement__.js.map +1 -1
- package/out/concepts/ProcessOutcome__.js +1 -1
- package/out/concepts/ProcessOutcome__.js.map +1 -1
- package/out/concepts/Process__.d.ts +7 -1
- package/out/concepts/Process__.js +81 -85
- package/out/concepts/Process__.js.map +1 -1
- package/out/concepts/QueryAggregateExpression__.js +1 -1
- package/out/concepts/QueryAggregateExpression__.js.map +1 -1
- package/out/concepts/QueryFieldExpression__.d.ts +1 -0
- package/out/concepts/QueryFieldExpression__.js +3 -0
- package/out/concepts/QueryFieldExpression__.js.map +1 -1
- package/out/concepts/QueryFromExpression__.js +2 -2
- package/out/concepts/QueryFromExpression__.js.map +1 -1
- package/out/concepts/QueryGroupByExpression__.d.ts +3 -0
- package/out/concepts/QueryGroupByExpression__.js +20 -0
- package/out/concepts/QueryGroupByExpression__.js.map +1 -1
- package/out/concepts/QueryJoinExpression__.js +5 -5
- package/out/concepts/QueryJoinExpression__.js.map +1 -1
- package/out/concepts/QueryLimitExpression__.js +2 -2
- package/out/concepts/QueryLimitExpression__.js.map +1 -1
- package/out/concepts/QuerySelectExpression__.js +3 -3
- package/out/concepts/QuerySelectExpression__.js.map +1 -1
- package/out/concepts/Return__.d.ts +4 -1
- package/out/concepts/Return__.js +74 -23
- package/out/concepts/Return__.js.map +1 -1
- package/out/concepts/Role__.d.ts +4 -0
- package/out/concepts/Role__.js +13 -4
- package/out/concepts/Role__.js.map +1 -1
- package/out/concepts/SqlQueryComponent__.js +2 -2
- package/out/concepts/SqlQueryComponent__.js.map +1 -1
- package/out/concepts/StringLiteral__.d.ts +1 -1
- package/out/concepts/StringLiteral__.js +22 -39
- package/out/concepts/StringLiteral__.js.map +1 -1
- package/out/concepts/StructureProperty__.d.ts +5 -4
- package/out/concepts/StructureProperty__.js +55 -26
- package/out/concepts/StructureProperty__.js.map +1 -1
- package/out/concepts/Structure__.d.ts +44 -30
- package/out/concepts/Structure__.js +44 -12
- package/out/concepts/Structure__.js.map +1 -1
- package/out/concepts/SwitchCase__.js +4 -4
- package/out/concepts/SwitchCase__.js.map +1 -1
- package/out/concepts/SwitchStatement__.js +2 -2
- package/out/concepts/SwitchStatement__.js.map +1 -1
- package/out/concepts/TypeAnnotation__.d.ts +5 -5
- package/out/concepts/TypeAnnotation__.js +82 -20
- package/out/concepts/TypeAnnotation__.js.map +1 -1
- package/out/concepts/UnaryExpression__.js +10 -8
- package/out/concepts/UnaryExpression__.js.map +1 -1
- package/out/concepts/Unparsed__.js +1 -1
- package/out/concepts/Unparsed__.js.map +1 -1
- package/out/concepts/ValidationRule__.d.ts +1 -0
- package/out/concepts/ValidationRule__.js +48 -13
- package/out/concepts/ValidationRule__.js.map +1 -1
- package/out/concepts/Variable__.d.ts +10 -1
- package/out/concepts/Variable__.js +77 -20
- package/out/concepts/Variable__.js.map +1 -1
- package/out/concepts/ViewComponent__.js +15 -15
- package/out/concepts/ViewComponent__.js.map +1 -1
- package/out/concepts/ViewElement__.d.ts +17 -11
- package/out/concepts/ViewElement__.js +302 -204
- package/out/concepts/ViewElement__.js.map +1 -1
- package/out/concepts/View__.d.ts +13 -12
- package/out/concepts/View__.js +124 -102
- package/out/concepts/View__.js.map +1 -1
- package/out/concepts/WhileStatement__.js +3 -3
- package/out/concepts/WhileStatement__.js.map +1 -1
- package/out/concepts/basics/stdlib/index.js +4 -1
- package/out/concepts/basics/stdlib/index.js.map +1 -1
- package/out/concepts/basics/stdlib/{nasl.validate.d.ts → nasl.auth.d.ts} +0 -0
- package/out/concepts/basics/stdlib/nasl.auth.js +30 -0
- package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -0
- package/out/concepts/basics/stdlib/nasl.browser.d.ts +3 -0
- package/out/concepts/basics/stdlib/nasl.browser.js +41 -0
- package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -0
- package/out/concepts/basics/stdlib/nasl.configuration.d.ts +3 -0
- package/out/concepts/basics/stdlib/nasl.configuration.js +25 -0
- package/out/concepts/basics/stdlib/nasl.configuration.js.map +1 -0
- package/out/concepts/basics/stdlib/nasl.interface.d.ts +2 -0
- package/out/concepts/basics/stdlib/nasl.interface.js +4 -4
- package/out/concepts/basics/stdlib/nasl.interface.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.ui.js +20 -0
- package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.util.js +138 -18
- package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.validation.js +54 -20
- package/out/concepts/basics/stdlib/nasl.validation.js.map +1 -1
- package/out/concepts/basics/stdlib/reference2TypeAnnotationList.js +1 -1
- package/out/concepts/basics/stdlib/reference2TypeAnnotationList.js.map +1 -1
- package/out/concepts/basics/types/coreTypeList.js +11 -10
- package/out/concepts/basics/types/coreTypeList.js.map +1 -1
- package/out/concepts/basics/types/index.d.ts +1 -0
- package/out/concepts/basics/types/index.js +3 -1
- package/out/concepts/basics/types/index.js.map +1 -1
- package/out/concepts/index__.d.ts +1 -0
- package/out/concepts/index__.js +1 -0
- package/out/concepts/index__.js.map +1 -1
- package/out/config.d.ts +1 -2
- package/out/config.js +1 -2
- package/out/config.js.map +1 -1
- package/out/enums/KEYWORDS.d.ts +3 -0
- package/out/enums/KEYWORDS.js +1199 -0
- package/out/enums/KEYWORDS.js.map +1 -0
- package/out/{terms → enums}/LEVEL_NAME_MAP.d.ts +0 -0
- package/out/{terms → enums}/LEVEL_NAME_MAP.js +0 -0
- package/out/{terms → enums}/LEVEL_NAME_MAP.js.map +1 -1
- package/out/eventBus.d.ts +3 -0
- package/out/eventBus.js +7 -0
- package/out/eventBus.js.map +1 -0
- package/out/generator/genBundleFiles.d.ts +7 -2
- package/out/generator/genBundleFiles.js +168 -27
- package/out/generator/genBundleFiles.js.map +1 -1
- package/out/generator/genMetaData.d.ts +20 -20
- package/out/generator/genMetaData.js +50 -15
- package/out/generator/genMetaData.js.map +1 -1
- package/out/index.d.ts +2 -0
- package/out/index.js +2 -0
- package/out/index.js.map +1 -1
- package/out/manager/diagnostic.d.ts +2 -2
- package/out/server/createUiTs.d.ts +1 -0
- package/out/server/createUiTs.js +49 -5
- package/out/server/createUiTs.js.map +1 -1
- package/out/server/entity2LogicNamespace.js +38 -23
- package/out/server/entity2LogicNamespace.js.map +1 -1
- package/out/server/extendBaseNode.d.ts +1 -0
- package/out/server/extendBaseNode.js +323 -0
- package/out/server/extendBaseNode.js.map +1 -0
- package/out/server/getExtensionModules.js +2 -0
- package/out/server/getExtensionModules.js.map +1 -1
- package/out/server/getFunctions.d.ts +1 -0
- package/out/server/getFunctions.js +7 -1
- package/out/server/getFunctions.js.map +1 -1
- package/out/server/getLogics.js +84 -18
- package/out/server/getLogics.js.map +1 -1
- package/out/server/getMemberIdentifier.d.ts +16 -1
- package/out/server/getMemberIdentifier.js +326 -38
- package/out/server/getMemberIdentifier.js.map +1 -1
- package/out/server/getProcesses.d.ts +8 -1
- package/out/server/getProcesses.js +383 -1
- package/out/server/getProcesses.js.map +1 -1
- package/out/server/getScope.d.ts +13 -0
- package/out/server/getScope.js +61 -0
- package/out/server/getScope.js.map +1 -0
- package/out/server/index.d.ts +1 -0
- package/out/server/index.js +5 -0
- package/out/server/index.js.map +1 -1
- package/out/server/naslServer.d.ts +36 -57
- package/out/server/naslServer.js +689 -615
- package/out/server/naslServer.js.map +1 -1
- package/out/server/process2LogicNamespace.d.ts +10 -0
- package/out/server/process2LogicNamespace.js +29 -1
- package/out/server/process2LogicNamespace.js.map +1 -1
- package/out/server/translator.d.ts +22 -3
- package/out/server/translator.js +369 -123
- package/out/server/translator.js.map +1 -1
- package/out/service/creator/add.configs.d.ts +1 -0
- package/out/service/creator/add.configs.js +68 -0
- package/out/service/creator/add.configs.js.map +1 -0
- package/out/service/creator/errHandles.d.ts +18 -0
- package/out/service/creator/errHandles.js +60 -0
- package/out/service/creator/errHandles.js.map +1 -0
- package/out/service/creator/index.d.ts +1 -0
- package/out/service/creator/index.js +72 -0
- package/out/service/creator/index.js.map +1 -0
- package/out/service/storage/api.d.ts +18 -0
- package/out/service/storage/api.js +17 -0
- package/out/service/storage/api.js.map +1 -0
- package/out/service/storage/init.js +221 -37
- package/out/service/storage/init.js.map +1 -1
- package/out/service/storage/service.d.ts +2 -0
- package/out/service/storage/service.js +10 -0
- package/out/service/storage/service.js.map +1 -0
- package/out/service/storage/storagePoint.d.ts +1 -14
- package/out/service/storage/storagePoint.js +16 -16
- package/out/service/storage/storagePoint.js.map +1 -1
- package/out/templator/genCreateBlock.js +6 -6
- package/out/templator/genCreateBlock.js.map +1 -1
- package/out/templator/genCurdEditMultipleKeyBlock.js +13 -17
- package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
- package/out/templator/genCurdMultipleKeyBlock.js +11 -11
- package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
- package/out/templator/genEditTableBlock.js +5 -5
- package/out/templator/genEditTableBlock.js.map +1 -1
- package/out/templator/genEnumSelectBlock.js +2 -2
- package/out/templator/genEnumSelectBlock.js.map +1 -1
- package/out/templator/genGetBlock.js +6 -4
- package/out/templator/genGetBlock.js.map +1 -1
- package/out/templator/genGridViewBlock.d.ts +3 -1
- package/out/templator/genGridViewBlock.js +61 -6
- package/out/templator/genGridViewBlock.js.map +1 -1
- package/out/templator/genQueryComponent.d.ts +2 -0
- package/out/templator/genQueryComponent.js +34 -18
- package/out/templator/genQueryComponent.js.map +1 -1
- package/out/templator/genSelectBlock.js +5 -15
- package/out/templator/genSelectBlock.js.map +1 -1
- package/out/templator/genTableBlock.d.ts +1 -1
- package/out/templator/genTableBlock.js +4 -5
- package/out/templator/genTableBlock.js.map +1 -1
- package/out/templator/genUpdateBlock.js +10 -11
- package/out/templator/genUpdateBlock.js.map +1 -1
- package/out/templator/utils.d.ts +16 -5
- package/out/templator/utils.js +10 -5
- package/out/templator/utils.js.map +1 -1
- package/out/test/fixtures/env.js +0 -1
- package/out/test/fixtures/env.js.map +1 -1
- package/out/test/units/page/Element.spec.js +3 -3
- package/out/test/units/page/Element.spec.js.map +1 -1
- package/out/test/units/temp/temp.spec.js +1 -1
- package/out/test/units/temp/temp.spec.js.map +1 -1
- package/out/utils/index.d.ts +6 -0
- package/out/utils/index.js +25 -1
- package/out/utils/index.js.map +1 -1
- package/out/utils/string.d.ts +1 -1
- package/out/utils/string.js +38 -9
- package/out/utils/string.js.map +1 -1
- package/package.json +2 -2
- package/src/automate/engine/index.js +95 -119
- package/src/automate/engine/operators.js +63 -0
- package/src/automate/engine/uniqueName.js +36 -0
- package/src/automate/engine/utils.js +63 -19
- package/src/common/BaseNode.ts +229 -74
- package/src/concepts/App__.ts +92 -85
- package/src/concepts/Argument__.ts +23 -3
- package/src/concepts/Assignee__.ts +467 -0
- package/src/concepts/Assignment__.ts +4 -1
- package/src/concepts/BinaryExpression__.ts +9 -7
- package/src/concepts/BindAttribute__.ts +69 -9
- package/src/concepts/BindDirective__.ts +22 -3
- package/src/concepts/BindEvent__.ts +67 -23
- package/src/concepts/BooleanLiteral__.ts +8 -0
- package/src/concepts/CallFunction__.ts +55 -23
- package/src/concepts/CallInterface__.ts +236 -26
- package/src/concepts/CallLogic__.ts +111 -52
- package/src/concepts/CallQueryComponent__.ts +315 -67
- package/src/concepts/Comment__.ts +6 -2
- package/src/concepts/CompletionProperty__.ts +5 -1
- package/src/concepts/ConfigGroup__.ts +3 -3
- package/src/concepts/ConfigProperty__.ts +3 -3
- package/src/concepts/Configuration__.ts +3 -3
- package/src/concepts/Constant__.ts +14 -2
- package/src/concepts/Destination__.ts +123 -37
- package/src/concepts/End__.ts +8 -1
- package/src/concepts/EntityIndex__.ts +4 -2
- package/src/concepts/EntityProperty__.ts +56 -5
- package/src/concepts/Entity__.ts +38 -21
- package/src/concepts/Enum__.ts +23 -26
- package/src/concepts/Event__.ts +3 -3
- package/src/concepts/ForEachStatement__.ts +16 -21
- package/src/concepts/Function__.ts +13 -13
- package/src/concepts/Identifier__.ts +84 -42
- package/src/concepts/IfStatement__.ts +4 -4
- package/src/concepts/InterfaceParam__.ts +57 -16
- package/src/concepts/Interface__.ts +130 -16
- package/src/concepts/JSBlock__.ts +4 -0
- package/src/concepts/LogicItem__.ts +16 -1
- package/src/concepts/Logic__.ts +192 -39
- package/src/concepts/MemberExpression__.ts +58 -15
- package/src/concepts/Module__.ts +35 -24
- package/src/concepts/Namespace__.ts +49 -37
- package/src/concepts/NullLiteral__.ts +8 -1
- package/src/concepts/NumericLiteral__.ts +17 -6
- package/src/concepts/Param__.ts +64 -16
- package/src/concepts/ProcessComponent__.ts +6 -6
- package/src/concepts/ProcessElement__.ts +149 -44
- package/src/concepts/ProcessOutcome__.ts +1 -1
- package/src/concepts/Process__.ts +85 -98
- package/src/concepts/QueryAggregateExpression__.ts +1 -1
- package/src/concepts/QueryFieldExpression__.ts +4 -0
- package/src/concepts/QueryFromExpression__.ts +2 -2
- package/src/concepts/QueryGroupByExpression__.ts +23 -0
- package/src/concepts/QueryJoinExpression__.ts +5 -5
- package/src/concepts/QueryLimitExpression__.ts +2 -2
- package/src/concepts/QuerySelectExpression__.ts +3 -3
- package/src/concepts/Return__.ts +69 -17
- package/src/concepts/Role__.ts +5 -4
- package/src/concepts/SqlQueryComponent__.ts +2 -2
- package/src/concepts/StringLiteral__.ts +21 -39
- package/src/concepts/StructureProperty__.ts +50 -18
- package/src/concepts/Structure__.ts +32 -10
- package/src/concepts/SwitchCase__.ts +4 -4
- package/src/concepts/SwitchStatement__.ts +2 -2
- package/src/concepts/TypeAnnotation__.ts +66 -15
- package/src/concepts/UnaryExpression__.ts +10 -8
- package/src/concepts/Unparsed__.ts +1 -1
- package/src/concepts/ValidationRule__.ts +44 -14
- package/src/concepts/Variable__.ts +70 -16
- package/src/concepts/ViewComponent__.ts +15 -15
- package/src/concepts/ViewElement__.ts +289 -166
- package/src/concepts/View__.ts +135 -69
- package/src/concepts/WhileStatement__.ts +4 -4
- package/src/concepts/basics/stdlib/index.ts +4 -2
- package/src/concepts/basics/stdlib/nasl.auth.ts +26 -0
- package/src/concepts/basics/stdlib/nasl.browser.ts +37 -0
- package/src/concepts/basics/stdlib/nasl.configuration.ts +21 -0
- package/src/concepts/basics/stdlib/nasl.interface.ts +1 -1
- package/src/concepts/basics/stdlib/nasl.ui.ts +20 -1
- package/src/concepts/basics/stdlib/nasl.util.ts +140 -18
- package/src/concepts/basics/stdlib/nasl.validation.ts +45 -11
- package/src/concepts/basics/stdlib/reference2TypeAnnotationList.ts +1 -1
- package/src/concepts/basics/types/coreTypeList.ts +11 -11
- package/src/concepts/basics/types/index.ts +1 -0
- package/src/concepts/index__.ts +1 -0
- package/src/config.ts +1 -2
- package/src/enums/KEYWORDS.ts +1197 -0
- package/src/{terms → enums}/LEVEL_NAME_MAP.ts +0 -0
- package/src/eventBus.ts +5 -0
- package/src/generator/genBundleFiles.ts +182 -30
- package/src/generator/genMetaData.ts +72 -21
- package/src/index.ts +2 -0
- package/src/manager/diagnostic.ts +2 -2
- package/src/server/createUiTs.ts +45 -7
- package/src/server/entity2LogicNamespace.ts +41 -25
- package/src/server/extendBaseNode.ts +318 -0
- package/src/server/getExtensionModules.ts +2 -0
- package/src/server/getFunctions.ts +6 -0
- package/src/server/getLogics.ts +87 -19
- package/src/server/getMemberIdentifier.ts +282 -65
- package/src/server/getProcesses.ts +397 -4
- package/src/server/getScope.ts +67 -0
- package/src/server/index.ts +13 -1
- package/src/server/naslServer.ts +694 -632
- package/src/server/process2LogicNamespace.ts +30 -2
- package/src/server/translator.ts +425 -128
- package/src/service/config/index.js +1 -1
- package/src/service/creator/errHandles.js +5 -2
- package/src/service/creator/index.js +0 -6
- package/src/service/storage/api.js +14 -0
- package/src/service/storage/init.ts +218 -45
- package/src/service/storage/service.ts +6 -0
- package/src/service/storage/storagePoint.ts +16 -16
- package/src/templator/genCreateBlock.ts +6 -6
- package/src/templator/genCurdEditMultipleKeyBlock.ts +29 -30
- package/src/templator/genCurdMultipleKeyBlock.ts +11 -11
- package/src/templator/genEditTableBlock.ts +5 -5
- package/src/templator/genEnumSelectBlock.ts +2 -2
- package/src/templator/genGetBlock.ts +7 -9
- package/src/templator/genGridViewBlock.ts +59 -9
- package/src/templator/genQueryComponent.ts +46 -32
- package/src/templator/genSelectBlock.ts +5 -15
- package/src/templator/genTableBlock.ts +5 -9
- package/src/templator/genUpdateBlock.ts +10 -12
- package/src/templator/utils.ts +12 -6
- package/src/test/fixtures/env.ts +0 -2
- package/src/test/units/page/Element.spec.ts +3 -3
- package/src/test/units/temp/temp.spec.ts +1 -1
- package/src/utils/index.ts +24 -0
- package/src/utils/string.ts +39 -9
- package/out/concepts/basics/stdlib/nasl.validate.js +0 -527
- package/out/concepts/basics/stdlib/nasl.validate.js.map +0 -1
- package/out/data/Module.d.ts +0 -34
- package/out/data/Module.js +0 -53
- package/out/data/Module.js.map +0 -1
- package/src/automate/engine/index.d.ts +0 -3
|
@@ -4,6 +4,7 @@ import Entity from './Entity__';
|
|
|
4
4
|
import Structure from './Structure__';
|
|
5
5
|
import StructureProperty from './StructureProperty__';
|
|
6
6
|
import CompletionProperty from './CompletionProperty__';
|
|
7
|
+
import QueryFieldExpression from './QueryFieldExpression__';
|
|
7
8
|
//================================================================================
|
|
8
9
|
// 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
|
|
9
10
|
// ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
|
|
@@ -82,6 +83,12 @@ export class CallQueryComponent extends LogicItem {
|
|
|
82
83
|
@property('QueryLimitExpression')
|
|
83
84
|
limit: QueryLimitExpression = undefined;
|
|
84
85
|
|
|
86
|
+
/**
|
|
87
|
+
* 查询组件的局部版本
|
|
88
|
+
*/
|
|
89
|
+
@property()
|
|
90
|
+
ideVersion: string = undefined;
|
|
91
|
+
|
|
85
92
|
|
|
86
93
|
|
|
87
94
|
/**
|
|
@@ -202,7 +209,7 @@ export class CallQueryComponent extends LogicItem {
|
|
|
202
209
|
return (this.groupBy || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
|
|
203
210
|
}
|
|
204
211
|
getQueryGroupByExpressionUniqueName(name = 'queryGroupByExpression1') {
|
|
205
|
-
return utils.unique(name, this.getQueryGroupByExpressionExistingNames());
|
|
212
|
+
return utils.unique(name, this.getQueryGroupByExpressionExistingNames(), undefined, false);
|
|
206
213
|
}
|
|
207
214
|
|
|
208
215
|
/**
|
|
@@ -241,7 +248,7 @@ export class CallQueryComponent extends LogicItem {
|
|
|
241
248
|
name: options,
|
|
242
249
|
}, this, 'groupBy');
|
|
243
250
|
} else if (options instanceof QueryGroupByExpression) {
|
|
244
|
-
options.
|
|
251
|
+
options.ensureDelete(); // 同一实例不支持多处存在
|
|
245
252
|
queryGroupByExpression = options;
|
|
246
253
|
Object.assign(queryGroupByExpression, relationOptions);
|
|
247
254
|
} else {
|
|
@@ -329,7 +336,7 @@ export class CallQueryComponent extends LogicItem {
|
|
|
329
336
|
|
|
330
337
|
addQueryGroupByExpressionInGroupBy(options?: string | Partial<QueryGroupByExpression> | QueryGroupByExpression) {
|
|
331
338
|
const node = this._addQueryGroupByExpressionInGroupBy(options as any);
|
|
332
|
-
const index = this.groupBy.
|
|
339
|
+
const index = this.groupBy.indexOf(node);
|
|
333
340
|
node.create({
|
|
334
341
|
index,
|
|
335
342
|
parentNode: this,
|
|
@@ -359,7 +366,7 @@ export class CallQueryComponent extends LogicItem {
|
|
|
359
366
|
const relationOptions = { parentNode: this, parentKey: 'orderBy' };
|
|
360
367
|
let queryOrderByExpression: QueryOrderByExpression;
|
|
361
368
|
if (options instanceof QueryOrderByExpression) {
|
|
362
|
-
options.
|
|
369
|
+
options.ensureDelete(); // 同一实例不支持多处存在
|
|
363
370
|
queryOrderByExpression = options;
|
|
364
371
|
Object.assign(queryOrderByExpression, relationOptions);
|
|
365
372
|
} else {
|
|
@@ -433,7 +440,7 @@ export class CallQueryComponent extends LogicItem {
|
|
|
433
440
|
|
|
434
441
|
addQueryOrderByExpressionInOrderBy(options?: Partial<QueryOrderByExpression> | QueryOrderByExpression) {
|
|
435
442
|
const node = this._addQueryOrderByExpressionInOrderBy(options as any);
|
|
436
|
-
const index = this.orderBy.
|
|
443
|
+
const index = this.orderBy.indexOf(node);
|
|
437
444
|
node.create({
|
|
438
445
|
index,
|
|
439
446
|
parentNode: this,
|
|
@@ -775,16 +782,47 @@ export class CallQueryComponent extends LogicItem {
|
|
|
775
782
|
// })`;
|
|
776
783
|
}
|
|
777
784
|
|
|
785
|
+
isAutoInfer() {
|
|
786
|
+
return this.ideVersion === '2.11';
|
|
787
|
+
}
|
|
788
|
+
|
|
778
789
|
@withSourceMap()
|
|
779
790
|
toEmbeddedTS(state?: TranslatorState): string {
|
|
780
|
-
|
|
781
|
-
|
|
791
|
+
if (!this.typeAnnotation)
|
|
792
|
+
return `(function () {
|
|
793
|
+
return;
|
|
794
|
+
})()`;
|
|
795
|
+
let code = `(function(): `;
|
|
796
|
+
if (this.isAutoInfer()) {
|
|
797
|
+
code += `${this.typeAnnotation.toEmbeddedTS(shiftState(state, code))} {\n`;
|
|
798
|
+
} else {
|
|
799
|
+
code += `nasl.collection.PageOf<`;
|
|
800
|
+
code += `${this.typeAnnotation.toEmbeddedTS(shiftState(state, code))}> {\n`;
|
|
801
|
+
}
|
|
802
|
+
// 2.11版本后 分组使用别名
|
|
803
|
+
if (this.isAutoInfer()) {
|
|
804
|
+
// 分组别名(列别名)
|
|
805
|
+
this.groupBy.forEach((item, index, array) => {
|
|
806
|
+
code += indent(state.tabSize + 1);
|
|
807
|
+
const groupElement = item.groupElement as QueryFieldExpression;
|
|
808
|
+
if (groupElement.asName)
|
|
809
|
+
code += `const __${groupElement.asName} = `;
|
|
810
|
+
if (groupElement.propertyName) {
|
|
811
|
+
code += groupElement.toEmbeddedTS(shiftState(state, code, { tabSize: 0 }));
|
|
812
|
+
code += ';\n';
|
|
813
|
+
} else
|
|
814
|
+
code += `__EMPTY_GROUP_BY_NAME__;\n`;
|
|
815
|
+
|
|
816
|
+
if (index === array.length - 1)
|
|
817
|
+
code += '\n';
|
|
818
|
+
});
|
|
819
|
+
}
|
|
782
820
|
// 聚合属性别名
|
|
783
821
|
this.select.selectElements.forEach((item, index, array) => {
|
|
784
822
|
code += indent(state.tabSize + 1);
|
|
785
823
|
const { asName, aggregateName, aggregateParam } = item;
|
|
786
824
|
if (asName)
|
|
787
|
-
code += `const ${asName} = `;
|
|
825
|
+
code += `const __${asName} = `;
|
|
788
826
|
if (aggregateName) {
|
|
789
827
|
code += `nasl.langUtil.${aggregateName}(`;
|
|
790
828
|
code += aggregateParam.toEmbeddedTS(shiftState(state, code, { tabSize: 0 }));
|
|
@@ -815,7 +853,7 @@ export class CallQueryComponent extends LogicItem {
|
|
|
815
853
|
});
|
|
816
854
|
|
|
817
855
|
// 分组属性(Group by)
|
|
818
|
-
code = this.toEmbeddedTSOfSubPart('GROUP_BY', this.groupBy
|
|
856
|
+
code = this.toEmbeddedTSOfSubPart('GROUP_BY', this.groupBy, {
|
|
819
857
|
code,
|
|
820
858
|
state,
|
|
821
859
|
});
|
|
@@ -845,76 +883,251 @@ export class CallQueryComponent extends LogicItem {
|
|
|
845
883
|
return code;
|
|
846
884
|
}
|
|
847
885
|
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
if (!node)
|
|
852
|
-
return [];
|
|
886
|
+
genPropertyListOfFrom(node: QueryFromExpression | QueryJoinExpression, entities: any[] = []) {
|
|
887
|
+
if (!node)
|
|
888
|
+
return [];
|
|
853
889
|
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
890
|
+
const entityName = node.entityName;
|
|
891
|
+
entities.push({
|
|
892
|
+
concept: 'StructureProperty',
|
|
893
|
+
name: utils.firstLowerCase(entityName),
|
|
894
|
+
typeAnnotation: {
|
|
895
|
+
concept: 'TypeAnnotation',
|
|
896
|
+
typeKind: 'reference',
|
|
897
|
+
typeName: entityName,
|
|
898
|
+
typeNamespace: `${this.app.getNamespace()}.entities`,
|
|
899
|
+
},
|
|
900
|
+
});
|
|
901
|
+
|
|
902
|
+
for (const sub of node.joinParts) {
|
|
903
|
+
this.genPropertyListOfFrom(sub, entities);
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
return entities;
|
|
907
|
+
}
|
|
908
|
+
|
|
909
|
+
genPropertyListOfAggregate(node: CallQueryComponent) {
|
|
910
|
+
return node.select.selectElements
|
|
911
|
+
.filter((item) => item.aggregateName && item.asName)
|
|
912
|
+
.map((item) => {
|
|
913
|
+
let typeName;
|
|
914
|
+
if (['COUNT', 'COUNTD'].includes(item.aggregateName)) {
|
|
915
|
+
typeName = 'Integer';
|
|
916
|
+
} else if (['AVG'].includes(item.aggregateName)) {
|
|
917
|
+
typeName = 'Double';
|
|
918
|
+
} else {
|
|
919
|
+
const { entityAsName, propertyName } = item.aggregateParam;
|
|
920
|
+
const entity = this.app.entities.find((item: Entity) => item.name === entityAsName);
|
|
921
|
+
const property = entity?.properties.find((item) => item.name === propertyName);
|
|
922
|
+
typeName = property?.typeAnnotation.typeName;
|
|
923
|
+
}
|
|
924
|
+
return {
|
|
925
|
+
concept: 'StructureProperty',
|
|
926
|
+
name: item.asName,
|
|
927
|
+
typeAnnotation: {
|
|
928
|
+
concept: 'TypeAnnotation',
|
|
929
|
+
typeKind: 'primitive',
|
|
930
|
+
typeNamespace: 'nasl.core',
|
|
931
|
+
typeName,
|
|
932
|
+
},
|
|
933
|
+
};
|
|
864
934
|
});
|
|
935
|
+
}
|
|
865
936
|
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
937
|
+
genPropertyListOfGroupBy(node: CallQueryComponent) {
|
|
938
|
+
return node.groupBy
|
|
939
|
+
.filter((item) => item.groupElement && (item.groupElement as QueryFieldExpression).propertyName && (item.groupElement as QueryFieldExpression).asName)
|
|
940
|
+
.map((item) => {
|
|
941
|
+
const { entityAsName, propertyName, asName } = item.groupElement as QueryFieldExpression;
|
|
942
|
+
const entity = this.app.entities.find((item: Entity) => item.name === entityAsName);
|
|
943
|
+
const property = entity?.properties.find((item) => item.name === propertyName);
|
|
944
|
+
const typeName = property?.typeAnnotation.typeName;
|
|
945
|
+
return {
|
|
946
|
+
concept: 'StructureProperty',
|
|
947
|
+
name: asName,
|
|
948
|
+
typeAnnotation: {
|
|
949
|
+
concept: 'TypeAnnotation',
|
|
950
|
+
typeKind: 'primitive',
|
|
951
|
+
typeName,
|
|
952
|
+
typeNamespace: 'nasl.core',
|
|
953
|
+
},
|
|
954
|
+
};
|
|
955
|
+
});
|
|
956
|
+
}
|
|
957
|
+
|
|
958
|
+
genStructure(structureName?: string, properties: any[] = []) {
|
|
959
|
+
return Structure.from({
|
|
960
|
+
concept: 'Structure',
|
|
961
|
+
name: structureName || this.typeAnnotation?.typeName || `${utils.firstUpperCase(this.logic.name)}Structure`,
|
|
962
|
+
origin: 'CallQueryComponent',
|
|
963
|
+
properties,
|
|
964
|
+
});
|
|
965
|
+
}
|
|
966
|
+
|
|
967
|
+
saveStructure() {
|
|
968
|
+
// 没有数据源时不初始化数据结构
|
|
969
|
+
if (!this.entityNames.length) {
|
|
970
|
+
return;
|
|
971
|
+
}
|
|
972
|
+
|
|
973
|
+
if (!this.isAutoInfer()) {
|
|
974
|
+
// 存量应用走之前的逻辑
|
|
975
|
+
return this.saveStructureNoInfer();
|
|
976
|
+
}
|
|
869
977
|
|
|
870
|
-
|
|
978
|
+
const groupBy = this.groupBy;
|
|
979
|
+
const selectElements = this.select.selectElements;
|
|
980
|
+
let structureName;
|
|
981
|
+
let typeAnnotation;
|
|
982
|
+
|
|
983
|
+
// Structures
|
|
984
|
+
if (this.typeAnnotation) {
|
|
985
|
+
const { typeNamespace, typeName, typeArguments } = this.typeAnnotation;
|
|
986
|
+
if (typeNamespace === 'app.structures') {
|
|
987
|
+
structureName = typeName;
|
|
988
|
+
this.removeStructure(structureName);
|
|
989
|
+
} else if (typeNamespace === 'nasl.collection' && typeName === 'PageOf') {
|
|
990
|
+
// PageOf<Structures>
|
|
991
|
+
if (typeArguments[0].typeNamespace === 'app.structures') {
|
|
992
|
+
structureName = typeArguments[0].typeName;
|
|
993
|
+
this.removeStructure(structureName);
|
|
994
|
+
}
|
|
995
|
+
}
|
|
871
996
|
}
|
|
872
997
|
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
998
|
+
structureName = structureName || utils.unique(`${utils.firstUpperCase(this.logic.name)}Structure`, this.app.getStructureExistingNames());
|
|
999
|
+
const groupByLength = groupBy.filter((item) => (item.groupElement as QueryFieldExpression)?.propertyName && (item.groupElement as QueryFieldExpression).asName).length;
|
|
1000
|
+
const aggregateLength = selectElements.filter((item) => item.aggregateName && item.asName).length;
|
|
1001
|
+
|
|
1002
|
+
// 1. 有分组
|
|
1003
|
+
if (groupByLength) {
|
|
1004
|
+
if (!aggregateLength && groupByLength === 1) {
|
|
1005
|
+
// 1.1 单分组无聚合:`PageOf<列的类型>`
|
|
1006
|
+
const { entityAsName, propertyName } = groupBy[0].groupElement as any;
|
|
1007
|
+
const entity = this.app.entities.find((item: Entity) => item.name === entityAsName);
|
|
1008
|
+
const property = entity?.properties.find((item) => item.name === propertyName);
|
|
1009
|
+
const typeName = property?.typeAnnotation.typeName;
|
|
1010
|
+
|
|
1011
|
+
typeAnnotation = TypeAnnotation.from({
|
|
1012
|
+
text: `PageOf<${typeName}>`,
|
|
1013
|
+
concept: 'TypeAnnotation',
|
|
1014
|
+
typeKind: 'generic',
|
|
1015
|
+
typeName: 'PageOf',
|
|
1016
|
+
typeNamespace: `nasl.collection`,
|
|
1017
|
+
typeArguments: [
|
|
1018
|
+
TypeAnnotation.from({
|
|
1019
|
+
concept: 'TypeAnnotation',
|
|
1020
|
+
typeKind: 'primitive',
|
|
1021
|
+
typeName,
|
|
1022
|
+
typeNamespace: 'nasl.core',
|
|
1023
|
+
}, this.typeAnnotation, 'typeAnnotation'),
|
|
1024
|
+
],
|
|
1025
|
+
}, this, 'typeAnnotation');
|
|
1026
|
+
} else {
|
|
1027
|
+
// 1.2 多分组:`PageOf<Structure>`
|
|
1028
|
+
const structure = this.genStructure(structureName, [
|
|
1029
|
+
...this.genPropertyListOfGroupBy(this),
|
|
1030
|
+
...this.genPropertyListOfAggregate(this),
|
|
1031
|
+
]);
|
|
1032
|
+
this.app.addStructure(structure);
|
|
1033
|
+
|
|
1034
|
+
typeAnnotation = TypeAnnotation.from({
|
|
1035
|
+
text: `PageOf<${structureName}>`,
|
|
1036
|
+
concept: 'TypeAnnotation',
|
|
1037
|
+
typeKind: 'generic',
|
|
1038
|
+
typeName: 'PageOf',
|
|
1039
|
+
typeNamespace: `nasl.collection`,
|
|
1040
|
+
typeArguments: [
|
|
1041
|
+
TypeAnnotation.from({
|
|
1042
|
+
concept: 'TypeAnnotation',
|
|
1043
|
+
typeKind: 'reference',
|
|
1044
|
+
typeName: structureName,
|
|
1045
|
+
typeNamespace: 'app.structures',
|
|
1046
|
+
}, this.typeAnnotation, 'typeAnnotation'),
|
|
1047
|
+
],
|
|
1048
|
+
}, this, 'typeAnnotation');
|
|
1049
|
+
}
|
|
1050
|
+
} else { // 2. 无分组
|
|
1051
|
+
if (aggregateLength) {
|
|
1052
|
+
if (aggregateLength === 1) {
|
|
1053
|
+
// 2.1 单聚合:`基本类型`
|
|
877
1054
|
let typeName;
|
|
878
|
-
if (['COUNT', 'COUNTD'].includes(
|
|
1055
|
+
if (['COUNT', 'COUNTD'].includes(selectElements[0].aggregateName)) {
|
|
1056
|
+
// 2.1.1. `COUNT`、`COUNTD` 返回 `Integer`
|
|
879
1057
|
typeName = 'Integer';
|
|
880
|
-
else {
|
|
881
|
-
|
|
882
|
-
|
|
1058
|
+
} else if (['AVG'].includes(selectElements[0].aggregateName)) {
|
|
1059
|
+
// 2.1.2. `AVG` 返回 `Double`
|
|
1060
|
+
typeName = 'Double';
|
|
1061
|
+
} else {
|
|
1062
|
+
// 2.1.3. 其他返回列类型,包含:`Integer`、`Long`、`Double`
|
|
1063
|
+
const { entityAsName, propertyName } = selectElements[0].aggregateParam;
|
|
1064
|
+
const entity = this.app.entities.find((item: Entity) => item.name === entityAsName);
|
|
883
1065
|
const property = entity?.properties.find((item) => item.name === propertyName);
|
|
884
1066
|
typeName = property?.typeAnnotation.typeName;
|
|
885
1067
|
}
|
|
886
|
-
|
|
887
|
-
concept: '
|
|
888
|
-
|
|
889
|
-
|
|
1068
|
+
typeAnnotation = TypeAnnotation.from({
|
|
1069
|
+
concept: 'TypeAnnotation',
|
|
1070
|
+
typeKind: 'primitive',
|
|
1071
|
+
typeName,
|
|
1072
|
+
typeNamespace: 'nasl.core',
|
|
1073
|
+
}, this, 'typeAnnotation');
|
|
1074
|
+
} else {
|
|
1075
|
+
// 2.2. 多聚合:`Structure`(自动创建 `Structure`)
|
|
1076
|
+
const structure = this.genStructure(structureName, [
|
|
1077
|
+
...this.genPropertyListOfAggregate(this),
|
|
1078
|
+
]);
|
|
1079
|
+
this.app.addStructure(structure);
|
|
1080
|
+
|
|
1081
|
+
typeAnnotation = TypeAnnotation.from({
|
|
1082
|
+
concept: 'TypeAnnotation',
|
|
1083
|
+
typeKind: 'reference',
|
|
1084
|
+
typeName: structureName,
|
|
1085
|
+
typeNamespace: `app.structures`,
|
|
1086
|
+
}, this, 'typeAnnotation');
|
|
1087
|
+
}
|
|
1088
|
+
} else {
|
|
1089
|
+
// 2.3. 无聚合(默认情况):`PageOf<Structure>`(自动创建 `Structure`)
|
|
1090
|
+
const structure = this.genStructure(structureName, [
|
|
1091
|
+
...this.genPropertyListOfFrom(this.from),
|
|
1092
|
+
...this.genPropertyListOfAggregate(this),
|
|
1093
|
+
]);
|
|
1094
|
+
this.app.addStructure(structure);
|
|
1095
|
+
|
|
1096
|
+
typeAnnotation = TypeAnnotation.from({
|
|
1097
|
+
text: structureName,
|
|
1098
|
+
concept: 'TypeAnnotation',
|
|
1099
|
+
typeKind: 'generic',
|
|
1100
|
+
typeName: 'PageOf',
|
|
1101
|
+
typeNamespace: `nasl.collection`,
|
|
1102
|
+
typeArguments: [
|
|
1103
|
+
TypeAnnotation.from({
|
|
890
1104
|
concept: 'TypeAnnotation',
|
|
891
|
-
typeKind: '
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
},
|
|
895
|
-
|
|
896
|
-
});
|
|
1105
|
+
typeKind: 'reference',
|
|
1106
|
+
typeName: structureName,
|
|
1107
|
+
typeNamespace: 'app.structures',
|
|
1108
|
+
}, this.typeAnnotation, 'typeAnnotation'),
|
|
1109
|
+
],
|
|
1110
|
+
}, this, 'typeAnnotation');
|
|
1111
|
+
}
|
|
897
1112
|
}
|
|
898
1113
|
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
return Structure.from({
|
|
902
|
-
concept: 'Structure',
|
|
903
|
-
name: structureName,
|
|
904
|
-
properties: [...genPropertyListOfFrom(this.from), ...genPropertyListOfAggregate(this)],
|
|
905
|
-
});
|
|
1114
|
+
this.update({ typeAnnotation });
|
|
906
1115
|
}
|
|
907
1116
|
|
|
908
|
-
|
|
909
|
-
const source = this.genStructure(
|
|
1117
|
+
saveStructureNoInfer() {
|
|
1118
|
+
const source = this.genStructure(null, [
|
|
1119
|
+
...this.genPropertyListOfFrom(this.from),
|
|
1120
|
+
...this.genPropertyListOfAggregate(this),
|
|
1121
|
+
]);
|
|
910
1122
|
if (this.typeAnnotation) {
|
|
911
1123
|
const structure = this.app.structures.find((item) => item.name === this.typeAnnotation.typeName);
|
|
912
1124
|
if (structure) {
|
|
913
|
-
const properties = source.properties.map((property) => StructureProperty.from(property, structure));
|
|
1125
|
+
const properties = source.properties.map((property) => StructureProperty.from(property, structure, 'properties'));
|
|
914
1126
|
structure.update({
|
|
915
1127
|
properties,
|
|
916
1128
|
});
|
|
917
|
-
}
|
|
1129
|
+
} else
|
|
1130
|
+
this.app.addStructure(source);
|
|
918
1131
|
} else {
|
|
919
1132
|
source.name = utils.unique(source.name, this.app.getStructureExistingNames());
|
|
920
1133
|
this.app.addStructure(source);
|
|
@@ -923,24 +1136,32 @@ export class CallQueryComponent extends LogicItem {
|
|
|
923
1136
|
typeKind: 'reference',
|
|
924
1137
|
typeName: source.name,
|
|
925
1138
|
typeNamespace: `app.structures`,
|
|
926
|
-
}, this);
|
|
1139
|
+
}, this, 'typeAnnotation');
|
|
927
1140
|
this.update({
|
|
928
1141
|
typeAnnotation,
|
|
929
1142
|
});
|
|
930
1143
|
}
|
|
931
1144
|
}
|
|
932
1145
|
|
|
933
|
-
removeStructure() {
|
|
1146
|
+
removeStructure(structureName?: string) {
|
|
934
1147
|
try {
|
|
935
|
-
|
|
1148
|
+
if (this.typeAnnotation) {
|
|
1149
|
+
const { typeNamespace, typeName, typeArguments } = this.typeAnnotation;
|
|
1150
|
+
if (typeNamespace === 'app.structures') {
|
|
1151
|
+
// Structures
|
|
1152
|
+
structureName = typeName;
|
|
1153
|
+
this.app.removeStructure(structureName);
|
|
1154
|
+
} else if (typeNamespace === 'nasl.collection' && typeName === 'PageOf') {
|
|
1155
|
+
// PageOf<Structures>
|
|
1156
|
+
if (typeArguments[0].typeNamespace === 'app.structures') {
|
|
1157
|
+
structureName = typeArguments[0].typeName;
|
|
1158
|
+
this.app.removeStructure(structureName);
|
|
1159
|
+
}
|
|
1160
|
+
}
|
|
1161
|
+
}
|
|
936
1162
|
} catch {}
|
|
937
1163
|
}
|
|
938
1164
|
|
|
939
|
-
delete() {
|
|
940
|
-
this.removeStructure();
|
|
941
|
-
super.delete();
|
|
942
|
-
}
|
|
943
|
-
|
|
944
1165
|
getEntityNames(node: QueryFromExpression | QueryJoinExpression, set = new Set()) {
|
|
945
1166
|
if (node?.entityName)
|
|
946
1167
|
set.add(node.entityName);
|
|
@@ -997,16 +1218,43 @@ export class CallQueryComponent extends LogicItem {
|
|
|
997
1218
|
new CompletionProperty({
|
|
998
1219
|
concept: 'CompletionProperty',
|
|
999
1220
|
name: item.asName,
|
|
1000
|
-
value: item.asName
|
|
1221
|
+
value: `inner.${item.asName}`,
|
|
1001
1222
|
expression: LogicItem.from({
|
|
1002
1223
|
concept: 'Identifier',
|
|
1003
1224
|
name: item.asName,
|
|
1225
|
+
namespace: 'inner',
|
|
1226
|
+
}),
|
|
1227
|
+
}));
|
|
1228
|
+
if (!children || children.length === 0)
|
|
1229
|
+
return;
|
|
1230
|
+
|
|
1231
|
+
children.forEach((item) => {
|
|
1232
|
+
item.icon = 'variable';
|
|
1233
|
+
});
|
|
1234
|
+
return { name: '聚合属性别名', icon: 'category', children, expanded: true };
|
|
1235
|
+
}
|
|
1236
|
+
|
|
1237
|
+
getCompletionPropertyOfGroupByAsNames() {
|
|
1238
|
+
const children = this.groupBy
|
|
1239
|
+
?.filter((item) => item.concept === 'QueryGroupByExpression' && (item.groupElement as QueryFieldExpression)?.asName)
|
|
1240
|
+
.map((item) =>
|
|
1241
|
+
new CompletionProperty({
|
|
1242
|
+
concept: 'CompletionProperty',
|
|
1243
|
+
name: (item.groupElement as QueryFieldExpression).asName,
|
|
1244
|
+
value: `inner.${(item.groupElement as QueryFieldExpression).asName}`,
|
|
1245
|
+
expression: LogicItem.from({
|
|
1246
|
+
concept: 'Identifier',
|
|
1247
|
+
name: (item.groupElement as QueryFieldExpression).asName,
|
|
1248
|
+
namespace: 'inner',
|
|
1004
1249
|
}),
|
|
1005
1250
|
}));
|
|
1006
1251
|
if (!children || children.length === 0)
|
|
1007
1252
|
return;
|
|
1008
1253
|
|
|
1009
|
-
|
|
1254
|
+
children.forEach((item) => {
|
|
1255
|
+
item.icon = 'variable';
|
|
1256
|
+
});
|
|
1257
|
+
return { name: '分组属性别名', icon: 'category', children, expanded: true };
|
|
1010
1258
|
}
|
|
1011
1259
|
|
|
1012
1260
|
//================================================================================
|
|
@@ -67,7 +67,7 @@ export class Comment extends LogicItem {
|
|
|
67
67
|
//================================================================================
|
|
68
68
|
|
|
69
69
|
toJS(state?: TranslatorState): string {
|
|
70
|
-
return
|
|
70
|
+
return `/* ${this.value} */`;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
public static getDefaultOptions() {
|
|
@@ -79,7 +79,11 @@ export class Comment extends LogicItem {
|
|
|
79
79
|
@withSourceMap()
|
|
80
80
|
toEmbeddedTS(state?: TranslatorState): string {
|
|
81
81
|
let code = '';
|
|
82
|
-
code += `\n${indent(state.tabSize)}
|
|
82
|
+
code += `\n${indent(state.tabSize)}
|
|
83
|
+
/**
|
|
84
|
+
* 注释不用翻译
|
|
85
|
+
*/
|
|
86
|
+
\n`;
|
|
83
87
|
return code;
|
|
84
88
|
}
|
|
85
89
|
//================================================================================
|
|
@@ -224,7 +224,7 @@ export class CompletionProperty extends BaseNode {
|
|
|
224
224
|
* 子集
|
|
225
225
|
*/
|
|
226
226
|
@property()
|
|
227
|
-
children: Array<
|
|
227
|
+
children: Array<CompletionProperty> = undefined;
|
|
228
228
|
|
|
229
229
|
/**
|
|
230
230
|
* 表达式
|
|
@@ -236,6 +236,10 @@ export class CompletionProperty extends BaseNode {
|
|
|
236
236
|
* 用于展示图标
|
|
237
237
|
*/
|
|
238
238
|
icon: string = undefined;
|
|
239
|
+
|
|
240
|
+
isProcess: boolean = false;
|
|
241
|
+
|
|
242
|
+
noFurther: boolean = false;
|
|
239
243
|
//================================================================================
|
|
240
244
|
// 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
|
|
241
245
|
// ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
|
|
@@ -84,7 +84,7 @@ export class ConfigGroup extends BaseNode {
|
|
|
84
84
|
return (this.properties || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
|
|
85
85
|
}
|
|
86
86
|
getConfigPropertyUniqueName(name = 'configProperty1') {
|
|
87
|
-
return utils.unique(name, this.getConfigPropertyExistingNames());
|
|
87
|
+
return utils.unique(name, this.getConfigPropertyExistingNames(), undefined, false);
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
/**
|
|
@@ -123,7 +123,7 @@ export class ConfigGroup extends BaseNode {
|
|
|
123
123
|
name: options,
|
|
124
124
|
}, this, 'properties');
|
|
125
125
|
} else if (options instanceof ConfigProperty) {
|
|
126
|
-
options.
|
|
126
|
+
options.ensureDelete(); // 同一实例不支持多处存在
|
|
127
127
|
configProperty = options;
|
|
128
128
|
Object.assign(configProperty, relationOptions);
|
|
129
129
|
} else {
|
|
@@ -211,7 +211,7 @@ export class ConfigGroup extends BaseNode {
|
|
|
211
211
|
|
|
212
212
|
addConfigProperty(options?: string | Partial<ConfigProperty> | ConfigProperty) {
|
|
213
213
|
const node = this._addConfigProperty(options as any);
|
|
214
|
-
const index = this.properties.
|
|
214
|
+
const index = this.properties.indexOf(node);
|
|
215
215
|
node.create({
|
|
216
216
|
index,
|
|
217
217
|
parentNode: this,
|
|
@@ -90,7 +90,7 @@ export class ConfigProperty extends BaseNode {
|
|
|
90
90
|
return (this.values || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
|
|
91
91
|
}
|
|
92
92
|
getConfigPropertyValueUniqueName(name = 'configPropertyValue1') {
|
|
93
|
-
return utils.unique(name, this.getConfigPropertyValueExistingNames());
|
|
93
|
+
return utils.unique(name, this.getConfigPropertyValueExistingNames(), undefined, false);
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
/**
|
|
@@ -129,7 +129,7 @@ export class ConfigProperty extends BaseNode {
|
|
|
129
129
|
name: options,
|
|
130
130
|
}, this, 'values');
|
|
131
131
|
} else if (options instanceof ConfigPropertyValue) {
|
|
132
|
-
options.
|
|
132
|
+
options.ensureDelete(); // 同一实例不支持多处存在
|
|
133
133
|
configPropertyValue = options;
|
|
134
134
|
Object.assign(configPropertyValue, relationOptions);
|
|
135
135
|
} else {
|
|
@@ -217,7 +217,7 @@ export class ConfigProperty extends BaseNode {
|
|
|
217
217
|
|
|
218
218
|
addConfigPropertyValue(options?: string | Partial<ConfigPropertyValue> | ConfigPropertyValue) {
|
|
219
219
|
const node = this._addConfigPropertyValue(options as any);
|
|
220
|
-
const index = this.values.
|
|
220
|
+
const index = this.values.indexOf(node);
|
|
221
221
|
node.create({
|
|
222
222
|
index,
|
|
223
223
|
parentNode: this,
|
|
@@ -68,7 +68,7 @@ export class Configuration extends BaseNode {
|
|
|
68
68
|
return (this.groups || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
|
|
69
69
|
}
|
|
70
70
|
getConfigGroupUniqueName(name = 'configGroup1') {
|
|
71
|
-
return utils.unique(name, this.getConfigGroupExistingNames());
|
|
71
|
+
return utils.unique(name, this.getConfigGroupExistingNames(), undefined, false);
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
/**
|
|
@@ -107,7 +107,7 @@ export class Configuration extends BaseNode {
|
|
|
107
107
|
name: options,
|
|
108
108
|
}, this, 'groups');
|
|
109
109
|
} else if (options instanceof ConfigGroup) {
|
|
110
|
-
options.
|
|
110
|
+
options.ensureDelete(); // 同一实例不支持多处存在
|
|
111
111
|
configGroup = options;
|
|
112
112
|
Object.assign(configGroup, relationOptions);
|
|
113
113
|
} else {
|
|
@@ -195,7 +195,7 @@ export class Configuration extends BaseNode {
|
|
|
195
195
|
|
|
196
196
|
addConfigGroup(options?: string | Partial<ConfigGroup> | ConfigGroup) {
|
|
197
197
|
const node = this._addConfigGroup(options as any);
|
|
198
|
-
const index = this.groups.
|
|
198
|
+
const index = this.groups.indexOf(node);
|
|
199
199
|
node.create({
|
|
200
200
|
index,
|
|
201
201
|
parentNode: this,
|
|
@@ -230,9 +230,21 @@ export class Constant extends BaseNode {
|
|
|
230
230
|
code += ': ';
|
|
231
231
|
code += this.typeAnnotation.toEmbeddedTS(shiftState(state, code));
|
|
232
232
|
}
|
|
233
|
-
if (this.defaultValue) {
|
|
234
|
-
|
|
233
|
+
// if (this.defaultValue) {
|
|
234
|
+
// code += ` = ${this.defaultValue}`;
|
|
235
|
+
// }
|
|
236
|
+
return code;
|
|
237
|
+
}
|
|
238
|
+
@withSourceMap()
|
|
239
|
+
toEmbeddedTSInProcess(state?: TranslatorState): string {
|
|
240
|
+
let code = this.name;
|
|
241
|
+
if (this.typeAnnotation) {
|
|
242
|
+
code += ': undefined as ';
|
|
243
|
+
code += this.typeAnnotation.toEmbeddedTS(shiftState(state, code));
|
|
235
244
|
}
|
|
245
|
+
// if (this.defaultValue) {
|
|
246
|
+
// code += ` : ${this.defaultValue}`;
|
|
247
|
+
// }
|
|
236
248
|
return code;
|
|
237
249
|
}
|
|
238
250
|
//================================================================================
|