@lcap/nasl 1.0.0-alpha.8 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +363 -0
- package/out/automate/engine/utils.js.map +1 -0
- package/out/common/BaseNode.d.ts +20 -0
- package/out/common/BaseNode.js +219 -81
- package/out/common/BaseNode.js.map +1 -1
- package/out/concepts/App__.d.ts +18 -1
- package/out/concepts/App__.js +84 -44
- 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 +190 -0
- package/out/concepts/Assignee__.js +264 -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 +57 -23
- 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 +7 -1
- package/out/concepts/CallQueryComponent__.js +45 -26
- 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 +14 -0
- package/out/concepts/Constant__.js.map +1 -1
- package/out/concepts/Destination__.d.ts +12 -0
- package/out/concepts/Destination__.js +98 -19
- 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/EntityProperty__.d.ts +11 -0
- package/out/concepts/EntityProperty__.js +73 -5
- package/out/concepts/EntityProperty__.js.map +1 -1
- package/out/concepts/Entity__.d.ts +4 -4
- package/out/concepts/Entity__.js +30 -20
- package/out/concepts/Entity__.js.map +1 -1
- package/out/concepts/Enum__.d.ts +4 -0
- package/out/concepts/Enum__.js +18 -10
- 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 +76 -29
- 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 +52 -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 +57 -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 +117 -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/QueryFromExpression__.js +2 -2
- package/out/concepts/QueryFromExpression__.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 +67 -21
- 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 +21 -31
- 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 +74 -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 +70 -18
- 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 +12 -11
- package/out/concepts/View__.js +109 -98
- 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 copy.d.ts +3 -0
- package/out/concepts/basics/stdlib/nasl.browser copy.js +70 -0
- package/out/concepts/basics/stdlib/nasl.browser copy.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.ui.js +20 -0
- package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.util.js +149 -13
- 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/types/coreTypeList.js +11 -10
- package/out/concepts/basics/types/coreTypeList.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 +1206 -0
- package/out/enums/KEYWORDS.js.map +1 -0
- package/out/enums/LEVEL_NAME_MAP.d.ts +26 -0
- package/out/enums/LEVEL_NAME_MAP.js +30 -0
- package/out/enums/LEVEL_NAME_MAP.js.map +1 -0
- 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 +1 -1
- 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/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 +63 -18
- package/out/server/getLogics.js.map +1 -1
- package/out/server/getMemberIdentifier.d.ts +16 -1
- package/out/server/getMemberIdentifier.js +279 -36
- package/out/server/getMemberIdentifier.js.map +1 -1
- package/out/server/getProcesses.d.ts +6 -1
- package/out/server/getProcesses.js +243 -1
- package/out/server/getProcesses.js.map +1 -1
- package/out/server/getScope.d.ts +12 -0
- package/out/server/getScope.js +57 -0
- package/out/server/getScope.js.map +1 -0
- package/out/server/index.js +4 -0
- package/out/server/index.js.map +1 -1
- package/out/server/naslServer.d.ts +30 -53
- package/out/server/naslServer.js +721 -381
- 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 +367 -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 +213 -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 +5 -3
- 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 +27 -14
- package/out/templator/genQueryComponent.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 +9 -10
- package/out/templator/genUpdateBlock.js.map +1 -1
- package/out/templator/utils.d.ts +13 -4
- package/out/templator/utils.js +8 -4
- 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/integration/connect-file copy.d.ts +1 -0
- package/out/test/integration/connect-file copy.js +50 -0
- package/out/test/integration/connect-file copy.js.map +1 -0
- package/out/test/integration/node-nasl-server.d.ts +1 -0
- package/out/test/integration/node-nasl-server.js +41 -0
- package/out/test/integration/node-nasl-server.js.map +1 -0
- 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 -1
- package/src/automate/engine/index.js +97 -118
- package/src/automate/engine/operators.js +63 -0
- package/src/automate/engine/uniqueName.js +36 -0
- package/src/automate/engine/utils.js +49 -19
- package/src/common/BaseNode.ts +223 -87
- package/src/concepts/App__.ts +86 -46
- package/src/concepts/Argument__.ts +23 -3
- package/src/concepts/Assignee__.ts +437 -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 +58 -25
- package/src/concepts/CallInterface__.ts +236 -26
- package/src/concepts/CallLogic__.ts +111 -52
- package/src/concepts/CallQueryComponent__.ts +36 -21
- 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 +12 -0
- package/src/concepts/Destination__.ts +106 -18
- package/src/concepts/End__.ts +8 -1
- package/src/concepts/EntityProperty__.ts +69 -5
- package/src/concepts/Entity__.ts +33 -28
- package/src/concepts/Enum__.ts +16 -11
- 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 +82 -32
- package/src/concepts/IfStatement__.ts +4 -4
- package/src/concepts/InterfaceParam__.ts +49 -27
- 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 +201 -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 +54 -28
- package/src/concepts/ProcessComponent__.ts +6 -6
- package/src/concepts/ProcessElement__.ts +143 -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/QueryFromExpression__.ts +2 -2
- 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 +60 -29
- package/src/concepts/Role__.ts +11 -4
- package/src/concepts/SqlQueryComponent__.ts +2 -2
- package/src/concepts/StringLiteral__.ts +20 -31
- package/src/concepts/StructureProperty__.ts +50 -33
- 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 +59 -16
- 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 +67 -25
- package/src/concepts/ViewComponent__.ts +15 -15
- package/src/concepts/ViewElement__.ts +380 -264
- package/src/concepts/View__.ts +139 -94
- 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.ui.ts +20 -1
- package/src/concepts/basics/stdlib/nasl.util.ts +151 -13
- package/src/concepts/basics/stdlib/nasl.validation.ts +45 -11
- package/src/concepts/basics/types/coreTypeList.ts +11 -10
- package/src/concepts/index__.ts +1 -0
- package/src/config.ts +1 -2
- package/src/enums/KEYWORDS.ts +1204 -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 +1 -1
- package/src/server/createUiTs.ts +50 -8
- package/src/server/entity2LogicNamespace.ts +41 -25
- package/src/server/getExtensionModules.ts +2 -0
- package/src/server/getFunctions.ts +6 -0
- package/src/server/getLogics.ts +66 -19
- package/src/server/getMemberIdentifier.ts +275 -46
- package/src/server/getProcesses.ts +248 -4
- package/src/server/getScope.ts +62 -0
- package/src/server/index.ts +12 -1
- package/src/server/naslServer.ts +715 -398
- package/src/server/process2LogicNamespace.ts +30 -2
- package/src/server/translator.ts +423 -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 +217 -47
- 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 +6 -8
- package/src/templator/genGridViewBlock.ts +59 -9
- package/src/templator/genQueryComponent.ts +39 -28
- package/src/templator/genTableBlock.ts +5 -9
- package/src/templator/genUpdateBlock.ts +9 -11
- package/src/templator/utils.ts +9 -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
|
@@ -83,6 +83,10 @@ export class JSBlock extends LogicItem {
|
|
|
83
83
|
await jsBlock_number();`;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
+
toEmbeddedTS(state?: TranslatorState): string {
|
|
87
|
+
return '';
|
|
88
|
+
}
|
|
89
|
+
|
|
86
90
|
//================================================================================
|
|
87
91
|
// 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
|
|
88
92
|
// ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { TranslatorState } from '../translator';
|
|
2
2
|
import CallFunction from './CallFunction__';
|
|
3
3
|
import { ElementToVueOptions } from './ViewElement__';
|
|
4
|
+
import CallQueryComponent from './CallQueryComponent__';
|
|
4
5
|
|
|
5
6
|
//================================================================================
|
|
6
7
|
// 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
|
|
@@ -29,7 +30,7 @@ export class LogicItem extends BaseNode {
|
|
|
29
30
|
* 产品概念
|
|
30
31
|
*/
|
|
31
32
|
@property()
|
|
32
|
-
concept: 'LogicItem' | 'Start' | 'End' | 'IfStatement' | 'SwitchStatement' | 'SwitchCase' | 'ForEachStatement' | 'WhileStatement' | 'Assignment' | 'Comment' | 'CallLogic' | 'CallFunction' | 'CallInterface' | 'Destination' | 'ValidationRule' | 'Argument' | 'JSBlock' | 'Identifier' | 'NullLiteral' | 'BooleanLiteral' | 'StringLiteral' | 'NumericLiteral' | 'BinaryExpression' | 'UnaryExpression' | 'MemberExpression' | 'Unparsed' | 'CallQueryComponent' | 'QueryFromExpression' | 'QueryJoinExpression' | 'QueryFieldExpression' | 'QueryAggregateExpression' | 'QueryOrderByExpression' | 'QueryGroupByExpression' | 'QuerySelectExpression' | 'QueryLimitExpression' | 'SqlQueryComponent' | 'ProcessOutcome' = 'LogicItem';
|
|
33
|
+
concept: 'LogicItem' | 'Start' | 'End' | 'IfStatement' | 'SwitchStatement' | 'SwitchCase' | 'ForEachStatement' | 'WhileStatement' | 'Assignment' | 'Comment' | 'CallLogic' | 'CallFunction' | 'CallInterface' | 'Destination' | 'ValidationRule' | 'Argument' | 'JSBlock' | 'Identifier' | 'NullLiteral' | 'BooleanLiteral' | 'StringLiteral' | 'NumericLiteral' | 'BinaryExpression' | 'UnaryExpression' | 'MemberExpression' | 'Unparsed' | 'CallQueryComponent' | 'QueryFromExpression' | 'QueryJoinExpression' | 'QueryFieldExpression' | 'QueryAggregateExpression' | 'QueryOrderByExpression' | 'QueryGroupByExpression' | 'QuerySelectExpression' | 'QueryLimitExpression' | 'SqlQueryComponent' | 'ProcessOutcome' | 'Assignee' = 'LogicItem';
|
|
33
34
|
|
|
34
35
|
/**
|
|
35
36
|
* 逻辑项标题
|
|
@@ -224,6 +225,20 @@ export class LogicItem extends BaseNode {
|
|
|
224
225
|
return this.toJS(state);
|
|
225
226
|
}
|
|
226
227
|
|
|
228
|
+
delete() {
|
|
229
|
+
let actionMsg = '删除逻辑项';
|
|
230
|
+
if(this.name) actionMsg += `“${this.name}”`;
|
|
231
|
+
this.app?.emit('collect:start', {
|
|
232
|
+
actionMsg,
|
|
233
|
+
});
|
|
234
|
+
super.delete();
|
|
235
|
+
this.traverseChildren((el) => {
|
|
236
|
+
if(el?.concept === 'CallQueryComponent')
|
|
237
|
+
(el as CallQueryComponent).removeStructure();
|
|
238
|
+
});
|
|
239
|
+
this.app?.emit('collect:end');
|
|
240
|
+
}
|
|
241
|
+
|
|
227
242
|
//================================================================================
|
|
228
243
|
// 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
|
|
229
244
|
// ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
|
package/src/concepts/Logic__.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { TranslatorState, shiftState, withSourceMap, indent, createCompilerState, embeddedTSEmitter } from '../translator';
|
|
2
2
|
import Namespace from './Namespace__';
|
|
3
3
|
import CallQueryComponent from './CallQueryComponent__';
|
|
4
|
-
import
|
|
5
|
-
import { kebabCase } from 'lodash';
|
|
4
|
+
import ForEachStatement from './ForEachStatement__';
|
|
6
5
|
//================================================================================
|
|
7
6
|
// 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
|
|
8
7
|
// ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
|
|
@@ -233,7 +232,7 @@ export class Logic extends BaseNode {
|
|
|
233
232
|
return (this.typeParams || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
|
|
234
233
|
}
|
|
235
234
|
getTypeParamUniqueName(name = 'typeParam1') {
|
|
236
|
-
return utils.unique(name, this.getTypeParamExistingNames());
|
|
235
|
+
return utils.unique(name, this.getTypeParamExistingNames(), undefined, false);
|
|
237
236
|
}
|
|
238
237
|
|
|
239
238
|
/**
|
|
@@ -272,7 +271,7 @@ export class Logic extends BaseNode {
|
|
|
272
271
|
name: options,
|
|
273
272
|
}, this, 'typeParams');
|
|
274
273
|
} else if (options instanceof TypeParam) {
|
|
275
|
-
options.
|
|
274
|
+
options.ensureDelete(); // 同一实例不支持多处存在
|
|
276
275
|
typeParam = options;
|
|
277
276
|
Object.assign(typeParam, relationOptions);
|
|
278
277
|
} else {
|
|
@@ -360,7 +359,7 @@ export class Logic extends BaseNode {
|
|
|
360
359
|
|
|
361
360
|
addTypeParam(options?: string | Partial<TypeParam> | TypeParam) {
|
|
362
361
|
const node = this._addTypeParam(options as any);
|
|
363
|
-
const index = this.typeParams.
|
|
362
|
+
const index = this.typeParams.indexOf(node);
|
|
364
363
|
node.create({
|
|
365
364
|
index,
|
|
366
365
|
parentNode: this,
|
|
@@ -371,7 +370,7 @@ export class Logic extends BaseNode {
|
|
|
371
370
|
|
|
372
371
|
|
|
373
372
|
getParamUniqueName(name = 'param1') {
|
|
374
|
-
return utils.unique(name, this.getVarExistingNames());
|
|
373
|
+
return utils.unique(name, this.getVarExistingNames(), undefined, false);
|
|
375
374
|
}
|
|
376
375
|
|
|
377
376
|
/**
|
|
@@ -410,7 +409,7 @@ export class Logic extends BaseNode {
|
|
|
410
409
|
name: options,
|
|
411
410
|
}, this, 'params');
|
|
412
411
|
} else if (options instanceof Param) {
|
|
413
|
-
options.
|
|
412
|
+
options.ensureDelete(); // 同一实例不支持多处存在
|
|
414
413
|
param = options;
|
|
415
414
|
Object.assign(param, relationOptions);
|
|
416
415
|
} else {
|
|
@@ -498,7 +497,7 @@ export class Logic extends BaseNode {
|
|
|
498
497
|
|
|
499
498
|
addParam(options?: string | Partial<Param> | Param) {
|
|
500
499
|
const node = this._addParam(options as any);
|
|
501
|
-
const index = this.params.
|
|
500
|
+
const index = this.params.indexOf(node);
|
|
502
501
|
node.create({
|
|
503
502
|
index,
|
|
504
503
|
parentNode: this,
|
|
@@ -508,8 +507,8 @@ export class Logic extends BaseNode {
|
|
|
508
507
|
}
|
|
509
508
|
|
|
510
509
|
|
|
511
|
-
getReturnUniqueName(name = '
|
|
512
|
-
return utils.unique(name, this.getVarExistingNames());
|
|
510
|
+
getReturnUniqueName(name = 'result') {
|
|
511
|
+
return utils.unique(name, this.getVarExistingNames(), undefined, false);
|
|
513
512
|
}
|
|
514
513
|
|
|
515
514
|
/**
|
|
@@ -548,7 +547,7 @@ export class Logic extends BaseNode {
|
|
|
548
547
|
name: options,
|
|
549
548
|
}, this, 'returns');
|
|
550
549
|
} else if (options instanceof Return) {
|
|
551
|
-
options.
|
|
550
|
+
options.ensureDelete(); // 同一实例不支持多处存在
|
|
552
551
|
ret = options;
|
|
553
552
|
Object.assign(ret, relationOptions);
|
|
554
553
|
} else {
|
|
@@ -636,7 +635,7 @@ export class Logic extends BaseNode {
|
|
|
636
635
|
|
|
637
636
|
addReturn(options?: string | Partial<Return> | Return) {
|
|
638
637
|
const node = this._addReturn(options as any);
|
|
639
|
-
const index = this.returns.
|
|
638
|
+
const index = this.returns.indexOf(node);
|
|
640
639
|
node.create({
|
|
641
640
|
index,
|
|
642
641
|
parentNode: this,
|
|
@@ -647,7 +646,7 @@ export class Logic extends BaseNode {
|
|
|
647
646
|
|
|
648
647
|
|
|
649
648
|
getVariableUniqueName(name = 'variable1') {
|
|
650
|
-
return utils.unique(name, this.getVarExistingNames());
|
|
649
|
+
return utils.unique(name, this.getVarExistingNames(), undefined, false);
|
|
651
650
|
}
|
|
652
651
|
|
|
653
652
|
/**
|
|
@@ -686,7 +685,7 @@ export class Logic extends BaseNode {
|
|
|
686
685
|
name: options,
|
|
687
686
|
}, this, 'variables');
|
|
688
687
|
} else if (options instanceof Variable) {
|
|
689
|
-
options.
|
|
688
|
+
options.ensureDelete(); // 同一实例不支持多处存在
|
|
690
689
|
variable = options;
|
|
691
690
|
Object.assign(variable, relationOptions);
|
|
692
691
|
} else {
|
|
@@ -774,7 +773,7 @@ export class Logic extends BaseNode {
|
|
|
774
773
|
|
|
775
774
|
addVariable(options?: string | Partial<Variable> | Variable) {
|
|
776
775
|
const node = this._addVariable(options as any);
|
|
777
|
-
const index = this.variables.
|
|
776
|
+
const index = this.variables.indexOf(node);
|
|
778
777
|
node.create({
|
|
779
778
|
index,
|
|
780
779
|
parentNode: this,
|
|
@@ -807,7 +806,7 @@ export class Logic extends BaseNode {
|
|
|
807
806
|
const relationOptions = { parentNode: this, parentKey: 'body' };
|
|
808
807
|
let logicItem: LogicItem;
|
|
809
808
|
if (options instanceof LogicItem) {
|
|
810
|
-
options.
|
|
809
|
+
options.ensureDelete(); // 同一实例不支持多处存在
|
|
811
810
|
logicItem = options;
|
|
812
811
|
Object.assign(logicItem, relationOptions);
|
|
813
812
|
} else {
|
|
@@ -881,7 +880,7 @@ export class Logic extends BaseNode {
|
|
|
881
880
|
|
|
882
881
|
addItemInBody(options?: Partial<LogicItem> | LogicItem) {
|
|
883
882
|
const node = this._addItemInBody(options as any);
|
|
884
|
-
const index = this.body.
|
|
883
|
+
const index = this.body.indexOf(node);
|
|
885
884
|
node.create({
|
|
886
885
|
index,
|
|
887
886
|
parentNode: this,
|
|
@@ -911,7 +910,7 @@ export class Logic extends BaseNode {
|
|
|
911
910
|
const relationOptions = { parentNode: this, parentKey: 'playground' };
|
|
912
911
|
let logicItem: LogicItem;
|
|
913
912
|
if (options instanceof LogicItem) {
|
|
914
|
-
options.
|
|
913
|
+
options.ensureDelete(); // 同一实例不支持多处存在
|
|
915
914
|
logicItem = options;
|
|
916
915
|
Object.assign(logicItem, relationOptions);
|
|
917
916
|
} else {
|
|
@@ -985,7 +984,7 @@ export class Logic extends BaseNode {
|
|
|
985
984
|
|
|
986
985
|
addItemInPlayground(options?: Partial<LogicItem> | LogicItem) {
|
|
987
986
|
const node = this._addItemInPlayground(options as any);
|
|
988
|
-
const index = this.playground.
|
|
987
|
+
const index = this.playground.indexOf(node);
|
|
989
988
|
node.create({
|
|
990
989
|
index,
|
|
991
990
|
parentNode: this,
|
|
@@ -1298,7 +1297,35 @@ export class Logic extends BaseNode {
|
|
|
1298
1297
|
// ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
|
|
1299
1298
|
// 自动生成的代码已结束。下面可以手动编写。
|
|
1300
1299
|
//================================================================================
|
|
1300
|
+
// 用于calllogic树中定位是那个logic,回显
|
|
1301
|
+
get calleewholeKey() {
|
|
1302
|
+
return this.getNamespace() + '.' + this.name;
|
|
1303
|
+
}
|
|
1304
|
+
// 设置定时任务
|
|
1305
|
+
setCronAndTriggerType(cron: string, triggerType: string) {
|
|
1306
|
+
const object = {
|
|
1307
|
+
cron,
|
|
1308
|
+
triggerType,
|
|
1309
|
+
};
|
|
1310
|
+
this.update({
|
|
1311
|
+
...object,
|
|
1312
|
+
});
|
|
1313
|
+
}
|
|
1301
1314
|
|
|
1315
|
+
/**
|
|
1316
|
+
* 创建的时候 打开事务 通过开关设置数据库事务
|
|
1317
|
+
*/
|
|
1318
|
+
openTransactional(flag: boolean) {
|
|
1319
|
+
if (flag) {
|
|
1320
|
+
const transactional = new Transactional({
|
|
1321
|
+
enabled: flag,
|
|
1322
|
+
});
|
|
1323
|
+
transactional._delete();
|
|
1324
|
+
const relationOptions = { parentNode: this, parentKey: 'transactional' };
|
|
1325
|
+
Object.assign(transactional, relationOptions);
|
|
1326
|
+
this.transactional = transactional;
|
|
1327
|
+
}
|
|
1328
|
+
}
|
|
1302
1329
|
findLogicItemByConcept(concept: string) {
|
|
1303
1330
|
let result: any;
|
|
1304
1331
|
|
|
@@ -1319,7 +1346,36 @@ export class Logic extends BaseNode {
|
|
|
1319
1346
|
|
|
1320
1347
|
getVarExistingNames(excludedList: Array<Param | Return | Variable> = []) {
|
|
1321
1348
|
const excludedSet = new Set(excludedList);
|
|
1322
|
-
|
|
1349
|
+
const varList: any[] = [];
|
|
1350
|
+
if (Array.isArray(this.params)) {
|
|
1351
|
+
varList.push(...this.params);
|
|
1352
|
+
}
|
|
1353
|
+
if (Array.isArray(this.returns)) {
|
|
1354
|
+
varList.push(...this.returns);
|
|
1355
|
+
}
|
|
1356
|
+
if (Array.isArray(this.variables)) {
|
|
1357
|
+
varList.push(...this.variables);
|
|
1358
|
+
}
|
|
1359
|
+
if (this.view) {
|
|
1360
|
+
if (Array.isArray(this.view.params)) {
|
|
1361
|
+
varList.push(...this.view.params);
|
|
1362
|
+
}
|
|
1363
|
+
if (Array.isArray(this.view.variables)) {
|
|
1364
|
+
varList.push(...this.view.variables);
|
|
1365
|
+
}
|
|
1366
|
+
}
|
|
1367
|
+
|
|
1368
|
+
this.traverseChildren((el) => {
|
|
1369
|
+
if (el?.concept === 'ForEachStatement') {
|
|
1370
|
+
if ((el as ForEachStatement)?.item) {
|
|
1371
|
+
varList.push((el as ForEachStatement)?.item);
|
|
1372
|
+
}
|
|
1373
|
+
if ((el as ForEachStatement)?.index) {
|
|
1374
|
+
varList.push((el as ForEachStatement)?.index);
|
|
1375
|
+
}
|
|
1376
|
+
}
|
|
1377
|
+
});
|
|
1378
|
+
return varList.filter((item) => !excludedSet.has(item)).map((item) => item?.name);
|
|
1323
1379
|
}
|
|
1324
1380
|
|
|
1325
1381
|
toJS(state?: TranslatorState): string {
|
|
@@ -1364,15 +1420,23 @@ export class Logic extends BaseNode {
|
|
|
1364
1420
|
});
|
|
1365
1421
|
}
|
|
1366
1422
|
|
|
1367
|
-
if (Array.isArray(this.returns) && this.returns.length) {
|
|
1368
|
-
code += `return ${this.returns[0].name};\n`;
|
|
1369
|
-
}
|
|
1370
|
-
|
|
1371
1423
|
code += indent(state.tabSize) + '}\n';
|
|
1372
1424
|
|
|
1373
1425
|
return code;
|
|
1374
1426
|
}
|
|
1375
1427
|
|
|
1428
|
+
toProcessService() {
|
|
1429
|
+
return {
|
|
1430
|
+
config: {
|
|
1431
|
+
serviceType: 'micro',
|
|
1432
|
+
},
|
|
1433
|
+
url: {
|
|
1434
|
+
method: 'POST',
|
|
1435
|
+
path: this.getPath(),
|
|
1436
|
+
},
|
|
1437
|
+
};
|
|
1438
|
+
}
|
|
1439
|
+
|
|
1376
1440
|
toService() {
|
|
1377
1441
|
const parentNode = this.parentNode;
|
|
1378
1442
|
const { concept, name: entityName } = parentNode || {};
|
|
@@ -1380,14 +1444,19 @@ export class Logic extends BaseNode {
|
|
|
1380
1444
|
let serviceType = 'micro';
|
|
1381
1445
|
let method = 'POST';
|
|
1382
1446
|
let path = `/api/${logicName}`;
|
|
1383
|
-
if (concept === '
|
|
1447
|
+
if (concept === 'Module') {
|
|
1448
|
+
path = `/api/${entityName.replace('-', '_')}/${logicName}`;
|
|
1449
|
+
} else if (concept === 'Namespace') {
|
|
1384
1450
|
serviceType = 'entity';
|
|
1385
|
-
const
|
|
1386
|
-
|
|
1451
|
+
const entityPath = entityName.replace(/[A-Z]/g, (char, index) => {
|
|
1452
|
+
const lowerChar = char.toLowerCase();
|
|
1453
|
+
return index === 0 ? lowerChar : `-${lowerChar}`;
|
|
1454
|
+
});
|
|
1455
|
+
path = `/api/${entityPath}`;
|
|
1387
1456
|
switch (this.name) {
|
|
1388
1457
|
case 'get':
|
|
1389
1458
|
method = 'GET';
|
|
1390
|
-
path = `/api/${
|
|
1459
|
+
path = `/api/${entityPath}`;
|
|
1391
1460
|
break;
|
|
1392
1461
|
case 'create':
|
|
1393
1462
|
method = 'POST';
|
|
@@ -1397,23 +1466,23 @@ export class Logic extends BaseNode {
|
|
|
1397
1466
|
break;
|
|
1398
1467
|
case 'delete':
|
|
1399
1468
|
method = 'DELETE';
|
|
1400
|
-
path = `/api/${
|
|
1469
|
+
path = `/api/${entityPath}`;
|
|
1401
1470
|
break;
|
|
1402
1471
|
case 'batchCreate':
|
|
1403
1472
|
method = 'POST';
|
|
1404
|
-
path = `/api/${
|
|
1473
|
+
path = `/api/${entityPath}/batch`;
|
|
1405
1474
|
break;
|
|
1406
1475
|
case 'batchUpdate':
|
|
1407
1476
|
method = 'PUT';
|
|
1408
|
-
path = `/api/${
|
|
1477
|
+
path = `/api/${entityPath}/batch`;
|
|
1409
1478
|
break;
|
|
1410
1479
|
case 'batchDelete':
|
|
1411
1480
|
method = 'DELETE';
|
|
1412
|
-
path = `/api/${
|
|
1481
|
+
path = `/api/${entityPath}/batch`;
|
|
1413
1482
|
break;
|
|
1414
1483
|
case 'import':
|
|
1415
1484
|
method = 'POST';
|
|
1416
|
-
path = `/api/${
|
|
1485
|
+
path = `/api/${entityPath}/import`;
|
|
1417
1486
|
break;
|
|
1418
1487
|
default:
|
|
1419
1488
|
break;
|
|
@@ -1431,6 +1500,50 @@ export class Logic extends BaseNode {
|
|
|
1431
1500
|
};
|
|
1432
1501
|
}
|
|
1433
1502
|
|
|
1503
|
+
@withSourceMap()
|
|
1504
|
+
toEmbeddedTSInProcess(state?: TranslatorState, prependCode?: string, noName?: boolean): string {
|
|
1505
|
+
let code = '';
|
|
1506
|
+
code += `${noName ? '' : `${this.name}:`} function(`;
|
|
1507
|
+
this.params.forEach((param, index) => {
|
|
1508
|
+
code += param.toEmbeddedTS(shiftState(state, code, { inline: true }));
|
|
1509
|
+
if (index !== this.params.length - 1)
|
|
1510
|
+
code += ', ';
|
|
1511
|
+
});
|
|
1512
|
+
code += `) {\n`;
|
|
1513
|
+
code += prependCode || '';
|
|
1514
|
+
code += '\n';
|
|
1515
|
+
this.variables.forEach((variable) => {
|
|
1516
|
+
code += indent(state.tabSize + 1) + 'let ';
|
|
1517
|
+
code += variable.toEmbeddedTS(shiftState(state, code, { inline: true }));
|
|
1518
|
+
code += ';\n';
|
|
1519
|
+
});
|
|
1520
|
+
|
|
1521
|
+
this.returns.forEach((ret) => {
|
|
1522
|
+
code += indent(state.tabSize + 1) + 'let ';
|
|
1523
|
+
code += ret.toEmbeddedTS(shiftState(state, code, { inline: true }));
|
|
1524
|
+
code += ';\n';
|
|
1525
|
+
});
|
|
1526
|
+
|
|
1527
|
+
if (!this.body.length && this.returns.length) {
|
|
1528
|
+
code += indent(state.tabSize + 1) + `return ${this.returns[0].name};\n`;
|
|
1529
|
+
} else {
|
|
1530
|
+
this.body.forEach((item) => {
|
|
1531
|
+
code += item.toEmbeddedTS && item.toEmbeddedTS(shiftState(state, code, { tabSize: state.tabSize + 1 }));
|
|
1532
|
+
code += '\n';
|
|
1533
|
+
});
|
|
1534
|
+
}
|
|
1535
|
+
|
|
1536
|
+
// 在body渲染完成之后把其余的节点放到下面
|
|
1537
|
+
this.playground.forEach((item) => {
|
|
1538
|
+
code += item.toEmbeddedTS(shiftState(state, code, { tabSize: state.tabSize + 1 }));
|
|
1539
|
+
code += '\n';
|
|
1540
|
+
});
|
|
1541
|
+
|
|
1542
|
+
code += indent(state.tabSize) + '}';
|
|
1543
|
+
code += '\n';
|
|
1544
|
+
return code;
|
|
1545
|
+
}
|
|
1546
|
+
|
|
1434
1547
|
toEmbeddedTSNoExport(state?: TranslatorState): string {
|
|
1435
1548
|
return this.toEmbeddedTS(state, 'noExport');
|
|
1436
1549
|
}
|
|
@@ -1442,16 +1555,21 @@ export class Logic extends BaseNode {
|
|
|
1442
1555
|
if (!prefix) {
|
|
1443
1556
|
code += `export function ${this.name}(`;
|
|
1444
1557
|
} else if (prefix === 'noExport') {
|
|
1445
|
-
code += `
|
|
1558
|
+
code += `function ${this.name}(`;
|
|
1446
1559
|
} else if (prefix === 'inObject') {
|
|
1447
|
-
code +=
|
|
1560
|
+
code += `${this.name}(`;
|
|
1448
1561
|
}
|
|
1449
1562
|
this.params.forEach((param, index) => {
|
|
1450
1563
|
code += param.toEmbeddedTS(shiftState(state, code, { inline: true }));
|
|
1451
1564
|
if (index !== this.params.length - 1)
|
|
1452
1565
|
code += ', ';
|
|
1453
1566
|
});
|
|
1454
|
-
code +=
|
|
1567
|
+
code += ')';
|
|
1568
|
+
if (this.returns.length) {
|
|
1569
|
+
code += ': ';
|
|
1570
|
+
code += this.returns[0].typeAnnotation.toEmbeddedTS(shiftState(state, code, { inline: true }));
|
|
1571
|
+
}
|
|
1572
|
+
code += '{\n';
|
|
1455
1573
|
|
|
1456
1574
|
this.variables.forEach((variable) => {
|
|
1457
1575
|
code += indent(state.tabSize + 1) + 'let ';
|
|
@@ -1494,7 +1612,28 @@ export class Logic extends BaseNode {
|
|
|
1494
1612
|
if (this.parentNode instanceof Namespace || this.parentNode instanceof App || this.parentNode instanceof Module) {
|
|
1495
1613
|
parentNodeNamespace = this.parentNode.getNamespace();
|
|
1496
1614
|
}
|
|
1497
|
-
|
|
1615
|
+
|
|
1616
|
+
parentNodeNamespace
|
|
1617
|
+
= ['nasl.ui', 'nasl.utils', 'nasl.util', 'nasl.browser', 'nasl.auth', 'nasl.configuration'].includes(parentNodeNamespace) || parentNodeNamespace.includes('.logics') ? parentNodeNamespace : `${parentNodeNamespace}.logics`;
|
|
1618
|
+
if (this.parentNode instanceof View) {
|
|
1619
|
+
return (parentNodeNamespace = '');
|
|
1620
|
+
}
|
|
1621
|
+
return parentNodeNamespace;
|
|
1622
|
+
} else
|
|
1623
|
+
throw new Error('无法获取命名空间,请设置 parentNode!');
|
|
1624
|
+
}
|
|
1625
|
+
|
|
1626
|
+
getTsNamespace(): string {
|
|
1627
|
+
if (this.parentNode) {
|
|
1628
|
+
let parentNodeNamespace = '';
|
|
1629
|
+
if (this.parentNode instanceof Namespace || this.parentNode instanceof App) {
|
|
1630
|
+
parentNodeNamespace = this.parentNode.getNamespace();
|
|
1631
|
+
} else if (this.parentNode instanceof Module) {
|
|
1632
|
+
parentNodeNamespace = this.parentNode.getTsNamespace();
|
|
1633
|
+
}
|
|
1634
|
+
|
|
1635
|
+
parentNodeNamespace
|
|
1636
|
+
= ['nasl.ui', 'nasl.utils', 'nasl.util', 'nasl.browser', 'nasl.auth', 'nasl.configuration'].includes(parentNodeNamespace) || parentNodeNamespace.includes('.logics') ? parentNodeNamespace : `${parentNodeNamespace}.logics`;
|
|
1498
1637
|
if (this.parentNode instanceof View) {
|
|
1499
1638
|
return (parentNodeNamespace = '');
|
|
1500
1639
|
}
|
|
@@ -1513,10 +1652,15 @@ export class Logic extends BaseNode {
|
|
|
1513
1652
|
}
|
|
1514
1653
|
|
|
1515
1654
|
toEmbeddedTSFile() {
|
|
1516
|
-
let code = `namespace ${this.
|
|
1655
|
+
let code = `namespace ${this.getTsNamespace()} {\n`;
|
|
1517
1656
|
|
|
1518
1657
|
const state = createCompilerState(code, { tabSize: 1 });
|
|
1519
|
-
|
|
1658
|
+
try {
|
|
1659
|
+
code += this.toEmbeddedTS(state);
|
|
1660
|
+
} catch (err) {
|
|
1661
|
+
console.log(err, '有问题翻译失败');
|
|
1662
|
+
code += '';
|
|
1663
|
+
}
|
|
1520
1664
|
code += '}\n';
|
|
1521
1665
|
return {
|
|
1522
1666
|
code,
|
|
@@ -1568,6 +1712,24 @@ export class Logic extends BaseNode {
|
|
|
1568
1712
|
}));
|
|
1569
1713
|
}
|
|
1570
1714
|
fake: boolean;
|
|
1715
|
+
|
|
1716
|
+
getPath: () => string;
|
|
1717
|
+
|
|
1718
|
+
delete() {
|
|
1719
|
+
let actionMsg = '删除逻辑项';
|
|
1720
|
+
if (this.name)
|
|
1721
|
+
actionMsg += `“${this.name}”`;
|
|
1722
|
+
this.app?.emit('collect:start', {
|
|
1723
|
+
actionMsg,
|
|
1724
|
+
});
|
|
1725
|
+
super.delete();
|
|
1726
|
+
this.traverseChildren((el) => {
|
|
1727
|
+
if (el?.concept === 'CallQueryComponent')
|
|
1728
|
+
(el as CallQueryComponent).removeStructure();
|
|
1729
|
+
});
|
|
1730
|
+
this.app?.emit('collect:end');
|
|
1731
|
+
}
|
|
1732
|
+
|
|
1571
1733
|
//================================================================================
|
|
1572
1734
|
// 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
|
|
1573
1735
|
// ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { TranslatorState, shiftState, withSourceMap, indent } from '../translator';
|
|
2
|
+
import { TypeAnnotation } from '..';
|
|
2
3
|
import { ElementToVueOptions } from './ViewElement__';
|
|
3
|
-
import
|
|
4
|
+
import Identifier from './Identifier__';
|
|
5
|
+
import BindAttribute from './BindAttribute__';
|
|
6
|
+
import Assignment from './Assignment__';
|
|
7
|
+
|
|
8
|
+
const Identifier_RE = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
|
|
4
9
|
|
|
5
10
|
//================================================================================
|
|
6
11
|
// 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
|
|
@@ -139,25 +144,60 @@ export class MemberExpression extends LogicItem {
|
|
|
139
144
|
// ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
|
|
140
145
|
// 自动生成的代码已结束。下面可以手动编写。
|
|
141
146
|
//================================================================================
|
|
142
|
-
|
|
147
|
+
// 选中的数据类型,这个用作暂存
|
|
148
|
+
typeAnnotation: TypeAnnotation = undefined;
|
|
143
149
|
toVue(options?: ElementToVueOptions) {
|
|
144
|
-
|
|
145
|
-
|
|
150
|
+
// 如果是枚举取值
|
|
151
|
+
if (this.object?.concept === 'Identifier' && (this.object as Identifier)?.isEnum() && this.property?.concept === 'Identifier') {
|
|
152
|
+
return `"${this.property?.name}"`;
|
|
153
|
+
}
|
|
154
|
+
const object = String(this.object?.toVue(options)); // undefined 也让正常展示
|
|
155
|
+
const property = String(this.property?.toVue(options));
|
|
156
|
+
|
|
157
|
+
const bindAttr: BindAttribute = this.getAncestor('BindAttribute') as BindAttribute;
|
|
158
|
+
if (bindAttr && (bindAttr.sync || bindAttr.model))
|
|
159
|
+
return Identifier_RE.test(property) ? `${object}.${property}` : `${object}['${property}']`;
|
|
160
|
+
|
|
146
161
|
const lastPart = object.split(' && ').pop();
|
|
147
|
-
|
|
162
|
+
if (Identifier_RE.test(property))
|
|
163
|
+
return options?.finalCode === false ? `${object}.${property}` : `${object} && ${lastPart}.${property}`;
|
|
164
|
+
else
|
|
165
|
+
return options?.finalCode === false ? `${object}['${property}']` : `${object} && ${lastPart}['${property}']`;
|
|
148
166
|
}
|
|
149
167
|
|
|
150
168
|
toUI(): string {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
169
|
+
// 如果是枚举取值
|
|
170
|
+
if (this.object?.concept === 'Identifier' && (this.object as Identifier)?.isEnum() && this.property?.concept === 'Identifier') {
|
|
171
|
+
return `${this.object?.name}.${this.property?.name}`;
|
|
172
|
+
}
|
|
173
|
+
const object: string = this.object?.toUI();
|
|
174
|
+
const property = this.property?.toUI();
|
|
175
|
+
|
|
176
|
+
return Identifier_RE.test(property) ? `${object}.${property}` : `${object}['${property}']`;
|
|
154
177
|
}
|
|
155
178
|
|
|
156
179
|
toJS(): string {
|
|
157
|
-
|
|
158
|
-
|
|
180
|
+
// 如果是枚举取值
|
|
181
|
+
if (this.object?.concept === 'Identifier' && (this.object as Identifier)?.isEnum() && this.property?.concept === 'Identifier') {
|
|
182
|
+
return `"${this.property?.name}"`;
|
|
183
|
+
}
|
|
184
|
+
const object: string = this.object?.toJS();
|
|
185
|
+
const property = this.property?.toJS();
|
|
186
|
+
// 在赋值语句的左侧,不能有 &&
|
|
187
|
+
const assignment: Assignment = this.getAncestor('Assignment') as Assignment;
|
|
188
|
+
if (assignment) {
|
|
189
|
+
const left = assignment.left;
|
|
190
|
+
let node: any = this;
|
|
191
|
+
while (node && node.concept === 'MemberExpression' && left !== node) {
|
|
192
|
+
node = node.parentNode;
|
|
193
|
+
}
|
|
194
|
+
// 在赋值语句的左侧
|
|
195
|
+
if (node) {
|
|
196
|
+
return Identifier_RE.test(property) ? `${object}.${property}` : `${object}['${property}']`;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
159
199
|
const lastPart = object.split(' && ').pop();
|
|
160
|
-
return `${object} && ${lastPart}.${property}`;
|
|
200
|
+
return Identifier_RE.test(property) ? `${object} && ${lastPart}.${property}` : `${object} && ${lastPart}['${property}']`;
|
|
161
201
|
}
|
|
162
202
|
|
|
163
203
|
setValue(newValue: string) {
|
|
@@ -190,7 +230,6 @@ export class MemberExpression extends LogicItem {
|
|
|
190
230
|
};
|
|
191
231
|
this.update({
|
|
192
232
|
...object,
|
|
193
|
-
field: 'name',
|
|
194
233
|
});
|
|
195
234
|
}
|
|
196
235
|
// 方便快速取值,遍历获取value
|
|
@@ -224,9 +263,13 @@ export class MemberExpression extends LogicItem {
|
|
|
224
263
|
|
|
225
264
|
// 就说明这是一个枚举取值操作,直接啊app.enums.color.red 要转成字符串
|
|
226
265
|
code += leftCode + rightCode;
|
|
227
|
-
//
|
|
228
|
-
//
|
|
229
|
-
|
|
266
|
+
// 解决枚举可能全是数字的问题
|
|
267
|
+
// app.enums.color || extensions.tool.enums.color
|
|
268
|
+
if (leftCode.startsWith('app.enums.') || (leftCode.startsWith('extensions') && leftCode.includes('.enums.'))) {
|
|
269
|
+
const lastIndex = leftCode.lastIndexOf('.');
|
|
270
|
+
const newCode = `${code.substring(0, lastIndex)}['${code.substring(lastIndex + 1, code.length)}']`;
|
|
271
|
+
code = newCode;
|
|
272
|
+
}
|
|
230
273
|
return code;
|
|
231
274
|
}
|
|
232
275
|
|