@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
|
@@ -55,13 +55,13 @@ function genFilterTemplate(entity: Entity, nameGroup: NameGroup, selectNameGroup
|
|
|
55
55
|
} else if (propertyTypeName === 'Boolean') {
|
|
56
56
|
formItem += `
|
|
57
57
|
<u-select clearable v-model="${vModel}" placeholder="请输入${label}">
|
|
58
|
-
<u-select-item :value="true">是</u-select-item>
|
|
59
|
-
<u-select-item :value="false">否</u-select-item>
|
|
58
|
+
<u-select-item :value="true" text="是">是</u-select-item>
|
|
59
|
+
<u-select-item :value="false" text="否">否</u-select-item>
|
|
60
60
|
</u-select>
|
|
61
61
|
`;
|
|
62
62
|
} else if (propertyTypeName === 'Integer' || propertyTypeName === 'Long') {
|
|
63
63
|
formItem += `<u-number-input v-model="${vModel}" placeholder="请输入${label}"></u-number-input>`;
|
|
64
|
-
} else if (propertyTypeName === '
|
|
64
|
+
} else if (propertyTypeName === 'Double') {
|
|
65
65
|
formItem += `<u-number-input v-model="${vModel}" :precision="0" :step="0" placeholder="请输入${label}"></u-number-input>`;
|
|
66
66
|
} else if (propertyTypeName === 'Text') {
|
|
67
67
|
formItem += `<u-textarea v-model="${vModel}" placeholder="请输入${label}"></u-textarea>`;
|
|
@@ -91,7 +91,7 @@ function genFilterTemplate(entity: Entity, nameGroup: NameGroup, selectNameGroup
|
|
|
91
91
|
</u-form-item>
|
|
92
92
|
</u-form>
|
|
93
93
|
|
|
94
|
-
<u-button color="primary" @click="${nameGroup.viewLogicCreate}
|
|
94
|
+
<u-button color="primary" @click="${nameGroup.viewLogicCreate}">创建</u-button>
|
|
95
95
|
</u-linear-layout>
|
|
96
96
|
`;
|
|
97
97
|
}
|
|
@@ -154,12 +154,12 @@ function genSaveModalTemplate(entity: Entity, nameGroup: NameGroup, selectNameGr
|
|
|
154
154
|
} else if (propertyTypeName === 'Boolean') {
|
|
155
155
|
formItem += `
|
|
156
156
|
<u-select clearable v-model="${vModel}" placeholder="请输入${label}" ${property.primaryKey ? `:disabled="${nameGroup.viewVariableIsUpdate}"` : ''}>
|
|
157
|
-
<u-select-item :value="true">是</u-select-item>
|
|
158
|
-
<u-select-item :value="false">否</u-select-item>
|
|
157
|
+
<u-select-item :value="true" text="是">是</u-select-item>
|
|
158
|
+
<u-select-item :value="false" text="否">否</u-select-item>
|
|
159
159
|
</u-select>`;
|
|
160
160
|
} else if (propertyTypeName === 'Integer' || propertyTypeName === 'Long') {
|
|
161
161
|
formItem += `<u-number-input v-model="${vModel}" placeholder="请输入${label}" ${property.primaryKey ? `:disabled="${nameGroup.viewVariableIsUpdate}"` : ''}></u-number-input>`;
|
|
162
|
-
} else if (propertyTypeName === '
|
|
162
|
+
} else if (propertyTypeName === 'Double') {
|
|
163
163
|
formItem += `<u-number-input v-model="${vModel}" :precision="0" :step="0" placeholder="请输入${label}" ${
|
|
164
164
|
property.primaryKey ? `:disabled="${nameGroup.viewVariableIsUpdate}"` : ''
|
|
165
165
|
}></u-number-input>`;
|
|
@@ -459,7 +459,7 @@ export function genCurdMultipleKeyBlock(entity: Entity, view: View) {
|
|
|
459
459
|
return `<template>
|
|
460
460
|
<u-linear-layout direction="vertical">
|
|
461
461
|
${genFilterTemplate(entity, nameGroup, selectNameGroupMap)}
|
|
462
|
-
${genTableTemplate(entity, nameGroup)}
|
|
462
|
+
${genTableTemplate(entity, nameGroup, true)}
|
|
463
463
|
${genSaveModalTemplate(entity, nameGroup, selectNameGroupMap)}
|
|
464
464
|
</u-linear-layout>
|
|
465
465
|
</template>
|
|
@@ -511,7 +511,7 @@ export function genCurdMultipleKeyBlock(entity: Entity, view: View) {
|
|
|
511
511
|
"concept": "BindEvent",
|
|
512
512
|
"arguments": [],
|
|
513
513
|
"name": "created",
|
|
514
|
-
"calleeNamespace": "
|
|
514
|
+
"calleeNamespace": "",
|
|
515
515
|
"calleeName": "${nameGroup.viewLogicInit}"
|
|
516
516
|
}
|
|
517
517
|
],
|
|
@@ -581,7 +581,7 @@ export function genGridViewMultipleKeyBlock(entity: Entity, view: View) {
|
|
|
581
581
|
return `<template>
|
|
582
582
|
<u-linear-layout direction="vertical">
|
|
583
583
|
${genFilterTemplate(entity, nameGroup, selectNameGroupMap)}
|
|
584
|
-
${genGridViewTemplate(entity, nameGroup)}
|
|
584
|
+
${genGridViewTemplate(entity, nameGroup, true)}
|
|
585
585
|
${genSaveModalTemplate(entity, nameGroup, selectNameGroupMap)}
|
|
586
586
|
</u-linear-layout>
|
|
587
587
|
</template>
|
|
@@ -633,7 +633,7 @@ export function genGridViewMultipleKeyBlock(entity: Entity, view: View) {
|
|
|
633
633
|
"concept": "BindEvent",
|
|
634
634
|
"arguments": [],
|
|
635
635
|
"name": "created",
|
|
636
|
-
"calleeNamespace": "
|
|
636
|
+
"calleeNamespace": "",
|
|
637
637
|
"calleeName": "${nameGroup.viewLogicInit}"
|
|
638
638
|
}
|
|
639
639
|
],
|
|
@@ -65,12 +65,12 @@ export function genEditTableColumnTemplate(entity: Entity, property: EntityPrope
|
|
|
65
65
|
} else if (propertyTypeName === 'Boolean') {
|
|
66
66
|
formItem += `<u-select clearable :value.sync="${valueExpression}" placeholder="请输入${label}"
|
|
67
67
|
:autofocus="true" :opened="true" append-to="body" @blur="${nameGroup.viewLogicBlurUpdate}" @select="${nameGroup.viewLogicBlurUpdate}">
|
|
68
|
-
<u-select-item :value="true">是</u-select-item>
|
|
69
|
-
<u-select-item :value="false">否</u-select-item>
|
|
68
|
+
<u-select-item :value="true" text="是">是</u-select-item>
|
|
69
|
+
<u-select-item :value="false" text="否">否</u-select-item>
|
|
70
70
|
</u-select>`;
|
|
71
71
|
} else if (propertyTypeName === 'Integer' || propertyTypeName === 'Long') {
|
|
72
72
|
formItem = `<u-number-input :value.sync="${valueExpression}" placeholder="请输入${label}" :autofocus="true" @blur="${nameGroup.viewLogicBlurUpdate}"></u-number-input>`;
|
|
73
|
-
} else if (propertyTypeName === '
|
|
73
|
+
} else if (propertyTypeName === 'Double') {
|
|
74
74
|
formItem = `<u-number-input :value.sync="${valueExpression}" :precision="0" :step="0" placeholder="请输入${label}" :autofocus="true" @blur="${nameGroup.viewLogicBlurUpdate}"></u-number-input>`;
|
|
75
75
|
} else if (propertyTypeName === 'Text') {
|
|
76
76
|
formItem = `<u-validator placement="bottom" display="appear" @blur-valid="${nameGroup.viewLogicBlurUpdate}" style="width:100%">
|
|
@@ -122,7 +122,7 @@ export function genEditTableTemplate(entity: Entity, nameGroup: NameGroup, selec
|
|
|
122
122
|
<u-table-view-column title="操作">
|
|
123
123
|
<template #cell="scope">
|
|
124
124
|
<u-linear-layout gap="small">
|
|
125
|
-
<u-link @click="${nameGroup.viewLogicRemove}
|
|
125
|
+
<u-link @click="${nameGroup.viewLogicRemove}">删除</u-link>
|
|
126
126
|
</u-linear-layout>
|
|
127
127
|
</template>
|
|
128
128
|
</u-table-view-column>
|
|
@@ -228,7 +228,7 @@ export function genEditTableRemoveLogic(entity: Entity, nameGroup: NameGroup) {
|
|
|
228
228
|
if (!paramFromLogic) {
|
|
229
229
|
paramFromLogic = getParamFromLogic(deleteLogic, 'id');
|
|
230
230
|
}
|
|
231
|
-
return genLogicParam(paramFromLogic.name, `scope.item.${lowerEntityName}.
|
|
231
|
+
return genLogicParam(paramFromLogic.name, `scope.item.${lowerEntityName}.${paramFromLogic.name}`);
|
|
232
232
|
}),
|
|
233
233
|
}),
|
|
234
234
|
genCallComponentLogic(nameGroup.viewElementMainView, 'reload'),
|
|
@@ -11,10 +11,10 @@ import { Enum } from '../concepts';
|
|
|
11
11
|
export function genEnumSelectBlock(enumeration: Enum, vModel?: string, size?: string, placeholder?: string, hiddenAll?: boolean) {
|
|
12
12
|
if (config.scope === 'h5')
|
|
13
13
|
return `<van-cascader ${vModel ? ` v-model="${vModel}"` : ''}${placeholder ? ` title="${placeholder}" placeholder="${placeholder}"` : ''}
|
|
14
|
-
:data-source="$utils.EnumList('${enumeration.name}')" labelField="${!hiddenAll ? (placeholder || '') : ''}" :notitleblock="${hiddenAll}"></van-cascader>`;
|
|
14
|
+
:data-source="$utils.EnumList('${enumeration.name}', '${enumeration.getNamespace()}')" labelField="${!hiddenAll ? (placeholder || '') : ''}" :notitleblock="${hiddenAll}"></van-cascader>`;
|
|
15
15
|
|
|
16
16
|
return `<u-select clearable${vModel ? ` v-model="${vModel}"` : ''}${size ? ` size="${size}"` : ''}${placeholder ? ` placeholder="${placeholder}"` : ''}
|
|
17
|
-
:data-source="$utils.EnumList('${enumeration.name}')">
|
|
17
|
+
:data-source="$utils.EnumList('${enumeration.name}', '${enumeration.getNamespace()}')">
|
|
18
18
|
${hiddenAll ? '' : '<u-select-item text="全部"></u-select-item>'}
|
|
19
19
|
</u-select>`;
|
|
20
20
|
}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import { config } from '../config';
|
|
2
2
|
import * as utils from '../utils';
|
|
3
3
|
import { Entity, Logic, View } from '../concepts';
|
|
4
|
-
import {
|
|
5
|
-
NaslCoreTypeAnnotation, NaslTypeAnnotation, NaslLogicItem,
|
|
6
|
-
NaslNode,
|
|
7
|
-
} from './utils';
|
|
4
|
+
import { NaslCoreTypeAnnotation, NaslTypeAnnotation, NaslLogicItem, NaslNode } from './utils';
|
|
8
5
|
import { NameGroup, filterProperty, getExpression, genLogicParam } from '.';
|
|
9
6
|
|
|
10
7
|
export function genGetTemplate(entity: Entity, nameGroup: NameGroup) {
|
|
@@ -58,11 +55,12 @@ export function genH5GetTemplate(entity: Entity, nameGroup: NameGroup) {
|
|
|
58
55
|
return `<van-cell-group>
|
|
59
56
|
${properties
|
|
60
57
|
.map((property) => {
|
|
61
|
-
|
|
58
|
+
const temptitle = property.label || property.name;
|
|
59
|
+
let formItem = ` <van-cell isLink`;
|
|
62
60
|
|
|
63
61
|
formItem += ' :value="' + getExpression(property, `${nameGroup.viewVariableEntity}.${property.name}`) + '">';
|
|
64
|
-
|
|
65
|
-
formItem += ` </van-cell>\n`;
|
|
62
|
+
formItem += `<template #title>${temptitle}</template>`;
|
|
63
|
+
formItem += `<template>{{ ${getExpression(property, `${nameGroup.viewVariableEntity}.${property.name}`)} }}</template> </van-cell>\n`;
|
|
66
64
|
return formItem;
|
|
67
65
|
})
|
|
68
66
|
.join('')}
|
|
@@ -109,7 +107,7 @@ export function genGetBlock(entity: Entity, view: View) {
|
|
|
109
107
|
"concept": "BindEvent",
|
|
110
108
|
"arguments": [],
|
|
111
109
|
"name": "created",
|
|
112
|
-
"calleeNamespace": "
|
|
110
|
+
"calleeNamespace": "",
|
|
113
111
|
"calleeName": "${nameGroup.viewLogicLoad}"
|
|
114
112
|
}
|
|
115
113
|
]
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { config } from '../config';
|
|
1
2
|
import * as utils from '../utils';
|
|
2
3
|
import { App, Namespace, Entity, EntityProperty, View } from '../concepts';
|
|
3
4
|
import {
|
|
@@ -12,10 +13,7 @@ import {
|
|
|
12
13
|
genQueryLogic,
|
|
13
14
|
genQueryStructure,
|
|
14
15
|
} from '.';
|
|
15
|
-
import {
|
|
16
|
-
NaslCoreTypeAnnotation, NaslUITypeAnnotation, NaslCollectionTypeAnnotation,
|
|
17
|
-
NaslTypeAnnotation, NaslLogicItem, NaslNode,
|
|
18
|
-
} from './utils';
|
|
16
|
+
import { NaslCoreTypeAnnotation, NaslUITypeAnnotation, NaslCollectionTypeAnnotation, NaslTypeAnnotation, NaslLogicItem, NaslNode } from './utils';
|
|
19
17
|
|
|
20
18
|
/**
|
|
21
19
|
* 根据实体属性生成表格列模板
|
|
@@ -60,12 +58,48 @@ export function genGridViewCardTemplate(property: EntityProperty) {
|
|
|
60
58
|
</u-linear-layout>`;
|
|
61
59
|
}
|
|
62
60
|
|
|
61
|
+
export function genH5GridViewCardTemplate(property: EntityProperty) {
|
|
62
|
+
const entity = property.entity;
|
|
63
|
+
const parentNode = entity.parentNode as App | Namespace;
|
|
64
|
+
const lowerEntityName = utils.firstLowerCase(entity.name);
|
|
65
|
+
let expression = `scope.item.${lowerEntityName}.${property.name}`;
|
|
66
|
+
const title = property.label || property.name;
|
|
67
|
+
|
|
68
|
+
if (property.relationEntity) {
|
|
69
|
+
// 有外键关联
|
|
70
|
+
const relationEntity = parentNode?.findEntityByName(property.relationEntity);
|
|
71
|
+
if (relationEntity) {
|
|
72
|
+
const displayedProperty = getFirstDisplayedProperty(relationEntity);
|
|
73
|
+
if (displayedProperty) {
|
|
74
|
+
const relationLowerEntityName = utils.firstLowerCase(relationEntity.name);
|
|
75
|
+
expression = getExpression(property, `scope.item.${relationLowerEntityName}.${displayedProperty.name}`);
|
|
76
|
+
} else
|
|
77
|
+
return '';
|
|
78
|
+
} else
|
|
79
|
+
return '';
|
|
80
|
+
} else
|
|
81
|
+
expression = getExpression(property, `scope.item.${lowerEntityName}.${property.name}`);
|
|
82
|
+
|
|
83
|
+
const getText = (property: EntityProperty) => {
|
|
84
|
+
const propertyTypeName = property.typeAnnotation.typeName;
|
|
85
|
+
if (propertyTypeName === 'Boolean') {
|
|
86
|
+
return `
|
|
87
|
+
<van-text v-if="${expression}" text="是" display="block"></van-text>
|
|
88
|
+
<van-text v-if="!${expression}" text="否" display="block"></van-text>
|
|
89
|
+
`;
|
|
90
|
+
} else {
|
|
91
|
+
return `<van-text :text="${expression}" display="block"></van-text>`;
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
return `${getText(property)}`;
|
|
95
|
+
}
|
|
96
|
+
|
|
63
97
|
/**
|
|
64
98
|
* 生成表格模板
|
|
65
99
|
* @param entity 实体
|
|
66
100
|
* @param nameGroup 命名组
|
|
67
101
|
*/
|
|
68
|
-
export function genGridViewTemplate(entity: Entity, nameGroup: NameGroup) {
|
|
102
|
+
export function genGridViewTemplate(entity: Entity, nameGroup: NameGroup, modifyable?: boolean) {
|
|
69
103
|
const properties = entity.properties.filter(filterProperty('inTable'));
|
|
70
104
|
|
|
71
105
|
return `<u-grid-view ref="${nameGroup.viewElementMainView}" :data-source="${nameGroup.viewLogicLoad}" data-schema="${nameGroup.structure}"
|
|
@@ -84,8 +118,8 @@ export function genGridViewTemplate(entity: Entity, nameGroup: NameGroup) {
|
|
|
84
118
|
<u-linear-layout direction="vertical" gap="small">
|
|
85
119
|
${properties.map((property) => genGridViewCardTemplate(property) + '\n').join('')}
|
|
86
120
|
<u-linear-layout gap="small">
|
|
87
|
-
<u-link
|
|
88
|
-
<u-link @click="${nameGroup.viewLogicRemove}
|
|
121
|
+
<u-link ${modifyable ? `@click="${nameGroup.viewLogicModify || 'modify'}"` : ''}>修改</u-link>
|
|
122
|
+
<u-link @click="${nameGroup.viewLogicRemove}">删除</u-link>
|
|
89
123
|
</u-linear-layout>
|
|
90
124
|
</u-linear-layout>
|
|
91
125
|
</u-card>
|
|
@@ -94,6 +128,22 @@ export function genGridViewTemplate(entity: Entity, nameGroup: NameGroup) {
|
|
|
94
128
|
`;
|
|
95
129
|
}
|
|
96
130
|
|
|
131
|
+
export function genH5GridViewTemplate(entity: Entity, nameGroup: NameGroup) {
|
|
132
|
+
const properties = entity.properties.filter(filterProperty('inTable'));
|
|
133
|
+
return `<van-grid-view ref="gridView" :data-source="${nameGroup.viewLogicLoad}" data-schema="${nameGroup.structure}"
|
|
134
|
+
pageable="auto-more"
|
|
135
|
+
:remote-paging="true"
|
|
136
|
+
:col="2"
|
|
137
|
+
:iffall="false">
|
|
138
|
+
<template #item="scope">
|
|
139
|
+
<van-cardu no-title>
|
|
140
|
+
${properties.map((property) => genH5GridViewCardTemplate(property) + '\n').join('')}
|
|
141
|
+
</van-cardu>
|
|
142
|
+
</template>
|
|
143
|
+
</van-grid-view>
|
|
144
|
+
`;
|
|
145
|
+
}
|
|
146
|
+
|
|
97
147
|
/**
|
|
98
148
|
* 生成表格 load 逻辑
|
|
99
149
|
* @param entity 实体
|
|
@@ -190,7 +240,7 @@ export function genGridViewRemoveLogic(entity: Entity, nameGroup: NameGroup) {
|
|
|
190
240
|
if (!paramFromLogic) {
|
|
191
241
|
paramFromLogic = getParamFromLogic(deleteLogic, 'id');
|
|
192
242
|
}
|
|
193
|
-
return genLogicParam(paramFromLogic.name, `scope.item.${lowerEntityName}.
|
|
243
|
+
return genLogicParam(paramFromLogic.name, `scope.item.${lowerEntityName}.${paramFromLogic.name}`);
|
|
194
244
|
}),
|
|
195
245
|
}),
|
|
196
246
|
genCallComponentLogic(nameGroup.viewElementMainView, 'reload'),
|
|
@@ -240,7 +290,7 @@ export function genGridViewBlock(entity: Entity, view: View) {
|
|
|
240
290
|
|
|
241
291
|
return `
|
|
242
292
|
<template>
|
|
243
|
-
${genGridViewTemplate(entity, nameGroup)}
|
|
293
|
+
${config.scope === 'h5' ? genH5GridViewTemplate(entity, nameGroup) : genGridViewTemplate(entity, nameGroup)}
|
|
244
294
|
</template>
|
|
245
295
|
<definition>
|
|
246
296
|
{
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
import * as utils from '../utils';
|
|
2
2
|
import { App, Namespace, Entity, Structure, QueryJoinExpression, CallQueryComponent, StructureProperty } from '../concepts';
|
|
3
|
-
import {
|
|
4
|
-
NameGroup, NaslCoreTypeAnnotation, NaslCollectionTypeAnnotation,
|
|
5
|
-
NaslTypeAnnotation, NaslQueryExpression, NaslLogicItem, NaslNode,
|
|
6
|
-
} from './utils';
|
|
3
|
+
import { NameGroup, NaslCoreTypeAnnotation, NaslCollectionTypeAnnotation, NaslTypeAnnotation, NaslQueryExpression, NaslLogicItem, NaslNode } from './utils';
|
|
7
4
|
|
|
8
5
|
export function genQueryStructure(allEntities: Array<Entity>, nameGroup: NameGroup) {
|
|
9
6
|
allEntities = Array.from(new Set(allEntities));
|
|
10
7
|
return NaslNode.Structure({
|
|
11
8
|
name: nameGroup.structure,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
9
|
+
origin: 'CallQueryComponent',
|
|
10
|
+
properties: allEntities.map((entity) =>
|
|
11
|
+
NaslNode.StructureProperty({
|
|
12
|
+
name: utils.firstLowerCase(entity.name),
|
|
13
|
+
typeAnnotation: NaslTypeAnnotation.Reference({
|
|
14
|
+
typeNamespace: entity.getNamespace(),
|
|
15
|
+
typeName: entity.name,
|
|
16
|
+
}),
|
|
17
|
+
})),
|
|
19
18
|
});
|
|
20
19
|
}
|
|
21
20
|
|
|
@@ -78,7 +77,7 @@ export function genQueryAssignment(allEntities: Array<Entity>, nameGroup: NameGr
|
|
|
78
77
|
return NaslQueryExpression.QueryJoinExpression({
|
|
79
78
|
entityNamespace: relationEntity.getNamespace(),
|
|
80
79
|
entityName: relationEntity.name,
|
|
81
|
-
joinType: '
|
|
80
|
+
joinType: 'LEFT',
|
|
82
81
|
onExpressions: [
|
|
83
82
|
NaslLogicItem.BinaryExpression({
|
|
84
83
|
operator: '==',
|
|
@@ -100,7 +99,7 @@ export function genQueryAssignment(allEntities: Array<Entity>, nameGroup: NameGr
|
|
|
100
99
|
});
|
|
101
100
|
}),
|
|
102
101
|
});
|
|
103
|
-
const where: any = supportFilter
|
|
102
|
+
const where: any = supportFilter ? genWhereExpression(entity) : undefined;
|
|
104
103
|
return NaslLogicItem.Assignment({
|
|
105
104
|
left: NaslLogicItem.Identifier({
|
|
106
105
|
name: 'result',
|
|
@@ -120,7 +119,7 @@ export function genQueryAssignment(allEntities: Array<Entity>, nameGroup: NameGr
|
|
|
120
119
|
from,
|
|
121
120
|
where,
|
|
122
121
|
groupBy: [],
|
|
123
|
-
having:
|
|
122
|
+
having: null,
|
|
124
123
|
orderBy: supportSort ? [
|
|
125
124
|
NaslQueryExpression.QueryOrderByExpression({
|
|
126
125
|
label: '查询组件OrderBy元素',
|
|
@@ -174,11 +173,7 @@ export function genQueryLogic(allEntities: Array<Entity>, nameGroup: NameGroup,
|
|
|
174
173
|
}),
|
|
175
174
|
],
|
|
176
175
|
variables: [] as Array<any>,
|
|
177
|
-
body: [
|
|
178
|
-
NaslLogicItem.Start,
|
|
179
|
-
genQueryAssignment(allEntities, nameGroup, supportFilter, supportSort),
|
|
180
|
-
NaslLogicItem.End,
|
|
181
|
-
],
|
|
176
|
+
body: [NaslLogicItem.Start, genQueryAssignment(allEntities, nameGroup, supportFilter, supportSort), NaslLogicItem.End],
|
|
182
177
|
playground: [] as Array<any>,
|
|
183
178
|
});
|
|
184
179
|
if (supportSort) {
|
|
@@ -214,7 +209,7 @@ export async function joinEntity(callQueryComponent: CallQueryComponent, entity:
|
|
|
214
209
|
// 一般左联是自动有的了
|
|
215
210
|
const rightProperty = entity.properties.find((property) => property.relationEntity === lastEntity.name);
|
|
216
211
|
if (rightProperty) {
|
|
217
|
-
const leftProperty = lastEntity.properties.find((property) => property.name === rightProperty.
|
|
212
|
+
const leftProperty = lastEntity.properties.find((property) => property.name === rightProperty.relationProperty);
|
|
218
213
|
joinInfo = {
|
|
219
214
|
leftProperty,
|
|
220
215
|
rightProperty,
|
|
@@ -222,7 +217,7 @@ export async function joinEntity(callQueryComponent: CallQueryComponent, entity:
|
|
|
222
217
|
} else {
|
|
223
218
|
const leftProperty = lastEntity.properties.find((property) => property.relationEntity === entity.name);
|
|
224
219
|
if (leftProperty) {
|
|
225
|
-
const rightProperty = entity.properties.find((property) => property.name === leftProperty.
|
|
220
|
+
const rightProperty = entity.properties.find((property) => property.name === leftProperty.relationProperty);
|
|
226
221
|
joinInfo = {
|
|
227
222
|
leftProperty,
|
|
228
223
|
rightProperty,
|
|
@@ -260,22 +255,38 @@ export async function joinEntity(callQueryComponent: CallQueryComponent, entity:
|
|
|
260
255
|
}),
|
|
261
256
|
}), recordStructure, 'properties');
|
|
262
257
|
recordStructure.addProperty(structureProperty);
|
|
258
|
+
} else {
|
|
259
|
+
queryJoinExpression.onExpressions.push(NaslLogicItem.BinaryExpression({
|
|
260
|
+
operator: '==',
|
|
261
|
+
left: NaslQueryExpression.QueryFieldExpression({
|
|
262
|
+
label: '查询组件实体属性',
|
|
263
|
+
isDotStar: false,
|
|
264
|
+
entityAsName: lastEntity.name,
|
|
265
|
+
}),
|
|
266
|
+
right: NaslQueryExpression.QueryFieldExpression({
|
|
267
|
+
label: '查询组件实体属性',
|
|
268
|
+
isDotStar: false,
|
|
269
|
+
entityAsName: entity.name,
|
|
270
|
+
}),
|
|
271
|
+
}));
|
|
263
272
|
}
|
|
264
273
|
const newJoinPartLogicItem = QueryJoinExpression.from(queryJoinExpression, callQueryComponent, 'joinParts');
|
|
265
274
|
from.addJoinPart(newJoinPartLogicItem);
|
|
275
|
+
callQueryComponent.saveStructure();
|
|
266
276
|
}
|
|
267
277
|
|
|
268
278
|
export default genQueryAssignment;
|
|
269
279
|
|
|
270
280
|
export function genEditQueryStructure(allEntities: Array<Entity>, nameGroup: NameGroup) {
|
|
271
281
|
allEntities = Array.from(new Set(allEntities));
|
|
272
|
-
const properties = allEntities.map((entity) =>
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
282
|
+
const properties = allEntities.map((entity) =>
|
|
283
|
+
NaslNode.StructureProperty({
|
|
284
|
+
name: utils.firstLowerCase(entity.name),
|
|
285
|
+
typeAnnotation: NaslTypeAnnotation.Reference({
|
|
286
|
+
typeNamespace: entity.getNamespace(),
|
|
287
|
+
typeName: entity.name,
|
|
288
|
+
}),
|
|
289
|
+
}));
|
|
279
290
|
properties.push(NaslNode.StructureProperty({
|
|
280
291
|
name: 'editing',
|
|
281
292
|
typeAnnotation: NaslCoreTypeAnnotation.String,
|
|
@@ -12,10 +12,7 @@ import {
|
|
|
12
12
|
genQueryStructure,
|
|
13
13
|
genLogicParam,
|
|
14
14
|
} from '.';
|
|
15
|
-
import {
|
|
16
|
-
NaslCoreTypeAnnotation, NaslCollectionTypeAnnotation, NaslUITypeAnnotation,
|
|
17
|
-
NaslTypeAnnotation, NaslLogicItem, NaslNode,
|
|
18
|
-
} from './utils';
|
|
15
|
+
import { NaslCoreTypeAnnotation, NaslCollectionTypeAnnotation, NaslUITypeAnnotation, NaslTypeAnnotation, NaslLogicItem, NaslNode } from './utils';
|
|
19
16
|
|
|
20
17
|
/**
|
|
21
18
|
* 根据实体属性生成表格列模板
|
|
@@ -59,7 +56,7 @@ export function genTableColumnTemplate(property: EntityProperty) {
|
|
|
59
56
|
* @param entity 实体
|
|
60
57
|
* @param nameGroup 命名组
|
|
61
58
|
*/
|
|
62
|
-
export function genTableTemplate(entity: Entity, nameGroup: NameGroup) {
|
|
59
|
+
export function genTableTemplate(entity: Entity, nameGroup: NameGroup, modifyable?: boolean) {
|
|
63
60
|
const properties = entity.properties.filter(filterProperty('inTable'));
|
|
64
61
|
|
|
65
62
|
return `<u-table-view ref="${nameGroup.viewElementMainView}" :data-source="${nameGroup.viewLogicLoad}" data-schema="${nameGroup.structure}"
|
|
@@ -72,8 +69,8 @@ export function genTableTemplate(entity: Entity, nameGroup: NameGroup) {
|
|
|
72
69
|
<u-table-view-column title="操作">
|
|
73
70
|
<template #cell="scope">
|
|
74
71
|
<u-linear-layout gap="small">
|
|
75
|
-
<u-link
|
|
76
|
-
<u-link @click="${nameGroup.viewLogicRemove}
|
|
72
|
+
<u-link ${modifyable ? `@click="${nameGroup.viewLogicModify || 'modify'}"` : ''}>修改</u-link>
|
|
73
|
+
<u-link @click="${nameGroup.viewLogicRemove}">删除</u-link>
|
|
77
74
|
</u-linear-layout>
|
|
78
75
|
</template>
|
|
79
76
|
</u-table-view-column>
|
|
@@ -144,7 +141,6 @@ export function genTableRemoveLogic(entity: Entity, nameGroup: NameGroup) {
|
|
|
144
141
|
const parentNode = entity.parentNode as App | Namespace;
|
|
145
142
|
const parentNamespace = parentNode?.getNamespace();
|
|
146
143
|
const ns = entity.ns;
|
|
147
|
-
console.log(ns)
|
|
148
144
|
const deleteLogic = ns?.logics?.find((logic) => logic.name === 'delete');
|
|
149
145
|
const idPropertys = entity.properties.filter((property) => property.primaryKey);
|
|
150
146
|
return NaslNode.Logic({
|
|
@@ -177,7 +173,7 @@ export function genTableRemoveLogic(entity: Entity, nameGroup: NameGroup) {
|
|
|
177
173
|
if (!paramFromLogic) {
|
|
178
174
|
paramFromLogic = getParamFromLogic(deleteLogic, 'id');
|
|
179
175
|
}
|
|
180
|
-
return genLogicParam(paramFromLogic.name, `scope.item.${lowerEntityName}.
|
|
176
|
+
return genLogicParam(paramFromLogic.name, `scope.item.${lowerEntityName}.${paramFromLogic.name}`);
|
|
181
177
|
}),
|
|
182
178
|
}),
|
|
183
179
|
genCallComponentLogic(nameGroup.viewElementMainView, 'reload'),
|
|
@@ -59,7 +59,7 @@ export function genUpdateFormTemplate(entity: Entity, nameGroup: NameGroup, sele
|
|
|
59
59
|
formItem += `<u-checkbox v-model="${vModel}"></u-checkbox>`;
|
|
60
60
|
} else if (propertyTypeName === 'Integer' || propertyTypeName === 'Long') {
|
|
61
61
|
formItem += `<u-number-input v-model="${vModel}" placeholder="请输入${label}"></u-number-input>`;
|
|
62
|
-
} else if (propertyTypeName === '
|
|
62
|
+
} else if (propertyTypeName === 'Double') {
|
|
63
63
|
formItem += `<u-number-input v-model="${vModel}" :precision="0" :step="0" placeholder="请输入${label}"></u-number-input>`;
|
|
64
64
|
} else if (propertyTypeName === 'Text') {
|
|
65
65
|
formItem += `<u-textarea v-model="${vModel}" placeholder="请输入${label}"></u-textarea>`;
|
|
@@ -124,6 +124,7 @@ export function genH5UpdateFormTemplate(entity: Entity, nameGroup: NameGroup, se
|
|
|
124
124
|
<template #input><van-cascader title="请选择${label}" placeholder="请选择${label}"
|
|
125
125
|
v-model="${vModel}" :data-source="${selectNameGroup.viewLogicLoad}"
|
|
126
126
|
text-field="${lowerEntityName}.${displayedProperty.name}" value-field="${lowerEntityName}.${relationProperty.name}"
|
|
127
|
+
:notitleblock="true"
|
|
127
128
|
:pageable="true" :remote-paging="true"></van-cascader></template>
|
|
128
129
|
`;
|
|
129
130
|
} else
|
|
@@ -134,15 +135,13 @@ export function genH5UpdateFormTemplate(entity: Entity, nameGroup: NameGroup, se
|
|
|
134
135
|
formItem += `<template #input><van-switch v-model="${vModel}"></van-switch></template>`;
|
|
135
136
|
} else if (propertyTypeName === 'Integer' || propertyTypeName === 'Long') {
|
|
136
137
|
formItem += `<template #input><van-stepper v-model="${vModel}" placeholder="请输入${label}"></van-stepper></template>`;
|
|
137
|
-
} else if (propertyTypeName === '
|
|
138
|
+
} else if (propertyTypeName === 'Double') {
|
|
138
139
|
formItem += `<template #input><van-stepper v-model="${vModel}" placeholder="请输入${label}"></van-stepper></template>`;
|
|
139
140
|
} else if (propertyTypeName === 'Text') {
|
|
140
|
-
formItem =
|
|
141
|
-
formItem += `<van-input v-model="${vModel}" placeholder="请输入${label}"></van-input>`;
|
|
142
|
-
|
|
141
|
+
formItem += `<template #input><van-fieldtextarea v-model="${vModel}" placeholder="请输入${label}"></van-fieldtextarea></template>`;
|
|
143
142
|
// @TODO
|
|
144
143
|
} else if (propertyTypeName === 'Date') {
|
|
145
|
-
formItem += `<template #input><van-calendar clearable :date.sync="${vModel}" placeholder="请输入${label}"></van-calendar></template>`;
|
|
144
|
+
formItem += `<template #input><van-calendar clearable :default-date.sync="${vModel}" placeholder="请输入${label}"></van-calendar></template>`;
|
|
146
145
|
} else if (propertyTypeName === 'Time') {
|
|
147
146
|
formItem += `<template #input><van-datetime-picker type="time" v-model="${vModel}" title="请选择${label}" label-field=""></van-datetime-picker></template>`;
|
|
148
147
|
} else if (propertyTypeName === 'DateTime') {
|
|
@@ -151,10 +150,9 @@ export function genH5UpdateFormTemplate(entity: Entity, nameGroup: NameGroup, se
|
|
|
151
150
|
const namespaceArr = propertyTypeNamespace.split('.');
|
|
152
151
|
const type = namespaceArr.pop();
|
|
153
152
|
if (type === 'enums') {
|
|
154
|
-
formItem += genEnumSelectBlock(parentNode.findEnumByName(propertyTypeName) as Enum, `${vModel}`, '', `请选择${label}`, true);
|
|
153
|
+
formItem += '<template #input>' + genEnumSelectBlock(parentNode.findEnumByName(propertyTypeName) as Enum, `${vModel}`, '', `请选择${label}`, true) + '</template>';
|
|
155
154
|
} else {
|
|
156
|
-
formItem =
|
|
157
|
-
formItem += `<van-input v-model="${vModel}" placeholder="请输入${label}"></van-input>`;
|
|
155
|
+
formItem += `<template #input><van-fieldinput v-model="${vModel}" placeholder="请输入${label}"></van-fieldinput></template>`;
|
|
158
156
|
}
|
|
159
157
|
}
|
|
160
158
|
|
|
@@ -259,7 +257,7 @@ export function genUpdateBlock(entity: Entity, view: View) {
|
|
|
259
257
|
const updateLogic = ns?.logics?.find((logic) => logic.name === `update`);
|
|
260
258
|
|
|
261
259
|
const nameGroup: NameGroup = {};
|
|
262
|
-
nameGroup.viewElementMainView = view.
|
|
260
|
+
nameGroup.viewElementMainView = view.getViewElementUniqueName('form1');
|
|
263
261
|
nameGroup.viewVariableEntity = view.getVariableUniqueName(utils.firstLowerCase(entity.name));
|
|
264
262
|
nameGroup.viewParamId = view.getParamUniqueName('id');
|
|
265
263
|
nameGroup.viewLogicLoad = view.getLogicUniqueName('load');
|
|
@@ -324,7 +322,7 @@ export function genUpdateBlock(entity: Entity, view: View) {
|
|
|
324
322
|
"concept": "BindEvent",
|
|
325
323
|
"arguments": [],
|
|
326
324
|
"name": "created",
|
|
327
|
-
"calleeNamespace": "
|
|
325
|
+
"calleeNamespace": "",
|
|
328
326
|
"calleeName": "${nameGroup.viewLogicLoad}"
|
|
329
327
|
}
|
|
330
328
|
],
|
package/src/templator/utils.ts
CHANGED
|
@@ -2,10 +2,11 @@ import { utils } from '..';
|
|
|
2
2
|
import { App, Namespace, Entity, EntityProperty, Logic, View } from '../concepts';
|
|
3
3
|
|
|
4
4
|
export const filterProperty = (key: 'inTable' | 'inFilter' | 'inForm' | 'inDetail') => (property: EntityProperty) => {
|
|
5
|
-
if (property.display)
|
|
5
|
+
if (property.display) {
|
|
6
6
|
return property.display[key];
|
|
7
|
-
else
|
|
7
|
+
} else {
|
|
8
8
|
return !['id', 'createdTime', 'updatedTime'].includes(property.name);
|
|
9
|
+
}
|
|
9
10
|
};
|
|
10
11
|
|
|
11
12
|
/**
|
|
@@ -17,7 +18,7 @@ export function getExpression(property: EntityProperty, expression: string) {
|
|
|
17
18
|
const { typeAnnotation } = property || {};
|
|
18
19
|
const { typeName: propertyTypeName, typeNamespace: propertyTypeNamespace } = typeAnnotation || {};
|
|
19
20
|
if (propertyTypeName === 'DateTime')
|
|
20
|
-
return `$utils['
|
|
21
|
+
return `$utils['FormatDateTime'](${expression}, 'YYYY-MM-DD HH:mm:ss')`;
|
|
21
22
|
else if (propertyTypeName === 'Date')
|
|
22
23
|
return `$utils['FormatDate'](${expression}, 'YYYY-MM-DD')`;
|
|
23
24
|
else {
|
|
@@ -224,6 +225,7 @@ export const NaslUITypeAnnotation = {
|
|
|
224
225
|
UploadErrorEvent: genNaslUITypeAnnotation('UploadErrorEvent'),
|
|
225
226
|
SortEvent: genNaslUITypeAnnotation('SortEvent'),
|
|
226
227
|
PoiInfo: genNaslUITypeAnnotation('PoiInfo'),
|
|
228
|
+
File: genNaslUITypeAnnotation('File'),
|
|
227
229
|
ScopeOf: genNaslUIGenericTypeAnnotation('ScopeOf'),
|
|
228
230
|
};
|
|
229
231
|
|
|
@@ -361,7 +363,7 @@ export const NaslLogicItem = {
|
|
|
361
363
|
};
|
|
362
364
|
|
|
363
365
|
export const NaslQueryExpression = {
|
|
364
|
-
QueryFieldExpression: ({ label, isDotStar, entityAsName, propertyName }: { label: string; isDotStar: boolean; entityAsName: string; propertyName
|
|
366
|
+
QueryFieldExpression: ({ label, isDotStar, entityAsName, propertyName }: { label: string; isDotStar: boolean; entityAsName: string; propertyName?: string }) => ({
|
|
365
367
|
concept: 'QueryFieldExpression',
|
|
366
368
|
name: '',
|
|
367
369
|
label,
|
|
@@ -446,7 +448,7 @@ export const NaslQueryExpression = {
|
|
|
446
448
|
where: any;
|
|
447
449
|
limit: any;
|
|
448
450
|
groupBy: any[];
|
|
449
|
-
having: any
|
|
451
|
+
having: any;
|
|
450
452
|
orderBy: any[];
|
|
451
453
|
logicName: string;
|
|
452
454
|
structureName: string;
|
|
@@ -495,10 +497,11 @@ export const NaslNode = {
|
|
|
495
497
|
description,
|
|
496
498
|
playground,
|
|
497
499
|
}),
|
|
498
|
-
Structure: ({ name, properties }: { name: string; properties?: any[] }) => ({
|
|
500
|
+
Structure: ({ name, properties, origin }: { name: string; properties?: any[], origin?: 'CallQueryComponent' }) => ({
|
|
499
501
|
concept: 'Structure',
|
|
500
502
|
name,
|
|
501
503
|
properties,
|
|
504
|
+
origin,
|
|
502
505
|
}),
|
|
503
506
|
StructureProperty: ({ name, typeAnnotation }: { name: string; typeAnnotation?: any }) => ({
|
|
504
507
|
concept: 'StructureProperty',
|
package/src/test/fixtures/env.ts
CHANGED
|
@@ -6,7 +6,7 @@ describe('Block', () => {
|
|
|
6
6
|
it('简单标签', () => {
|
|
7
7
|
const source = '<u-input size="normal" :checked="var1" v-model="var2" @change="onChange"></u-input>';
|
|
8
8
|
const element = ViewElement.parse(source);
|
|
9
|
-
const result = element
|
|
9
|
+
const result = element?.toVue();
|
|
10
10
|
console.info(result);
|
|
11
11
|
expect(source).to.equal(result);
|
|
12
12
|
});
|
|
@@ -16,7 +16,7 @@ describe('Block', () => {
|
|
|
16
16
|
<u-input size="normal" :checked="var1" v-model="var2" @change="onChange"></u-input>
|
|
17
17
|
</u-linear-layout>`;
|
|
18
18
|
const element = ViewElement.parse(source);
|
|
19
|
-
const result = element
|
|
19
|
+
const result = element?.toVue();
|
|
20
20
|
console.info(result);
|
|
21
21
|
expect(source).to.equal(result);
|
|
22
22
|
});
|
|
@@ -24,7 +24,7 @@ describe('Block', () => {
|
|
|
24
24
|
it('去除 text 类型', () => {
|
|
25
25
|
const source = `<u-linear-layout direction="vertical">这是一行文本</u-linear-layout>`;
|
|
26
26
|
const element = ViewElement.parse(source);
|
|
27
|
-
const result = element
|
|
27
|
+
const result = element?.toVue();
|
|
28
28
|
console.info(result);
|
|
29
29
|
expect(result).to.equal(`<u-linear-layout direction="vertical">
|
|
30
30
|
<u-text text="这是一行文本"></u-text>
|