@lcap/nasl 3.3.0-alpha.2 → 3.3.0-beta.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/upgrader/2.20.js.map +1 -1
- package/out/bak/translator.js +55 -1
- package/out/bak/translator.js.map +1 -1
- package/out/breakpoint/generator/AfterStartNode.js +2 -1
- package/out/breakpoint/generator/AfterStartNode.js.map +1 -1
- package/out/breakpoint/generator/BeforeEndNode.js +2 -1
- package/out/breakpoint/generator/BeforeEndNode.js.map +1 -1
- package/out/breakpoint/generator/BreakpointNode.js +30 -9
- package/out/breakpoint/generator/BreakpointNode.js.map +1 -1
- package/out/breakpoint/shared/constants.d.ts +1 -0
- package/out/breakpoint/shared/constants.js +7 -1
- package/out/breakpoint/shared/constants.js.map +1 -1
- package/out/breakpoint/shared/utils.d.ts +3 -1
- package/out/breakpoint/shared/utils.js +24 -5
- package/out/breakpoint/shared/utils.js.map +1 -1
- package/out/common/BaseNode.d.ts +21 -8
- package/out/common/BaseNode.js +115 -69
- package/out/common/BaseNode.js.map +1 -1
- package/out/common/Command.d.ts +1 -0
- package/out/common/Command.js +15 -2
- package/out/common/Command.js.map +1 -1
- package/out/common/EventEmitter.d.ts +1 -1
- package/out/common/EventEmitter.js +1 -3
- package/out/common/EventEmitter.js.map +1 -1
- package/out/common/index.d.ts +0 -1
- package/out/common/index.js +0 -1
- package/out/common/index.js.map +1 -1
- package/out/concepts/Abort__.d.ts +3 -2
- package/out/concepts/Abort__.js +15 -18
- package/out/concepts/Abort__.js.map +1 -1
- package/out/concepts/Anchor__.d.ts +3 -3
- package/out/concepts/Anchor__.js +18 -35
- package/out/concepts/Anchor__.js.map +1 -1
- package/out/concepts/AnonymousFunction__.d.ts +3 -3
- package/out/concepts/AnonymousFunction__.js +29 -53
- package/out/concepts/AnonymousFunction__.js.map +1 -1
- package/out/concepts/App__.d.ts +160 -157
- package/out/concepts/App__.js +106 -80
- package/out/concepts/App__.js.map +1 -1
- package/out/concepts/Argument__.d.ts +3 -3
- package/out/concepts/Argument__.js +22 -42
- package/out/concepts/Argument__.js.map +1 -1
- package/out/concepts/Assignee__.d.ts +3 -2
- package/out/concepts/Assignee__.js +19 -21
- package/out/concepts/Assignee__.js.map +1 -1
- package/out/concepts/AssignmentLine__.d.ts +3 -2
- package/out/concepts/AssignmentLine__.js +15 -17
- package/out/concepts/AssignmentLine__.js.map +1 -1
- package/out/concepts/Assignment__.d.ts +3 -3
- package/out/concepts/Assignment__.js +34 -42
- package/out/concepts/Assignment__.js.map +1 -1
- package/out/concepts/Attribute__.d.ts +3 -2
- package/out/concepts/Attribute__.js +36 -28
- package/out/concepts/Attribute__.js.map +1 -1
- package/out/concepts/AuthInterface__.d.ts +4 -3
- package/out/concepts/AuthInterface__.js +16 -17
- package/out/concepts/AuthInterface__.js.map +1 -1
- package/out/concepts/AuthLogicForCallInterface__.d.ts +4 -3
- package/out/concepts/AuthLogicForCallInterface__.js +37 -27
- package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
- package/out/concepts/AuthLogic__.d.ts +4 -3
- package/out/concepts/AuthLogic__.js +18 -19
- package/out/concepts/AuthLogic__.js.map +1 -1
- package/out/concepts/BackendVariable__.d.ts +8 -7
- package/out/concepts/BackendVariable__.js +39 -34
- package/out/concepts/BackendVariable__.js.map +1 -1
- package/out/concepts/Backend__.d.ts +32 -31
- package/out/concepts/Backend__.js +23 -22
- package/out/concepts/Backend__.js.map +1 -1
- package/out/concepts/BatchAssignment__.d.ts +3 -3
- package/out/concepts/BatchAssignment__.js +46 -54
- package/out/concepts/BatchAssignment__.js.map +1 -1
- package/out/concepts/BinaryExpression__.d.ts +3 -3
- package/out/concepts/BinaryExpression__.js +30 -62
- package/out/concepts/BinaryExpression__.js.map +1 -1
- package/out/concepts/BindAttribute__.d.ts +13 -8
- package/out/concepts/BindAttribute__.js +137 -83
- package/out/concepts/BindAttribute__.js.map +1 -1
- package/out/concepts/BindDirective__.d.ts +5 -3
- package/out/concepts/BindDirective__.js +34 -28
- package/out/concepts/BindDirective__.js.map +1 -1
- package/out/concepts/BindEvent__.d.ts +5 -4
- package/out/concepts/BindEvent__.js +92 -108
- package/out/concepts/BindEvent__.js.map +1 -1
- package/out/concepts/BindStyle__.d.ts +5 -3
- package/out/concepts/BindStyle__.js +24 -23
- package/out/concepts/BindStyle__.js.map +1 -1
- package/out/concepts/BooleanLiteral__.d.ts +3 -3
- package/out/concepts/BooleanLiteral__.js +17 -24
- package/out/concepts/BooleanLiteral__.js.map +1 -1
- package/out/concepts/CallAuthInterface__.d.ts +3 -2
- package/out/concepts/CallAuthInterface__.js +17 -19
- package/out/concepts/CallAuthInterface__.js.map +1 -1
- package/out/concepts/CallConnector__.d.ts +5 -4
- package/out/concepts/CallConnector__.js +41 -34
- package/out/concepts/CallConnector__.js.map +1 -1
- package/out/concepts/CallFunction__.d.ts +3 -3
- package/out/concepts/CallFunction__.js +33 -71
- package/out/concepts/CallFunction__.js.map +1 -1
- package/out/concepts/CallInterface__.d.ts +3 -3
- package/out/concepts/CallInterface__.js +26 -57
- package/out/concepts/CallInterface__.js.map +1 -1
- package/out/concepts/CallLogic__.d.ts +6 -6
- package/out/concepts/CallLogic__.js +167 -155
- package/out/concepts/CallLogic__.js.map +1 -1
- package/out/concepts/CallQueryComponent__.d.ts +4 -3
- package/out/concepts/CallQueryComponent__.js +57 -41
- package/out/concepts/CallQueryComponent__.js.map +1 -1
- package/out/concepts/Comment__.d.ts +3 -3
- package/out/concepts/Comment__.js +17 -24
- package/out/concepts/Comment__.js.map +1 -1
- package/out/concepts/CompletionProperty__.d.ts +3 -2
- package/out/concepts/CompletionProperty__.js +30 -25
- package/out/concepts/CompletionProperty__.js.map +1 -1
- package/out/concepts/ConfigGroup__.d.ts +3 -2
- package/out/concepts/ConfigGroup__.js +21 -20
- package/out/concepts/ConfigGroup__.js.map +1 -1
- package/out/concepts/ConfigPropertyValue__.d.ts +3 -2
- package/out/concepts/ConfigPropertyValue__.js +16 -16
- package/out/concepts/ConfigPropertyValue__.js.map +1 -1
- package/out/concepts/ConfigProperty__.d.ts +3 -2
- package/out/concepts/ConfigProperty__.js +26 -23
- package/out/concepts/ConfigProperty__.js.map +1 -1
- package/out/concepts/Configuration__.d.ts +3 -2
- package/out/concepts/Configuration__.js +16 -18
- package/out/concepts/Configuration__.js.map +1 -1
- package/out/concepts/Connection__.d.ts +4 -4
- package/out/concepts/Connection__.js +31 -28
- package/out/concepts/Connection__.js.map +1 -1
- package/out/concepts/ConnectorTrigger__.d.ts +7 -6
- package/out/concepts/ConnectorTrigger__.js +22 -21
- package/out/concepts/ConnectorTrigger__.js.map +1 -1
- package/out/concepts/Connector__.d.ts +139 -33
- package/out/concepts/Connector__.js +191 -34
- package/out/concepts/Connector__.js.map +1 -1
- package/out/concepts/Constant__.d.ts +3 -2
- package/out/concepts/Constant__.js +25 -23
- package/out/concepts/Constant__.js.map +1 -1
- package/out/concepts/DataSource__.d.ts +7 -2
- package/out/concepts/DataSource__.js +31 -23
- package/out/concepts/DataSource__.js.map +1 -1
- package/out/concepts/DatabaseTypeAnnotation__.d.ts +5 -4
- package/out/concepts/DatabaseTypeAnnotation__.js +18 -18
- package/out/concepts/DatabaseTypeAnnotation__.js.map +1 -1
- package/out/concepts/Destination__.d.ts +11 -11
- package/out/concepts/Destination__.js +39 -89
- package/out/concepts/Destination__.js.map +1 -1
- package/out/concepts/End__.d.ts +3 -2
- package/out/concepts/End__.js +15 -17
- package/out/concepts/End__.js.map +1 -1
- package/out/concepts/EntityIndex__.d.ts +4 -3
- package/out/concepts/EntityIndex__.js +23 -21
- package/out/concepts/EntityIndex__.js.map +1 -1
- package/out/concepts/EntityProperty__.d.ts +4 -4
- package/out/concepts/EntityProperty__.js +51 -67
- package/out/concepts/EntityProperty__.js.map +1 -1
- package/out/concepts/Entity__.d.ts +3 -3
- package/out/concepts/Entity__.js +32 -51
- package/out/concepts/Entity__.js.map +1 -1
- package/out/concepts/EnumItem__.d.ts +3 -3
- package/out/concepts/EnumItem__.js +19 -25
- package/out/concepts/EnumItem__.js.map +1 -1
- package/out/concepts/Enum__.d.ts +3 -3
- package/out/concepts/Enum__.js +23 -35
- package/out/concepts/Enum__.js.map +1 -1
- package/out/concepts/Event__.d.ts +3 -2
- package/out/concepts/Event__.js +24 -21
- package/out/concepts/Event__.js.map +1 -1
- package/out/concepts/ExternalDestination__.d.ts +6 -5
- package/out/concepts/ExternalDestination__.js +25 -25
- package/out/concepts/ExternalDestination__.js.map +1 -1
- package/out/concepts/ForEachStatement__.d.ts +3 -3
- package/out/concepts/ForEachStatement__.js +46 -95
- package/out/concepts/ForEachStatement__.js.map +1 -1
- package/out/concepts/FrontendLibrary__.d.ts +4 -3
- package/out/concepts/FrontendLibrary__.js +27 -25
- package/out/concepts/FrontendLibrary__.js.map +1 -1
- package/out/concepts/FrontendVariable__.d.ts +4 -3
- package/out/concepts/FrontendVariable__.js +12 -12
- package/out/concepts/FrontendVariable__.js.map +1 -1
- package/out/concepts/Frontend__.d.ts +8 -6
- package/out/concepts/Frontend__.js +47 -39
- package/out/concepts/Frontend__.js.map +1 -1
- package/out/concepts/Function__.d.ts +3 -3
- package/out/concepts/Function__.js +37 -60
- package/out/concepts/Function__.js.map +1 -1
- package/out/concepts/Identifier__.d.ts +4 -3
- package/out/concepts/Identifier__.js +30 -29
- package/out/concepts/Identifier__.js.map +1 -1
- package/out/concepts/IfStatement__.d.ts +3 -3
- package/out/concepts/IfStatement__.js +21 -51
- package/out/concepts/IfStatement__.js.map +1 -1
- package/out/concepts/Integration__.d.ts +93 -2
- package/out/concepts/Integration__.js +157 -19
- package/out/concepts/Integration__.js.map +1 -1
- package/out/concepts/InterfaceParam__.d.ts +30 -4
- package/out/concepts/InterfaceParam__.js +58 -24
- package/out/concepts/InterfaceParam__.js.map +1 -1
- package/out/concepts/Interface__.d.ts +31 -5
- package/out/concepts/Interface__.js +89 -34
- package/out/concepts/Interface__.js.map +1 -1
- package/out/concepts/JSBlock__.d.ts +3 -3
- package/out/concepts/JSBlock__.js +17 -24
- package/out/concepts/JSBlock__.js.map +1 -1
- package/out/concepts/JavaLogic__.d.ts +4 -3
- package/out/concepts/JavaLogic__.js +22 -21
- package/out/concepts/JavaLogic__.js.map +1 -1
- package/out/concepts/LogicItem__.d.ts +3 -8
- package/out/concepts/LogicItem__.js +23 -30
- package/out/concepts/LogicItem__.js.map +1 -1
- package/out/concepts/Logic__.d.ts +17 -18
- package/out/concepts/Logic__.js +113 -178
- package/out/concepts/Logic__.js.map +1 -1
- package/out/concepts/MatchCase__.d.ts +3 -3
- package/out/concepts/MatchCase__.js +23 -110
- package/out/concepts/MatchCase__.js.map +1 -1
- package/out/concepts/Match__.d.ts +3 -3
- package/out/concepts/Match__.js +20 -64
- package/out/concepts/Match__.js.map +1 -1
- package/out/concepts/MemberExpression__.d.ts +4 -3
- package/out/concepts/MemberExpression__.js +167 -46
- package/out/concepts/MemberExpression__.js.map +1 -1
- package/out/concepts/MicroApp__.d.ts +3 -2
- package/out/concepts/MicroApp__.js +26 -21
- package/out/concepts/MicroApp__.js.map +1 -1
- package/out/concepts/Module__.d.ts +220 -48
- package/out/concepts/Module__.js +265 -66
- package/out/concepts/Module__.js.map +1 -1
- package/out/concepts/MsgTriggerEvent__.d.ts +4 -3
- package/out/concepts/MsgTriggerEvent__.js +16 -18
- package/out/concepts/MsgTriggerEvent__.js.map +1 -1
- package/out/concepts/MsgTriggerLauncher__.d.ts +4 -3
- package/out/concepts/MsgTriggerLauncher__.js +18 -19
- package/out/concepts/MsgTriggerLauncher__.js.map +1 -1
- package/out/concepts/Namespace__.d.ts +4 -2
- package/out/concepts/Namespace__.js +64 -46
- package/out/concepts/Namespace__.js.map +1 -1
- package/out/concepts/NewComposite__.d.ts +4 -3
- package/out/concepts/NewComposite__.js +71 -133
- package/out/concepts/NewComposite__.js.map +1 -1
- package/out/concepts/NewList__.d.ts +5 -4
- package/out/concepts/NewList__.js +35 -41
- package/out/concepts/NewList__.js.map +1 -1
- package/out/concepts/NewMap__.d.ts +5 -4
- package/out/concepts/NewMap__.js +39 -38
- package/out/concepts/NewMap__.js.map +1 -1
- package/out/concepts/New__.d.ts +3 -2
- package/out/concepts/New__.js +15 -17
- package/out/concepts/New__.js.map +1 -1
- package/out/concepts/NullLiteral__.d.ts +3 -2
- package/out/concepts/NullLiteral__.js +15 -17
- package/out/concepts/NullLiteral__.js.map +1 -1
- package/out/concepts/NumericLiteral__.d.ts +3 -3
- package/out/concepts/NumericLiteral__.js +21 -27
- package/out/concepts/NumericLiteral__.js.map +1 -1
- package/out/concepts/OqlQueryComponent__.d.ts +3 -3
- package/out/concepts/OqlQueryComponent__.js +26 -30
- package/out/concepts/OqlQueryComponent__.js.map +1 -1
- package/out/concepts/OverriddenLogic__.d.ts +14 -22
- package/out/concepts/OverriddenLogic__.js +73 -62
- package/out/concepts/OverriddenLogic__.js.map +1 -1
- package/out/concepts/Param__.d.ts +3 -3
- package/out/concepts/Param__.js +34 -69
- package/out/concepts/Param__.js.map +1 -1
- package/out/concepts/Point__.d.ts +3 -2
- package/out/concepts/Point__.js +16 -16
- package/out/concepts/Point__.js.map +1 -1
- package/out/concepts/ProcessComponent__.d.ts +3 -2
- package/out/concepts/ProcessComponent__.js +24 -22
- package/out/concepts/ProcessComponent__.js.map +1 -1
- package/out/concepts/ProcessElement__.d.ts +3 -2
- package/out/concepts/ProcessElement__.js +61 -46
- package/out/concepts/ProcessElement__.js.map +1 -1
- package/out/concepts/ProcessOutcome__.d.ts +3 -2
- package/out/concepts/ProcessOutcome__.js +17 -18
- package/out/concepts/ProcessOutcome__.js.map +1 -1
- package/out/concepts/ProcessOutcomes__.d.ts +3 -2
- package/out/concepts/ProcessOutcomes__.js +15 -17
- package/out/concepts/ProcessOutcomes__.js.map +1 -1
- package/out/concepts/Process__.d.ts +5 -7
- package/out/concepts/Process__.js +46 -35
- package/out/concepts/Process__.js.map +1 -1
- package/out/concepts/QueryAggregateExpression__.d.ts +3 -2
- package/out/concepts/QueryAggregateExpression__.js +23 -22
- package/out/concepts/QueryAggregateExpression__.js.map +1 -1
- package/out/concepts/QueryFieldExpression__.d.ts +4 -3
- package/out/concepts/QueryFieldExpression__.js +21 -20
- package/out/concepts/QueryFieldExpression__.js.map +1 -1
- package/out/concepts/QueryFromExpression__.d.ts +4 -3
- package/out/concepts/QueryFromExpression__.js +23 -22
- package/out/concepts/QueryFromExpression__.js.map +1 -1
- package/out/concepts/QueryGroupByExpression__.d.ts +3 -2
- package/out/concepts/QueryGroupByExpression__.js +18 -19
- package/out/concepts/QueryGroupByExpression__.js.map +1 -1
- package/out/concepts/QueryJoinExpression__.d.ts +4 -3
- package/out/concepts/QueryJoinExpression__.js +29 -25
- package/out/concepts/QueryJoinExpression__.js.map +1 -1
- package/out/concepts/QueryLimitExpression__.d.ts +3 -2
- package/out/concepts/QueryLimitExpression__.js +22 -22
- package/out/concepts/QueryLimitExpression__.js.map +1 -1
- package/out/concepts/QueryOrderByExpression__.d.ts +3 -2
- package/out/concepts/QueryOrderByExpression__.js +22 -22
- package/out/concepts/QueryOrderByExpression__.js.map +1 -1
- package/out/concepts/QuerySelectExpression__.d.ts +3 -2
- package/out/concepts/QuerySelectExpression__.js +23 -21
- package/out/concepts/QuerySelectExpression__.js.map +1 -1
- package/out/concepts/Rect__.d.ts +3 -2
- package/out/concepts/Rect__.js +20 -18
- package/out/concepts/Rect__.js.map +1 -1
- package/out/concepts/Return__.d.ts +3 -3
- package/out/concepts/Return__.js +29 -45
- package/out/concepts/Return__.js.map +1 -1
- package/out/concepts/Role__.d.ts +3 -2
- package/out/concepts/Role__.js +22 -21
- package/out/concepts/Role__.js.map +1 -1
- package/out/concepts/SelectMembers__.d.ts +3 -2
- package/out/concepts/SelectMembers__.js +20 -21
- package/out/concepts/SelectMembers__.js.map +1 -1
- package/out/concepts/Slot__.d.ts +3 -2
- package/out/concepts/Slot__.js +26 -22
- package/out/concepts/Slot__.js.map +1 -1
- package/out/concepts/SqlQueryComponent__.d.ts +3 -3
- package/out/concepts/SqlQueryComponent__.js +28 -31
- package/out/concepts/SqlQueryComponent__.js.map +1 -1
- package/out/concepts/Start__.d.ts +3 -2
- package/out/concepts/Start__.js +15 -17
- package/out/concepts/Start__.js.map +1 -1
- package/out/concepts/StringInterpolation__.d.ts +3 -3
- package/out/concepts/StringInterpolation__.js +17 -37
- package/out/concepts/StringInterpolation__.js.map +1 -1
- package/out/concepts/StringLiteral__.d.ts +3 -3
- package/out/concepts/StringLiteral__.js +14 -22
- package/out/concepts/StringLiteral__.js.map +1 -1
- package/out/concepts/StructureProperty__.d.ts +5 -5
- package/out/concepts/StructureProperty__.js +33 -40
- package/out/concepts/StructureProperty__.js.map +1 -1
- package/out/concepts/Structure__.d.ts +3 -12
- package/out/concepts/Structure__.js +45 -46
- package/out/concepts/Structure__.js.map +1 -1
- package/out/concepts/SwitchCase__.d.ts +3 -3
- package/out/concepts/SwitchCase__.js +19 -54
- package/out/concepts/SwitchCase__.js.map +1 -1
- package/out/concepts/SwitchStatement__.d.ts +3 -3
- package/out/concepts/SwitchStatement__.js +23 -39
- package/out/concepts/SwitchStatement__.js.map +1 -1
- package/out/concepts/Theme__.d.ts +3 -2
- package/out/concepts/Theme__.js +12 -14
- package/out/concepts/Theme__.js.map +1 -1
- package/out/concepts/Transactional__.d.ts +3 -2
- package/out/concepts/Transactional__.js +18 -17
- package/out/concepts/Transactional__.js.map +1 -1
- package/out/concepts/TriggerEvent__.d.ts +3 -2
- package/out/concepts/TriggerEvent__.js +19 -18
- package/out/concepts/TriggerEvent__.js.map +1 -1
- package/out/concepts/TriggerLauncher__.d.ts +6 -17
- package/out/concepts/TriggerLauncher__.js +26 -63
- package/out/concepts/TriggerLauncher__.js.map +1 -1
- package/out/concepts/TypeAnnotation__.d.ts +12 -9
- package/out/concepts/TypeAnnotation__.js +164 -146
- package/out/concepts/TypeAnnotation__.js.map +1 -1
- package/out/concepts/TypeParam__.d.ts +3 -3
- package/out/concepts/TypeParam__.js +16 -23
- package/out/concepts/TypeParam__.js.map +1 -1
- package/out/concepts/UnaryExpression__.d.ts +3 -3
- package/out/concepts/UnaryExpression__.js +21 -39
- package/out/concepts/UnaryExpression__.js.map +1 -1
- package/out/concepts/Unparsed__.d.ts +3 -3
- package/out/concepts/Unparsed__.js +16 -23
- package/out/concepts/Unparsed__.js.map +1 -1
- package/out/concepts/UseComponent__.d.ts +3 -2
- package/out/concepts/UseComponent__.js +16 -16
- package/out/concepts/UseComponent__.js.map +1 -1
- package/out/concepts/ValidationRule__.d.ts +3 -2
- package/out/concepts/ValidationRule__.js +45 -38
- package/out/concepts/ValidationRule__.js.map +1 -1
- package/out/concepts/Variable__.d.ts +3 -3
- package/out/concepts/Variable__.js +29 -45
- package/out/concepts/Variable__.js.map +1 -1
- package/out/concepts/ViewBlock__.d.ts +4 -3
- package/out/concepts/ViewBlock__.js +20 -19
- package/out/concepts/ViewBlock__.js.map +1 -1
- package/out/concepts/ViewComponent__.d.ts +32 -31
- package/out/concepts/ViewComponent__.js +35 -32
- package/out/concepts/ViewComponent__.js.map +1 -1
- package/out/concepts/ViewElement__.d.ts +17 -15
- package/out/concepts/ViewElement__.js +342 -174
- package/out/concepts/ViewElement__.js.map +1 -1
- package/out/concepts/View__.d.ts +11 -4
- package/out/concepts/View__.js +332 -125
- package/out/concepts/View__.js.map +1 -1
- package/out/concepts/WhileStatement__.d.ts +3 -3
- package/out/concepts/WhileStatement__.js +20 -41
- package/out/concepts/WhileStatement__.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.browser.js +1 -0
- package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.event.js +2 -0
- package/out/concepts/basics/stdlib/nasl.event.js.map +1 -1
- package/out/concepts/index__.d.ts +0 -1
- package/out/concepts/index__.js +0 -1
- package/out/concepts/index__.js.map +1 -1
- package/out/concepts/types__.d.ts +2 -2
- package/out/decorators/index.d.ts +2 -0
- package/out/decorators/index.js +12 -8
- package/out/decorators/index.js.map +1 -1
- package/out/generator/genBundleFiles.d.ts +2 -2
- package/out/generator/genBundleFiles.js +100 -4
- package/out/generator/genBundleFiles.js.map +1 -1
- package/out/generator/genReleaseBody.d.ts +4 -2
- package/out/generator/genReleaseBody.js +191 -135
- package/out/generator/genReleaseBody.js.map +1 -1
- package/out/generator/permission.js +3 -3
- package/out/generator/permission.js.map +1 -1
- package/out/index.d.ts +0 -1
- package/out/index.js +0 -1
- package/out/index.js.map +1 -1
- package/out/sentry/index.js +2 -2
- package/out/sentry/index.js.map +1 -1
- package/out/server/createUiTs.js +34 -1
- package/out/server/createUiTs.js.map +1 -1
- package/out/server/extendBaseNode.js +78 -53
- package/out/server/extendBaseNode.js.map +1 -1
- package/out/server/formatTsUtils.js +72 -73
- package/out/server/formatTsUtils.js.map +1 -1
- package/out/server/getConnector.d.ts +3 -0
- package/out/server/getConnector.js +38 -1
- package/out/server/getConnector.js.map +1 -1
- package/out/server/getLogics.js +20 -23
- package/out/server/getLogics.js.map +1 -1
- package/out/server/getMemberIdentifier.d.ts +1 -0
- package/out/server/getMemberIdentifier.js +148 -1
- package/out/server/getMemberIdentifier.js.map +1 -1
- package/out/server/index.js +2 -0
- package/out/server/index.js.map +1 -1
- package/out/server/naslServer.d.ts +17 -6
- package/out/server/naslServer.js +372 -232
- package/out/server/naslServer.js.map +1 -1
- package/out/server/translator.js +45 -37
- package/out/server/translator.js.map +1 -1
- package/out/service/creator/add.configs.js +26 -0
- package/out/service/creator/add.configs.js.map +1 -1
- package/out/service/creator/errHandles.js +5 -3
- package/out/service/creator/errHandles.js.map +1 -1
- package/out/service/creator/index.js +13 -0
- package/out/service/creator/index.js.map +1 -1
- package/out/service/defaultErrorMessage.json +6 -6
- package/out/service/storage/jsoner.js +1 -1
- package/out/service/storage/jsoner.js.map +1 -1
- package/out/templator/genCreateBlock.js +5 -3
- package/out/templator/genCreateBlock.js.map +1 -1
- package/out/templator/genCurdEditMultipleKeyBlock.js +15 -11
- package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
- package/out/templator/genCurdMultipleKeyBlock.js +10 -9
- package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
- package/out/templator/genEditTableBlock.d.ts +1 -1
- package/out/templator/genEditTableBlock.js +12 -6
- 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 +1 -1
- package/out/templator/genGetBlock.js.map +1 -1
- package/out/templator/genGridViewBlock.d.ts +2 -2
- package/out/templator/genGridViewBlock.js +20 -7
- package/out/templator/genGridViewBlock.js.map +1 -1
- package/out/templator/genListViewBlock.d.ts +2 -2
- package/out/templator/genListViewBlock.js +13 -5
- package/out/templator/genListViewBlock.js.map +1 -1
- package/out/templator/genSelectBlock.d.ts +2 -2
- package/out/templator/genSelectBlock.js +8 -6
- package/out/templator/genSelectBlock.js.map +1 -1
- package/out/templator/genTableBlock.d.ts +1 -1
- package/out/templator/genTableBlock.js +11 -6
- package/out/templator/genTableBlock.js.map +1 -1
- package/out/templator/genUpdateBlock.js +5 -3
- package/out/templator/genUpdateBlock.js.map +1 -1
- package/out/translator/constant.d.ts +6 -0
- package/out/translator/constant.js +10 -0
- package/out/translator/constant.js.map +1 -0
- package/out/translator/index.d.ts +3 -48
- package/out/translator/index.js +17 -110
- package/out/translator/index.js.map +1 -1
- package/out/translator/types.d.ts +32 -0
- package/out/translator/{tsp.js → types.js} +1 -1
- package/out/translator/types.js.map +1 -0
- package/out/translator/utils.d.ts +17 -0
- package/out/translator/utils.js +102 -0
- package/out/translator/utils.js.map +1 -0
- package/out/utils/cookie.d.ts +9 -0
- package/out/utils/cookie.js +62 -0
- package/out/utils/cookie.js.map +1 -0
- package/out/utils/index.d.ts +2 -0
- package/out/utils/index.js +2 -0
- package/out/utils/index.js.map +1 -1
- package/out/utils/logger.d.ts +4 -0
- package/out/utils/logger.js +13 -1
- package/out/utils/logger.js.map +1 -1
- package/out/utils/types.d.ts +1 -0
- package/out/utils/types.js +3 -0
- package/out/utils/types.js.map +1 -0
- package/out/utils/window.d.ts +7 -0
- package/out/utils/window.js +14 -0
- package/out/utils/window.js.map +1 -0
- package/package.json +5 -10
- package/sandbox/stdlib/nasl.auth.ts +40 -44
- package/sandbox/stdlib/nasl.core.ts +8 -1
- package/sandbox/stdlib/nasl.http.ts +22 -22
- package/sandbox/stdlib/nasl.oql.ts +2 -0
- package/sandbox/stdlib/nasl.ui.definition.ts +2218 -1415
- package/src/automate/upgrader/2.20.js +17 -13
- package/src/bak/translator.js +53 -1
- package/src/breakpoint/generator/AfterStartNode.ts +2 -1
- package/src/breakpoint/generator/BeforeEndNode.ts +2 -1
- package/src/breakpoint/generator/BreakpointNode.ts +36 -9
- package/src/breakpoint/shared/constants.ts +7 -0
- package/src/breakpoint/shared/utils.ts +35 -4
- package/src/common/BaseNode.ts +140 -81
- package/src/common/Command.ts +14 -1
- package/src/common/EventEmitter.ts +2 -4
- package/src/common/index.ts +0 -1
- package/src/concepts/Abort__.ts +20 -22
- package/src/concepts/Anchor__.ts +23 -38
- package/src/concepts/AnonymousFunction__.ts +39 -63
- package/src/concepts/App__.ts +364 -314
- package/src/concepts/Argument__.ts +27 -44
- package/src/concepts/Assignee__.ts +41 -39
- package/src/concepts/AssignmentLine__.ts +20 -23
- package/src/concepts/Assignment__.ts +54 -58
- package/src/concepts/Attribute__.ts +40 -34
- package/src/concepts/AuthInterface__.ts +22 -24
- package/src/concepts/AuthLogicForCallInterface__.ts +71 -41
- package/src/concepts/AuthLogic__.ts +21 -30
- package/src/concepts/BackendVariable__.ts +55 -54
- package/src/concepts/Backend__.ts +58 -59
- package/src/concepts/BatchAssignment__.ts +88 -78
- package/src/concepts/BinaryExpression__.ts +72 -66
- package/src/concepts/BindAttribute__.ts +148 -103
- package/src/concepts/BindDirective__.ts +45 -41
- package/src/concepts/BindEvent__.ts +120 -149
- package/src/concepts/BindStyle__.ts +37 -36
- package/src/concepts/BooleanLiteral__.ts +22 -28
- package/src/concepts/CallAuthInterface__.ts +29 -32
- package/src/concepts/CallConnector__.ts +50 -41
- package/src/concepts/CallFunction__.ts +45 -77
- package/src/concepts/CallInterface__.ts +36 -68
- package/src/concepts/CallLogic__.ts +204 -195
- package/src/concepts/CallQueryComponent__.ts +156 -88
- package/src/concepts/Comment__.ts +22 -29
- package/src/concepts/CompletionProperty__.ts +34 -30
- package/src/concepts/ConfigGroup__.ts +28 -29
- package/src/concepts/ConfigPropertyValue__.ts +22 -23
- package/src/concepts/ConfigProperty__.ts +42 -36
- package/src/concepts/Configuration__.ts +23 -26
- package/src/concepts/Connection__.ts +40 -41
- package/src/concepts/ConnectorTrigger__.ts +30 -34
- package/src/concepts/Connector__.ts +342 -87
- package/src/concepts/Constant__.ts +30 -36
- package/src/concepts/DataSource__.ts +37 -33
- package/src/concepts/DatabaseTypeAnnotation__.ts +24 -24
- package/src/concepts/Destination__.ts +51 -104
- package/src/concepts/End__.ts +23 -25
- package/src/concepts/EntityIndex__.ts +36 -33
- package/src/concepts/EntityProperty__.ts +64 -84
- package/src/concepts/Entity__.ts +41 -67
- package/src/concepts/EnumItem__.ts +24 -32
- package/src/concepts/Enum__.ts +28 -42
- package/src/concepts/Event__.ts +33 -33
- package/src/concepts/ExternalDestination__.ts +29 -29
- package/src/concepts/ForEachStatement__.ts +64 -114
- package/src/concepts/FrontendLibrary__.ts +37 -38
- package/src/concepts/FrontendVariable__.ts +18 -20
- package/src/concepts/Frontend__.ts +66 -62
- package/src/concepts/Function__.ts +54 -80
- package/src/concepts/Identifier__.ts +37 -34
- package/src/concepts/IfStatement__.ts +40 -77
- package/src/concepts/Integration__.ts +244 -24
- package/src/concepts/InterfaceParam__.ts +69 -33
- package/src/concepts/Interface__.ts +104 -46
- package/src/concepts/JSBlock__.ts +22 -28
- package/src/concepts/JavaLogic__.ts +27 -26
- package/src/concepts/LogicItem__.ts +29 -47
- package/src/concepts/Logic__.ts +168 -213
- package/src/concepts/MatchCase__.ts +38 -128
- package/src/concepts/Match__.ts +28 -73
- package/src/concepts/MemberExpression__.ts +197 -54
- package/src/concepts/MicroApp__.ts +32 -27
- package/src/concepts/Module__.ts +567 -164
- package/src/concepts/MsgTriggerEvent__.ts +25 -33
- package/src/concepts/MsgTriggerLauncher__.ts +27 -30
- package/src/concepts/Namespace__.ts +109 -99
- package/src/concepts/NewComposite__.ts +130 -161
- package/src/concepts/NewList__.ts +45 -51
- package/src/concepts/NewMap__.ts +51 -48
- package/src/concepts/New__.ts +20 -22
- package/src/concepts/NullLiteral__.ts +20 -22
- package/src/concepts/NumericLiteral__.ts +26 -31
- package/src/concepts/OqlQueryComponent__.ts +33 -34
- package/src/concepts/OverriddenLogic__.ts +128 -94
- package/src/concepts/Param__.ts +51 -90
- package/src/concepts/Point__.ts +22 -22
- package/src/concepts/ProcessComponent__.ts +36 -37
- package/src/concepts/ProcessElement__.ts +114 -86
- package/src/concepts/ProcessOutcome__.ts +22 -23
- package/src/concepts/ProcessOutcomes__.ts +20 -22
- package/src/concepts/Process__.ts +69 -63
- package/src/concepts/QueryAggregateExpression__.ts +28 -27
- package/src/concepts/QueryFieldExpression__.ts +26 -25
- package/src/concepts/QueryFromExpression__.ts +29 -28
- package/src/concepts/QueryGroupByExpression__.ts +22 -23
- package/src/concepts/QueryJoinExpression__.ts +62 -41
- package/src/concepts/QueryLimitExpression__.ts +27 -27
- package/src/concepts/QueryOrderByExpression__.ts +27 -27
- package/src/concepts/QuerySelectExpression__.ts +105 -54
- package/src/concepts/Rect__.ts +26 -24
- package/src/concepts/Return__.ts +42 -67
- package/src/concepts/Role__.ts +25 -25
- package/src/concepts/SelectMembers__.ts +30 -32
- package/src/concepts/Slot__.ts +32 -30
- package/src/concepts/SqlQueryComponent__.ts +41 -37
- package/src/concepts/Start__.ts +20 -22
- package/src/concepts/StringInterpolation__.ts +25 -45
- package/src/concepts/StringLiteral__.ts +19 -26
- package/src/concepts/StructureProperty__.ts +38 -47
- package/src/concepts/Structure__.ts +55 -58
- package/src/concepts/SwitchCase__.ts +40 -74
- package/src/concepts/SwitchStatement__.ts +29 -44
- package/src/concepts/Theme__.ts +18 -21
- package/src/concepts/Transactional__.ts +24 -31
- package/src/concepts/TriggerEvent__.ts +28 -29
- package/src/concepts/TriggerLauncher__.ts +32 -82
- package/src/concepts/TypeAnnotation__.ts +214 -200
- package/src/concepts/TypeParam__.ts +21 -28
- package/src/concepts/UnaryExpression__.ts +26 -45
- package/src/concepts/Unparsed__.ts +20 -25
- package/src/concepts/UseComponent__.ts +22 -22
- package/src/concepts/ValidationRule__.ts +62 -48
- package/src/concepts/Variable__.ts +43 -67
- package/src/concepts/ViewBlock__.ts +26 -25
- package/src/concepts/ViewComponent__.ts +87 -91
- package/src/concepts/ViewElement__.ts +483 -277
- package/src/concepts/View__.ts +401 -180
- package/src/concepts/WhileStatement__.ts +36 -59
- package/src/concepts/basics/stdlib/nasl.browser.ts +1 -0
- package/src/concepts/basics/stdlib/nasl.event.ts +2 -0
- package/src/concepts/index__.ts +0 -1
- package/src/concepts/types__.ts +124 -124
- package/src/decorators/index.ts +11 -7
- package/src/generator/genBundleFiles.ts +104 -4
- package/src/generator/genReleaseBody.ts +197 -181
- package/src/generator/permission.ts +3 -3
- package/src/index.ts +0 -1
- package/src/sentry/index.ts +2 -2
- package/src/server/createUiTs.ts +30 -1
- package/src/server/extendBaseNode.ts +81 -55
- package/src/server/formatTsUtils.ts +64 -75
- package/src/server/getConnector.ts +63 -27
- package/src/server/getLogics.ts +23 -30
- package/src/server/getMemberIdentifier.ts +142 -0
- package/src/server/index.ts +4 -1
- package/src/server/naslServer.ts +367 -250
- package/src/server/translator.ts +41 -42
- package/src/service/creator/add.configs.js +26 -1
- package/src/service/creator/errHandles.js +5 -4
- package/src/service/creator/index.js +12 -0
- package/src/service/defaultErrorMessage.json +6 -6
- package/src/service/storage/jsoner.ts +1 -1
- package/src/templator/genCreateBlock.ts +5 -3
- package/src/templator/genCurdEditMultipleKeyBlock.ts +15 -11
- package/src/templator/genCurdMultipleKeyBlock.ts +10 -9
- package/src/templator/genEditTableBlock.ts +12 -7
- package/src/templator/genEnumSelectBlock.ts +2 -2
- package/src/templator/genGetBlock.ts +6 -6
- package/src/templator/genGridViewBlock.ts +22 -9
- package/src/templator/genListViewBlock.ts +14 -5
- package/src/templator/genSelectBlock.ts +8 -6
- package/src/templator/genTableBlock.ts +11 -10
- package/src/templator/genUpdateBlock.ts +5 -3
- package/src/translator/constant.ts +7 -0
- package/src/translator/index.ts +3 -137
- package/src/translator/types.ts +40 -0
- package/src/translator/utils.ts +104 -0
- package/src/utils/cookie.ts +60 -0
- package/src/utils/index.ts +2 -0
- package/src/utils/logger.ts +13 -0
- package/src/utils/types.ts +1 -0
- package/src/utils/window.ts +9 -0
- package/test/concepts/boolean-literal/__snapshots__/toEmbeddedTS.spec.ts.snap +11 -0
- package/test/concepts/boolean-literal/__snapshots__/toJS.spec.ts.snap +11 -0
- package/test/concepts/boolean-literal/__snapshots__/toVue.spec.ts.snap +11 -0
- package/test/concepts/boolean-literal/constant.ts +5 -0
- package/test/concepts/boolean-literal/fixtures/false.json +4 -0
- package/test/concepts/boolean-literal/fixtures/true.json +4 -0
- package/test/concepts/boolean-literal/toEmbeddedTS.spec.ts +14 -0
- package/test/concepts/boolean-literal/toJS.spec.ts +14 -0
- package/test/concepts/boolean-literal/toVue.spec.ts +14 -0
- package/test/concepts/call-interface/toEmbeddedTS.spec.ts +6 -6
- package/test/concepts/call-interface/toJS.spec.ts +6 -6
- package/test/concepts/call-logic/__snapshots__/getQuickInfoOffset.spec.ts.snap +106 -0
- package/test/concepts/call-logic/__snapshots__/toEmbeddedTS.spec.ts.snap +45 -0
- package/test/concepts/call-logic/__snapshots__/toJS.spec.ts.snap +102 -0
- package/test/concepts/call-logic/fixtures/nested-call-logic.json +860 -0
- package/test/concepts/call-logic/getQuickInfoOffset.spec.ts +23 -0
- package/test/concepts/call-logic/toEmbeddedTS.spec.ts +6 -6
- package/test/concepts/call-logic/toJS.spec.ts +6 -6
- package/test/concepts/identifier/__snapshots__/toEmbeddedTS.spec.ts.snap +16 -0
- package/test/concepts/identifier/__snapshots__/toJS.spec.ts.snap +16 -0
- package/test/concepts/identifier/__snapshots__/toVue.spec.ts.snap +16 -0
- package/test/concepts/identifier/constant.ts +5 -0
- package/test/concepts/identifier/fixtures/data-source.json +5 -0
- package/test/concepts/identifier/fixtures/no-namespace.json +4 -0
- package/test/concepts/identifier/fixtures/view-variable.json +201 -0
- package/test/concepts/identifier/toEmbeddedTS.spec.ts +14 -0
- package/test/concepts/identifier/toJS.spec.ts +14 -0
- package/test/concepts/identifier/toVue.spec.ts +14 -0
- package/test/concepts/match/toEmbeddedTS.spec.ts +6 -6
- package/test/concepts/match/toJS.spec.ts +6 -6
- package/test/concepts/member-expression/__snapshots__/toEmbeddedTS.spec.ts.snap +21 -0
- package/test/concepts/member-expression/__snapshots__/toJS.spec.ts.snap +21 -0
- package/test/concepts/member-expression/__snapshots__/toVue.spec.ts.snap +21 -0
- package/test/concepts/member-expression/constant.ts +5 -0
- package/test/concepts/member-expression/fixtures/app.enums.UserStatusEnum.json +13 -0
- package/test/concepts/member-expression/fixtures/elements.table-view.data.json +13 -0
- package/test/concepts/member-expression/fixtures/entry.created-by.json +18 -0
- package/test/concepts/member-expression/fixtures/nasl.auth.userInfo.json +19 -0
- package/test/concepts/member-expression/toEmbeddedTS.spec.ts +14 -0
- package/test/concepts/member-expression/toJS.spec.ts +14 -0
- package/test/concepts/member-expression/toVue.spec.ts +14 -0
- package/test/concepts/null-literal/__snapshots__/toEmbeddedTS.spec.ts.snap +6 -0
- package/test/concepts/null-literal/__snapshots__/toJS.spec.ts.snap +6 -0
- package/test/concepts/null-literal/__snapshots__/toVue.spec.ts.snap +6 -0
- package/test/concepts/null-literal/constant.ts +5 -0
- package/test/concepts/null-literal/fixtures/null.json +3 -0
- package/test/concepts/null-literal/toEmbeddedTS.spec.ts +14 -0
- package/test/concepts/null-literal/toJS.spec.ts +14 -0
- package/test/concepts/null-literal/toVue.spec.ts +14 -0
- package/test/concepts/numeric-literal/__snapshots__/toEmbeddedTS.spec.ts.snap +6 -0
- package/test/concepts/numeric-literal/__snapshots__/toJS.spec.ts.snap +6 -0
- package/test/concepts/numeric-literal/__snapshots__/toVue.spec.ts.snap +6 -0
- package/test/concepts/numeric-literal/constant.ts +5 -0
- package/test/concepts/numeric-literal/fixtures/number.json +10 -0
- package/test/concepts/numeric-literal/toEmbeddedTS.spec.ts +14 -0
- package/test/concepts/numeric-literal/toJS.spec.ts +14 -0
- package/test/concepts/numeric-literal/toVue.spec.ts +14 -0
- package/test/concepts/string-literal/__snapshots__/toEmbeddedTS.spec.ts.snap +16 -0
- package/test/concepts/string-literal/__snapshots__/toJS.spec.ts.snap +16 -0
- package/test/concepts/string-literal/__snapshots__/toVue.spec.ts.snap +16 -0
- package/test/concepts/string-literal/constant.ts +5 -0
- package/test/concepts/string-literal/fixtures/escape.json +4 -0
- package/test/concepts/string-literal/fixtures/space.json +4 -0
- package/test/concepts/string-literal/fixtures/string.json +4 -0
- package/test/concepts/string-literal/toEmbeddedTS.spec.ts +14 -0
- package/test/concepts/string-literal/toJS.spec.ts +14 -0
- package/test/concepts/string-literal/toVue.spec.ts +14 -0
- package/test/concepts/utils.ts +46 -43
- package/test/concepts/validation-rule/__snapshots__/toEmbeddedTS.spec.ts.snap +11 -0
- package/test/concepts/validation-rule/__snapshots__/toJS.spec.ts.snap +10 -0
- package/test/concepts/validation-rule/fixtures/argument-without-keyword.json +34 -0
- package/test/concepts/validation-rule/fixtures/empty-rule.json +9 -0
- package/test/concepts/validation-rule/toEmbeddedTS.spec.ts +6 -6
- package/test/concepts/validation-rule/toJS.spec.ts +6 -6
- package/test/concepts/validation-rule/validation-rule.spec.ts +15 -0
- package/test/concepts/view-element/__snapshots__/toEmbeddedTS.spec.ts.snap +592 -0
- package/test/concepts/view-element/__snapshots__/toVue.spec.ts.snap +308 -0
- package/test/concepts/view-element/fixtures/default-login.json +333 -0
- package/test/concepts/view-element/fixtures/default-not-found.json +313 -313
- package/test/concepts/view-element/fixtures/with-role-auth.json +148 -0
- package/test/concepts/view-element/fixtures/with-table.json +3473 -0
- package/test/concepts/view-element/toEmbeddedTS.spec.ts +6 -6
- package/test/concepts/view-element/toVue.spec.ts +6 -6
- package/ts-worker/package-lock.json +6663 -101
- package/ts-worker/webpack.config.js +1 -1
- package/out/common/classMap.d.ts +0 -4
- package/out/common/classMap.js +0 -5
- package/out/common/classMap.js.map +0 -1
- package/out/concepts/DataElement__.d.ts +0 -46
- package/out/concepts/DataElement__.js +0 -118
- package/out/concepts/DataElement__.js.map +0 -1
- package/out/natural/RequirementAnalyzer.d.ts +0 -22
- package/out/natural/RequirementAnalyzer.js +0 -196
- package/out/natural/RequirementAnalyzer.js.map +0 -1
- package/out/natural/RequirementExecutor.d.ts +0 -51
- package/out/natural/RequirementExecutor.js +0 -692
- package/out/natural/RequirementExecutor.js.map +0 -1
- package/out/natural/componentData.d.ts +0 -31
- package/out/natural/componentData.js +0 -85
- package/out/natural/componentData.js.map +0 -1
- package/out/natural/genNaturalTS.d.ts +0 -3
- package/out/natural/genNaturalTS.js +0 -76
- package/out/natural/genNaturalTS.js.map +0 -1
- package/out/natural/index.d.ts +0 -4
- package/out/natural/index.js +0 -21
- package/out/natural/index.js.map +0 -1
- package/out/natural/knowledgeMap.d.ts +0 -4
- package/out/natural/knowledgeMap.js +0 -40
- package/out/natural/knowledgeMap.js.map +0 -1
- package/out/natural/naslStdlibMap.d.ts +0 -2
- package/out/natural/naslStdlibMap.js +0 -26
- package/out/natural/naslStdlibMap.js.map +0 -1
- package/out/natural/transformTSCode.d.ts +0 -7
- package/out/natural/transformTSCode.js +0 -760
- package/out/natural/transformTSCode.js.map +0 -1
- package/out/translator/lsp.d.ts +0 -45
- package/out/translator/lsp.js +0 -6
- package/out/translator/lsp.js.map +0 -1
- package/out/translator/tsp.d.ts +0 -12
- package/out/translator/tsp.js.map +0 -1
- package/sandbox-natural/stdlib/nasl.core.ts +0 -36
- package/sandbox-natural/stdlib/nasl.oql.ts +0 -8
- package/sandbox-natural/stdlib/nasl.ui.ts +0 -56
- package/sandbox-natural/stdlib/nasl.util.ts +0 -26
- package/sandbox-natural/tsconfig.json +0 -12
- package/src/common/classMap.ts +0 -3
- package/src/concepts/DataElement__.ts +0 -131
- package/src/natural/RequirementAnalyzer.ts +0 -208
- package/src/natural/RequirementExecutor.ts +0 -685
- package/src/natural/componentData.ts +0 -81
- package/src/natural/genNaturalTS.ts +0 -77
- package/src/natural/index.ts +0 -4
- package/src/natural/knowledgeMap.ts +0 -39
- package/src/natural/naslStdlibMap.ts +0 -24
- package/src/natural/transformTSCode.ts +0 -692
- package/src/test/examples/app1.json +0 -1406
- package/src/test/fixtures/env.ts +0 -19
- package/src/test/integration/connect-create-file.ts +0 -14
- package/src/test/integration/connect-file.ts +0 -24
- package/src/test/integration/node-nasl-server.ts +0 -14
- package/src/test/units/baseTypes/Assignment.spec.ts +0 -20
- package/src/test/units/baseTypes/CallLogic.spec.ts +0 -22
- package/src/test/units/baseTypes/StringLiteral.spec.ts +0 -60
- package/src/test/units/baseTypes/new.spec.ts +0 -13
- package/src/test/units/common/Vertex.spec.ts +0 -23
- package/src/test/units/data/Entity.spec.ts +0 -10
- package/src/test/units/login.spec.ts +0 -10
- package/src/test/units/page/Block.spec.ts +0 -15
- package/src/test/units/page/Element.spec.ts +0 -45
- package/src/test/units/page/example.dashboard.html +0 -46
- package/src/test/units/page/example.view1.html +0 -63
- package/src/test/units/temp/temp.spec.ts +0 -66
- package/src/translator/lsp.ts +0 -50
- package/src/translator/tsp.ts +0 -14
package/out/server/naslServer.js
CHANGED
|
@@ -37,11 +37,11 @@ exports.NaslServer = exports.getDisplayString2Type = void 0;
|
|
|
37
37
|
const fs = __importStar(require("fs-extra"));
|
|
38
38
|
const path = __importStar(require("path"));
|
|
39
39
|
const worker_threads_1 = require("worker_threads");
|
|
40
|
-
|
|
40
|
+
/// #endif
|
|
41
41
|
const config_1 = require("../config");
|
|
42
42
|
const sentry_1 = require("../sentry");
|
|
43
43
|
const Messager_1 = __importDefault(require("../common/Messager"));
|
|
44
|
-
const getMemberIdentifier_1 = require("
|
|
44
|
+
const getMemberIdentifier_1 = require("../server/getMemberIdentifier");
|
|
45
45
|
const concepts_1 = require("../concepts");
|
|
46
46
|
const translator_1 = require("../translator");
|
|
47
47
|
const storage_1 = __importDefault(require("../service/storage"));
|
|
@@ -57,6 +57,7 @@ const jsoner = __importStar(require("../service/storage/jsoner"));
|
|
|
57
57
|
const EventEmitter_1 = require("../common/EventEmitter");
|
|
58
58
|
const utils_1 = require("../utils");
|
|
59
59
|
const decorators_1 = require("../decorators");
|
|
60
|
+
const decimal_js_1 = require("decimal.js");
|
|
60
61
|
const utils_2 = require("../automate/engine/utils");
|
|
61
62
|
const EmbeddedTSFileLineMap = {
|
|
62
63
|
Entity: 3,
|
|
@@ -69,15 +70,14 @@ const EmbeddedTSFileOffsetMap = {
|
|
|
69
70
|
ConfigProperty: 12,
|
|
70
71
|
};
|
|
71
72
|
const SentryMessager = (0, sentry_1.sentryMonitorTSWorkerMessager)(Messager_1.default);
|
|
72
|
-
let isChangeInterface = false;
|
|
73
|
-
let actionArr = [];
|
|
74
|
-
let timer = null;
|
|
75
|
-
const __naslStdlibFileCacheMap = new Map(); // naslStdlib文件缓存
|
|
73
|
+
let isChangeInterface = false; //判断是否导入接口
|
|
74
|
+
let actionArr = []; //用于导入接口收集更改的节点
|
|
75
|
+
let timer = null; //超时器用于收集导入接口相关
|
|
76
76
|
// 联合类型切割取出类型
|
|
77
77
|
function getDisplayString2Type(displayString) {
|
|
78
|
-
const targetString = displayString.match(/value:\s(\S+)\)/)?.[1]
|
|
78
|
+
const targetString = displayString.match(/value:\s(\S+)\)/)?.[1];
|
|
79
79
|
let targetType = null;
|
|
80
|
-
if (targetString
|
|
80
|
+
if (targetString?.startsWith('nasl.core.')) {
|
|
81
81
|
targetType = targetString.slice(10);
|
|
82
82
|
}
|
|
83
83
|
// 取出匹配的内容
|
|
@@ -86,21 +86,23 @@ function getDisplayString2Type(displayString) {
|
|
|
86
86
|
displayString = displayString?.replace('T extends ', '') || '';
|
|
87
87
|
const types = reg.exec(displayString);
|
|
88
88
|
// 取出提示的类型,组成是数组
|
|
89
|
-
const typeList = types[1].split(' | ').map((item) => {
|
|
89
|
+
const typeList = (types?.[1].split(' | ') ?? []).map((item) => {
|
|
90
90
|
if (/<([^()]+)>/g.exec(item)) {
|
|
91
91
|
return item;
|
|
92
92
|
}
|
|
93
|
-
if (item.includes(' ')) {
|
|
93
|
+
else if (item.includes(' ')) {
|
|
94
94
|
const strs = item.split(' ');
|
|
95
95
|
const type = strs[strs.length - 1];
|
|
96
96
|
return type;
|
|
97
97
|
}
|
|
98
|
-
if (item.includes('.')) {
|
|
98
|
+
else if (item.includes('.')) {
|
|
99
99
|
const strs = item.split('.');
|
|
100
100
|
const type = strs[strs.length - 1];
|
|
101
101
|
return type;
|
|
102
102
|
}
|
|
103
|
-
|
|
103
|
+
else {
|
|
104
|
+
return item;
|
|
105
|
+
}
|
|
104
106
|
});
|
|
105
107
|
if (targetType) {
|
|
106
108
|
return typeList.filter((item) => item !== targetType);
|
|
@@ -109,19 +111,28 @@ function getDisplayString2Type(displayString) {
|
|
|
109
111
|
}
|
|
110
112
|
exports.getDisplayString2Type = getDisplayString2Type;
|
|
111
113
|
let NaslServer = class NaslServer {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
114
|
+
/** naslStdlib文件缓存 */
|
|
115
|
+
naslStdlibFileCacheMap = new Map();
|
|
116
|
+
messager;
|
|
117
|
+
worker;
|
|
115
118
|
/**
|
|
116
119
|
* 按道理 fileSourceMap: new Map<string, SourceMap>() 比较合理,
|
|
117
120
|
* 但是要多维护一层 vertex 增删 -> file 增删的关系问题,
|
|
118
121
|
* 先用挂在点上面,简单的方法实现,后期再考虑解耦
|
|
119
122
|
*/
|
|
120
123
|
file2NodeMap = new Map();
|
|
124
|
+
/** TS 翻译的源码 */
|
|
125
|
+
tsFiles = new Map();
|
|
126
|
+
/// #if process.env.NODE_ENV === 'development'
|
|
127
|
+
/**
|
|
128
|
+
* 调试时是否储存 ts 文件
|
|
129
|
+
*/
|
|
130
|
+
openDebugEmbedded = true;
|
|
131
|
+
/// #endif
|
|
121
132
|
elementsLogic = {};
|
|
122
133
|
// 错误日志收集
|
|
123
|
-
diagnosticManager
|
|
124
|
-
embeddedTSEmitter
|
|
134
|
+
diagnosticManager;
|
|
135
|
+
embeddedTSEmitter;
|
|
125
136
|
// 需要执行修改的文件
|
|
126
137
|
changeStackList = [];
|
|
127
138
|
filesToCheck;
|
|
@@ -187,7 +198,7 @@ let NaslServer = class NaslServer {
|
|
|
187
198
|
// 这个方法是 5.0 加入标准库的,但是这里 ts 版本是 4.x,ci 会挂,所以需要忽略
|
|
188
199
|
// @ts-ignore
|
|
189
200
|
const findLastIndex = this.changeStackList.findLastIndex((changeStackItem) => {
|
|
190
|
-
const
|
|
201
|
+
const target = changeStackItem.target;
|
|
191
202
|
const { fileNode: targetFileNode } = this.getCurrentSource(target);
|
|
192
203
|
return targetFileNode === fileNode;
|
|
193
204
|
});
|
|
@@ -198,8 +209,10 @@ let NaslServer = class NaslServer {
|
|
|
198
209
|
// 如果当前列表里有,这个文件节点,最后一个是field的话,直接return掉,不用塞这个update了
|
|
199
210
|
return;
|
|
200
211
|
}
|
|
201
|
-
|
|
202
|
-
|
|
212
|
+
else {
|
|
213
|
+
// 如果最后一项是普通的update的话,就可以去掉,后面那个会在塞过来
|
|
214
|
+
this.changeStackList.pop();
|
|
215
|
+
}
|
|
203
216
|
}
|
|
204
217
|
this.changeStackList.push(item.originEvent);
|
|
205
218
|
}
|
|
@@ -229,7 +242,7 @@ let NaslServer = class NaslServer {
|
|
|
229
242
|
}, { cache: true });
|
|
230
243
|
Object.keys(naslStdlibMap_1.default).forEach(async (libFileName) => {
|
|
231
244
|
await this.addFile({
|
|
232
|
-
file:
|
|
245
|
+
file: '/' + libFileName,
|
|
233
246
|
fileContent: naslStdlibMap_1.default[libFileName],
|
|
234
247
|
}, { cache: true });
|
|
235
248
|
});
|
|
@@ -431,6 +444,26 @@ let NaslServer = class NaslServer {
|
|
|
431
444
|
launcher.sourceMap = result.sourceMap;
|
|
432
445
|
this.file2NodeMap.set(result.filePath, launcher);
|
|
433
446
|
});
|
|
447
|
+
module.namespaces?.forEach?.((namespace) => {
|
|
448
|
+
namespace.logics.forEach((logic) => {
|
|
449
|
+
const result = logic.toEmbeddedTSFile();
|
|
450
|
+
results.push(result);
|
|
451
|
+
// sourceMap都存在目录级别内容下,在页面层级下去找
|
|
452
|
+
logic.sourceMap = result.sourceMap;
|
|
453
|
+
this.file2NodeMap.set(result.filePath, logic);
|
|
454
|
+
});
|
|
455
|
+
});
|
|
456
|
+
module?.authLogicsForCallInterface?.forEach?.((logic) => {
|
|
457
|
+
try {
|
|
458
|
+
if (!(logic instanceof concepts_1.Logic))
|
|
459
|
+
return;
|
|
460
|
+
const result = logic.toEmbeddedTSFile();
|
|
461
|
+
results.push(result);
|
|
462
|
+
logic.sourceMap = result.sourceMap;
|
|
463
|
+
this.file2NodeMap.set(result.filePath, logic);
|
|
464
|
+
}
|
|
465
|
+
catch (err) { }
|
|
466
|
+
});
|
|
434
467
|
}
|
|
435
468
|
catch (error) {
|
|
436
469
|
console.error(error);
|
|
@@ -449,7 +482,7 @@ let NaslServer = class NaslServer {
|
|
|
449
482
|
});
|
|
450
483
|
}
|
|
451
484
|
if (module instanceof concepts_1.App) {
|
|
452
|
-
module.connections
|
|
485
|
+
module.connections?.forEach?.((connection) => {
|
|
453
486
|
try {
|
|
454
487
|
const result = connection.toEmbeddedTSFile();
|
|
455
488
|
results.push(result);
|
|
@@ -459,7 +492,7 @@ let NaslServer = class NaslServer {
|
|
|
459
492
|
}
|
|
460
493
|
catch (err) { }
|
|
461
494
|
});
|
|
462
|
-
module.triggerLaunchers
|
|
495
|
+
module.triggerLaunchers?.forEach?.((triggerLauncher) => {
|
|
463
496
|
try {
|
|
464
497
|
const result = triggerLauncher.toEmbeddedTSFile();
|
|
465
498
|
results.push(result);
|
|
@@ -511,6 +544,7 @@ let NaslServer = class NaslServer {
|
|
|
511
544
|
// 其他模块的创建内容
|
|
512
545
|
app.dependencies.forEach((item) => this.contentToFile(item, results));
|
|
513
546
|
app.interfaceDependencies.forEach((item) => this.contentToFile(item, results));
|
|
547
|
+
app.integration?.connectors?.forEach((item) => this.contentToFile(item, results));
|
|
514
548
|
}
|
|
515
549
|
catch (err) {
|
|
516
550
|
console.log(err);
|
|
@@ -554,13 +588,14 @@ let NaslServer = class NaslServer {
|
|
|
554
588
|
}
|
|
555
589
|
// 缓存添加过的文件
|
|
556
590
|
cacheFile(options) {
|
|
557
|
-
|
|
591
|
+
this.naslStdlibFileCacheMap.set(options.file, options);
|
|
558
592
|
}
|
|
559
|
-
/**
|
|
593
|
+
/**u
|
|
560
594
|
* 只新增文件
|
|
561
595
|
* @param {*} files
|
|
562
596
|
*/
|
|
563
597
|
writeFiles(files) {
|
|
598
|
+
files.forEach(({ file, fileContent }) => this.tsFiles.set(file, fileContent));
|
|
564
599
|
return this.messager.requestCommand('writeFiles', files);
|
|
565
600
|
}
|
|
566
601
|
/**
|
|
@@ -569,38 +604,40 @@ let NaslServer = class NaslServer {
|
|
|
569
604
|
* @param {*} args
|
|
570
605
|
*/
|
|
571
606
|
updateFiles(args) {
|
|
607
|
+
args.outputFiles.forEach(({ file, fileContent }) => this.tsFiles.set(file, fileContent));
|
|
572
608
|
return this.messager.requestCommand('updateFiles', args);
|
|
573
609
|
}
|
|
574
610
|
/**
|
|
575
611
|
* 清除一个目录下的所有文件
|
|
576
612
|
*/
|
|
577
613
|
deleteDirectoryFiles(args) {
|
|
614
|
+
Array.from(this.tsFiles.keys())
|
|
615
|
+
.filter((key) => key.startsWith(args.directoryName))
|
|
616
|
+
.forEach((key) => this.tsFiles.delete(key));
|
|
578
617
|
return this.messager.requestCommand('deleteDirectoryFiles', args);
|
|
579
618
|
}
|
|
580
619
|
async _debugInFileStorage(node, openFiles) {
|
|
581
620
|
let app = node;
|
|
582
|
-
let openDebugEmbedded = true;
|
|
583
621
|
if (node.concept !== 'App') {
|
|
584
622
|
app = node.rootNode || node.app;
|
|
585
623
|
}
|
|
586
624
|
/// #if process.env.NODE_ENV === 'development'
|
|
587
625
|
// 首次尝试请求
|
|
588
|
-
await storage_1.default.post(
|
|
589
|
-
if (openDebugEmbedded && globalThis.window) {
|
|
626
|
+
await storage_1.default.post('/api/App/debugEmbedded?id=' + app.id, openFiles[0]).catch(() => (this.openDebugEmbedded = false));
|
|
627
|
+
if (this.openDebugEmbedded && globalThis.window) {
|
|
590
628
|
// For TS build
|
|
591
629
|
try {
|
|
592
630
|
let canDebug = true;
|
|
593
|
-
await storage_1.default.post(
|
|
631
|
+
await storage_1.default.post('/api/App/debugEmbedded?id=' + app.id, openFiles[0]).catch(() => (canDebug = false));
|
|
594
632
|
if (canDebug) {
|
|
595
633
|
await Promise.all(openFiles.map(async (file) => {
|
|
596
|
-
const res = await storage_1.default.post(
|
|
634
|
+
const res = await storage_1.default.post('/api/App/debugEmbedded?id=' + app.id, file);
|
|
597
635
|
return res.data;
|
|
598
636
|
}));
|
|
599
637
|
}
|
|
600
638
|
}
|
|
601
639
|
catch (e) {
|
|
602
|
-
//
|
|
603
|
-
openDebugEmbedded = false;
|
|
640
|
+
// ..
|
|
604
641
|
}
|
|
605
642
|
}
|
|
606
643
|
/// #endif
|
|
@@ -635,14 +672,16 @@ let NaslServer = class NaslServer {
|
|
|
635
672
|
return this._getValueSelectCompletion({
|
|
636
673
|
file: fileNode.getEmbeddedFilePath(),
|
|
637
674
|
range: {
|
|
638
|
-
line: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
639
|
-
offset: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
675
|
+
line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
|
|
676
|
+
offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character),
|
|
640
677
|
},
|
|
641
678
|
value,
|
|
642
679
|
noFilterList,
|
|
643
680
|
});
|
|
644
681
|
}
|
|
645
|
-
|
|
682
|
+
else {
|
|
683
|
+
console.log('没找到节点', node, currentSource, fileNode);
|
|
684
|
+
}
|
|
646
685
|
}
|
|
647
686
|
_getValueSelectCompletion(args) {
|
|
648
687
|
return this.messager.requestCommand('getValueSelectCompletion', args);
|
|
@@ -667,8 +706,8 @@ let NaslServer = class NaslServer {
|
|
|
667
706
|
try {
|
|
668
707
|
const quickInfo = await this._getTypeQuickinfo({
|
|
669
708
|
file: fileNode.getEmbeddedFilePath(),
|
|
670
|
-
line: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
671
|
-
offset: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
709
|
+
line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
|
|
710
|
+
offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character) + `nasl.util.C`.length,
|
|
672
711
|
});
|
|
673
712
|
if (quickInfo.responseRequired) {
|
|
674
713
|
const displayString = quickInfo?.response?.displayString || '';
|
|
@@ -686,7 +725,9 @@ let NaslServer = class NaslServer {
|
|
|
686
725
|
if (!res.length) {
|
|
687
726
|
return [];
|
|
688
727
|
}
|
|
689
|
-
|
|
728
|
+
else {
|
|
729
|
+
return [{ title: '基础类型', children: res }];
|
|
730
|
+
}
|
|
690
731
|
}
|
|
691
732
|
}
|
|
692
733
|
catch (err) {
|
|
@@ -715,8 +756,8 @@ let NaslServer = class NaslServer {
|
|
|
715
756
|
}
|
|
716
757
|
const quickInfo = await this._getTypeQuickinfo({
|
|
717
758
|
file: fileNode.getEmbeddedFilePath(),
|
|
718
|
-
line: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
719
|
-
offset: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
759
|
+
line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
|
|
760
|
+
offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character) + `new nasl.ui.`.length,
|
|
720
761
|
});
|
|
721
762
|
if (quickInfo.responseRequired) {
|
|
722
763
|
const displayString = quickInfo?.response?.displayString || '';
|
|
@@ -732,7 +773,7 @@ let NaslServer = class NaslServer {
|
|
|
732
773
|
.replace(/__name:"AStructure_\w{8}";/g, '')
|
|
733
774
|
.replace(/dataSources.([^.]+).entities.([^;]+)/g, ($1, $2, $3) => `${$3}(${$2})`);
|
|
734
775
|
}
|
|
735
|
-
if (typeStr.startsWith('{') && typeStr.endsWith('}')) {
|
|
776
|
+
else if (typeStr.startsWith('{') && typeStr.endsWith('}')) {
|
|
736
777
|
/**
|
|
737
778
|
* {
|
|
738
779
|
text: nasl.core.String;
|
|
@@ -775,8 +816,8 @@ let NaslServer = class NaslServer {
|
|
|
775
816
|
}
|
|
776
817
|
const quickInfo = await this._getTypeQuickinfo({
|
|
777
818
|
file: fileNode.getEmbeddedFilePath(),
|
|
778
|
-
line: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
779
|
-
offset: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
819
|
+
line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
|
|
820
|
+
offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character) + `new nasl.ui.`.length,
|
|
780
821
|
});
|
|
781
822
|
if (quickInfo.responseRequired) {
|
|
782
823
|
const displayString = quickInfo?.response?.displayString || '';
|
|
@@ -785,7 +826,7 @@ let NaslServer = class NaslServer {
|
|
|
785
826
|
return;
|
|
786
827
|
const types = /<([^()]+)>/g.exec(displayString);
|
|
787
828
|
const typeStr = types && types[1];
|
|
788
|
-
const
|
|
829
|
+
const app = node.app;
|
|
789
830
|
if (typeStr.includes('__name: "AStructure_')) {
|
|
790
831
|
const properties = [];
|
|
791
832
|
typeStr.replace(/([^:\s]+):\s+([^;]+);/g, ($1, name, typeKey) => {
|
|
@@ -807,7 +848,7 @@ let NaslServer = class NaslServer {
|
|
|
807
848
|
});
|
|
808
849
|
return concepts_1.TypeAnnotation.createTypeAnonymousStructure(properties);
|
|
809
850
|
}
|
|
810
|
-
if (typeStr.startsWith('structures'))
|
|
851
|
+
else if (typeStr.startsWith('structures'))
|
|
811
852
|
return app.findNodeByCompleteName(`app.${typeStr}`);
|
|
812
853
|
}
|
|
813
854
|
}
|
|
@@ -859,13 +900,15 @@ let NaslServer = class NaslServer {
|
|
|
859
900
|
return this._getSelectNextCompletion({
|
|
860
901
|
file: fileNode.getEmbeddedFilePath(),
|
|
861
902
|
range: {
|
|
862
|
-
line: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
863
|
-
offset: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
903
|
+
line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
|
|
904
|
+
offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character),
|
|
864
905
|
},
|
|
865
906
|
noFilterList,
|
|
866
907
|
});
|
|
867
908
|
}
|
|
868
|
-
|
|
909
|
+
else {
|
|
910
|
+
console.log('没找到节点', currentSource, fileNode);
|
|
911
|
+
}
|
|
869
912
|
}
|
|
870
913
|
_getSelectNextCompletion(args) {
|
|
871
914
|
return this.messager.requestCommand('getSelectNextCompletion', args);
|
|
@@ -893,14 +936,14 @@ let NaslServer = class NaslServer {
|
|
|
893
936
|
await this.IncrementalAnnotationJSON(records);
|
|
894
937
|
}
|
|
895
938
|
await Promise.all(records.map(async (record) => {
|
|
896
|
-
const
|
|
939
|
+
const node = record.node;
|
|
897
940
|
if (!node)
|
|
898
941
|
return;
|
|
899
942
|
// 先获取原来的节点先清除一下之前有异常的节点,下面重新赋值
|
|
900
943
|
const oldRecord = this.diagnosticManager.getRecord?.(record.id);
|
|
901
944
|
oldRecord?.semanticDiagnostics.forEach((item) => {
|
|
902
945
|
if (item.node) {
|
|
903
|
-
item.node.tsErrorDetail
|
|
946
|
+
delete item.node.tsErrorDetail;
|
|
904
947
|
// 如果logic中有报错就把标识置为true
|
|
905
948
|
if (item.node?.logic?.haveError) {
|
|
906
949
|
item.node.logic.haveError = false;
|
|
@@ -910,7 +953,7 @@ let NaslServer = class NaslServer {
|
|
|
910
953
|
// 清空一些状态
|
|
911
954
|
oldRecord?.suggestionDiagnostics.forEach((item) => {
|
|
912
955
|
if (item.node) {
|
|
913
|
-
item.node.tsErrorDetail
|
|
956
|
+
delete item.node.tsErrorDetail;
|
|
914
957
|
if (item.node && item.node instanceof concepts_1.Logic) {
|
|
915
958
|
item.node.isSmpty = false;
|
|
916
959
|
}
|
|
@@ -924,7 +967,7 @@ let NaslServer = class NaslServer {
|
|
|
924
967
|
if (record.node instanceof concepts_1.Logic) {
|
|
925
968
|
record?.syntaxDiagnostics.forEach((item) => {
|
|
926
969
|
const minRange = this._findMinRange(item, record.node);
|
|
927
|
-
if (minRange
|
|
970
|
+
if (minRange?.node instanceof concepts_1.OqlQueryComponent) {
|
|
928
971
|
if (item.text === 'Invalid character.') {
|
|
929
972
|
record.semanticDiagnostics.push(item);
|
|
930
973
|
}
|
|
@@ -947,7 +990,7 @@ let NaslServer = class NaslServer {
|
|
|
947
990
|
record.suggestionDiagnostics.push(diagnostic);
|
|
948
991
|
return null;
|
|
949
992
|
}
|
|
950
|
-
if (currentNode.concept === 'OqlQueryComponent') {
|
|
993
|
+
else if (currentNode.concept === 'OqlQueryComponent') {
|
|
951
994
|
// OQL别名错误降级为警告
|
|
952
995
|
if (diagnostic.originalDiagnostic && diagnostic.originalDiagnostic?.text.includes('__OQL_ALIAS_WARNING__')) {
|
|
953
996
|
// 重置 图标和错误等级
|
|
@@ -991,7 +1034,7 @@ let NaslServer = class NaslServer {
|
|
|
991
1034
|
return diag;
|
|
992
1035
|
// 一些已知警告的单独处理
|
|
993
1036
|
}
|
|
994
|
-
if ([
|
|
1037
|
+
else if ([
|
|
995
1038
|
`'__LogicEmpty' is declared but its value is never read.`,
|
|
996
1039
|
`'__destinationEmpty__' is declared but its value is never read.`,
|
|
997
1040
|
`'__devConfigValueEmpty' is declared but its value is never read.`,
|
|
@@ -1000,7 +1043,7 @@ let NaslServer = class NaslServer {
|
|
|
1000
1043
|
].includes(diag.text)) {
|
|
1001
1044
|
return this._resolveDiagnostic(diag, record.node, record);
|
|
1002
1045
|
}
|
|
1003
|
-
if (diag.text.includes(` is declared but its value is never read.`)) {
|
|
1046
|
+
else if (diag.text.includes(` is declared but its value is never read.`)) {
|
|
1004
1047
|
// 局部变量和输入变量未使用的警告
|
|
1005
1048
|
const fromModule = record.node.parentNode.concept === 'Module';
|
|
1006
1049
|
const fromConnector = record.node.parentNode.concept === 'Connector';
|
|
@@ -1028,7 +1071,7 @@ let NaslServer = class NaslServer {
|
|
|
1028
1071
|
};
|
|
1029
1072
|
return diagnostic;
|
|
1030
1073
|
}
|
|
1031
|
-
if (minRange.node instanceof concepts_1.Variable) {
|
|
1074
|
+
else if (minRange.node instanceof concepts_1.Variable) {
|
|
1032
1075
|
const diagnostic = {
|
|
1033
1076
|
node: minRange.node,
|
|
1034
1077
|
severity: 'warning',
|
|
@@ -1209,7 +1252,7 @@ let NaslServer = class NaslServer {
|
|
|
1209
1252
|
const typeAnnotation = item.__TypeAnnotation;
|
|
1210
1253
|
// 仅处理有类型的情况,返回类型为void的情况由其他地方处理成报错
|
|
1211
1254
|
if (typeAnnotation) {
|
|
1212
|
-
const
|
|
1255
|
+
const sortedTypeKey = typeAnnotation.sortedTypeKey;
|
|
1213
1256
|
if (!typeAnnotationMap[sortedTypeKey]) {
|
|
1214
1257
|
typeAnnotationMap[sortedTypeKey] = {
|
|
1215
1258
|
typeAnnotation,
|
|
@@ -1263,7 +1306,7 @@ let NaslServer = class NaslServer {
|
|
|
1263
1306
|
const typeAnnotation = value.__TypeAnnotation;
|
|
1264
1307
|
// 仅处理有类型的情况,返回类型为void的情况由其他地方处理成报错
|
|
1265
1308
|
if (typeAnnotation) {
|
|
1266
|
-
const
|
|
1309
|
+
const sortedTypeKey = typeAnnotation.sortedTypeKey;
|
|
1267
1310
|
if (!typeAnnotationMap[sortedTypeKey]) {
|
|
1268
1311
|
typeAnnotationMap[sortedTypeKey] = {
|
|
1269
1312
|
typeAnnotation,
|
|
@@ -1361,6 +1404,15 @@ let NaslServer = class NaslServer {
|
|
|
1361
1404
|
this.baseNodeAssignmentTsError(variable, diagnostic);
|
|
1362
1405
|
diagnostics.push(diagnostic);
|
|
1363
1406
|
}
|
|
1407
|
+
else if (variable.__TypeAnnotation?.hasSystemType(node.app)) {
|
|
1408
|
+
const diagnostic = {
|
|
1409
|
+
node,
|
|
1410
|
+
severity: 'warning',
|
|
1411
|
+
message: `数据查询中不可以使用或包含系统类型!当前类型:${variable.__TypeAnnotation?.typeChineseTitle}。`,
|
|
1412
|
+
};
|
|
1413
|
+
this.baseNodeAssignmentTsError(variable, diagnostic);
|
|
1414
|
+
diagnostics.push(diagnostic);
|
|
1415
|
+
}
|
|
1364
1416
|
});
|
|
1365
1417
|
}
|
|
1366
1418
|
});
|
|
@@ -1535,17 +1587,17 @@ let NaslServer = class NaslServer {
|
|
|
1535
1587
|
catch (err) {
|
|
1536
1588
|
console.log(err);
|
|
1537
1589
|
}
|
|
1538
|
-
if (!jsCode.
|
|
1590
|
+
if (!jsCode.startsWith(`${node.name} = `))
|
|
1539
1591
|
return;
|
|
1540
1592
|
// 页面局部变量
|
|
1541
1593
|
if (node instanceof concepts_1.Variable && node.parentNode instanceof concepts_1.View) {
|
|
1542
1594
|
// 跟页面局部变量无关的赋值过滤
|
|
1543
|
-
if (!jsCode.
|
|
1595
|
+
if (!jsCode.startsWith(`this.${node.name} = `))
|
|
1544
1596
|
return;
|
|
1545
1597
|
// 直接赋值 logic 内局部变量、输入参数直接提示系统无法推断类型
|
|
1546
|
-
if (nodeIn.logic?.params.find((param) => jsCode.
|
|
1547
|
-
nodeIn.logic?.virtualParams.find((vParam) => jsCode.
|
|
1548
|
-
nodeIn.logic?.variables.find((variable) => jsCode.
|
|
1598
|
+
if (nodeIn.logic?.params.find((param) => jsCode.startsWith(param.name)) ||
|
|
1599
|
+
nodeIn.logic?.virtualParams.find((vParam) => jsCode.startsWith(vParam.name)) ||
|
|
1600
|
+
nodeIn.logic?.variables.find((variable) => jsCode.startsWith(variable.name))) {
|
|
1549
1601
|
if (!nodeIn.tsErrorDetail) {
|
|
1550
1602
|
const diagnostic = {
|
|
1551
1603
|
node: nodeIn,
|
|
@@ -1585,17 +1637,17 @@ let NaslServer = class NaslServer {
|
|
|
1585
1637
|
if (Array.isArray(node.bindExpressions)) {
|
|
1586
1638
|
const exp = node.bindExpressions.find((bindExpression) => this.hasComponentLogics(bindExpression));
|
|
1587
1639
|
if (exp) {
|
|
1588
|
-
//
|
|
1589
|
-
//
|
|
1590
|
-
//
|
|
1640
|
+
//const element: any = node.getAncestor('ViewElement');
|
|
1641
|
+
//const api = config.allNodesAPI[element?.tag];
|
|
1642
|
+
//const attr = api?.attrs?.find?.((attr) => {
|
|
1591
1643
|
// return attr.name === node.name;
|
|
1592
|
-
//
|
|
1644
|
+
//});
|
|
1593
1645
|
const map = {
|
|
1594
1646
|
BindAttribute: '属性',
|
|
1595
1647
|
BindDirective: '指令',
|
|
1596
1648
|
BindStyle: '样式属性',
|
|
1597
1649
|
};
|
|
1598
|
-
|
|
1650
|
+
//“${attr?.title || node.title || node.name}”
|
|
1599
1651
|
const diagnostic = {
|
|
1600
1652
|
node,
|
|
1601
1653
|
severity: 'error',
|
|
@@ -1620,6 +1672,20 @@ let NaslServer = class NaslServer {
|
|
|
1620
1672
|
node.tsErrorDetail = diagnostic;
|
|
1621
1673
|
}
|
|
1622
1674
|
}
|
|
1675
|
+
else if (node instanceof concepts_1.Identifier) {
|
|
1676
|
+
// 变量如果选到了页面,因为ts会找到兄弟的同名变量,所以需要新增报错,通过类型来判断加不加
|
|
1677
|
+
// https://projectmanage.netease-official.lcap.163yun.com/dashboard/BugDetail?id=2696136968961024
|
|
1678
|
+
if (node.name && node.__TypeAnnotation?.typeKind === 'reference' && node.__TypeAnnotation?.typeNamespace?.endsWith('views')) {
|
|
1679
|
+
const errorMsg = `找不到 ${node.name}。`;
|
|
1680
|
+
const diagnostic = {
|
|
1681
|
+
node,
|
|
1682
|
+
severity: 'error',
|
|
1683
|
+
message: errorMsg,
|
|
1684
|
+
};
|
|
1685
|
+
diagnostics.push(diagnostic);
|
|
1686
|
+
node.tsErrorDetail = diagnostic;
|
|
1687
|
+
}
|
|
1688
|
+
}
|
|
1623
1689
|
else {
|
|
1624
1690
|
this.checkNodeError(node, diagnostics);
|
|
1625
1691
|
}
|
|
@@ -1767,7 +1833,7 @@ let NaslServer = class NaslServer {
|
|
|
1767
1833
|
const { default: defaultVal } = precisionOption || {};
|
|
1768
1834
|
const precision = databaseTypeAnnotation ? databaseTypeAnnotation.arguments?.precision : defaultVal;
|
|
1769
1835
|
const ruleScale = typeAnnotation?.ruleMap?.scale;
|
|
1770
|
-
const scale = ruleScale !== undefined ?
|
|
1836
|
+
const scale = ruleScale !== undefined ? ruleScale + '' : '';
|
|
1771
1837
|
let ensureScale = true;
|
|
1772
1838
|
switch (typeName) {
|
|
1773
1839
|
case 'String': {
|
|
@@ -1797,6 +1863,17 @@ let NaslServer = class NaslServer {
|
|
|
1797
1863
|
}
|
|
1798
1864
|
});
|
|
1799
1865
|
}
|
|
1866
|
+
else if (rulesMap?.maxLength && +dataBaseTyp?.max && +rulesMap.maxLength > +dataBaseTyp.max) {
|
|
1867
|
+
// 判断当前 最大长度 是不是比 数据库类型的最大长度 长,超过就报错
|
|
1868
|
+
const errorMsg = `最大长度超出存储长度`;
|
|
1869
|
+
const diag = {
|
|
1870
|
+
node: property,
|
|
1871
|
+
severity: 'warning',
|
|
1872
|
+
message: errorMsg,
|
|
1873
|
+
};
|
|
1874
|
+
diagnostics.push(diag);
|
|
1875
|
+
typeAnnotationErrorDetail.errorPos.maxLength = errorMsg;
|
|
1876
|
+
}
|
|
1800
1877
|
}
|
|
1801
1878
|
case 'Long': {
|
|
1802
1879
|
const { min: ruleMin, max: ruleMax } = dataBaseTyp;
|
|
@@ -1866,7 +1943,7 @@ let NaslServer = class NaslServer {
|
|
|
1866
1943
|
// 储存小数部分
|
|
1867
1944
|
const memoryScaleStr = memoryStr.slice(0, +(scale || '0'));
|
|
1868
1945
|
// 储存绝对值
|
|
1869
|
-
const memoryAbsVal = memoryIntAbsStr + (memoryScaleStr ?
|
|
1946
|
+
const memoryAbsVal = memoryIntAbsStr + (memoryScaleStr ? '.' + memoryScaleStr : '');
|
|
1870
1947
|
const decimalMemoryAbsVal = new decimal_js_1.Decimal(memoryAbsVal);
|
|
1871
1948
|
[
|
|
1872
1949
|
{
|
|
@@ -1934,7 +2011,7 @@ let NaslServer = class NaslServer {
|
|
|
1934
2011
|
diagnostics.push(diagnostic);
|
|
1935
2012
|
}
|
|
1936
2013
|
fileNode?.sourceMap.forEach((value, node) => {
|
|
1937
|
-
//
|
|
2014
|
+
//OQL支持返回复合类型数据了
|
|
1938
2015
|
// SqlQueryComponent内部返回值类型,如果是嵌套的就需要报错
|
|
1939
2016
|
// if ((node instanceof OqlQueryComponent || node instanceof SqlQueryComponent) && (node as SqlQueryComponent).getTypeBanError()) {
|
|
1940
2017
|
// const diagnostic = {
|
|
@@ -1950,7 +2027,7 @@ let NaslServer = class NaslServer {
|
|
|
1950
2027
|
const typeAnnotation = (0, formatTsUtils_1.type2TypeAnnotation)(node.__nodeType);
|
|
1951
2028
|
if (!node.typeAnnotation && typeAnnotation) {
|
|
1952
2029
|
if (typeAnnotation.typeName === 'List' && typeAnnotation.typeKind === 'generic') {
|
|
1953
|
-
const
|
|
2030
|
+
const typeArguments = typeAnnotation.typeArguments;
|
|
1954
2031
|
if (typeArguments.length && typeArguments[0].isComplexType()) {
|
|
1955
2032
|
const diagnostic = {
|
|
1956
2033
|
node,
|
|
@@ -1976,7 +2053,7 @@ let NaslServer = class NaslServer {
|
|
|
1976
2053
|
catch (err) {
|
|
1977
2054
|
console.log(err);
|
|
1978
2055
|
}
|
|
1979
|
-
if (jsCode.
|
|
2056
|
+
if (jsCode.startsWith(`${node.name} = `)) {
|
|
1980
2057
|
used = true;
|
|
1981
2058
|
if (!nodeIn.tsErrorDetail) {
|
|
1982
2059
|
const diagnostic = {
|
|
@@ -2000,7 +2077,7 @@ let NaslServer = class NaslServer {
|
|
|
2000
2077
|
diagnostics.push(diagnostic);
|
|
2001
2078
|
}
|
|
2002
2079
|
else {
|
|
2003
|
-
node.tsErrorDetail
|
|
2080
|
+
delete node.tsErrorDetail;
|
|
2004
2081
|
}
|
|
2005
2082
|
}
|
|
2006
2083
|
this.checkNodeError(node, diagnostics);
|
|
@@ -2011,7 +2088,6 @@ let NaslServer = class NaslServer {
|
|
|
2011
2088
|
this.checkNodeError(node, diagnostics);
|
|
2012
2089
|
});
|
|
2013
2090
|
}
|
|
2014
|
-
console.timeEnd('_attachDiagnostics');
|
|
2015
2091
|
return diagnostics;
|
|
2016
2092
|
}
|
|
2017
2093
|
checkNodeError(node, diagnostics) {
|
|
@@ -2157,6 +2233,17 @@ let NaslServer = class NaslServer {
|
|
|
2157
2233
|
node.tsErrorDetail = diagnostic;
|
|
2158
2234
|
diagnostics.push(diagnostic);
|
|
2159
2235
|
}
|
|
2236
|
+
if (node instanceof concepts_1.ForEachStatement && !node.end && node.each) {
|
|
2237
|
+
if (!['List'].includes(node.each.__TypeAnnotation?.typeName)) {
|
|
2238
|
+
const diagnostic = {
|
|
2239
|
+
node,
|
|
2240
|
+
severity: 'error',
|
|
2241
|
+
message: `ForEac1:循环列表:参数类型不匹配!结束值自动推导失败。`,
|
|
2242
|
+
};
|
|
2243
|
+
node.tsErrorDetail = diagnostic;
|
|
2244
|
+
diagnostics.push(diagnostic);
|
|
2245
|
+
}
|
|
2246
|
+
}
|
|
2160
2247
|
/**
|
|
2161
2248
|
* 如果节点是内置函数
|
|
2162
2249
|
* 穷举在线上的情况,不在线上就void报错, callinterface 因为原来有报错,所以就忽略掉
|
|
@@ -2235,7 +2322,7 @@ let NaslServer = class NaslServer {
|
|
|
2235
2322
|
if (excludeList.includes(leftType.sortedTypeKey) && excludeList.includes(rightType.sortedTypeKey)) {
|
|
2236
2323
|
return null;
|
|
2237
2324
|
}
|
|
2238
|
-
if (excludeList2.includes(leftType.sortedTypeKey) || excludeList2.includes(rightType.sortedTypeKey)) {
|
|
2325
|
+
else if (excludeList2.includes(leftType.sortedTypeKey) || excludeList2.includes(rightType.sortedTypeKey)) {
|
|
2239
2326
|
return null;
|
|
2240
2327
|
}
|
|
2241
2328
|
const diagnostic = {
|
|
@@ -2272,7 +2359,7 @@ let NaslServer = class NaslServer {
|
|
|
2272
2359
|
if (typeKeyArr[0] === 'apis') {
|
|
2273
2360
|
const structureName = typeKeyArr[3];
|
|
2274
2361
|
const moduleName = typeKeyArr[1];
|
|
2275
|
-
const
|
|
2362
|
+
const app = typeAnnotation.upperNode.app;
|
|
2276
2363
|
if (!app) {
|
|
2277
2364
|
return null;
|
|
2278
2365
|
}
|
|
@@ -2289,13 +2376,15 @@ let NaslServer = class NaslServer {
|
|
|
2289
2376
|
}
|
|
2290
2377
|
return null;
|
|
2291
2378
|
}
|
|
2292
|
-
|
|
2379
|
+
else {
|
|
2380
|
+
return diag;
|
|
2381
|
+
}
|
|
2293
2382
|
});
|
|
2294
2383
|
if (actionArr.length) {
|
|
2295
2384
|
if (timer)
|
|
2296
2385
|
return;
|
|
2297
2386
|
timer = window.setTimeout(() => {
|
|
2298
|
-
const
|
|
2387
|
+
const app = actionArr[0].target.app;
|
|
2299
2388
|
app.emit('collect:start', {
|
|
2300
2389
|
actionMsg: '设置导入接口数据类型错误',
|
|
2301
2390
|
});
|
|
@@ -2357,24 +2446,27 @@ let NaslServer = class NaslServer {
|
|
|
2357
2446
|
*/
|
|
2358
2447
|
_findMinRange(diagnostic, fileNode) {
|
|
2359
2448
|
let minRange;
|
|
2360
|
-
const
|
|
2449
|
+
const sourceMap = fileNode.sourceMap;
|
|
2450
|
+
// 是否找到了行内准确的,是的话,就不走多行的
|
|
2451
|
+
let haveLineNode = false;
|
|
2361
2452
|
for (const [node, item] of sourceMap.entries()) {
|
|
2362
2453
|
/**
|
|
2363
2454
|
* 当前内容的开始行 <= 诊断开始的行 &&
|
|
2364
2455
|
* 当前内容的结束行 >= 诊断结束的行
|
|
2365
2456
|
*/
|
|
2366
|
-
if ((0, translator_1.lsp2tspNumber)(item.
|
|
2457
|
+
if ((0, translator_1.lsp2tspNumber)(item.start.line) <= diagnostic.start.line && (0, translator_1.lsp2tspNumber)(item.end.line) >= diagnostic.end.line) {
|
|
2367
2458
|
// 如果找到某一行
|
|
2368
|
-
if ((0, translator_1.lsp2tspNumber)(item.
|
|
2459
|
+
if ((0, translator_1.lsp2tspNumber)(item.start.line) === diagnostic.start.line && (0, translator_1.lsp2tspNumber)(item.end.line) === diagnostic.end.line) {
|
|
2369
2460
|
// 在行的范围但是又不在列的范围,不用给默认值,给了反而不对,
|
|
2370
2461
|
// 需要在列的范围内
|
|
2371
|
-
if ((0, translator_1.lsp2tspNumber)(item.
|
|
2372
|
-
(0, translator_1.lsp2tspNumber)(item.
|
|
2462
|
+
if ((0, translator_1.lsp2tspNumber)(item.start.character) <= diagnostic.start.offset &&
|
|
2463
|
+
(0, translator_1.lsp2tspNumber)(item.end.character) >= diagnostic.end.offset) {
|
|
2373
2464
|
// 比列更靠近 ,满足条件且长度更短
|
|
2374
2465
|
// 如果先走到下面有一个默认值了就像在if for里面有个表达式
|
|
2375
2466
|
// if for的内容也是包括当前的所以会重新赋值
|
|
2376
|
-
if (!minRange || item.
|
|
2467
|
+
if (!minRange || (item.end.offset - item.start.offset) < (minRange.item.end.offset - minRange.item.start.offset)) {
|
|
2377
2468
|
minRange = { item, node };
|
|
2469
|
+
haveLineNode = true;
|
|
2378
2470
|
}
|
|
2379
2471
|
}
|
|
2380
2472
|
}
|
|
@@ -2384,28 +2476,32 @@ let NaslServer = class NaslServer {
|
|
|
2384
2476
|
if (!minRange) {
|
|
2385
2477
|
minRange = { node, item };
|
|
2386
2478
|
}
|
|
2387
|
-
else if (
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2392
|
-
|
|
2393
|
-
|
|
2394
|
-
}
|
|
2395
|
-
else if (diagnostic.start.offset < (0, translator_1.lsp2tspNumber)(minRange.item.range.start.character)) {
|
|
2396
|
-
minRange = { node, item };
|
|
2397
|
-
}
|
|
2398
|
-
}
|
|
2399
|
-
else if (item.range.end.line - item.range.start.line <= minRange.item.range.end.line - minRange.item.range.start.line) {
|
|
2400
|
-
// 行都一致 ,比较列
|
|
2401
|
-
if (minRange.item.range.start.line === item.range.start.line && minRange.item.range.end.line === item.range.end.line) {
|
|
2402
|
-
// 如果两个起始和结束的行都一样,那么就比较开始列, 要比原来大,说明更精准
|
|
2403
|
-
if (item.range.start.character > minRange.item.range.start.character) {
|
|
2479
|
+
else if (!haveLineNode) {
|
|
2480
|
+
if ((0, translator_1.lsp2tspNumber)(item.start.line) === diagnostic.start.line &&
|
|
2481
|
+
diagnostic.start.offset >= (0, translator_1.lsp2tspNumber)(item.start.character)) {
|
|
2482
|
+
// 如果当前遍历的内容的行和列都 小于之前的, 而且是有效的
|
|
2483
|
+
// 如果两个内容位置行数是一样的,就比较下找到内容的位置信息
|
|
2484
|
+
// 找到的内容的开始位置, 要大于申明内容开始的位置,要不就不包含在内了
|
|
2485
|
+
if (diagnostic.start.offset - item.start.character <= diagnostic.start.offset - minRange.item.start.character) {
|
|
2404
2486
|
minRange = { node, item };
|
|
2405
2487
|
}
|
|
2488
|
+
else {
|
|
2489
|
+
if (diagnostic.start.offset < (0, translator_1.lsp2tspNumber)(minRange.item.start.character)) {
|
|
2490
|
+
minRange = { node, item };
|
|
2491
|
+
}
|
|
2492
|
+
}
|
|
2406
2493
|
}
|
|
2407
|
-
else {
|
|
2408
|
-
|
|
2494
|
+
else if (item.end.line - item.start.line <= minRange.item.end.line - minRange.item.start.line) {
|
|
2495
|
+
// 行都一致 ,比较列
|
|
2496
|
+
if (minRange.item.start.line === item.start.line && minRange.item.end.line === item.end.line) {
|
|
2497
|
+
// 如果两个起始和结束的行都一样,那么就比较开始列, 要比原来大,说明更精准
|
|
2498
|
+
if (item.start.character > minRange.item.start.character) {
|
|
2499
|
+
minRange = { node, item };
|
|
2500
|
+
}
|
|
2501
|
+
}
|
|
2502
|
+
else {
|
|
2503
|
+
minRange = { node, item };
|
|
2504
|
+
}
|
|
2409
2505
|
}
|
|
2410
2506
|
}
|
|
2411
2507
|
}
|
|
@@ -2433,26 +2529,28 @@ let NaslServer = class NaslServer {
|
|
|
2433
2529
|
if (currentSource) {
|
|
2434
2530
|
const newRefs = await this.references({
|
|
2435
2531
|
file: fileNode.getEmbeddedFilePath(),
|
|
2436
|
-
line: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
2437
|
-
offset: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
2532
|
+
line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
|
|
2533
|
+
offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character),
|
|
2438
2534
|
});
|
|
2439
2535
|
refsList = [...newRefs.refs];
|
|
2440
2536
|
}
|
|
2441
|
-
else
|
|
2442
|
-
|
|
2443
|
-
|
|
2444
|
-
|
|
2445
|
-
|
|
2446
|
-
|
|
2447
|
-
|
|
2448
|
-
|
|
2449
|
-
|
|
2450
|
-
|
|
2451
|
-
|
|
2452
|
-
|
|
2453
|
-
|
|
2454
|
-
|
|
2455
|
-
|
|
2537
|
+
else {
|
|
2538
|
+
if (node instanceof concepts_1.Module) {
|
|
2539
|
+
const lists = node.logics || node.structures || node.enums;
|
|
2540
|
+
const moduleName = fileNode.getEmbeddedFilePath();
|
|
2541
|
+
if (lists.length) {
|
|
2542
|
+
const item = lists[0];
|
|
2543
|
+
const { fileNode } = this.getCurrentSource(item);
|
|
2544
|
+
if (fileNode) {
|
|
2545
|
+
const newRefs = await this.references({
|
|
2546
|
+
file: fileNode.getEmbeddedFilePath(),
|
|
2547
|
+
line: 1,
|
|
2548
|
+
offset: 22, //固定的位置,module的位置信息
|
|
2549
|
+
});
|
|
2550
|
+
refsList = newRefs.refs.filter((item) => !item.file.startsWith(moduleName));
|
|
2551
|
+
// 多塞一个 ,删除的时候就有值了, 上面过滤了之后可能是空的
|
|
2552
|
+
refsList.unshift(newRefs.refs[0]);
|
|
2553
|
+
}
|
|
2456
2554
|
}
|
|
2457
2555
|
}
|
|
2458
2556
|
}
|
|
@@ -2475,7 +2573,7 @@ let NaslServer = class NaslServer {
|
|
|
2475
2573
|
const entity = this.file2NodeMap.get(item.file);
|
|
2476
2574
|
const { currentSource } = this.getCurrentSource(entity);
|
|
2477
2575
|
// 42 11个函数的总行数
|
|
2478
|
-
if (item.end.line < currentSource.
|
|
2576
|
+
if (item.end.line < currentSource.end.line - 42 && item.start.line > 1) {
|
|
2479
2577
|
flag = true;
|
|
2480
2578
|
}
|
|
2481
2579
|
}
|
|
@@ -2505,28 +2603,31 @@ let NaslServer = class NaslServer {
|
|
|
2505
2603
|
callQueryComponentTypeAnnotation = key;
|
|
2506
2604
|
}
|
|
2507
2605
|
});
|
|
2508
|
-
const { currentSource: qcTypeAnnotationCurrentSource, fileNode } = callQueryComponentTypeAnnotation.getCurrentSource();
|
|
2509
|
-
const { currentSource: logicCurrentSource } = fileNode.getCurrentSource();
|
|
2606
|
+
const { currentSource: qcTypeAnnotationCurrentSource, fileNode: qcTypeCurrentFileNode } = callQueryComponentTypeAnnotation.getCurrentSource();
|
|
2607
|
+
const { currentSource: logicCurrentSource, fileNode: logicCurrentFileNode } = fileNode.getCurrentSource();
|
|
2510
2608
|
const aggregateLength = callQueryComponent.select.selectAggregateElements.filter((item) => item.aggregateName && item.asName).length;
|
|
2511
2609
|
const groupByLength = callQueryComponent.groupBy.filter((item) => item.groupElement?.propertyName && item.groupElement.asName).length;
|
|
2512
2610
|
if (!groupByLength && !aggregateLength && callQueryComponentTypeAnnotation.typeKind === 'anonymousStructure') {
|
|
2513
2611
|
// 拿到 List 的泛型(匿名数据结构)的所有属性
|
|
2514
|
-
const
|
|
2612
|
+
const properties = callQueryComponentTypeAnnotation.properties[0].typeAnnotation.typeArguments[0].properties;
|
|
2515
2613
|
const targetProperty = properties.find((p) => p.name === utils.firstLowerCase(node.name));
|
|
2516
2614
|
if (!targetProperty) {
|
|
2517
2615
|
continue;
|
|
2518
2616
|
}
|
|
2519
2617
|
const { currentSource: propertyTypeCurrentSource } = targetProperty.typeAnnotation.getCurrentSource();
|
|
2520
2618
|
// 减去 ": " 2个字符、减去属性名长度
|
|
2521
|
-
const propertyCharacter = propertyTypeCurrentSource.
|
|
2522
|
-
const propertyOffset = propertyCharacter - qcTypeAnnotationCurrentSource.
|
|
2523
|
-
const
|
|
2524
|
-
const
|
|
2619
|
+
const propertyCharacter = propertyTypeCurrentSource.start.character - 2 - targetProperty.name.length;
|
|
2620
|
+
const propertyOffset = propertyCharacter - qcTypeAnnotationCurrentSource.start.character;
|
|
2621
|
+
const qcTypeCurrentFilePath = qcTypeCurrentFileNode.getEmbeddedFilePath();
|
|
2622
|
+
const qcTypeAnnotationCurrentCode = this.getNodeCode(qcTypeCurrentFileNode, qcTypeAnnotationCurrentSource);
|
|
2623
|
+
const logicCurrentCode = this.getNodeCode(qcTypeCurrentFileNode, logicCurrentSource);
|
|
2624
|
+
const qcTypeAnnotationOffset = logicCurrentCode.indexOf(qcTypeAnnotationCurrentCode);
|
|
2625
|
+
const declarationCodeArr = logicCurrentCode.slice(0, qcTypeAnnotationOffset).split('\n');
|
|
2525
2626
|
const line = declarationCodeArr.length - 1;
|
|
2526
2627
|
const character = declarationCodeArr[declarationCodeArr.length - 1].length;
|
|
2527
2628
|
// eslint-disable-next-line no-await-in-loop
|
|
2528
2629
|
const newRefs = await this.references({
|
|
2529
|
-
file:
|
|
2630
|
+
file: qcTypeCurrentFilePath,
|
|
2530
2631
|
line: line + 2,
|
|
2531
2632
|
offset: character + 1 + propertyOffset,
|
|
2532
2633
|
});
|
|
@@ -2552,21 +2653,21 @@ let NaslServer = class NaslServer {
|
|
|
2552
2653
|
const { currentSource } = this.getCurrentSource(logicNode);
|
|
2553
2654
|
const parentRefs = await this.references({
|
|
2554
2655
|
file: fileNode.getEmbeddedFilePath(),
|
|
2555
|
-
line: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
2556
|
-
offset: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
2656
|
+
line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
|
|
2657
|
+
offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character),
|
|
2557
2658
|
});
|
|
2558
2659
|
refsList = [...refsList, ...parentRefs.refs];
|
|
2559
2660
|
}
|
|
2560
2661
|
// 如果是参数修改, 就需要把logic的引用 都查找出来就需要把他的父级的引用全部查找出来
|
|
2561
2662
|
if (node instanceof concepts_1.Param && (node.parentNode instanceof concepts_1.View || node.parentNode instanceof concepts_1.Process)) {
|
|
2562
2663
|
const viewNode = node.parentNode;
|
|
2563
|
-
const { currentSource } = this.getCurrentSource(viewNode);
|
|
2564
|
-
const
|
|
2664
|
+
const { currentSource, fileNode } = this.getCurrentSource(viewNode);
|
|
2665
|
+
const code = this.getNodeCode(fileNode, currentSource);
|
|
2565
2666
|
const viewIndex = code.indexOf(' {');
|
|
2566
2667
|
const viewRefs = await this.references({
|
|
2567
2668
|
file: fileNode.getEmbeddedFilePath(),
|
|
2568
|
-
line: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
2569
|
-
offset: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
2669
|
+
line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
|
|
2670
|
+
offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character + viewIndex),
|
|
2570
2671
|
});
|
|
2571
2672
|
let filterViewRefs = [];
|
|
2572
2673
|
if (node.parentNode instanceof concepts_1.View) {
|
|
@@ -2590,8 +2691,8 @@ let NaslServer = class NaslServer {
|
|
|
2590
2691
|
// const viewIndex = code.indexOf(' {');
|
|
2591
2692
|
// const viewRefs = await naslServer.references({
|
|
2592
2693
|
// file: (fileNode as FileNode).getEmbeddedFilePath(),
|
|
2593
|
-
// line: lsp2tspNumber(currentSource.
|
|
2594
|
-
// offset: lsp2tspNumber(currentSource.
|
|
2694
|
+
// line: lsp2tspNumber(currentSource.start.line),
|
|
2695
|
+
// offset: lsp2tspNumber(currentSource.start.character + viewIndex),
|
|
2595
2696
|
// });
|
|
2596
2697
|
// refsList = [...viewRefs.refs];
|
|
2597
2698
|
// }
|
|
@@ -2600,14 +2701,14 @@ let NaslServer = class NaslServer {
|
|
|
2600
2701
|
*/
|
|
2601
2702
|
if (node instanceof concepts_1.ViewElement) {
|
|
2602
2703
|
if (currentSource) {
|
|
2603
|
-
const
|
|
2704
|
+
const code = this.getNodeCode(fileNode, currentSource);
|
|
2604
2705
|
const prefix = '__elements.';
|
|
2605
2706
|
const prefixIndex = code.indexOf(prefix) !== -1 ? code.indexOf(prefix) : 0;
|
|
2606
2707
|
const methodsNameIndex = prefixIndex + prefix.length;
|
|
2607
2708
|
const methods = await this.references({
|
|
2608
2709
|
file: fileNode.getEmbeddedFilePath(),
|
|
2609
|
-
line: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
2610
|
-
offset: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
2710
|
+
line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
|
|
2711
|
+
offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character + methodsNameIndex),
|
|
2611
2712
|
});
|
|
2612
2713
|
const methodRefs = [];
|
|
2613
2714
|
methods.refs.forEach((item) => {
|
|
@@ -2625,7 +2726,7 @@ let NaslServer = class NaslServer {
|
|
|
2625
2726
|
}
|
|
2626
2727
|
if (node instanceof concepts_1.Process) {
|
|
2627
2728
|
if (currentSource) {
|
|
2628
|
-
const
|
|
2729
|
+
const code = this.getNodeCode(fileNode, currentSource);
|
|
2629
2730
|
const prefix = '__ProcessIdentification__';
|
|
2630
2731
|
let positions = [];
|
|
2631
2732
|
let pos = code.indexOf(prefix);
|
|
@@ -2638,8 +2739,8 @@ let NaslServer = class NaslServer {
|
|
|
2638
2739
|
positions = positions.map((position) => code.indexOf('const', position + prefix.length));
|
|
2639
2740
|
const promises = positions.map((item) => this.references({
|
|
2640
2741
|
file: fileNode.getEmbeddedFilePath(),
|
|
2641
|
-
line: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
2642
|
-
offset: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
2742
|
+
line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
|
|
2743
|
+
offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character + item),
|
|
2643
2744
|
}));
|
|
2644
2745
|
const results = await Promise.all(promises);
|
|
2645
2746
|
results.forEach((constRefs) => {
|
|
@@ -2648,9 +2749,9 @@ let NaslServer = class NaslServer {
|
|
|
2648
2749
|
}
|
|
2649
2750
|
}
|
|
2650
2751
|
if ((node instanceof concepts_1.Param || node instanceof concepts_1.Return) && node.parentNode instanceof concepts_1.Process) {
|
|
2651
|
-
const { currentSource } = this.getCurrentSource(node.parentNode);
|
|
2752
|
+
const { currentSource, fileNode } = this.getCurrentSource(node.parentNode);
|
|
2652
2753
|
if (currentSource) {
|
|
2653
|
-
const
|
|
2754
|
+
const code = this.getNodeCode(fileNode, currentSource);
|
|
2654
2755
|
const prefix = '__ProcessIdentification__';
|
|
2655
2756
|
const positions = [];
|
|
2656
2757
|
let pos = code.indexOf(prefix);
|
|
@@ -2667,8 +2768,8 @@ let NaslServer = class NaslServer {
|
|
|
2667
2768
|
// 拿到标识下定义的参数名字
|
|
2668
2769
|
const promises = positions.map((item) => this.references({
|
|
2669
2770
|
file: fileNode.getEmbeddedFilePath(),
|
|
2670
|
-
line: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
2671
|
-
offset: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
2771
|
+
line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
|
|
2772
|
+
offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character + item),
|
|
2672
2773
|
}));
|
|
2673
2774
|
const results = await Promise.all(promises);
|
|
2674
2775
|
results.forEach((constRefs) => {
|
|
@@ -2678,7 +2779,7 @@ let NaslServer = class NaslServer {
|
|
|
2678
2779
|
}
|
|
2679
2780
|
if (node instanceof concepts_1.ProcessElement) {
|
|
2680
2781
|
if (currentSource) {
|
|
2681
|
-
const
|
|
2782
|
+
const code = this.getNodeCode(fileNode, currentSource);
|
|
2682
2783
|
const prefix = '__ProcessIdentification__';
|
|
2683
2784
|
let positions = [];
|
|
2684
2785
|
let pos = code.indexOf(prefix);
|
|
@@ -2690,8 +2791,8 @@ let NaslServer = class NaslServer {
|
|
|
2690
2791
|
positions = positions.map((position) => code.indexOf(`${node.name}:`, position + prefix.length));
|
|
2691
2792
|
const promises = positions.map((item) => this.references({
|
|
2692
2793
|
file: fileNode.getEmbeddedFilePath(),
|
|
2693
|
-
line: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
2694
|
-
offset: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
2794
|
+
line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
|
|
2795
|
+
offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character + item),
|
|
2695
2796
|
}));
|
|
2696
2797
|
const results = await Promise.all(promises);
|
|
2697
2798
|
results.forEach((constRefs) => {
|
|
@@ -2700,9 +2801,9 @@ let NaslServer = class NaslServer {
|
|
|
2700
2801
|
}
|
|
2701
2802
|
}
|
|
2702
2803
|
if (node instanceof concepts_1.Return && node.parentNode instanceof concepts_1.ProcessElement) {
|
|
2703
|
-
const { currentSource } = this.getCurrentSource(node.parentNode);
|
|
2804
|
+
const { currentSource, fileNode } = this.getCurrentSource(node.parentNode);
|
|
2704
2805
|
if (currentSource) {
|
|
2705
|
-
const
|
|
2806
|
+
const code = this.getNodeCode(fileNode, currentSource);
|
|
2706
2807
|
const prefix = '__ProcessIdentification__';
|
|
2707
2808
|
const positions = [];
|
|
2708
2809
|
let pos = code.indexOf(prefix);
|
|
@@ -2722,8 +2823,8 @@ let NaslServer = class NaslServer {
|
|
|
2722
2823
|
// 拿到标识下定义的参数名字
|
|
2723
2824
|
const promises = positions.map((item) => this.references({
|
|
2724
2825
|
file: fileNode.getEmbeddedFilePath(),
|
|
2725
|
-
line: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
2726
|
-
offset: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
2826
|
+
line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
|
|
2827
|
+
offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character + item),
|
|
2727
2828
|
}));
|
|
2728
2829
|
const results = await Promise.all(promises);
|
|
2729
2830
|
results.forEach((constRefs) => {
|
|
@@ -2766,13 +2867,16 @@ let NaslServer = class NaslServer {
|
|
|
2766
2867
|
// }
|
|
2767
2868
|
minRange.setTypeMethods = 'setTypeName';
|
|
2768
2869
|
}
|
|
2870
|
+
if (minRange.node instanceof concepts_1.CallConnector) {
|
|
2871
|
+
minRange.setTypeMethods = 'setCalleeConnectionName';
|
|
2872
|
+
}
|
|
2769
2873
|
// 如果节点是logic修改引发calllogic修改
|
|
2770
2874
|
if (minRange.node instanceof concepts_1.CallLogic && node instanceof concepts_1.Logic) {
|
|
2771
2875
|
minRange.setTypeMethods = 'setCalleeName';
|
|
2772
2876
|
}
|
|
2773
2877
|
if (minRange.node instanceof concepts_1.CallLogic && node instanceof concepts_1.ViewElement) {
|
|
2774
2878
|
minRange.setTypeMethods = 'setCalleeNamespace';
|
|
2775
|
-
minRange.newValue =
|
|
2879
|
+
minRange.newValue = 'elements.' + newValue + '.logics';
|
|
2776
2880
|
}
|
|
2777
2881
|
// 如果节点是实体修改引发calllogic修改
|
|
2778
2882
|
if (minRange.node instanceof concepts_1.CallLogic &&
|
|
@@ -2789,9 +2893,9 @@ let NaslServer = class NaslServer {
|
|
|
2789
2893
|
* 3.然后把namespace中的 $替换成 ''
|
|
2790
2894
|
*
|
|
2791
2895
|
*/
|
|
2792
|
-
const
|
|
2896
|
+
const tsCalleeNamespace = minRange.node.tsCalleeNamespace;
|
|
2793
2897
|
// 先看下标位置
|
|
2794
|
-
const
|
|
2898
|
+
const lineText = record.lineText;
|
|
2795
2899
|
const index = lineText.indexOf(tsCalleeNamespace);
|
|
2796
2900
|
// 在把开始结束位置的-开始位置,来知道是哪里要替换
|
|
2797
2901
|
const start = record.start.offset - index - 1;
|
|
@@ -2826,12 +2930,12 @@ let NaslServer = class NaslServer {
|
|
|
2826
2930
|
if (minRange.node instanceof concepts_1.Identifier) {
|
|
2827
2931
|
// 匹配到的内容,当前这一行的内容;
|
|
2828
2932
|
// 因为要用下面的点位信息
|
|
2829
|
-
const
|
|
2933
|
+
const name = minRange.node.name;
|
|
2830
2934
|
// 如果name不改,那就是要改命名空间
|
|
2831
2935
|
if (node instanceof concepts_1.Frontend || newValue === name) {
|
|
2832
|
-
const
|
|
2936
|
+
const namespace = minRange.node.namespace;
|
|
2833
2937
|
// 先看下标位置
|
|
2834
|
-
const
|
|
2938
|
+
const lineText = record.lineText;
|
|
2835
2939
|
const index = lineText.indexOf(namespace);
|
|
2836
2940
|
// 在把开始结束位置的-开始位置,来知道是哪里要替换
|
|
2837
2941
|
const start = record.start.offset - index - 1;
|
|
@@ -2863,7 +2967,7 @@ let NaslServer = class NaslServer {
|
|
|
2863
2967
|
// 枚举key的特殊性,因为它不是原来的key+value形式的
|
|
2864
2968
|
// 是加了中括号啥的,所以直接赋值新值
|
|
2865
2969
|
if (node instanceof concepts_1.EnumItem) {
|
|
2866
|
-
const newTextValue =
|
|
2970
|
+
const newTextValue = node.parentNode.name + '.' + newValue;
|
|
2867
2971
|
minRange.newValue = newTextValue;
|
|
2868
2972
|
}
|
|
2869
2973
|
else {
|
|
@@ -2903,7 +3007,7 @@ let NaslServer = class NaslServer {
|
|
|
2903
3007
|
}
|
|
2904
3008
|
else if (minRange.node instanceof concepts_1.BindAttribute && minRange.node.name === 'url') {
|
|
2905
3009
|
// 如果是查找到 上传地址的链接引用
|
|
2906
|
-
let newName = newValue.replace(/[A-Z]/g, (item) =>
|
|
3010
|
+
let newName = newValue.replace(/[A-Z]/g, (item) => '-' + item.toLowerCase());
|
|
2907
3011
|
newName = newName[0] === '-' ? newName.slice(1) : newName;
|
|
2908
3012
|
const newTextValue = node.parentNode.name === 'defaultDS' ? `/api/${newName}/import` : `/api/${node.parentNode.name}/${newName}/import`;
|
|
2909
3013
|
minRange.setTypeMethods = 'setUrlValue';
|
|
@@ -2943,11 +3047,11 @@ let NaslServer = class NaslServer {
|
|
|
2943
3047
|
* 3.然后把namespace中的 $替换成 ''
|
|
2944
3048
|
*
|
|
2945
3049
|
*/
|
|
2946
|
-
const
|
|
2947
|
-
const
|
|
2948
|
-
const oldValue =
|
|
3050
|
+
const tsCalleeNamespace = minRange.node.tsCalleeNamespace;
|
|
3051
|
+
const tsName = minRange.node.tsName;
|
|
3052
|
+
const oldValue = tsCalleeNamespace + '.' + tsName;
|
|
2949
3053
|
// 先看下标位置
|
|
2950
|
-
const
|
|
3054
|
+
const lineText = record.lineText;
|
|
2951
3055
|
const index = lineText.indexOf(oldValue);
|
|
2952
3056
|
// 在把开始结束位置的-开始位置,来知道是哪里要替换
|
|
2953
3057
|
const start = record.start.offset - index - 1;
|
|
@@ -2965,11 +3069,11 @@ let NaslServer = class NaslServer {
|
|
|
2965
3069
|
}
|
|
2966
3070
|
}
|
|
2967
3071
|
if (node instanceof concepts_1.Frontend && minRange.node instanceof concepts_1.Destination) {
|
|
2968
|
-
const
|
|
2969
|
-
const
|
|
2970
|
-
const oldValue =
|
|
3072
|
+
const tsCalleeNamespace = minRange.node.tsCalleeNamespace;
|
|
3073
|
+
const tsName = minRange.node.tsName;
|
|
3074
|
+
const oldValue = tsCalleeNamespace + '.' + tsName;
|
|
2971
3075
|
// 先看下标位置
|
|
2972
|
-
const
|
|
3076
|
+
const lineText = record.lineText;
|
|
2973
3077
|
const index = lineText.indexOf(oldValue);
|
|
2974
3078
|
// 在把开始结束位置的-开始位置,来知道是哪里要替换
|
|
2975
3079
|
const start = record.start.offset - index - 1;
|
|
@@ -2989,7 +3093,7 @@ let NaslServer = class NaslServer {
|
|
|
2989
3093
|
// 页面逻辑直接赋值就可以, 因为是相对路径
|
|
2990
3094
|
if (node instanceof concepts_1.ViewElement) {
|
|
2991
3095
|
minRange.setTypeMethods = 'setCalleeNamespace';
|
|
2992
|
-
minRange.newValue =
|
|
3096
|
+
minRange.newValue = 'elements.' + newValue + '.logics';
|
|
2993
3097
|
}
|
|
2994
3098
|
else {
|
|
2995
3099
|
/**
|
|
@@ -3001,10 +3105,10 @@ let NaslServer = class NaslServer {
|
|
|
3001
3105
|
* 2.在匹配到的内容中取转后的namespace的位置
|
|
3002
3106
|
* 3.然后把namespace中的 $替换成 ''
|
|
3003
3107
|
*/
|
|
3004
|
-
const
|
|
3108
|
+
const tsCalleeNamespace = minRange.node.tsCalleeNamespace;
|
|
3005
3109
|
const oldValue = tsCalleeNamespace;
|
|
3006
3110
|
// 先看下标位置
|
|
3007
|
-
const
|
|
3111
|
+
const lineText = record.lineText;
|
|
3008
3112
|
const index = lineText.indexOf(oldValue);
|
|
3009
3113
|
// 在把开始结束位置的-开始位置,来知道是哪里要替换
|
|
3010
3114
|
const start = record.start.offset - index - 1;
|
|
@@ -3067,7 +3171,7 @@ let NaslServer = class NaslServer {
|
|
|
3067
3171
|
if (node instanceof concepts_1.DataSource) {
|
|
3068
3172
|
const setTypeNamespace = (typeNamespace, record) => {
|
|
3069
3173
|
// 先看下标位置
|
|
3070
|
-
const
|
|
3174
|
+
const lineText = record.lineText;
|
|
3071
3175
|
const index = lineText.indexOf(typeNamespace);
|
|
3072
3176
|
// 在把开始结束位置的-开始位置,来知道是哪里要替换
|
|
3073
3177
|
const start = record.start.offset - index - 1;
|
|
@@ -3193,7 +3297,7 @@ let NaslServer = class NaslServer {
|
|
|
3193
3297
|
if (a.node.concept === 'QueryFieldExpression') {
|
|
3194
3298
|
return 1;
|
|
3195
3299
|
}
|
|
3196
|
-
if (b.node.concept === 'QueryFieldExpression') {
|
|
3300
|
+
else if (b.node.concept === 'QueryFieldExpression') {
|
|
3197
3301
|
return -1;
|
|
3198
3302
|
}
|
|
3199
3303
|
return 0;
|
|
@@ -3321,7 +3425,7 @@ let NaslServer = class NaslServer {
|
|
|
3321
3425
|
const queue = [];
|
|
3322
3426
|
// 先插入自己,如果没有在往上找,
|
|
3323
3427
|
// 一直到file节点的父级
|
|
3324
|
-
while (!(parantNode instanceof concepts_1.App)) {
|
|
3428
|
+
while (parantNode && !(parantNode instanceof concepts_1.App)) {
|
|
3325
3429
|
// 找到上一级 在map对象中构造出他的子集
|
|
3326
3430
|
currentNode = parantNode;
|
|
3327
3431
|
parantNode = parantNode.parentNode;
|
|
@@ -3441,7 +3545,7 @@ let NaslServer = class NaslServer {
|
|
|
3441
3545
|
getCurrentSource(node) {
|
|
3442
3546
|
if (node instanceof concepts_1.App || node instanceof concepts_1.Theme)
|
|
3443
3547
|
return { fileNode: null };
|
|
3444
|
-
let
|
|
3548
|
+
let sourceMap = node.sourceMap;
|
|
3445
3549
|
let fileNode = node;
|
|
3446
3550
|
// 如果没有sourceMap,就继续向上找 ,或者到module结束
|
|
3447
3551
|
// 如果 节点找到 app 或者module 停止 或者entity找到DataSource为止
|
|
@@ -3470,8 +3574,8 @@ let NaslServer = class NaslServer {
|
|
|
3470
3574
|
handlingCurrentSourceException(currentSource, node) {
|
|
3471
3575
|
// 如果有前面的一些注解,元素在最后一行输出的值就给最后一行
|
|
3472
3576
|
if (node instanceof concepts_1.EntityProperty) {
|
|
3473
|
-
if (currentSource.
|
|
3474
|
-
currentSource.
|
|
3577
|
+
if (currentSource.start.line !== currentSource.end.line) {
|
|
3578
|
+
currentSource.start = { ...currentSource.start, line: currentSource.end.line };
|
|
3475
3579
|
}
|
|
3476
3580
|
}
|
|
3477
3581
|
}
|
|
@@ -3479,16 +3583,30 @@ let NaslServer = class NaslServer {
|
|
|
3479
3583
|
getFieldKeySelectCompletion(node, fieldKey) {
|
|
3480
3584
|
const { currentSource, fileNode } = this.getCurrentSource(node);
|
|
3481
3585
|
if (currentSource && fileNode) {
|
|
3586
|
+
const range = {
|
|
3587
|
+
line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
|
|
3588
|
+
offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character),
|
|
3589
|
+
};
|
|
3590
|
+
// foreach 在最后一行自动补全
|
|
3591
|
+
if (node.concept === 'ForEachStatement') {
|
|
3592
|
+
range.line = currentSource.end.line;
|
|
3593
|
+
range.offset = 0;
|
|
3594
|
+
}
|
|
3595
|
+
else if (node.concept === 'BindAttribute') {
|
|
3596
|
+
range.offset = range.offset + 7;
|
|
3597
|
+
}
|
|
3598
|
+
else if (node.concept === 'BindDirective') {
|
|
3599
|
+
range.offset = range.offset + 5;
|
|
3600
|
+
}
|
|
3482
3601
|
return this._getFieldKeySelectCompletion({
|
|
3483
3602
|
file: fileNode.getEmbeddedFilePath(),
|
|
3484
|
-
range
|
|
3485
|
-
line: (0, translator_1.lsp2tspNumber)(currentSource.range.start.line),
|
|
3486
|
-
offset: (0, translator_1.lsp2tspNumber)(currentSource.range.start.character),
|
|
3487
|
-
},
|
|
3603
|
+
range,
|
|
3488
3604
|
getFieldKey: fieldKey,
|
|
3489
3605
|
});
|
|
3490
3606
|
}
|
|
3491
|
-
|
|
3607
|
+
else {
|
|
3608
|
+
console.log('没找到节点', currentSource, fileNode);
|
|
3609
|
+
}
|
|
3492
3610
|
}
|
|
3493
3611
|
_getFieldKeySelectCompletion(args) {
|
|
3494
3612
|
return this.messager.requestCommand('getFieldKeySelectCompletion', args);
|
|
@@ -3536,7 +3654,7 @@ let NaslServer = class NaslServer {
|
|
|
3536
3654
|
});
|
|
3537
3655
|
return [...fileNodes];
|
|
3538
3656
|
}
|
|
3539
|
-
|
|
3657
|
+
/**获取当前节点的已知类型
|
|
3540
3658
|
* @param node 当前要获取类型的节点
|
|
3541
3659
|
* @returns 不需要去查就可以返回类型的节点
|
|
3542
3660
|
*/
|
|
@@ -3625,7 +3743,7 @@ let NaslServer = class NaslServer {
|
|
|
3625
3743
|
}
|
|
3626
3744
|
// 如果 入参不是虚拟节点的,就不去请求类型
|
|
3627
3745
|
// 只有虚拟节点的入参,才没有类型
|
|
3628
|
-
if (node.concept === 'Param' && node.parentKey !== 'virtualParams' && node.parentKey !== 'item') {
|
|
3746
|
+
if (node.concept === 'Param' && (node.parentKey !== 'virtualParams' && node.parentKey !== 'item' && node.parentNode.concept !== 'AnonymousFunction')) {
|
|
3629
3747
|
return;
|
|
3630
3748
|
}
|
|
3631
3749
|
if (![
|
|
@@ -3657,69 +3775,75 @@ let NaslServer = class NaslServer {
|
|
|
3657
3775
|
newQuickInfoNodes.push(itemDetail);
|
|
3658
3776
|
const fileDetail = {
|
|
3659
3777
|
file: filePath,
|
|
3660
|
-
line: (0, translator_1.lsp2tspNumber)(item.
|
|
3661
|
-
offset: (0, translator_1.lsp2tspNumber)(item.
|
|
3778
|
+
line: (0, translator_1.lsp2tspNumber)(item.start.line),
|
|
3779
|
+
offset: (0, translator_1.lsp2tspNumber)(item.start.character),
|
|
3780
|
+
};
|
|
3781
|
+
const getCode = (range) => {
|
|
3782
|
+
return this.tsFiles.get(filePath)?.slice(range.start.offset, range.end.offset) ?? '';
|
|
3662
3783
|
};
|
|
3663
3784
|
// 位置计算偏移
|
|
3664
3785
|
if ('getQuickInfoOffset' in node) {
|
|
3665
|
-
Object.assign(fileDetail, node.getQuickInfoOffset(fileDetail, item
|
|
3786
|
+
Object.assign(fileDetail, node.getQuickInfoOffset(fileDetail, getCode(item)));
|
|
3666
3787
|
}
|
|
3667
3788
|
// 位置计算偏移2
|
|
3668
3789
|
// TODO: 之后考虑把这些偏移量计算全都挪到节点内部去
|
|
3669
3790
|
if (node.concept === 'BinaryExpression' ||
|
|
3670
|
-
node.concept === 'CallLogic' ||
|
|
3671
3791
|
node.concept === 'CallFunction' ||
|
|
3672
3792
|
node.concept === 'CallInterface') {
|
|
3793
|
+
const code = getCode(item);
|
|
3673
3794
|
// 如果没有括号 ,括号就在外面,就 -1
|
|
3674
3795
|
// 有括号就找到括号的位置 然后 -1
|
|
3675
3796
|
let indexOf = 0;
|
|
3676
|
-
if (!
|
|
3797
|
+
if (!code.includes('(')) {
|
|
3677
3798
|
indexOf = -1;
|
|
3678
3799
|
}
|
|
3679
3800
|
else {
|
|
3680
3801
|
// 如果有泛型先往前找一找
|
|
3681
|
-
if (
|
|
3682
|
-
indexOf = Math.min(
|
|
3802
|
+
if (code.includes('<')) {
|
|
3803
|
+
indexOf = Math.min(code.indexOf('<'), code.indexOf('('));
|
|
3683
3804
|
}
|
|
3684
3805
|
else {
|
|
3685
|
-
indexOf =
|
|
3806
|
+
indexOf = code.indexOf('(');
|
|
3686
3807
|
}
|
|
3687
|
-
const subStr =
|
|
3808
|
+
const subStr = code.substring(0, indexOf);
|
|
3688
3809
|
const codeArr = subStr?.split('.');
|
|
3689
3810
|
const lastLen = codeArr?.[codeArr.length - 1]?.length;
|
|
3690
3811
|
indexOf = subStr.length - lastLen;
|
|
3691
3812
|
}
|
|
3692
|
-
fileDetail.offset
|
|
3813
|
+
fileDetail.offset = fileDetail.offset + indexOf;
|
|
3693
3814
|
}
|
|
3694
3815
|
else if (node.concept === 'MemberExpression' ||
|
|
3695
3816
|
node.concept === 'Identifier' ||
|
|
3696
3817
|
node.concept === 'QueryFieldExpression' ||
|
|
3697
3818
|
node.concept === 'QueryGroupByExpression') {
|
|
3698
|
-
|
|
3699
|
-
|
|
3819
|
+
const code = getCode(item);
|
|
3820
|
+
if (code.includes('.')) {
|
|
3821
|
+
const codeArr = code?.split('.');
|
|
3700
3822
|
const lastLen = codeArr?.[codeArr.length - 1]?.length;
|
|
3701
3823
|
// MemberExpression取最后一位当做类型
|
|
3702
|
-
const indexOf =
|
|
3703
|
-
fileDetail.offset
|
|
3824
|
+
const indexOf = code.length - lastLen;
|
|
3825
|
+
fileDetail.offset = fileDetail.offset + indexOf;
|
|
3704
3826
|
}
|
|
3705
3827
|
}
|
|
3706
3828
|
else if (node.concept === 'Match') {
|
|
3829
|
+
const code = getCode(item);
|
|
3707
3830
|
// 去查return 后面的返回值,变成函数调用
|
|
3708
|
-
if (
|
|
3709
|
-
fileDetail.line = item.
|
|
3831
|
+
if (code?.endsWith(';\n')) {
|
|
3832
|
+
fileDetail.line = item.end.line - 1;
|
|
3710
3833
|
}
|
|
3711
3834
|
else {
|
|
3712
|
-
fileDetail.line = item.
|
|
3835
|
+
fileDetail.line = item.end.line;
|
|
3713
3836
|
}
|
|
3714
|
-
const indexOf =
|
|
3715
|
-
let newCode =
|
|
3837
|
+
const indexOf = code.indexOf('return __MatchExpressionFuntion');
|
|
3838
|
+
let newCode = code.substring(0, indexOf);
|
|
3716
3839
|
newCode = newCode.substring(newCode.lastIndexOf('\n'), indexOf);
|
|
3717
3840
|
fileDetail.offset = newCode.length + 'return '.length;
|
|
3718
3841
|
}
|
|
3719
3842
|
else if (['NewComposite', 'NewList', 'NewMap'].includes(node.concept)) {
|
|
3720
|
-
|
|
3721
|
-
|
|
3722
|
-
|
|
3843
|
+
const code = getCode(item);
|
|
3844
|
+
fileDetail.line = item.end.line;
|
|
3845
|
+
const indexOf = code.indexOf('return __newComposite');
|
|
3846
|
+
let newCode = code.substring(0, indexOf);
|
|
3723
3847
|
newCode = newCode.substring(newCode.lastIndexOf('\n'), indexOf);
|
|
3724
3848
|
fileDetail.offset = newCode.length + 'return '.length;
|
|
3725
3849
|
}
|
|
@@ -3733,9 +3857,15 @@ let NaslServer = class NaslServer {
|
|
|
3733
3857
|
const item = resultMap?.[file]?.[line]?.[offset];
|
|
3734
3858
|
const itemType = item?.[0]?.nodeType;
|
|
3735
3859
|
const nodeTypeAnnotation = (0, formatTsUtils_1.type2TypeAnnotation)(itemType);
|
|
3736
|
-
const
|
|
3860
|
+
const node = newQuickInfoNodes[index].node;
|
|
3737
3861
|
types.set(node, Object.freeze(nodeTypeAnnotation));
|
|
3738
|
-
|
|
3862
|
+
const type = itemType ? (Object.isFrozen(itemType) ? itemType : Object.freeze(itemType)) : null;
|
|
3863
|
+
if (type) {
|
|
3864
|
+
node.__nodeType = type;
|
|
3865
|
+
}
|
|
3866
|
+
else {
|
|
3867
|
+
delete node.__nodeType;
|
|
3868
|
+
}
|
|
3739
3869
|
});
|
|
3740
3870
|
await utils.timeSlicing(Array.from(getFromOthers.entries()), ([node]) => {
|
|
3741
3871
|
if (node instanceof concepts_1.Assignment) {
|
|
@@ -3769,9 +3899,9 @@ let NaslServer = class NaslServer {
|
|
|
3769
3899
|
const typeAnnotation = value;
|
|
3770
3900
|
if (!node.typeAnnotation && typeAnnotation) {
|
|
3771
3901
|
if (typeAnnotation.typeName === 'List' && typeAnnotation.typeKind === 'generic') {
|
|
3772
|
-
const
|
|
3902
|
+
const typeArguments = typeAnnotation.typeArguments;
|
|
3773
3903
|
if (typeArguments.length && typeArguments[0].isComplexType()) {
|
|
3774
|
-
node.__TypeAnnotation
|
|
3904
|
+
delete node.__TypeAnnotation;
|
|
3775
3905
|
return;
|
|
3776
3906
|
}
|
|
3777
3907
|
}
|
|
@@ -3786,13 +3916,13 @@ let NaslServer = class NaslServer {
|
|
|
3786
3916
|
}
|
|
3787
3917
|
else {
|
|
3788
3918
|
// 清空原来已经赋值上去的类型,可能原来有现在没有了
|
|
3789
|
-
node.__TypeAnnotation
|
|
3919
|
+
delete node.__TypeAnnotation;
|
|
3790
3920
|
}
|
|
3791
3921
|
}
|
|
3792
3922
|
catch (err) {
|
|
3793
|
-
if (globalThis.window) {
|
|
3794
|
-
|
|
3795
|
-
}
|
|
3923
|
+
// if (globalThis.window) {
|
|
3924
|
+
// console.log(err);
|
|
3925
|
+
// }
|
|
3796
3926
|
}
|
|
3797
3927
|
});
|
|
3798
3928
|
return types;
|
|
@@ -3800,7 +3930,7 @@ let NaslServer = class NaslServer {
|
|
|
3800
3930
|
// 全量标注并且返回json
|
|
3801
3931
|
async getNaslAnnotatedJSON(app, releaseFlag) {
|
|
3802
3932
|
if (this.changeStackList?.length) {
|
|
3803
|
-
throw new Error(`当前还有${this.changeStackList.length}
|
|
3933
|
+
throw new Error(`当前还有${this.changeStackList.length}个文件还在执行更新操作`);
|
|
3804
3934
|
}
|
|
3805
3935
|
const nodes = [];
|
|
3806
3936
|
this.file2NodeMap.forEach((fileNode, filePath) => {
|
|
@@ -3927,7 +4057,7 @@ let NaslServer = class NaslServer {
|
|
|
3927
4057
|
(matchExpression instanceof concepts_1.Identifier || matchExpression instanceof concepts_1.MemberExpression)) {
|
|
3928
4058
|
const { currentSource, fileNode } = matchExpression?.getCurrentSource();
|
|
3929
4059
|
fileNode.sourceMap.forEach((item, itemNode) => {
|
|
3930
|
-
if (itemNode.concept === matchExpression.concept && item
|
|
4060
|
+
if (itemNode.concept === matchExpression.concept && (0, translator_1.isSameRange)(item, currentSource)) {
|
|
3931
4061
|
const jsonNode = jsoner.queryNodeByPath(json, itemNode.getNodePath(false));
|
|
3932
4062
|
jsonNode.typeAnnotation = matchExpression.__TypeAnnotation;
|
|
3933
4063
|
}
|
|
@@ -3985,7 +4115,7 @@ let NaslServer = class NaslServer {
|
|
|
3985
4115
|
}
|
|
3986
4116
|
}
|
|
3987
4117
|
// 用户自己声明的用用户的
|
|
3988
|
-
const callObj = App.findNodeByCompleteName(
|
|
4118
|
+
const callObj = App.findNodeByCompleteName(parent.calleeNamespace + '.' + parent.calleeName);
|
|
3989
4119
|
const index = parent.arguments.indexOf(node);
|
|
3990
4120
|
const param = callObj?.params?.[index] || {};
|
|
3991
4121
|
// 取出参数的类型
|
|
@@ -4219,16 +4349,16 @@ let NaslServer = class NaslServer {
|
|
|
4219
4349
|
*/
|
|
4220
4350
|
const oldRefs = await this.references({
|
|
4221
4351
|
file: fileNode.getEmbeddedFilePath(),
|
|
4222
|
-
line: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
4223
|
-
offset: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
4352
|
+
line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
|
|
4353
|
+
offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character),
|
|
4224
4354
|
});
|
|
4225
4355
|
oldRefs.refs.forEach((ref) => this.filesToCheck.add(ref.file));
|
|
4226
4356
|
// 更新文件之后
|
|
4227
4357
|
await this.updateFiles({ outputFiles });
|
|
4228
4358
|
const newRefs2 = await this.references({
|
|
4229
4359
|
file: fileNode.getEmbeddedFilePath(),
|
|
4230
|
-
line: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
4231
|
-
offset: (0, translator_1.lsp2tspNumber)(currentSource.
|
|
4360
|
+
line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
|
|
4361
|
+
offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character),
|
|
4232
4362
|
});
|
|
4233
4363
|
newRefs2.refs.forEach((ref) => this.filesToCheck.add(ref.file));
|
|
4234
4364
|
}
|
|
@@ -4245,7 +4375,7 @@ let NaslServer = class NaslServer {
|
|
|
4245
4375
|
*/
|
|
4246
4376
|
async incidentalAction(action, fileNode, targetNode, oldpath) {
|
|
4247
4377
|
if ((action === 'create' || action === 'delete' || (action === 'update' && oldpath)) && fileNode === targetNode) {
|
|
4248
|
-
|
|
4378
|
+
//删除、更改、新增端
|
|
4249
4379
|
if (fileNode instanceof concepts_1.Frontend && (fileNode.views?.length || fileNode.variables?.length)) {
|
|
4250
4380
|
const fileNodeChildren = [...fileNode.views, ...fileNode.variables];
|
|
4251
4381
|
for (let i = 0; i < fileNodeChildren.length; i++) {
|
|
@@ -4263,7 +4393,7 @@ let NaslServer = class NaslServer {
|
|
|
4263
4393
|
else if (action === 'update' && oldpath) {
|
|
4264
4394
|
const parentPath = oldpath.replace('.ts', '/');
|
|
4265
4395
|
const foldName = fileNodeItem.concept === 'View' ? 'views' : 'variables';
|
|
4266
|
-
const currentOldPath =
|
|
4396
|
+
const currentOldPath = parentPath + foldName + '/' + fileNodeItem.name + '.ts';
|
|
4267
4397
|
// 因为重命名这里只有当前修改父级的 旧名称, 所以他的子集也要根据旧名称去查依赖 更新内容
|
|
4268
4398
|
await this.handleRename(fileNodeItem, fileNodeItem, result, currentOldPath);
|
|
4269
4399
|
await this.incidentalAction(action, fileNodeItem, fileNodeItem, currentOldPath);
|
|
@@ -4287,7 +4417,7 @@ let NaslServer = class NaslServer {
|
|
|
4287
4417
|
}
|
|
4288
4418
|
else if (action === 'update' && oldpath) {
|
|
4289
4419
|
const parentPath = oldpath.replace('.ts', '/');
|
|
4290
|
-
const currentOldPath =
|
|
4420
|
+
const currentOldPath = parentPath + fileNodeItem.name + '.ts';
|
|
4291
4421
|
// 因为重命名这里只有当前修改父级的 旧名称, 所以他的子集也要根据旧名称去查依赖 更新内容
|
|
4292
4422
|
await this.handleRename(fileNodeItem, fileNodeItem, result, currentOldPath);
|
|
4293
4423
|
await this.incidentalAction(action, fileNodeItem, fileNodeItem, currentOldPath);
|
|
@@ -4332,7 +4462,7 @@ let NaslServer = class NaslServer {
|
|
|
4332
4462
|
try {
|
|
4333
4463
|
const result = entity.toEmbeddedTSFile();
|
|
4334
4464
|
const parentPath = oldpath.replace('.ts', '/');
|
|
4335
|
-
const currentOldPath =
|
|
4465
|
+
const currentOldPath = parentPath + '/entities/' + entity.name + '.ts';
|
|
4336
4466
|
// 因为重命名这里只有当前修改父级的 旧名称, 所以他的子集也要根据旧名称去查依赖 更新内容
|
|
4337
4467
|
await this.handleRename(entity, entity, result, currentOldPath);
|
|
4338
4468
|
}
|
|
@@ -4346,7 +4476,7 @@ let NaslServer = class NaslServer {
|
|
|
4346
4476
|
async receiveHandleChange($event) {
|
|
4347
4477
|
this.singleFileChangeIng = true;
|
|
4348
4478
|
// 行为
|
|
4349
|
-
const
|
|
4479
|
+
const action = $event.action;
|
|
4350
4480
|
const targetNode = $event.target;
|
|
4351
4481
|
// Connection 相关配置的更新不需要写入文件
|
|
4352
4482
|
if (targetNode?.parentNode instanceof concepts_1.Connection) {
|
|
@@ -4366,9 +4496,14 @@ let NaslServer = class NaslServer {
|
|
|
4366
4496
|
}
|
|
4367
4497
|
return;
|
|
4368
4498
|
}
|
|
4369
|
-
|
|
4499
|
+
if (process.env.NODE_ENV === 'development') {
|
|
4500
|
+
console.time('重新生成 TS 文件');
|
|
4501
|
+
}
|
|
4370
4502
|
const result = fileNode.toEmbeddedTSFile();
|
|
4371
|
-
|
|
4503
|
+
if (process.env.NODE_ENV === 'development') {
|
|
4504
|
+
console.timeEnd('重新生成 TS 文件');
|
|
4505
|
+
console.log('重新生成 TS 文件', fileNode.getEmbeddedFilePath());
|
|
4506
|
+
}
|
|
4372
4507
|
// 当前操作的节点
|
|
4373
4508
|
// 如果当前没有生成tsFile
|
|
4374
4509
|
if (!result) {
|
|
@@ -4414,13 +4549,18 @@ let NaslServer = class NaslServer {
|
|
|
4414
4549
|
this.changeFileNext();
|
|
4415
4550
|
}
|
|
4416
4551
|
else {
|
|
4417
|
-
|
|
4552
|
+
if (process.env.NODE_ENV === 'development') {
|
|
4553
|
+
console.info('校验以下文件', Array.from(this.filesToCheck));
|
|
4554
|
+
}
|
|
4418
4555
|
await this.getDiagnosticRecordsAndPushAll(Array.from(this.filesToCheck));
|
|
4419
4556
|
this.filesToCheck.clear();
|
|
4420
4557
|
}
|
|
4421
4558
|
});
|
|
4422
4559
|
}
|
|
4423
4560
|
}
|
|
4561
|
+
getNodeCode(fileNode, range) {
|
|
4562
|
+
return (this.tsFiles.get(fileNode.getEmbeddedFilePath()) ?? '').slice(range.start.offset, range.end.offset);
|
|
4563
|
+
}
|
|
4424
4564
|
};
|
|
4425
4565
|
__decorate([
|
|
4426
4566
|
(0, decorators_1.withQueueExecute)('diagnostic')
|