@lcap/nasl 1.0.0-alpha.7 → 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 +118 -38
- package/src/automate/engine/utils.js +49 -19
- package/src/common/BaseNode.ts +229 -81
- 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 -35
- package/src/concepts/BooleanLiteral__.ts +8 -0
- package/src/concepts/CallFunction__.ts +42 -25
- package/src/concepts/CallInterface__.ts +236 -26
- package/src/concepts/CallLogic__.ts +114 -86
- package/src/concepts/CallQueryComponent__.ts +35 -20
- 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 +92 -20
- package/src/concepts/End__.ts +8 -1
- package/src/concepts/EntityProperty__.ts +69 -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 +82 -33
- package/src/concepts/IfStatement__.ts +4 -4
- package/src/concepts/InterfaceParam__.ts +51 -21
- package/src/concepts/Interface__.ts +166 -46
- package/src/concepts/JSBlock__.ts +4 -0
- package/src/concepts/LogicItem__.ts +16 -1
- package/src/concepts/Logic__.ts +183 -36
- package/src/concepts/MemberExpression__.ts +57 -13
- package/src/concepts/Module__.ts +176 -140
- 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 +58 -30
- 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 -23
- 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 -25
- package/src/concepts/Structure__.ts +75 -41
- package/src/concepts/SwitchCase__.ts +4 -4
- package/src/concepts/SwitchStatement__.ts +2 -2
- package/src/concepts/TypeAnnotation__.ts +71 -18
- 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 +69 -19
- package/src/concepts/ViewComponent__.ts +10 -10
- package/src/concepts/ViewElement__.ts +297 -199
- package/src/concepts/View__.ts +114 -107
- 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 +1206 -0
- package/src/{terms → enums}/LEVEL_NAME_MAP.ts +0 -0
- package/src/eventBus.ts +5 -0
- package/src/generator/genBundleFiles.ts +192 -40
- 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 +276 -39
- 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 +689 -389
- 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 +204 -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 +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 @@ exports.getNodeByNodeCallee = function getNodeByNodeCallee(AppInstance, namespac
|
|
|
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 @@ exports.getNodeByNodeCallee = function getNodeByNodeCallee(AppInstance, namespac
|
|
|
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 @@ 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 @@ 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 @@ 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 @@ 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 @@ exports.backtracking = function backtracking({ node, startNode, calleeNode, prop
|
|
|
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
|
* 顶点类
|
|
@@ -168,57 +154,54 @@ export class BaseNode extends EventEmitter {
|
|
|
168
154
|
subConstructor(source?: Partial<BaseNode>) {
|
|
169
155
|
const propertyMap = getConceptPropertyMap(this.constructor.name);
|
|
170
156
|
|
|
171
|
-
const properties = Array.from(new Set([...Object.keys(this), ...Object.keys(source)])).filter((key) =>
|
|
172
|
-
const property = propertyMap.get(key);
|
|
173
|
-
return !!property;
|
|
174
|
-
});
|
|
157
|
+
const properties = Array.from(new Set([...Object.keys(this), ...Object.keys(source)])).filter((key) => propertyMap.has(key));
|
|
175
158
|
properties.forEach((key) => {
|
|
176
159
|
const property = propertyMap.get(key);
|
|
177
|
-
const sourceItem = (source as any)[key]
|
|
160
|
+
const sourceItem = (source as any)[key] !== undefined ? (source as any)[key] : (this as any)[key];
|
|
178
161
|
const { objectRef: propertyObjectRef } = property;
|
|
179
162
|
let objectRefCtor;
|
|
180
163
|
try {
|
|
181
164
|
if (propertyObjectRef) {
|
|
182
165
|
objectRefCtor = getConceptConstructor(propertyObjectRef);
|
|
183
166
|
if (objectRefCtor && sourceItem instanceof objectRefCtor) {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
sourceItem.parentKey = key;
|
|
187
|
-
}
|
|
167
|
+
sourceItem.parentNode = this;
|
|
168
|
+
sourceItem.parentKey = key;
|
|
188
169
|
}
|
|
189
170
|
}
|
|
190
|
-
|
|
171
|
+
|
|
172
|
+
(this as any)[key] = objectRefCtor && sourceItem && !(sourceItem instanceof objectRefCtor) ? this.activeInside(sourceItem, objectRefCtor, this, key) : sourceItem;
|
|
191
173
|
} catch (e) {
|
|
192
174
|
// Function has non-object prototype 'undefined' in instanceof check
|
|
193
175
|
if (!e.message.includes('Function has non-object prototype'))
|
|
194
176
|
throw e;
|
|
195
177
|
}
|
|
196
178
|
});
|
|
197
|
-
if (config.storage.protocol === 'http' && loadThen[source.concept as 'App' | 'View']) {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
}
|
|
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
|
+
// }
|
|
222
205
|
}
|
|
223
206
|
|
|
224
207
|
getIndexOfParent() {
|
|
@@ -240,35 +223,28 @@ export class BaseNode extends EventEmitter {
|
|
|
240
223
|
* @returns
|
|
241
224
|
*/
|
|
242
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;
|
|
243
237
|
this.onChange($event);
|
|
244
238
|
if (this.concept === 'App') {
|
|
245
239
|
this.emit('storage', $event);
|
|
246
240
|
} else {
|
|
247
|
-
if (!$event.eventList) {
|
|
248
|
-
$event.eventList = [];
|
|
249
|
-
}
|
|
250
|
-
if (!$event.eventStop) {
|
|
251
|
-
$event.eventList.push($event);
|
|
252
|
-
// 页面逻辑需要冒泡到页面
|
|
253
|
-
if ([
|
|
254
|
-
'Process',
|
|
255
|
-
'View',
|
|
256
|
-
'Interface',
|
|
257
|
-
'Entity',
|
|
258
|
-
'Structure',
|
|
259
|
-
'Enum',
|
|
260
|
-
'ConfigProperty',
|
|
261
|
-
].includes(this.concept) || this.concept === 'Logic' && this.parentNode?.concept !== 'View') {
|
|
262
|
-
$event.eventStop = true;
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
241
|
const event: EventPayload = {
|
|
266
242
|
action: 'update',
|
|
267
243
|
path: this.parentNode?.getNodePath(false),
|
|
268
244
|
object: {},
|
|
269
245
|
oldObject: {},
|
|
270
|
-
originEvent: $event.originEvent
|
|
271
|
-
eventList: $event.eventList
|
|
246
|
+
originEvent: $event.originEvent,
|
|
247
|
+
eventList: $event.eventList,
|
|
272
248
|
eventStop: $event.eventStop,
|
|
273
249
|
};
|
|
274
250
|
this.parentNode?.emit('update', event);
|
|
@@ -306,12 +282,44 @@ export class BaseNode extends EventEmitter {
|
|
|
306
282
|
this.emit('create', {
|
|
307
283
|
action: 'create',
|
|
308
284
|
path: this.getNodePath(true),
|
|
309
|
-
object: this,
|
|
285
|
+
object: this.toJSON(),
|
|
310
286
|
...parentParams,
|
|
311
287
|
oldObject: null,
|
|
312
288
|
});
|
|
313
289
|
}
|
|
314
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
|
+
|
|
315
323
|
/**
|
|
316
324
|
* 删除节点
|
|
317
325
|
*/
|
|
@@ -319,12 +327,26 @@ export class BaseNode extends EventEmitter {
|
|
|
319
327
|
const path = this.getNodePath(false);
|
|
320
328
|
const parentParams = this._delete();
|
|
321
329
|
if (parentParams && parentParams.index !== -1) {
|
|
322
|
-
this.
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
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
|
+
}
|
|
328
350
|
}
|
|
329
351
|
}
|
|
330
352
|
|
|
@@ -336,8 +358,34 @@ export class BaseNode extends EventEmitter {
|
|
|
336
358
|
const oldObject: any = {};
|
|
337
359
|
for (const key in object) {
|
|
338
360
|
if (Object.prototype.hasOwnProperty.call(object, key)) {
|
|
339
|
-
|
|
340
|
-
|
|
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
|
+
}
|
|
341
389
|
}
|
|
342
390
|
}
|
|
343
391
|
this.emit('update', {
|
|
@@ -345,6 +393,7 @@ export class BaseNode extends EventEmitter {
|
|
|
345
393
|
path,
|
|
346
394
|
object,
|
|
347
395
|
oldObject,
|
|
396
|
+
field,
|
|
348
397
|
});
|
|
349
398
|
}
|
|
350
399
|
|
|
@@ -454,6 +503,21 @@ export class BaseNode extends EventEmitter {
|
|
|
454
503
|
completeList.push(actualSource || source);
|
|
455
504
|
}
|
|
456
505
|
|
|
506
|
+
/**
|
|
507
|
+
* 获取当前的TsName
|
|
508
|
+
*/
|
|
509
|
+
get tsName() {
|
|
510
|
+
if (this.name) {
|
|
511
|
+
let tsName = this.name;
|
|
512
|
+
// 匹配所有特殊字符都转为_
|
|
513
|
+
tsName = tsName.replace(/\W/g, '_');
|
|
514
|
+
if (/^\d/.test(tsName)) {
|
|
515
|
+
tsName = '$' + tsName;
|
|
516
|
+
}
|
|
517
|
+
return tsName;
|
|
518
|
+
}
|
|
519
|
+
return '';
|
|
520
|
+
}
|
|
457
521
|
/**
|
|
458
522
|
* 激活 JSON 内部实例
|
|
459
523
|
* @param source
|
|
@@ -488,7 +552,7 @@ export class BaseNode extends EventEmitter {
|
|
|
488
552
|
*/
|
|
489
553
|
genSources(instance: BaseNode, filerFn?: (source: Partial<BaseNode>) => {}) {
|
|
490
554
|
if (!instance) {
|
|
491
|
-
return;
|
|
555
|
+
return instance;
|
|
492
556
|
}
|
|
493
557
|
if (Array.isArray(instance)) {
|
|
494
558
|
return instance.map((item) => (item && item._toJSON ? item._toJSON(filerFn) : item));
|
|
@@ -617,6 +681,10 @@ export class BaseNode extends EventEmitter {
|
|
|
617
681
|
/* override */
|
|
618
682
|
}
|
|
619
683
|
|
|
684
|
+
async findReadOnlyLogicUsage(): Promise<any> {
|
|
685
|
+
/* override */
|
|
686
|
+
}
|
|
687
|
+
|
|
620
688
|
/**
|
|
621
689
|
* 重命名
|
|
622
690
|
*/
|
|
@@ -640,6 +708,7 @@ export class BaseNode extends EventEmitter {
|
|
|
640
708
|
async addParamsPrepare(): Promise<any> {
|
|
641
709
|
/* override */
|
|
642
710
|
}
|
|
711
|
+
|
|
643
712
|
/**
|
|
644
713
|
* 销毁
|
|
645
714
|
* 从 Map 中删除点和子节点
|
|
@@ -661,6 +730,63 @@ export class BaseNode extends EventEmitter {
|
|
|
661
730
|
/* override */
|
|
662
731
|
}
|
|
663
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
|
+
|
|
664
790
|
/**
|
|
665
791
|
* 获取添加时的默认选项
|
|
666
792
|
* @returns
|
|
@@ -668,6 +794,28 @@ export class BaseNode extends EventEmitter {
|
|
|
668
794
|
public static getDefaultOptions(): any {
|
|
669
795
|
return {};
|
|
670
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
|
+
}
|
|
671
819
|
}
|
|
672
820
|
|
|
673
821
|
export default BaseNode;
|