@lcap/nasl 1.0.0-alpha.9 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/automate/engine/index.d.ts +3 -0
- package/out/automate/engine/index.js +513 -0
- package/out/automate/engine/index.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 +75 -35
- 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 +54 -9
- package/out/concepts/BindAttribute__.js.map +1 -1
- package/out/concepts/BindDirective__.js +22 -2
- 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 +41 -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 +110 -53
- package/out/concepts/CallLogic__.js.map +1 -1
- package/out/concepts/CallQueryComponent__.d.ts +7 -1
- package/out/concepts/CallQueryComponent__.js +44 -25
- 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 +2 -2
- package/out/concepts/ConfigGroup__.js.map +1 -1
- package/out/concepts/ConfigProperty__.js +2 -2
- package/out/concepts/ConfigProperty__.js.map +1 -1
- package/out/concepts/Configuration__.js +2 -2
- 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 +94 -18
- 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 -1
- package/out/concepts/Entity__.js +37 -15
- 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 +2 -2
- package/out/concepts/Event__.js.map +1 -1
- package/out/concepts/ForEachStatement__.js +9 -13
- package/out/concepts/ForEachStatement__.js.map +1 -1
- package/out/concepts/Function__.js +9 -9
- 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 +131 -15
- 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 +16 -1
- package/out/concepts/Logic__.js +176 -33
- package/out/concepts/Logic__.js.map +1 -1
- package/out/concepts/MemberExpression__.d.ts +2 -0
- package/out/concepts/MemberExpression__.js +49 -12
- package/out/concepts/MemberExpression__.js.map +1 -1
- package/out/concepts/Module__.d.ts +126 -120
- package/out/concepts/Module__.js +28 -18
- package/out/concepts/Module__.js.map +1 -1
- package/out/concepts/Namespace__.d.ts +5 -1
- package/out/concepts/Namespace__.js +36 -25
- 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 +4 -4
- package/out/concepts/ProcessComponent__.js.map +1 -1
- package/out/concepts/ProcessElement__.d.ts +0 -4
- package/out/concepts/ProcessElement__.js +112 -49
- 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 +77 -81
- 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 +4 -4
- package/out/concepts/QueryJoinExpression__.js.map +1 -1
- package/out/concepts/QueryLimitExpression__.js +3 -3
- package/out/concepts/QueryLimitExpression__.js.map +1 -1
- package/out/concepts/QuerySelectExpression__.js +2 -2
- 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 +42 -10
- 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 +10 -10
- package/out/concepts/ViewComponent__.js.map +1 -1
- package/out/concepts/ViewElement__.d.ts +17 -11
- package/out/concepts/ViewElement__.js +299 -201
- package/out/concepts/ViewElement__.js.map +1 -1
- package/out/concepts/View__.d.ts +12 -13
- package/out/concepts/View__.js +106 -103
- 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 +1208 -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 +11 -0
- package/out/server/getScope.js +45 -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 +682 -363
- 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 +200 -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/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 +20 -1
- package/out/utils/index.js.map +1 -1
- package/package.json +2 -1
- package/src/automate/engine/index.js +116 -39
- package/src/automate/engine/utils.js +49 -19
- package/src/common/BaseNode.ts +215 -71
- package/src/concepts/App__.ts +77 -37
- 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 +68 -8
- package/src/concepts/BindDirective__.ts +21 -2
- package/src/concepts/BindEvent__.ts +67 -23
- package/src/concepts/BooleanLiteral__.ts +8 -0
- package/src/concepts/CallFunction__.ts +38 -21
- package/src/concepts/CallInterface__.ts +236 -26
- package/src/concepts/CallLogic__.ts +114 -86
- package/src/concepts/CallQueryComponent__.ts +23 -15
- package/src/concepts/Comment__.ts +6 -2
- package/src/concepts/CompletionProperty__.ts +5 -1
- package/src/concepts/ConfigGroup__.ts +2 -2
- package/src/concepts/ConfigProperty__.ts +2 -2
- package/src/concepts/Configuration__.ts +2 -2
- package/src/concepts/Constant__.ts +12 -0
- package/src/concepts/Destination__.ts +101 -17
- package/src/concepts/End__.ts +8 -1
- package/src/concepts/EntityProperty__.ts +58 -5
- package/src/concepts/Entity__.ts +40 -23
- package/src/concepts/Enum__.ts +16 -11
- package/src/concepts/Event__.ts +2 -2
- package/src/concepts/ForEachStatement__.ts +14 -19
- package/src/concepts/Function__.ts +9 -9
- package/src/concepts/Identifier__.ts +83 -32
- package/src/concepts/IfStatement__.ts +4 -4
- package/src/concepts/InterfaceParam__.ts +52 -16
- package/src/concepts/Interface__.ts +128 -14
- package/src/concepts/JSBlock__.ts +4 -0
- package/src/concepts/LogicItem__.ts +16 -1
- package/src/concepts/Logic__.ts +173 -35
- package/src/concepts/MemberExpression__.ts +58 -14
- package/src/concepts/Module__.ts +27 -16
- package/src/concepts/Namespace__.ts +37 -25
- package/src/concepts/NullLiteral__.ts +8 -1
- package/src/concepts/NumericLiteral__.ts +17 -6
- package/src/concepts/Param__.ts +56 -15
- package/src/concepts/ProcessComponent__.ts +4 -4
- package/src/concepts/ProcessElement__.ts +138 -39
- package/src/concepts/ProcessOutcome__.ts +1 -1
- package/src/concepts/Process__.ts +81 -94
- package/src/concepts/QueryAggregateExpression__.ts +1 -1
- package/src/concepts/QueryFromExpression__.ts +2 -2
- package/src/concepts/QueryJoinExpression__.ts +4 -4
- package/src/concepts/QueryLimitExpression__.ts +3 -12
- package/src/concepts/QuerySelectExpression__.ts +2 -2
- package/src/concepts/Return__.ts +62 -15
- package/src/concepts/Role__.ts +5 -4
- package/src/concepts/SqlQueryComponent__.ts +2 -2
- package/src/concepts/StringLiteral__.ts +20 -31
- package/src/concepts/StructureProperty__.ts +50 -18
- package/src/concepts/Structure__.ts +30 -8
- package/src/concepts/SwitchCase__.ts +4 -4
- package/src/concepts/SwitchStatement__.ts +2 -2
- package/src/concepts/TypeAnnotation__.ts +58 -15
- package/src/concepts/UnaryExpression__.ts +10 -8
- package/src/concepts/Unparsed__.ts +1 -1
- package/src/concepts/ValidationRule__.ts +44 -14
- package/src/concepts/Variable__.ts +63 -14
- package/src/concepts/ViewComponent__.ts +10 -10
- package/src/concepts/ViewElement__.ts +285 -162
- package/src/concepts/View__.ts +116 -70
- 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 -11
- package/src/concepts/index__.ts +1 -0
- package/src/config.ts +1 -2
- package/src/enums/KEYWORDS.ts +1206 -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 +45 -7
- 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 +233 -63
- package/src/server/getProcesses.ts +248 -4
- package/src/server/getScope.ts +50 -0
- package/src/server/index.ts +12 -1
- package/src/server/naslServer.ts +685 -387
- 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 +198 -45
- package/src/service/storage/service.ts +6 -0
- package/src/service/storage/storagePoint.ts +16 -16
- package/src/templator/genCreateBlock.ts +6 -6
- package/src/templator/genCurdEditMultipleKeyBlock.ts +29 -30
- package/src/templator/genCurdMultipleKeyBlock.ts +11 -11
- package/src/templator/genEditTableBlock.ts +5 -5
- package/src/templator/genEnumSelectBlock.ts +2 -2
- package/src/templator/genGetBlock.ts +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 +19 -0
- 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
|
@@ -2,14 +2,13 @@
|
|
|
2
2
|
// BaseNode,
|
|
3
3
|
// Module
|
|
4
4
|
// } from '../../concepts';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
import { BaseNode, uiStructures, collectionStructures } from '../../concepts';
|
|
6
|
+
import { getConceptMeta } from '../../decorators/index';
|
|
8
7
|
/*
|
|
9
8
|
根据 namespace 字符串来获取 node
|
|
10
9
|
link: http://nasl.lcap.group/docs/current/semantics/Basics/Namespaces/
|
|
11
10
|
*/
|
|
12
|
-
|
|
11
|
+
export function getNodeByNodeCallee(AppInstance, namespace, callback) {
|
|
13
12
|
const nodePath = namespace.split('.');
|
|
14
13
|
const kind = nodePath.shift();
|
|
15
14
|
let tempPoint;
|
|
@@ -21,7 +20,7 @@ const getNodeByNodeCallee = (exports.getNodeByNodeCallee = function getNodeByNod
|
|
|
21
20
|
tempPoint = AppInstance.dependencies;
|
|
22
21
|
state = 2;
|
|
23
22
|
}
|
|
24
|
-
if (kind === '
|
|
23
|
+
if (kind === 'apis') {
|
|
25
24
|
tempPoint = AppInstance.interfaceDependencies;
|
|
26
25
|
state = 2;
|
|
27
26
|
}
|
|
@@ -63,9 +62,19 @@ const getNodeByNodeCallee = (exports.getNodeByNodeCallee = function getNodeByNod
|
|
|
63
62
|
}
|
|
64
63
|
}
|
|
65
64
|
return tempPoint;
|
|
66
|
-
}
|
|
65
|
+
}
|
|
67
66
|
|
|
68
|
-
|
|
67
|
+
/**
|
|
68
|
+
* 根据 namespace 字符串来获取 node,主要是nasl的ui 和 collection
|
|
69
|
+
*/
|
|
70
|
+
export function getNaslNodeByNodeCallee(namespace, typeName) {
|
|
71
|
+
if (namespace === 'nasl.ui') {
|
|
72
|
+
return uiStructures.find((item) => item.name === typeName);
|
|
73
|
+
} else if (namespace === 'nasl.collection') {
|
|
74
|
+
return collectionStructures.find((item) => item.name === typeName);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
export const TRACK_TYPE = {
|
|
69
78
|
PLAIN: 'plain',
|
|
70
79
|
PROPERTY: 'property',
|
|
71
80
|
ARRAY: 'array',
|
|
@@ -73,8 +82,11 @@ const TRACK_TYPE = (exports.TRACK_TYPE = {
|
|
|
73
82
|
CALLEE_TEMPLATE: 'callee_template',
|
|
74
83
|
MODULE: 'module',
|
|
75
84
|
ROLE_TEMPLATE: 'role_template',
|
|
85
|
+
PROPERTY_TEMPLATE: 'property_template',
|
|
76
86
|
// INTERNAL: 'internal'
|
|
77
|
-
}
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
const ENTITY_AS_NAME = 'entityAsName';
|
|
78
90
|
|
|
79
91
|
const BACKTACKING_PROPERTY_NS = {
|
|
80
92
|
TYPE_NAMESPACE: 'typeNamespace',
|
|
@@ -113,15 +125,16 @@ function isBACKTRACKING_IGNORE_NAMESPACE(ns) {
|
|
|
113
125
|
return ns.startsWith('nasl') || ns.startsWith('elements');
|
|
114
126
|
}
|
|
115
127
|
|
|
116
|
-
const IGNORE_PROPERTY =
|
|
128
|
+
export const IGNORE_PROPERTY = [
|
|
117
129
|
'uuid', // View 属性
|
|
118
130
|
'origin', // Entity 属性
|
|
119
131
|
'changedTime',
|
|
120
132
|
'branchName',
|
|
121
133
|
'appId',
|
|
122
134
|
'isIndex',
|
|
123
|
-
'tableName',
|
|
124
|
-
|
|
135
|
+
// 'tableName',
|
|
136
|
+
// 'columnName',
|
|
137
|
+
];
|
|
125
138
|
|
|
126
139
|
const ROLE_PROPERTY = 'bindRoles';
|
|
127
140
|
|
|
@@ -136,7 +149,7 @@ const ROLE_PROPERTY = 'bindRoles';
|
|
|
136
149
|
// 'Role',
|
|
137
150
|
// ];
|
|
138
151
|
|
|
139
|
-
|
|
152
|
+
export function tracking(node, startNode, callback) {
|
|
140
153
|
const { propertyMap } = getConceptMeta(node.concept);
|
|
141
154
|
// console.log(propertyMap)
|
|
142
155
|
for (const p of propertyMap) {
|
|
@@ -238,7 +251,7 @@ const tracking = (exports.tracking = function tracking(node, startNode, callback
|
|
|
238
251
|
relatedPropertyName,
|
|
239
252
|
AppPropertyName: 'processes',
|
|
240
253
|
});
|
|
241
|
-
|
|
254
|
+
break;
|
|
242
255
|
}
|
|
243
256
|
|
|
244
257
|
const entity = rootNode.entities.find((e) => e.name === nodeName);
|
|
@@ -252,7 +265,7 @@ const tracking = (exports.tracking = function tracking(node, startNode, callback
|
|
|
252
265
|
relatedPropertyName,
|
|
253
266
|
AppPropertyName: 'entities',
|
|
254
267
|
});
|
|
255
|
-
|
|
268
|
+
break;
|
|
256
269
|
}
|
|
257
270
|
} else {
|
|
258
271
|
const nsPath = `${ns}.${calleeN}`;
|
|
@@ -275,9 +288,26 @@ const tracking = (exports.tracking = function tracking(node, startNode, callback
|
|
|
275
288
|
case BACKTACKING_PROPERTY.ENTITY_NAMESPACE:
|
|
276
289
|
case BACKTACKING_PROPERTY.RELATION_NAMESPACE:
|
|
277
290
|
break;
|
|
291
|
+
case ENTITY_AS_NAME:
|
|
292
|
+
// 现在还不存在 asName 先直接当 Entity 名称来用。
|
|
293
|
+
callback(TRACK_TYPE.PROPERTY_TEMPLATE, propertyName, property, {
|
|
294
|
+
getRelatedVar: () => {
|
|
295
|
+
const queryCom = node.getAncestor('CallQueryComponent');
|
|
296
|
+
if (queryCom) {
|
|
297
|
+
const entities = node.app.entities;
|
|
298
|
+
// entityAsName === entity.name
|
|
299
|
+
return entities.find((e) => e.name === property);
|
|
300
|
+
}
|
|
301
|
+
return null;
|
|
302
|
+
},
|
|
303
|
+
relatedProperty: 'name',
|
|
304
|
+
});
|
|
305
|
+
|
|
306
|
+
break;
|
|
307
|
+
|
|
278
308
|
default:
|
|
279
|
-
if (property !== undefined
|
|
280
|
-
if (objectRef) {
|
|
309
|
+
if (property !== undefined) {
|
|
310
|
+
if (objectRef && property !== null) {
|
|
281
311
|
callback(TRACK_TYPE.PROPERTY, propertyName, property);
|
|
282
312
|
} else {
|
|
283
313
|
callback(TRACK_TYPE.PLAIN, propertyName, property);
|
|
@@ -287,7 +317,7 @@ const tracking = (exports.tracking = function tracking(node, startNode, callback
|
|
|
287
317
|
}
|
|
288
318
|
}
|
|
289
319
|
}
|
|
290
|
-
}
|
|
320
|
+
}
|
|
291
321
|
|
|
292
322
|
function getAppPropertyName(node) {
|
|
293
323
|
const { propertyMap } = getConceptMeta('App');
|
|
@@ -301,7 +331,7 @@ function getAppPropertyName(node) {
|
|
|
301
331
|
return undefined;
|
|
302
332
|
}
|
|
303
333
|
|
|
304
|
-
|
|
334
|
+
export function backtracking({ node, startNode, calleeNode, propertyName, relatedPropertyName }, callback) {
|
|
305
335
|
const m = calleeNode.getAncestor('Module');
|
|
306
336
|
if (m) {
|
|
307
337
|
callback(TRACK_TYPE.PLAIN, propertyName, node[propertyName]);
|
|
@@ -332,4 +362,4 @@ const backtracking = (exports.backtracking = function backtracking({ node, start
|
|
|
332
362
|
relatedPropertyName,
|
|
333
363
|
AppPropertyName,
|
|
334
364
|
});
|
|
335
|
-
}
|
|
365
|
+
}
|
package/src/common/BaseNode.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { v4 as uuidv4 } from 'uuid';
|
|
|
3
3
|
|
|
4
4
|
import { config } from '../config';
|
|
5
5
|
import { SourceMap } from '../translator';
|
|
6
|
-
import
|
|
6
|
+
import storageService from '../service/storage/service';
|
|
7
7
|
import { getSourceFromMap } from '../service/storage/map';
|
|
8
8
|
import { loadThen } from '../service/storage/storagePoint';
|
|
9
9
|
|
|
@@ -12,21 +12,7 @@ import * as utils from '../utils';
|
|
|
12
12
|
import classMap from '../common/classMap';
|
|
13
13
|
import { action, circular, excludedInJSON, property, getConceptConstructor, getConceptPropertyMap } from '../decorators';
|
|
14
14
|
import { Diagnostic } from '../manager/diagnostic';
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* 分割数组
|
|
18
|
-
* @param array 原数组
|
|
19
|
-
* @param subGroupLength 长度
|
|
20
|
-
* @returns
|
|
21
|
-
*/
|
|
22
|
-
function group(array: Array<any>, subGroupLength: number) {
|
|
23
|
-
let index = 0;
|
|
24
|
-
const newArray = [];
|
|
25
|
-
while (index < array.length) {
|
|
26
|
-
newArray.push(array.slice(index, (index += subGroupLength)));
|
|
27
|
-
}
|
|
28
|
-
return newArray;
|
|
29
|
-
}
|
|
15
|
+
import { ViewElement } from '..';
|
|
30
16
|
|
|
31
17
|
/**
|
|
32
18
|
* 顶点类
|
|
@@ -171,51 +157,51 @@ export class BaseNode extends EventEmitter {
|
|
|
171
157
|
const properties = Array.from(new Set([...Object.keys(this), ...Object.keys(source)])).filter((key) => propertyMap.has(key));
|
|
172
158
|
properties.forEach((key) => {
|
|
173
159
|
const property = propertyMap.get(key);
|
|
174
|
-
const sourceItem = (source as any)[key]
|
|
160
|
+
const sourceItem = (source as any)[key] !== undefined ? (source as any)[key] : (this as any)[key];
|
|
175
161
|
const { objectRef: propertyObjectRef } = property;
|
|
176
162
|
let objectRefCtor;
|
|
177
163
|
try {
|
|
178
164
|
if (propertyObjectRef) {
|
|
179
165
|
objectRefCtor = getConceptConstructor(propertyObjectRef);
|
|
180
166
|
if (objectRefCtor && sourceItem instanceof objectRefCtor) {
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
sourceItem.parentKey = key;
|
|
184
|
-
}
|
|
167
|
+
sourceItem.parentNode = this;
|
|
168
|
+
sourceItem.parentKey = key;
|
|
185
169
|
}
|
|
186
170
|
}
|
|
187
|
-
|
|
171
|
+
|
|
172
|
+
(this as any)[key] = objectRefCtor && sourceItem && !(sourceItem instanceof objectRefCtor) ? this.activeInside(sourceItem, objectRefCtor, this, key) : sourceItem;
|
|
188
173
|
} catch (e) {
|
|
189
174
|
// Function has non-object prototype 'undefined' in instanceof check
|
|
190
175
|
if (!e.message.includes('Function has non-object prototype'))
|
|
191
176
|
throw e;
|
|
192
177
|
}
|
|
193
178
|
});
|
|
194
|
-
if (config.storage.protocol === 'http' && loadThen[source.concept as 'App' | 'View']) {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
}
|
|
179
|
+
// if (config.storage.protocol === 'http' && loadThen[source.concept as 'App' | 'View']) {
|
|
180
|
+
// const { childNodes } = loadThen[source.concept as 'App' | 'View'] || {};
|
|
181
|
+
// const queryList = childNodes.map(({ field, concept }) => {
|
|
182
|
+
// const path = [this.nodePath, field].join('.');
|
|
183
|
+
// return {
|
|
184
|
+
// path,
|
|
185
|
+
// excludes: loadThen[concept as 'App' | 'View'].childNodes.map(({ field }) => field),
|
|
186
|
+
// };
|
|
187
|
+
// });
|
|
188
|
+
// storageService
|
|
189
|
+
// .batchQuery({
|
|
190
|
+
// body: queryList,
|
|
191
|
+
// headers: {
|
|
192
|
+
// appId: this.rootNode?.id || this.id,
|
|
193
|
+
// },
|
|
194
|
+
// })
|
|
195
|
+
// .then((data: any) =>
|
|
196
|
+
// data.forEach((sourceItem: any, index: number) => {
|
|
197
|
+
// const { field, concept } = childNodes[index];
|
|
198
|
+
// if (!sourceItem || (Array.isArray((this as any)[field]) && !Array.isArray(sourceItem))) {
|
|
199
|
+
// return;
|
|
200
|
+
// }
|
|
201
|
+
// const objectRefCtor = getConceptConstructor(concept);
|
|
202
|
+
// (this as any)[field] = objectRefCtor ? this.activeInside(sourceItem, objectRefCtor, this, field) : sourceItem;
|
|
203
|
+
// }));
|
|
204
|
+
// }
|
|
219
205
|
}
|
|
220
206
|
|
|
221
207
|
getIndexOfParent() {
|
|
@@ -237,27 +223,28 @@ export class BaseNode extends EventEmitter {
|
|
|
237
223
|
* @returns
|
|
238
224
|
*/
|
|
239
225
|
genActionListener($event: EventPayload) {
|
|
226
|
+
if (!$event.eventList) {
|
|
227
|
+
$event.eventList = [];
|
|
228
|
+
}
|
|
229
|
+
if (!$event.eventStop) {
|
|
230
|
+
$event.eventList.push($event);
|
|
231
|
+
// 页面逻辑需要冒泡到页面
|
|
232
|
+
if (['App', 'Process', 'View', 'Interface', 'Entity', 'Structure', 'Enum', 'ConfigProperty'].includes(this.concept) || (this.concept === 'Logic' && this.parentNode?.concept !== 'View')) {
|
|
233
|
+
$event.eventStop = true;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
$event.originEvent = $event.originEvent || $event;
|
|
240
237
|
this.onChange($event);
|
|
241
238
|
if (this.concept === 'App') {
|
|
242
239
|
this.emit('storage', $event);
|
|
243
240
|
} else {
|
|
244
|
-
if (!$event.eventList) {
|
|
245
|
-
$event.eventList = [];
|
|
246
|
-
}
|
|
247
|
-
if (!$event.eventStop) {
|
|
248
|
-
$event.eventList.push($event);
|
|
249
|
-
// 页面逻辑需要冒泡到页面
|
|
250
|
-
if (['Process', 'View', 'Interface', 'Entity', 'Structure', 'Enum', 'ConfigProperty'].includes(this.concept) || (this.concept === 'Logic' && this.parentNode?.concept !== 'View')) {
|
|
251
|
-
$event.eventStop = true;
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
241
|
const event: EventPayload = {
|
|
255
242
|
action: 'update',
|
|
256
243
|
path: this.parentNode?.getNodePath(false),
|
|
257
244
|
object: {},
|
|
258
245
|
oldObject: {},
|
|
259
|
-
originEvent: $event.originEvent
|
|
260
|
-
eventList: $event.eventList
|
|
246
|
+
originEvent: $event.originEvent,
|
|
247
|
+
eventList: $event.eventList,
|
|
261
248
|
eventStop: $event.eventStop,
|
|
262
249
|
};
|
|
263
250
|
this.parentNode?.emit('update', event);
|
|
@@ -295,12 +282,44 @@ export class BaseNode extends EventEmitter {
|
|
|
295
282
|
this.emit('create', {
|
|
296
283
|
action: 'create',
|
|
297
284
|
path: this.getNodePath(true),
|
|
298
|
-
object: this,
|
|
285
|
+
object: this.toJSON(),
|
|
299
286
|
...parentParams,
|
|
300
287
|
oldObject: null,
|
|
301
288
|
});
|
|
302
289
|
}
|
|
303
290
|
|
|
291
|
+
/**
|
|
292
|
+
* 如果有父节点,则删除节点,在添加时调用
|
|
293
|
+
*/
|
|
294
|
+
ensureDelete() {
|
|
295
|
+
if (this.parentNode && this.parentKey) {
|
|
296
|
+
const path = this.getNodePath(false);
|
|
297
|
+
const parentParams = this._delete();
|
|
298
|
+
if (parentParams && parentParams.index !== -1) {
|
|
299
|
+
if (Array.isArray((this.parentNode as any)[this.parentKey])) {
|
|
300
|
+
this.emit('delete', {
|
|
301
|
+
action: 'delete',
|
|
302
|
+
path,
|
|
303
|
+
object: null,
|
|
304
|
+
...parentParams,
|
|
305
|
+
});
|
|
306
|
+
} else {
|
|
307
|
+
const parentPath = this.parentNode.getNodePath(false);
|
|
308
|
+
this.parentNode.emit('update', {
|
|
309
|
+
action: 'update',
|
|
310
|
+
path: parentPath,
|
|
311
|
+
object: {
|
|
312
|
+
[this.parentKey]: null,
|
|
313
|
+
},
|
|
314
|
+
oldObject: {
|
|
315
|
+
[this.parentKey]: this.toJSON(),
|
|
316
|
+
},
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
|
|
304
323
|
/**
|
|
305
324
|
* 删除节点
|
|
306
325
|
*/
|
|
@@ -308,12 +327,26 @@ export class BaseNode extends EventEmitter {
|
|
|
308
327
|
const path = this.getNodePath(false);
|
|
309
328
|
const parentParams = this._delete();
|
|
310
329
|
if (parentParams && parentParams.index !== -1) {
|
|
311
|
-
this.
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
330
|
+
if (Array.isArray((this.parentNode as any)[this.parentKey])) {
|
|
331
|
+
this.emit('delete', {
|
|
332
|
+
action: 'delete',
|
|
333
|
+
path,
|
|
334
|
+
object: null,
|
|
335
|
+
...parentParams,
|
|
336
|
+
});
|
|
337
|
+
} else {
|
|
338
|
+
const parentPath = this.parentNode.getNodePath(false);
|
|
339
|
+
this.parentNode.emit('update', {
|
|
340
|
+
action: 'update',
|
|
341
|
+
path: parentPath,
|
|
342
|
+
object: {
|
|
343
|
+
[this.parentKey]: null,
|
|
344
|
+
},
|
|
345
|
+
oldObject: {
|
|
346
|
+
[this.parentKey]: this.toJSON(),
|
|
347
|
+
},
|
|
348
|
+
});
|
|
349
|
+
}
|
|
317
350
|
}
|
|
318
351
|
}
|
|
319
352
|
|
|
@@ -325,8 +358,34 @@ export class BaseNode extends EventEmitter {
|
|
|
325
358
|
const oldObject: any = {};
|
|
326
359
|
for (const key in object) {
|
|
327
360
|
if (Object.prototype.hasOwnProperty.call(object, key)) {
|
|
328
|
-
|
|
329
|
-
|
|
361
|
+
const oldProperty = (this as any)[key] ?? null;
|
|
362
|
+
oldObject[key] = oldProperty;
|
|
363
|
+
if (Array.isArray(oldProperty)) {
|
|
364
|
+
oldObject[key] = oldProperty.map((item) => {
|
|
365
|
+
let propertyItem = item ?? null;
|
|
366
|
+
if (item instanceof BaseNode) {
|
|
367
|
+
propertyItem = item.toJSON();
|
|
368
|
+
}
|
|
369
|
+
return propertyItem;
|
|
370
|
+
});
|
|
371
|
+
} else if (oldProperty instanceof BaseNode) {
|
|
372
|
+
oldObject[key] = oldProperty.toJSON();
|
|
373
|
+
}
|
|
374
|
+
const property = object[key] ?? null;
|
|
375
|
+
(this as any)[key] = property;
|
|
376
|
+
const objectRefCtor = getConceptConstructor(property?.concept);
|
|
377
|
+
if (Array.isArray(property)) {
|
|
378
|
+
(this as any)[key] = property.map((item) => {
|
|
379
|
+
let propertyItem = item ?? null;
|
|
380
|
+
const propertyObjectRefCtor = getConceptConstructor(item?.concept);
|
|
381
|
+
if (propertyObjectRefCtor?.from) {
|
|
382
|
+
propertyItem = (propertyObjectRefCtor as any).from(item, this, key);
|
|
383
|
+
}
|
|
384
|
+
return propertyItem;
|
|
385
|
+
});
|
|
386
|
+
} else if (objectRefCtor?.from) {
|
|
387
|
+
(this as any)[key] = (objectRefCtor as any).from(property, this, key);
|
|
388
|
+
}
|
|
330
389
|
}
|
|
331
390
|
}
|
|
332
391
|
this.emit('update', {
|
|
@@ -334,6 +393,7 @@ export class BaseNode extends EventEmitter {
|
|
|
334
393
|
path,
|
|
335
394
|
object,
|
|
336
395
|
oldObject,
|
|
396
|
+
field,
|
|
337
397
|
});
|
|
338
398
|
}
|
|
339
399
|
|
|
@@ -449,11 +509,11 @@ export class BaseNode extends EventEmitter {
|
|
|
449
509
|
get tsName() {
|
|
450
510
|
if (this.name) {
|
|
451
511
|
let tsName = this.name;
|
|
512
|
+
// 匹配所有特殊字符都转为_
|
|
513
|
+
tsName = tsName.replace(/\W/g, '_');
|
|
452
514
|
if (/^\d/.test(tsName)) {
|
|
453
515
|
tsName = '$' + tsName;
|
|
454
516
|
}
|
|
455
|
-
// 匹配所有特殊字符都转为_
|
|
456
|
-
tsName = tsName.replace(/\W/g, '_');
|
|
457
517
|
return tsName;
|
|
458
518
|
}
|
|
459
519
|
return '';
|
|
@@ -492,7 +552,7 @@ export class BaseNode extends EventEmitter {
|
|
|
492
552
|
*/
|
|
493
553
|
genSources(instance: BaseNode, filerFn?: (source: Partial<BaseNode>) => {}) {
|
|
494
554
|
if (!instance) {
|
|
495
|
-
return;
|
|
555
|
+
return instance;
|
|
496
556
|
}
|
|
497
557
|
if (Array.isArray(instance)) {
|
|
498
558
|
return instance.map((item) => (item && item._toJSON ? item._toJSON(filerFn) : item));
|
|
@@ -621,6 +681,10 @@ export class BaseNode extends EventEmitter {
|
|
|
621
681
|
/* override */
|
|
622
682
|
}
|
|
623
683
|
|
|
684
|
+
async findReadOnlyLogicUsage(): Promise<any> {
|
|
685
|
+
/* override */
|
|
686
|
+
}
|
|
687
|
+
|
|
624
688
|
/**
|
|
625
689
|
* 重命名
|
|
626
690
|
*/
|
|
@@ -644,6 +708,7 @@ export class BaseNode extends EventEmitter {
|
|
|
644
708
|
async addParamsPrepare(): Promise<any> {
|
|
645
709
|
/* override */
|
|
646
710
|
}
|
|
711
|
+
|
|
647
712
|
/**
|
|
648
713
|
* 销毁
|
|
649
714
|
* 从 Map 中删除点和子节点
|
|
@@ -665,6 +730,63 @@ export class BaseNode extends EventEmitter {
|
|
|
665
730
|
/* override */
|
|
666
731
|
}
|
|
667
732
|
|
|
733
|
+
/**
|
|
734
|
+
* 移动节点
|
|
735
|
+
* @param sourceNode
|
|
736
|
+
* @param position
|
|
737
|
+
*/
|
|
738
|
+
moveNode(options: {
|
|
739
|
+
sourceNode: BaseNode,
|
|
740
|
+
position: 'append' | 'insertBefore' | 'insertAfter',
|
|
741
|
+
action?: string
|
|
742
|
+
}) {
|
|
743
|
+
const { sourceNode, position } = options;
|
|
744
|
+
if (this.concept === 'App') {
|
|
745
|
+
return;
|
|
746
|
+
}
|
|
747
|
+
let actionMsg = `移动${(this.constructor as any).nodeTitle}`;
|
|
748
|
+
if (this.name) {
|
|
749
|
+
actionMsg += `“${this.name}”`;
|
|
750
|
+
}
|
|
751
|
+
(sourceNode as any).app.emit('collect:start', {
|
|
752
|
+
actionMsg,
|
|
753
|
+
});
|
|
754
|
+
// 如果是兄弟节点之前的移动
|
|
755
|
+
if (position !== 'append' && this.concept !== sourceNode.concept) {
|
|
756
|
+
return;
|
|
757
|
+
}
|
|
758
|
+
// 先删
|
|
759
|
+
this.delete();
|
|
760
|
+
if (position === 'append') {
|
|
761
|
+
let { action } = options;
|
|
762
|
+
if (!action)
|
|
763
|
+
action = `add${this.concept}`;
|
|
764
|
+
const parentNode = sourceNode;
|
|
765
|
+
(parentNode as any)[action](this as any);
|
|
766
|
+
} else {
|
|
767
|
+
const parentNode = sourceNode?.parentNode;
|
|
768
|
+
const parentKey = sourceNode?.parentKey || '';
|
|
769
|
+
const list = (parentNode as any)[parentKey];
|
|
770
|
+
if (Array.isArray(list)) {
|
|
771
|
+
let index = list.indexOf(sourceNode);
|
|
772
|
+
if (position === 'insertAfter') {
|
|
773
|
+
index += 1;
|
|
774
|
+
}
|
|
775
|
+
Object.assign(this, {
|
|
776
|
+
parentNode,
|
|
777
|
+
parentKey,
|
|
778
|
+
});
|
|
779
|
+
list.splice(index, 0, this);
|
|
780
|
+
this.create({
|
|
781
|
+
index,
|
|
782
|
+
parentNode,
|
|
783
|
+
parentKey,
|
|
784
|
+
});
|
|
785
|
+
}
|
|
786
|
+
}
|
|
787
|
+
(sourceNode as any).app.emit('collect:end');
|
|
788
|
+
}
|
|
789
|
+
|
|
668
790
|
/**
|
|
669
791
|
* 获取添加时的默认选项
|
|
670
792
|
* @returns
|
|
@@ -672,6 +794,28 @@ export class BaseNode extends EventEmitter {
|
|
|
672
794
|
public static getDefaultOptions(): any {
|
|
673
795
|
return {};
|
|
674
796
|
}
|
|
797
|
+
|
|
798
|
+
public traverseChildren(cb: (ele: BaseNode) => void): void {
|
|
799
|
+
function traverse(node: BaseNode) {
|
|
800
|
+
cb(node);
|
|
801
|
+
|
|
802
|
+
const propertyMap = getConceptPropertyMap(node.concept);
|
|
803
|
+
if (!propertyMap)
|
|
804
|
+
return;
|
|
805
|
+
|
|
806
|
+
for (const property of propertyMap.keys()) {
|
|
807
|
+
const child = node[property as keyof BaseNode];
|
|
808
|
+
if (!child)
|
|
809
|
+
continue;
|
|
810
|
+
else if (Array.isArray(child))
|
|
811
|
+
child.forEach((node: BaseNode) => traverse(node));
|
|
812
|
+
else
|
|
813
|
+
traverse(child);
|
|
814
|
+
}
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
traverse(this);
|
|
818
|
+
}
|
|
675
819
|
}
|
|
676
820
|
|
|
677
821
|
export default BaseNode;
|