@lcap/nasl 3.3.3-beta.4 → 3.3.3-beta.5
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/.nyc_output/f2d14ce8-876a-4dc0-9aaf-e51d08d081ca.json +1 -0
- package/.nyc_output/processinfo/f2d14ce8-876a-4dc0-9aaf-e51d08d081ca.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -0
- package/coverage/index.html +129 -144
- package/coverage/src/automate/engine/index.html +1 -1
- package/coverage/src/automate/engine/utils.js.html +26 -26
- package/coverage/src/bak/index.html +15 -15
- package/coverage/src/bak/translator.js.html +58 -184
- package/coverage/src/breakpoint/generator/AfterStartNode.ts.html +1 -1
- package/coverage/src/breakpoint/generator/BeforeEndNode.ts.html +1 -1
- package/coverage/src/breakpoint/generator/BreakpointNode.ts.html +2 -5
- package/coverage/src/breakpoint/generator/CallbackNode.ts.html +1 -1
- package/coverage/src/breakpoint/generator/index.html +1 -1
- package/coverage/src/breakpoint/generator/index.ts.html +1 -1
- package/coverage/src/breakpoint/index.html +1 -1
- package/coverage/src/breakpoint/index.ts.html +1 -1
- package/coverage/src/breakpoint/shared/constants.ts.html +4 -10
- package/coverage/src/breakpoint/shared/index.html +26 -26
- package/coverage/src/breakpoint/shared/index.ts.html +1 -1
- package/coverage/src/breakpoint/shared/operations.ts.html +2 -2
- package/coverage/src/breakpoint/shared/socket.ts.html +28 -100
- package/coverage/src/breakpoint/shared/utils.ts.html +9 -135
- package/coverage/src/breakpoint/store/core.ts.html +7 -7
- package/coverage/src/breakpoint/store/dock.ts.html +9 -159
- package/coverage/src/breakpoint/store/index.html +21 -21
- package/coverage/src/breakpoint/store/index.ts.html +1 -1
- package/coverage/src/common/BaseNode.ts.html +111 -147
- package/coverage/src/common/Command.ts.html +1 -1
- package/coverage/src/common/EventEmitter.ts.html +6 -6
- package/coverage/src/common/Messager.ts.html +1 -1
- package/coverage/src/common/asyncFuncMap.ts.html +1 -1
- package/coverage/src/common/index.html +14 -14
- package/coverage/src/common/index.ts.html +1 -1
- package/coverage/src/concepts/Abort__.ts.html +10 -13
- package/coverage/src/concepts/Anchor__.ts.html +12 -69
- package/coverage/src/concepts/AnonymousFunction__.ts.html +20 -140
- package/coverage/src/concepts/App__.ts.html +74 -917
- package/coverage/src/concepts/Argument__.ts.html +23 -92
- package/coverage/src/concepts/Assignee__.ts.html +14 -41
- package/coverage/src/concepts/AssignmentLine__.ts.html +9 -12
- package/coverage/src/concepts/Assignment__.ts.html +15 -99
- package/coverage/src/concepts/Attribute__.ts.html +10 -25
- package/coverage/src/concepts/AuthInterface__.ts.html +6 -9
- package/coverage/src/concepts/AuthLogicForCallInterface__.ts.html +10 -25
- package/coverage/src/concepts/AuthLogic__.ts.html +6 -18
- package/coverage/src/concepts/BackendVariable__.ts.html +12 -27
- package/coverage/src/concepts/Backend__.ts.html +11 -26
- package/coverage/src/concepts/BatchAssignment__.ts.html +16 -112
- package/coverage/src/concepts/BinaryExpression__.ts.html +38 -245
- package/coverage/src/concepts/BindAttribute__.ts.html +38 -287
- package/coverage/src/concepts/BindDirective__.ts.html +18 -81
- package/coverage/src/concepts/BindEvent__.ts.html +16 -247
- package/coverage/src/concepts/BindStyle__.ts.html +12 -27
- package/coverage/src/concepts/BooleanLiteral__.ts.html +10 -28
- package/coverage/src/concepts/CallAuthInterface__.ts.html +12 -27
- package/coverage/src/concepts/CallConnector__.ts.html +11 -68
- package/coverage/src/concepts/CallFunction__.ts.html +49 -223
- package/coverage/src/concepts/CallInterface__.ts.html +39 -189
- package/coverage/src/concepts/CallLogic__.ts.html +161 -479
- package/coverage/src/concepts/CallQueryComponent__.ts.html +15 -42
- package/coverage/src/concepts/Comment__.ts.html +11 -32
- package/coverage/src/concepts/CompletionProperty__.ts.html +10 -25
- package/coverage/src/concepts/ConfigGroup__.ts.html +10 -25
- package/coverage/src/concepts/ConfigPropertyValue__.ts.html +6 -9
- package/coverage/src/concepts/ConfigProperty__.ts.html +11 -26
- package/coverage/src/concepts/Configuration__.ts.html +10 -25
- package/coverage/src/concepts/Connection__.ts.html +12 -27
- package/coverage/src/concepts/ConnectorTrigger__.ts.html +6 -9
- package/coverage/src/concepts/Connector__.ts.html +22 -85
- package/coverage/src/concepts/Constant__.ts.html +12 -27
- package/coverage/src/concepts/DataSource__.ts.html +12 -27
- package/coverage/src/concepts/DatabaseTypeAnnotation__.ts.html +6 -9
- package/coverage/src/concepts/Destination__.ts.html +13 -193
- package/coverage/src/concepts/End__.ts.html +10 -13
- package/coverage/src/concepts/EntityIndex__.ts.html +9 -12
- package/coverage/src/concepts/EntityProperty__.ts.html +18 -114
- package/coverage/src/concepts/Entity__.ts.html +17 -122
- package/coverage/src/concepts/EnumItem__.ts.html +10 -28
- package/coverage/src/concepts/Enum__.ts.html +12 -66
- package/coverage/src/concepts/Event__.ts.html +10 -25
- package/coverage/src/concepts/ExternalDestination__.ts.html +10 -25
- package/coverage/src/concepts/ForEachStatement__.ts.html +34 -193
- package/coverage/src/concepts/FrontendLibrary__.ts.html +13 -40
- package/coverage/src/concepts/FrontendVariable__.ts.html +1 -1
- package/coverage/src/concepts/Frontend__.ts.html +24 -87
- package/coverage/src/concepts/Function__.ts.html +26 -176
- package/coverage/src/concepts/Identifier__.ts.html +19 -22
- package/coverage/src/concepts/IfStatement__.ts.html +15 -150
- package/coverage/src/concepts/Integration__.ts.html +13 -40
- package/coverage/src/concepts/InterfaceParam__.ts.html +10 -25
- package/coverage/src/concepts/Interface__.ts.html +23 -62
- package/coverage/src/concepts/JSBlock__.ts.html +10 -205
- package/coverage/src/concepts/JavaLogic__.ts.html +9 -12
- package/coverage/src/concepts/LogicItem__.ts.html +16 -46
- package/coverage/src/concepts/Logic__.ts.html +42 -408
- package/coverage/src/concepts/MatchCase__.ts.html +20 -347
- package/coverage/src/concepts/Match__.ts.html +16 -169
- package/coverage/src/concepts/MemberExpression__.ts.html +46 -112
- package/coverage/src/concepts/MicroApp__.ts.html +6 -9
- package/coverage/src/concepts/Module__.ts.html +18 -672
- package/coverage/src/concepts/MsgTriggerEvent__.ts.html +10 -25
- package/coverage/src/concepts/MsgTriggerLauncher__.ts.html +10 -25
- package/coverage/src/concepts/Namespace__.ts.html +40 -175
- package/coverage/src/concepts/NewComposite__.ts.html +26 -137
- package/coverage/src/concepts/NewList__.ts.html +17 -98
- package/coverage/src/concepts/NewMap__.ts.html +16 -97
- package/coverage/src/concepts/New__.ts.html +5 -5
- package/coverage/src/concepts/NullLiteral__.ts.html +9 -12
- package/coverage/src/concepts/NumericLiteral__.ts.html +15 -45
- package/coverage/src/concepts/OqlQueryComponent__.ts.html +15 -123
- package/coverage/src/concepts/OverriddenLogic__.ts.html +25 -100
- package/coverage/src/concepts/Param__.ts.html +18 -144
- package/coverage/src/concepts/Point__.ts.html +6 -9
- package/coverage/src/concepts/ProcessComponent__.ts.html +13 -40
- package/coverage/src/concepts/ProcessElement__.ts.html +31 -130
- package/coverage/src/concepts/ProcessOutcome__.ts.html +9 -12
- package/coverage/src/concepts/ProcessOutcomes__.ts.html +9 -12
- package/coverage/src/concepts/Process__.ts.html +22 -85
- package/coverage/src/concepts/QueryAggregateExpression__.ts.html +12 -27
- package/coverage/src/concepts/QueryFieldExpression__.ts.html +9 -12
- package/coverage/src/concepts/QueryFromExpression__.ts.html +12 -27
- package/coverage/src/concepts/QueryGroupByExpression__.ts.html +10 -25
- package/coverage/src/concepts/QueryJoinExpression__.ts.html +12 -27
- package/coverage/src/concepts/QueryLimitExpression__.ts.html +12 -27
- package/coverage/src/concepts/QueryOrderByExpression__.ts.html +12 -27
- package/coverage/src/concepts/QuerySelectExpression__.ts.html +10 -25
- package/coverage/src/concepts/Rect__.ts.html +6 -9
- package/coverage/src/concepts/Return__.ts.html +20 -89
- package/coverage/src/concepts/Role__.ts.html +8 -11
- package/coverage/src/concepts/SelectMembers__.ts.html +12 -27
- package/coverage/src/concepts/Slot__.ts.html +10 -25
- package/coverage/src/concepts/SqlQueryComponent__.ts.html +13 -46
- package/coverage/src/concepts/Start__.ts.html +10 -13
- package/coverage/src/concepts/StringInterpolation__.ts.html +17 -89
- package/coverage/src/concepts/StringLiteral__.ts.html +11 -29
- package/coverage/src/concepts/StructureProperty__.ts.html +14 -59
- package/coverage/src/concepts/Structure__.ts.html +16 -82
- package/coverage/src/concepts/SwitchCase__.ts.html +12 -138
- package/coverage/src/concepts/SwitchStatement__.ts.html +13 -79
- package/coverage/src/concepts/Theme__.ts.html +6 -9
- package/coverage/src/concepts/Transactional__.ts.html +6 -9
- package/coverage/src/concepts/TriggerEvent__.ts.html +10 -25
- package/coverage/src/concepts/TriggerLauncher__.ts.html +8 -11
- package/coverage/src/concepts/TypeAnnotation__.ts.html +54 -351
- package/coverage/src/concepts/TypeParam__.ts.html +11 -32
- package/coverage/src/concepts/UnaryExpression__.ts.html +15 -99
- package/coverage/src/concepts/Unparsed__.ts.html +8 -23
- package/coverage/src/concepts/UseComponent__.ts.html +6 -9
- package/coverage/src/concepts/ValidationRule__.ts.html +13 -28
- package/coverage/src/concepts/Variable__.ts.html +20 -119
- package/coverage/src/concepts/ViewBlock__.ts.html +6 -9
- package/coverage/src/concepts/ViewComponent__.ts.html +24 -99
- package/coverage/src/concepts/ViewElement__.ts.html +133 -532
- package/coverage/src/concepts/View__.ts.html +35 -632
- package/coverage/src/concepts/WhileStatement__.ts.html +15 -120
- package/coverage/src/concepts/basics/stdlib/index.html +13 -28
- package/coverage/src/concepts/basics/stdlib/index.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.auth.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.browser.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.collection.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.configuration.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.core.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.event.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.http.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.interface.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.io.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.logging.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.process.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.ui.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.util.ts.html +29 -86
- package/coverage/src/concepts/basics/stdlib/nasl.validation.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/reference2TypeAnnotationList.ts.html +1 -1
- package/coverage/src/concepts/basics/types/coreTypeList.ts.html +1 -1
- package/coverage/src/concepts/basics/types/index.html +1 -1
- package/coverage/src/concepts/basics/types/index.ts.html +1 -1
- package/coverage/src/concepts/index.html +912 -927
- package/coverage/src/concepts/index.ts.html +1 -1
- package/coverage/src/concepts/index__.ts.html +4 -7
- package/coverage/src/config.ts.html +1 -1
- package/coverage/src/decorators/index.html +1 -1
- package/coverage/src/decorators/index.ts.html +24 -24
- package/coverage/src/decorators/promise.ts.html +1 -1
- package/coverage/src/eventBus.ts.html +1 -1
- package/coverage/src/generator/compileComponent.ts.html +1 -1
- package/coverage/src/generator/genBundleFiles.ts.html +19 -13
- package/coverage/src/generator/genHash.ts.html +1 -1
- package/coverage/src/generator/genMetaData.ts.html +16 -103
- package/coverage/src/generator/genReleaseBody.ts.html +1 -1
- package/coverage/src/generator/icestark.ts.html +1 -1
- package/coverage/src/generator/index.html +15 -15
- package/coverage/src/generator/index.ts.html +1 -1
- package/coverage/src/generator/microApp.ts.html +1 -1
- package/coverage/src/generator/permission.ts.html +1 -1
- package/coverage/src/generator/qiankun.ts.html +1 -1
- package/coverage/src/generator/styleReplacer.ts.html +1 -1
- package/coverage/src/index.html +10 -10
- package/coverage/src/index.ts.html +7 -7
- package/coverage/src/manager/diagnostic.ts.html +1 -1
- package/coverage/src/manager/index.html +1 -1
- package/coverage/src/manager/stepRecorder.ts.html +1 -1
- package/coverage/src/sentry/index.html +1 -1
- package/coverage/src/sentry/index.ts.html +23 -23
- package/coverage/src/server/createUiTs.ts.html +7 -7
- package/coverage/src/server/entity2LogicNamespace.ts.html +1 -1
- package/coverage/src/server/event.js.html +1 -1
- package/coverage/src/server/extendBaseNode.ts.html +4 -7
- package/coverage/src/server/formatTsUtils.ts.html +1 -1
- package/coverage/src/server/getConnector.ts.html +1 -1
- package/coverage/src/server/getExtensionModules.ts.html +1 -1
- package/coverage/src/server/getFunctions.ts.html +1 -1
- package/coverage/src/server/getInterfaces.ts.html +1 -1
- package/coverage/src/server/getLogging.ts.html +1 -1
- package/coverage/src/server/getLogics.ts.html +1 -1
- package/coverage/src/server/getMemberIdentifier.ts.html +124 -127
- package/coverage/src/server/getProcessComponents.ts.html +1 -1
- package/coverage/src/server/getProcesses.ts.html +1 -1
- package/coverage/src/server/getValidates.ts.html +1 -1
- package/coverage/src/server/index.html +22 -22
- package/coverage/src/server/index.ts.html +1 -1
- package/coverage/src/server/naslServer.ts.html +107 -629
- package/coverage/src/server/naslStdlibMap.ts.html +1 -1
- package/coverage/src/server/process2LogicNamespace.ts.html +1 -1
- package/coverage/src/server/translator.ts.html +3 -3
- package/coverage/src/service/creator/add.configs.js.html +8 -26
- package/coverage/src/service/creator/errHandles.js.html +37 -19
- package/coverage/src/service/creator/index.html +22 -22
- package/coverage/src/service/creator/index.js.html +1 -1
- package/coverage/src/service/datasource/api.js.html +1 -1
- package/coverage/src/service/datasource/index.html +1 -1
- package/coverage/src/service/datasource/index.js.html +1 -1
- package/coverage/src/service/logic/api.js.html +1 -1
- package/coverage/src/service/logic/index.html +1 -1
- package/coverage/src/service/logic/index.js.html +1 -1
- package/coverage/src/service/storage/api.js.html +1 -1
- package/coverage/src/service/storage/index.html +18 -18
- package/coverage/src/service/storage/index.ts.html +1 -1
- package/coverage/src/service/storage/init.ts.html +25 -976
- package/coverage/src/service/storage/jsoner.ts.html +3 -3
- package/coverage/src/service/storage/map.ts.html +3 -3
- package/coverage/src/service/storage/service.ts.html +1 -1
- package/coverage/src/service/storage/storagePoint.ts.html +1 -1
- package/coverage/src/templator/genCallComponentLogic.ts.html +1 -1
- package/coverage/src/templator/genCreateBlock.ts.html +56 -47
- package/coverage/src/templator/genCurdEditMultipleKeyBlock.ts.html +31 -49
- package/coverage/src/templator/genCurdMultipleKeyBlock.ts.html +93 -81
- package/coverage/src/templator/genEditTableBlock.ts.html +11 -80
- package/coverage/src/templator/genEnumSelectBlock.ts.html +1 -1
- package/coverage/src/templator/genGetBlock.ts.html +1 -1
- package/coverage/src/templator/genGridViewBlock.ts.html +1 -1
- package/coverage/src/templator/genListViewBlock.ts.html +1 -1
- package/coverage/src/templator/genQueryComponent.ts.html +1 -1
- package/coverage/src/templator/genSelectBlock.ts.html +1 -1
- package/coverage/src/templator/genTableBlock.ts.html +3 -66
- package/coverage/src/templator/genUpdateBlock.ts.html +36 -48
- package/coverage/src/templator/index.html +39 -39
- package/coverage/src/templator/index.ts.html +1 -1
- package/coverage/src/templator/utils.ts.html +11 -77
- package/coverage/src/translator/constant.ts.html +1 -1
- package/coverage/src/translator/index.html +20 -20
- package/coverage/src/translator/index.ts.html +1 -1
- package/coverage/src/translator/utils.ts.html +48 -144
- package/coverage/src/utils/cookie.ts.html +1 -1
- package/coverage/src/utils/env.ts.html +1 -1
- package/coverage/src/utils/index.html +33 -33
- package/coverage/src/utils/index.ts.html +10 -103
- package/coverage/src/utils/logger.ts.html +1 -1
- package/coverage/src/utils/sortTsString.ts.html +1 -1
- package/coverage/src/utils/string.ts.html +8 -110
- package/coverage/src/utils/time-slicing.ts.html +8 -14
- package/coverage/src/utils/traverse.ts.html +1 -1
- package/coverage/src/utils/window.ts.html +1 -1
- package/out/concepts/BinaryExpression__.js +1 -1
- package/out/concepts/BinaryExpression__.js.map +1 -1
- package/out/concepts/CallInterface__.js +8 -12
- package/out/concepts/CallInterface__.js.map +1 -1
- package/out/concepts/CallLogic__.js +1 -1
- package/out/concepts/CallLogic__.js.map +1 -1
- package/out/concepts/NewComposite__.js +7 -16
- package/out/concepts/NewComposite__.js.map +1 -1
- package/out/concepts/ViewElement__.js +21 -0
- package/out/concepts/ViewElement__.js.map +1 -1
- package/out/concepts/View__.js +2 -2
- package/out/concepts/View__.js.map +1 -1
- package/out/enums/KEYWORDS.js +2 -0
- package/out/enums/KEYWORDS.js.map +1 -1
- package/out/generator/genReleaseBody.js +3 -5
- package/out/generator/genReleaseBody.js.map +1 -1
- package/out/generator/permission.js +1 -1
- package/out/generator/permission.js.map +1 -1
- package/out/natural/transformTSCode.d.ts +2 -2
- package/out/templator/genCurdMultipleKeyBlock.js +2 -1
- package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
- package/out/translator/utils.js +2 -2
- package/out/translator/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/concepts/BinaryExpression__.ts +1 -1
- package/src/concepts/CallInterface__.ts +12 -16
- package/src/concepts/CallLogic__.ts +1 -1
- package/src/concepts/NewComposite__.ts +7 -16
- package/src/concepts/ViewElement__.ts +19 -0
- package/src/concepts/View__.ts +5 -5
- package/src/enums/KEYWORDS.ts +2 -0
- package/src/generator/genReleaseBody.ts +2 -6
- package/src/generator/permission.ts +4 -4
- package/src/templator/genCurdMultipleKeyBlock.ts +2 -1
- package/src/translator/utils.ts +5 -6
- package/coverage/src/concepts/MetadataType__.ts.html +0 -1996
- package/coverage/src/concepts/basics/stdlib/timeZone.ts.html +0 -664
- package/coverage/src/natural/genNaturalTS.ts.html +0 -355
- package/coverage/src/natural/index.html +0 -161
- package/coverage/src/natural/index.ts.html +0 -91
- package/coverage/src/natural/naslStdlibMap.ts.html +0 -157
- package/coverage/src/natural/transformTSCode.ts.html +0 -2707
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">1.
|
|
26
|
+
<span class="strong">1.75% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>38/2168</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">0% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>0/
|
|
35
|
+
<span class='fraction'>0/1662</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">0% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>0/
|
|
42
|
+
<span class='fraction'>0/257</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">1.
|
|
47
|
+
<span class="strong">1.77% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>37/2080</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -4798,195 +4798,19 @@
|
|
|
4798
4798
|
<a name='L4733'></a><a href='#L4733'>4733</a>
|
|
4799
4799
|
<a name='L4734'></a><a href='#L4734'>4734</a>
|
|
4800
4800
|
<a name='L4735'></a><a href='#L4735'>4735</a>
|
|
4801
|
-
<a name='L4736'></a><a href='#L4736'>4736</a>
|
|
4802
|
-
<a name='L4737'></a><a href='#L4737'>4737</a>
|
|
4803
|
-
<a name='L4738'></a><a href='#L4738'>4738</a>
|
|
4804
|
-
<a name='L4739'></a><a href='#L4739'>4739</a>
|
|
4805
|
-
<a name='L4740'></a><a href='#L4740'>4740</a>
|
|
4806
|
-
<a name='L4741'></a><a href='#L4741'>4741</a>
|
|
4807
|
-
<a name='L4742'></a><a href='#L4742'>4742</a>
|
|
4808
|
-
<a name='L4743'></a><a href='#L4743'>4743</a>
|
|
4809
|
-
<a name='L4744'></a><a href='#L4744'>4744</a>
|
|
4810
|
-
<a name='L4745'></a><a href='#L4745'>4745</a>
|
|
4811
|
-
<a name='L4746'></a><a href='#L4746'>4746</a>
|
|
4812
|
-
<a name='L4747'></a><a href='#L4747'>4747</a>
|
|
4813
|
-
<a name='L4748'></a><a href='#L4748'>4748</a>
|
|
4814
|
-
<a name='L4749'></a><a href='#L4749'>4749</a>
|
|
4815
|
-
<a name='L4750'></a><a href='#L4750'>4750</a>
|
|
4816
|
-
<a name='L4751'></a><a href='#L4751'>4751</a>
|
|
4817
|
-
<a name='L4752'></a><a href='#L4752'>4752</a>
|
|
4818
|
-
<a name='L4753'></a><a href='#L4753'>4753</a>
|
|
4819
|
-
<a name='L4754'></a><a href='#L4754'>4754</a>
|
|
4820
|
-
<a name='L4755'></a><a href='#L4755'>4755</a>
|
|
4821
|
-
<a name='L4756'></a><a href='#L4756'>4756</a>
|
|
4822
|
-
<a name='L4757'></a><a href='#L4757'>4757</a>
|
|
4823
|
-
<a name='L4758'></a><a href='#L4758'>4758</a>
|
|
4824
|
-
<a name='L4759'></a><a href='#L4759'>4759</a>
|
|
4825
|
-
<a name='L4760'></a><a href='#L4760'>4760</a>
|
|
4826
|
-
<a name='L4761'></a><a href='#L4761'>4761</a>
|
|
4827
|
-
<a name='L4762'></a><a href='#L4762'>4762</a>
|
|
4828
|
-
<a name='L4763'></a><a href='#L4763'>4763</a>
|
|
4829
|
-
<a name='L4764'></a><a href='#L4764'>4764</a>
|
|
4830
|
-
<a name='L4765'></a><a href='#L4765'>4765</a>
|
|
4831
|
-
<a name='L4766'></a><a href='#L4766'>4766</a>
|
|
4832
|
-
<a name='L4767'></a><a href='#L4767'>4767</a>
|
|
4833
|
-
<a name='L4768'></a><a href='#L4768'>4768</a>
|
|
4834
|
-
<a name='L4769'></a><a href='#L4769'>4769</a>
|
|
4835
|
-
<a name='L4770'></a><a href='#L4770'>4770</a>
|
|
4836
|
-
<a name='L4771'></a><a href='#L4771'>4771</a>
|
|
4837
|
-
<a name='L4772'></a><a href='#L4772'>4772</a>
|
|
4838
|
-
<a name='L4773'></a><a href='#L4773'>4773</a>
|
|
4839
|
-
<a name='L4774'></a><a href='#L4774'>4774</a>
|
|
4840
|
-
<a name='L4775'></a><a href='#L4775'>4775</a>
|
|
4841
|
-
<a name='L4776'></a><a href='#L4776'>4776</a>
|
|
4842
|
-
<a name='L4777'></a><a href='#L4777'>4777</a>
|
|
4843
|
-
<a name='L4778'></a><a href='#L4778'>4778</a>
|
|
4844
|
-
<a name='L4779'></a><a href='#L4779'>4779</a>
|
|
4845
|
-
<a name='L4780'></a><a href='#L4780'>4780</a>
|
|
4846
|
-
<a name='L4781'></a><a href='#L4781'>4781</a>
|
|
4847
|
-
<a name='L4782'></a><a href='#L4782'>4782</a>
|
|
4848
|
-
<a name='L4783'></a><a href='#L4783'>4783</a>
|
|
4849
|
-
<a name='L4784'></a><a href='#L4784'>4784</a>
|
|
4850
|
-
<a name='L4785'></a><a href='#L4785'>4785</a>
|
|
4851
|
-
<a name='L4786'></a><a href='#L4786'>4786</a>
|
|
4852
|
-
<a name='L4787'></a><a href='#L4787'>4787</a>
|
|
4853
|
-
<a name='L4788'></a><a href='#L4788'>4788</a>
|
|
4854
|
-
<a name='L4789'></a><a href='#L4789'>4789</a>
|
|
4855
|
-
<a name='L4790'></a><a href='#L4790'>4790</a>
|
|
4856
|
-
<a name='L4791'></a><a href='#L4791'>4791</a>
|
|
4857
|
-
<a name='L4792'></a><a href='#L4792'>4792</a>
|
|
4858
|
-
<a name='L4793'></a><a href='#L4793'>4793</a>
|
|
4859
|
-
<a name='L4794'></a><a href='#L4794'>4794</a>
|
|
4860
|
-
<a name='L4795'></a><a href='#L4795'>4795</a>
|
|
4861
|
-
<a name='L4796'></a><a href='#L4796'>4796</a>
|
|
4862
|
-
<a name='L4797'></a><a href='#L4797'>4797</a>
|
|
4863
|
-
<a name='L4798'></a><a href='#L4798'>4798</a>
|
|
4864
|
-
<a name='L4799'></a><a href='#L4799'>4799</a>
|
|
4865
|
-
<a name='L4800'></a><a href='#L4800'>4800</a>
|
|
4866
|
-
<a name='L4801'></a><a href='#L4801'>4801</a>
|
|
4867
|
-
<a name='L4802'></a><a href='#L4802'>4802</a>
|
|
4868
|
-
<a name='L4803'></a><a href='#L4803'>4803</a>
|
|
4869
|
-
<a name='L4804'></a><a href='#L4804'>4804</a>
|
|
4870
|
-
<a name='L4805'></a><a href='#L4805'>4805</a>
|
|
4871
|
-
<a name='L4806'></a><a href='#L4806'>4806</a>
|
|
4872
|
-
<a name='L4807'></a><a href='#L4807'>4807</a>
|
|
4873
|
-
<a name='L4808'></a><a href='#L4808'>4808</a>
|
|
4874
|
-
<a name='L4809'></a><a href='#L4809'>4809</a>
|
|
4875
|
-
<a name='L4810'></a><a href='#L4810'>4810</a>
|
|
4876
|
-
<a name='L4811'></a><a href='#L4811'>4811</a>
|
|
4877
|
-
<a name='L4812'></a><a href='#L4812'>4812</a>
|
|
4878
|
-
<a name='L4813'></a><a href='#L4813'>4813</a>
|
|
4879
|
-
<a name='L4814'></a><a href='#L4814'>4814</a>
|
|
4880
|
-
<a name='L4815'></a><a href='#L4815'>4815</a>
|
|
4881
|
-
<a name='L4816'></a><a href='#L4816'>4816</a>
|
|
4882
|
-
<a name='L4817'></a><a href='#L4817'>4817</a>
|
|
4883
|
-
<a name='L4818'></a><a href='#L4818'>4818</a>
|
|
4884
|
-
<a name='L4819'></a><a href='#L4819'>4819</a>
|
|
4885
|
-
<a name='L4820'></a><a href='#L4820'>4820</a>
|
|
4886
|
-
<a name='L4821'></a><a href='#L4821'>4821</a>
|
|
4887
|
-
<a name='L4822'></a><a href='#L4822'>4822</a>
|
|
4888
|
-
<a name='L4823'></a><a href='#L4823'>4823</a>
|
|
4889
|
-
<a name='L4824'></a><a href='#L4824'>4824</a>
|
|
4890
|
-
<a name='L4825'></a><a href='#L4825'>4825</a>
|
|
4891
|
-
<a name='L4826'></a><a href='#L4826'>4826</a>
|
|
4892
|
-
<a name='L4827'></a><a href='#L4827'>4827</a>
|
|
4893
|
-
<a name='L4828'></a><a href='#L4828'>4828</a>
|
|
4894
|
-
<a name='L4829'></a><a href='#L4829'>4829</a>
|
|
4895
|
-
<a name='L4830'></a><a href='#L4830'>4830</a>
|
|
4896
|
-
<a name='L4831'></a><a href='#L4831'>4831</a>
|
|
4897
|
-
<a name='L4832'></a><a href='#L4832'>4832</a>
|
|
4898
|
-
<a name='L4833'></a><a href='#L4833'>4833</a>
|
|
4899
|
-
<a name='L4834'></a><a href='#L4834'>4834</a>
|
|
4900
|
-
<a name='L4835'></a><a href='#L4835'>4835</a>
|
|
4901
|
-
<a name='L4836'></a><a href='#L4836'>4836</a>
|
|
4902
|
-
<a name='L4837'></a><a href='#L4837'>4837</a>
|
|
4903
|
-
<a name='L4838'></a><a href='#L4838'>4838</a>
|
|
4904
|
-
<a name='L4839'></a><a href='#L4839'>4839</a>
|
|
4905
|
-
<a name='L4840'></a><a href='#L4840'>4840</a>
|
|
4906
|
-
<a name='L4841'></a><a href='#L4841'>4841</a>
|
|
4907
|
-
<a name='L4842'></a><a href='#L4842'>4842</a>
|
|
4908
|
-
<a name='L4843'></a><a href='#L4843'>4843</a>
|
|
4909
|
-
<a name='L4844'></a><a href='#L4844'>4844</a>
|
|
4910
|
-
<a name='L4845'></a><a href='#L4845'>4845</a>
|
|
4911
|
-
<a name='L4846'></a><a href='#L4846'>4846</a>
|
|
4912
|
-
<a name='L4847'></a><a href='#L4847'>4847</a>
|
|
4913
|
-
<a name='L4848'></a><a href='#L4848'>4848</a>
|
|
4914
|
-
<a name='L4849'></a><a href='#L4849'>4849</a>
|
|
4915
|
-
<a name='L4850'></a><a href='#L4850'>4850</a>
|
|
4916
|
-
<a name='L4851'></a><a href='#L4851'>4851</a>
|
|
4917
|
-
<a name='L4852'></a><a href='#L4852'>4852</a>
|
|
4918
|
-
<a name='L4853'></a><a href='#L4853'>4853</a>
|
|
4919
|
-
<a name='L4854'></a><a href='#L4854'>4854</a>
|
|
4920
|
-
<a name='L4855'></a><a href='#L4855'>4855</a>
|
|
4921
|
-
<a name='L4856'></a><a href='#L4856'>4856</a>
|
|
4922
|
-
<a name='L4857'></a><a href='#L4857'>4857</a>
|
|
4923
|
-
<a name='L4858'></a><a href='#L4858'>4858</a>
|
|
4924
|
-
<a name='L4859'></a><a href='#L4859'>4859</a>
|
|
4925
|
-
<a name='L4860'></a><a href='#L4860'>4860</a>
|
|
4926
|
-
<a name='L4861'></a><a href='#L4861'>4861</a>
|
|
4927
|
-
<a name='L4862'></a><a href='#L4862'>4862</a>
|
|
4928
|
-
<a name='L4863'></a><a href='#L4863'>4863</a>
|
|
4929
|
-
<a name='L4864'></a><a href='#L4864'>4864</a>
|
|
4930
|
-
<a name='L4865'></a><a href='#L4865'>4865</a>
|
|
4931
|
-
<a name='L4866'></a><a href='#L4866'>4866</a>
|
|
4932
|
-
<a name='L4867'></a><a href='#L4867'>4867</a>
|
|
4933
|
-
<a name='L4868'></a><a href='#L4868'>4868</a>
|
|
4934
|
-
<a name='L4869'></a><a href='#L4869'>4869</a>
|
|
4935
|
-
<a name='L4870'></a><a href='#L4870'>4870</a>
|
|
4936
|
-
<a name='L4871'></a><a href='#L4871'>4871</a>
|
|
4937
|
-
<a name='L4872'></a><a href='#L4872'>4872</a>
|
|
4938
|
-
<a name='L4873'></a><a href='#L4873'>4873</a>
|
|
4939
|
-
<a name='L4874'></a><a href='#L4874'>4874</a>
|
|
4940
|
-
<a name='L4875'></a><a href='#L4875'>4875</a>
|
|
4941
|
-
<a name='L4876'></a><a href='#L4876'>4876</a>
|
|
4942
|
-
<a name='L4877'></a><a href='#L4877'>4877</a>
|
|
4943
|
-
<a name='L4878'></a><a href='#L4878'>4878</a>
|
|
4944
|
-
<a name='L4879'></a><a href='#L4879'>4879</a>
|
|
4945
|
-
<a name='L4880'></a><a href='#L4880'>4880</a>
|
|
4946
|
-
<a name='L4881'></a><a href='#L4881'>4881</a>
|
|
4947
|
-
<a name='L4882'></a><a href='#L4882'>4882</a>
|
|
4948
|
-
<a name='L4883'></a><a href='#L4883'>4883</a>
|
|
4949
|
-
<a name='L4884'></a><a href='#L4884'>4884</a>
|
|
4950
|
-
<a name='L4885'></a><a href='#L4885'>4885</a>
|
|
4951
|
-
<a name='L4886'></a><a href='#L4886'>4886</a>
|
|
4952
|
-
<a name='L4887'></a><a href='#L4887'>4887</a>
|
|
4953
|
-
<a name='L4888'></a><a href='#L4888'>4888</a>
|
|
4954
|
-
<a name='L4889'></a><a href='#L4889'>4889</a>
|
|
4955
|
-
<a name='L4890'></a><a href='#L4890'>4890</a>
|
|
4956
|
-
<a name='L4891'></a><a href='#L4891'>4891</a>
|
|
4957
|
-
<a name='L4892'></a><a href='#L4892'>4892</a>
|
|
4958
|
-
<a name='L4893'></a><a href='#L4893'>4893</a>
|
|
4959
|
-
<a name='L4894'></a><a href='#L4894'>4894</a>
|
|
4960
|
-
<a name='L4895'></a><a href='#L4895'>4895</a>
|
|
4961
|
-
<a name='L4896'></a><a href='#L4896'>4896</a>
|
|
4962
|
-
<a name='L4897'></a><a href='#L4897'>4897</a>
|
|
4963
|
-
<a name='L4898'></a><a href='#L4898'>4898</a>
|
|
4964
|
-
<a name='L4899'></a><a href='#L4899'>4899</a>
|
|
4965
|
-
<a name='L4900'></a><a href='#L4900'>4900</a>
|
|
4966
|
-
<a name='L4901'></a><a href='#L4901'>4901</a>
|
|
4967
|
-
<a name='L4902'></a><a href='#L4902'>4902</a>
|
|
4968
|
-
<a name='L4903'></a><a href='#L4903'>4903</a>
|
|
4969
|
-
<a name='L4904'></a><a href='#L4904'>4904</a>
|
|
4970
|
-
<a name='L4905'></a><a href='#L4905'>4905</a>
|
|
4971
|
-
<a name='L4906'></a><a href='#L4906'>4906</a>
|
|
4972
|
-
<a name='L4907'></a><a href='#L4907'>4907</a>
|
|
4973
|
-
<a name='L4908'></a><a href='#L4908'>4908</a>
|
|
4974
|
-
<a name='L4909'></a><a href='#L4909'>4909</a>
|
|
4975
|
-
<a name='L4910'></a><a href='#L4910'>4910</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
4801
|
+
<a name='L4736'></a><a href='#L4736'>4736</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
4976
4802
|
<span class="cline-any cline-yes">1x</span>
|
|
4977
4803
|
<span class="cline-any cline-yes">1x</span>
|
|
4978
4804
|
<span class="cline-any cline-yes">1x</span>
|
|
4979
4805
|
<span class="cline-any cline-neutral"> </span>
|
|
4980
4806
|
<span class="cline-any cline-neutral"> </span>
|
|
4981
|
-
<span class="cline-any cline-neutral"> </span>
|
|
4982
|
-
<span class="cline-any cline-yes">1x</span>
|
|
4983
|
-
<span class="cline-any cline-yes">1x</span>
|
|
4984
4807
|
<span class="cline-any cline-yes">1x</span>
|
|
4985
4808
|
<span class="cline-any cline-yes">1x</span>
|
|
4986
4809
|
<span class="cline-any cline-yes">1x</span>
|
|
4987
4810
|
<span class="cline-any cline-neutral"> </span>
|
|
4988
4811
|
<span class="cline-any cline-yes">1x</span>
|
|
4989
4812
|
<span class="cline-any cline-neutral"> </span>
|
|
4813
|
+
<span class="cline-any cline-yes">1x</span>
|
|
4990
4814
|
<span class="cline-any cline-neutral"> </span>
|
|
4991
4815
|
<span class="cline-any cline-neutral"> </span>
|
|
4992
4816
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -5078,6 +4902,7 @@
|
|
|
5078
4902
|
<span class="cline-any cline-yes">1x</span>
|
|
5079
4903
|
<span class="cline-any cline-neutral"> </span>
|
|
5080
4904
|
<span class="cline-any cline-yes">1x</span>
|
|
4905
|
+
<span class="cline-any cline-yes">1x</span>
|
|
5081
4906
|
<span class="cline-any cline-neutral"> </span>
|
|
5082
4907
|
<span class="cline-any cline-yes">1x</span>
|
|
5083
4908
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -5161,29 +4986,6 @@
|
|
|
5161
4986
|
<span class="cline-any cline-neutral"> </span>
|
|
5162
4987
|
<span class="cline-any cline-neutral"> </span>
|
|
5163
4988
|
<span class="cline-any cline-neutral"> </span>
|
|
5164
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5165
|
-
<span class="cline-any cline-no"> </span>
|
|
5166
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5167
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5168
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5169
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5170
|
-
<span class="cline-any cline-no"> </span>
|
|
5171
|
-
<span class="cline-any cline-no"> </span>
|
|
5172
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5173
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5174
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5175
|
-
<span class="cline-any cline-yes">1x</span>
|
|
5176
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5177
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5178
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5179
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5180
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5181
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5182
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5183
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5184
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5185
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5186
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5187
4989
|
<span class="cline-any cline-yes">1x</span>
|
|
5188
4990
|
<span class="cline-any cline-neutral"> </span>
|
|
5189
4991
|
<span class="cline-any cline-no"> </span>
|
|
@@ -5261,8 +5063,6 @@
|
|
|
5261
5063
|
<span class="cline-any cline-neutral"> </span>
|
|
5262
5064
|
<span class="cline-any cline-no"> </span>
|
|
5263
5065
|
<span class="cline-any cline-no"> </span>
|
|
5264
|
-
<span class="cline-any cline-no"> </span>
|
|
5265
|
-
<span class="cline-any cline-no"> </span>
|
|
5266
5066
|
<span class="cline-any cline-neutral"> </span>
|
|
5267
5067
|
<span class="cline-any cline-no"> </span>
|
|
5268
5068
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -5370,15 +5170,6 @@
|
|
|
5370
5170
|
<span class="cline-any cline-no"> </span>
|
|
5371
5171
|
<span class="cline-any cline-no"> </span>
|
|
5372
5172
|
<span class="cline-any cline-no"> </span>
|
|
5373
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5374
|
-
<span class="cline-any cline-no"> </span>
|
|
5375
|
-
<span class="cline-any cline-no"> </span>
|
|
5376
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5377
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5378
|
-
<span class="cline-any cline-no"> </span>
|
|
5379
|
-
<span class="cline-any cline-no"> </span>
|
|
5380
|
-
<span class="cline-any cline-no"> </span>
|
|
5381
|
-
<span class="cline-any cline-no"> </span>
|
|
5382
5173
|
<span class="cline-any cline-no"> </span>
|
|
5383
5174
|
<span class="cline-any cline-no"> </span>
|
|
5384
5175
|
<span class="cline-any cline-no"> </span>
|
|
@@ -5684,7 +5475,6 @@
|
|
|
5684
5475
|
<span class="cline-any cline-neutral"> </span>
|
|
5685
5476
|
<span class="cline-any cline-neutral"> </span>
|
|
5686
5477
|
<span class="cline-any cline-neutral"> </span>
|
|
5687
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5688
5478
|
<span class="cline-any cline-no"> </span>
|
|
5689
5479
|
<span class="cline-any cline-neutral"> </span>
|
|
5690
5480
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -5911,7 +5701,6 @@
|
|
|
5911
5701
|
<span class="cline-any cline-no"> </span>
|
|
5912
5702
|
<span class="cline-any cline-neutral"> </span>
|
|
5913
5703
|
<span class="cline-any cline-neutral"> </span>
|
|
5914
|
-
<span class="cline-any cline-neutral"> </span>
|
|
5915
5704
|
<span class="cline-any cline-no"> </span>
|
|
5916
5705
|
<span class="cline-any cline-neutral"> </span>
|
|
5917
5706
|
<span class="cline-any cline-no"> </span>
|
|
@@ -6047,7 +5836,6 @@
|
|
|
6047
5836
|
<span class="cline-any cline-neutral"> </span>
|
|
6048
5837
|
<span class="cline-any cline-neutral"> </span>
|
|
6049
5838
|
<span class="cline-any cline-neutral"> </span>
|
|
6050
|
-
<span class="cline-any cline-neutral"> </span>
|
|
6051
5839
|
<span class="cline-any cline-yes">1x</span>
|
|
6052
5840
|
<span class="cline-any cline-neutral"> </span>
|
|
6053
5841
|
<span class="cline-any cline-no"> </span>
|
|
@@ -6766,20 +6554,6 @@
|
|
|
6766
6554
|
<span class="cline-any cline-no"> </span>
|
|
6767
6555
|
<span class="cline-any cline-no"> </span>
|
|
6768
6556
|
<span class="cline-any cline-no"> </span>
|
|
6769
|
-
<span class="cline-any cline-no"> </span>
|
|
6770
|
-
<span class="cline-any cline-no"> </span>
|
|
6771
|
-
<span class="cline-any cline-no"> </span>
|
|
6772
|
-
<span class="cline-any cline-neutral"> </span>
|
|
6773
|
-
<span class="cline-any cline-neutral"> </span>
|
|
6774
|
-
<span class="cline-any cline-neutral"> </span>
|
|
6775
|
-
<span class="cline-any cline-neutral"> </span>
|
|
6776
|
-
<span class="cline-any cline-no"> </span>
|
|
6777
|
-
<span class="cline-any cline-neutral"> </span>
|
|
6778
|
-
<span class="cline-any cline-neutral"> </span>
|
|
6779
|
-
<span class="cline-any cline-no"> </span>
|
|
6780
|
-
<span class="cline-any cline-no"> </span>
|
|
6781
|
-
<span class="cline-any cline-no"> </span>
|
|
6782
|
-
<span class="cline-any cline-no"> </span>
|
|
6783
6557
|
<span class="cline-any cline-neutral"> </span>
|
|
6784
6558
|
<span class="cline-any cline-neutral"> </span>
|
|
6785
6559
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -7171,7 +6945,6 @@
|
|
|
7171
6945
|
<span class="cline-any cline-neutral"> </span>
|
|
7172
6946
|
<span class="cline-any cline-neutral"> </span>
|
|
7173
6947
|
<span class="cline-any cline-neutral"> </span>
|
|
7174
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7175
6948
|
<span class="cline-any cline-no"> </span>
|
|
7176
6949
|
<span class="cline-any cline-no"> </span>
|
|
7177
6950
|
<span class="cline-any cline-no"> </span>
|
|
@@ -7209,31 +6982,12 @@
|
|
|
7209
6982
|
<span class="cline-any cline-neutral"> </span>
|
|
7210
6983
|
<span class="cline-any cline-no"> </span>
|
|
7211
6984
|
<span class="cline-any cline-neutral"> </span>
|
|
7212
|
-
<span class="cline-any cline-no"> </span>
|
|
7213
|
-
<span class="cline-any cline-no"> </span>
|
|
7214
|
-
<span class="cline-any cline-no"> </span>
|
|
7215
|
-
<span class="cline-any cline-no"> </span>
|
|
7216
|
-
<span class="cline-any cline-no"> </span>
|
|
7217
|
-
<span class="cline-any cline-no"> </span>
|
|
7218
|
-
<span class="cline-any cline-no"> </span>
|
|
7219
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7220
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7221
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7222
6985
|
<span class="cline-any cline-neutral"> </span>
|
|
7223
6986
|
<span class="cline-any cline-no"> </span>
|
|
7224
6987
|
<span class="cline-any cline-neutral"> </span>
|
|
7225
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7226
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7227
|
-
<span class="cline-any cline-no"> </span>
|
|
7228
|
-
<span class="cline-any cline-no"> </span>
|
|
7229
|
-
<span class="cline-any cline-no"> </span>
|
|
7230
6988
|
<span class="cline-any cline-no"> </span>
|
|
7231
6989
|
<span class="cline-any cline-no"> </span>
|
|
7232
6990
|
<span class="cline-any cline-no"> </span>
|
|
7233
|
-
<span class="cline-any cline-no"> </span>
|
|
7234
|
-
<span class="cline-any cline-no"> </span>
|
|
7235
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7236
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7237
6991
|
<span class="cline-any cline-neutral"> </span>
|
|
7238
6992
|
<span class="cline-any cline-neutral"> </span>
|
|
7239
6993
|
<span class="cline-any cline-no"> </span>
|
|
@@ -7245,98 +6999,6 @@
|
|
|
7245
6999
|
<span class="cline-any cline-no"> </span>
|
|
7246
7000
|
<span class="cline-any cline-no"> </span>
|
|
7247
7001
|
<span class="cline-any cline-no"> </span>
|
|
7248
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7249
|
-
<span class="cline-any cline-no"> </span>
|
|
7250
|
-
<span class="cline-any cline-no"> </span>
|
|
7251
|
-
<span class="cline-any cline-no"> </span>
|
|
7252
|
-
<span class="cline-any cline-no"> </span>
|
|
7253
|
-
<span class="cline-any cline-no"> </span>
|
|
7254
|
-
<span class="cline-any cline-no"> </span>
|
|
7255
|
-
<span class="cline-any cline-no"> </span>
|
|
7256
|
-
<span class="cline-any cline-no"> </span>
|
|
7257
|
-
<span class="cline-any cline-no"> </span>
|
|
7258
|
-
<span class="cline-any cline-no"> </span>
|
|
7259
|
-
<span class="cline-any cline-no"> </span>
|
|
7260
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7261
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7262
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7263
|
-
<span class="cline-any cline-no"> </span>
|
|
7264
|
-
<span class="cline-any cline-no"> </span>
|
|
7265
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7266
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7267
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7268
|
-
<span class="cline-any cline-no"> </span>
|
|
7269
|
-
<span class="cline-any cline-no"> </span>
|
|
7270
|
-
<span class="cline-any cline-no"> </span>
|
|
7271
|
-
<span class="cline-any cline-no"> </span>
|
|
7272
|
-
<span class="cline-any cline-no"> </span>
|
|
7273
|
-
<span class="cline-any cline-no"> </span>
|
|
7274
|
-
<span class="cline-any cline-no"> </span>
|
|
7275
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7276
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7277
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7278
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7279
|
-
<span class="cline-any cline-no"> </span>
|
|
7280
|
-
<span class="cline-any cline-no"> </span>
|
|
7281
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7282
|
-
<span class="cline-any cline-no"> </span>
|
|
7283
|
-
<span class="cline-any cline-no"> </span>
|
|
7284
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7285
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7286
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7287
|
-
<span class="cline-any cline-no"> </span>
|
|
7288
|
-
<span class="cline-any cline-no"> </span>
|
|
7289
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7290
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7291
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7292
|
-
<span class="cline-any cline-no"> </span>
|
|
7293
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7294
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7295
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7296
|
-
<span class="cline-any cline-no"> </span>
|
|
7297
|
-
<span class="cline-any cline-no"> </span>
|
|
7298
|
-
<span class="cline-any cline-no"> </span>
|
|
7299
|
-
<span class="cline-any cline-no"> </span>
|
|
7300
|
-
<span class="cline-any cline-no"> </span>
|
|
7301
|
-
<span class="cline-any cline-no"> </span>
|
|
7302
|
-
<span class="cline-any cline-no"> </span>
|
|
7303
|
-
<span class="cline-any cline-no"> </span>
|
|
7304
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7305
|
-
<span class="cline-any cline-no"> </span>
|
|
7306
|
-
<span class="cline-any cline-no"> </span>
|
|
7307
|
-
<span class="cline-any cline-no"> </span>
|
|
7308
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7309
|
-
<span class="cline-any cline-no"> </span>
|
|
7310
|
-
<span class="cline-any cline-no"> </span>
|
|
7311
|
-
<span class="cline-any cline-no"> </span>
|
|
7312
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7313
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7314
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7315
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7316
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7317
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7318
|
-
<span class="cline-any cline-no"> </span>
|
|
7319
|
-
<span class="cline-any cline-no"> </span>
|
|
7320
|
-
<span class="cline-any cline-no"> </span>
|
|
7321
|
-
<span class="cline-any cline-no"> </span>
|
|
7322
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7323
|
-
<span class="cline-any cline-no"> </span>
|
|
7324
|
-
<span class="cline-any cline-no"> </span>
|
|
7325
|
-
<span class="cline-any cline-no"> </span>
|
|
7326
|
-
<span class="cline-any cline-no"> </span>
|
|
7327
|
-
<span class="cline-any cline-no"> </span>
|
|
7328
|
-
<span class="cline-any cline-no"> </span>
|
|
7329
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7330
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7331
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7332
|
-
<span class="cline-any cline-no"> </span>
|
|
7333
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7334
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7335
|
-
<span class="cline-any cline-no"> </span>
|
|
7336
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7337
|
-
<span class="cline-any cline-no"> </span>
|
|
7338
|
-
<span class="cline-any cline-no"> </span>
|
|
7339
|
-
<span class="cline-any cline-no"> </span>
|
|
7340
7002
|
<span class="cline-any cline-no"> </span>
|
|
7341
7003
|
<span class="cline-any cline-no"> </span>
|
|
7342
7004
|
<span class="cline-any cline-no"> </span>
|
|
@@ -7505,7 +7167,6 @@
|
|
|
7505
7167
|
<span class="cline-any cline-neutral"> </span>
|
|
7506
7168
|
<span class="cline-any cline-neutral"> </span>
|
|
7507
7169
|
<span class="cline-any cline-neutral"> </span>
|
|
7508
|
-
<span class="cline-any cline-neutral"> </span>
|
|
7509
7170
|
<span class="cline-any cline-no"> </span>
|
|
7510
7171
|
<span class="cline-any cline-neutral"> </span>
|
|
7511
7172
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -7773,6 +7434,7 @@
|
|
|
7773
7434
|
<span class="cline-any cline-neutral"> </span>
|
|
7774
7435
|
<span class="cline-any cline-neutral"> </span>
|
|
7775
7436
|
<span class="cline-any cline-no"> </span>
|
|
7437
|
+
<span class="cline-any cline-neutral"> </span>
|
|
7776
7438
|
<span class="cline-any cline-no"> </span>
|
|
7777
7439
|
<span class="cline-any cline-no"> </span>
|
|
7778
7440
|
<span class="cline-any cline-no"> </span>
|
|
@@ -7793,6 +7455,7 @@
|
|
|
7793
7455
|
<span class="cline-any cline-neutral"> </span>
|
|
7794
7456
|
<span class="cline-any cline-neutral"> </span>
|
|
7795
7457
|
<span class="cline-any cline-neutral"> </span>
|
|
7458
|
+
<span class="cline-any cline-neutral"> </span>
|
|
7796
7459
|
<span class="cline-any cline-no"> </span>
|
|
7797
7460
|
<span class="cline-any cline-neutral"> </span>
|
|
7798
7461
|
<span class="cline-any cline-no"> </span>
|
|
@@ -8847,6 +8510,7 @@
|
|
|
8847
8510
|
<span class="cline-any cline-neutral"> </span>
|
|
8848
8511
|
<span class="cline-any cline-neutral"> </span>
|
|
8849
8512
|
<span class="cline-any cline-neutral"> </span>
|
|
8513
|
+
<span class="cline-any cline-no"> </span>
|
|
8850
8514
|
<span class="cline-any cline-neutral"> </span>
|
|
8851
8515
|
<span class="cline-any cline-neutral"> </span>
|
|
8852
8516
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -9124,6 +8788,7 @@
|
|
|
9124
8788
|
<span class="cline-any cline-no"> </span>
|
|
9125
8789
|
<span class="cline-any cline-neutral"> </span>
|
|
9126
8790
|
<span class="cline-any cline-no"> </span>
|
|
8791
|
+
<span class="cline-any cline-neutral"> </span>
|
|
9127
8792
|
<span class="cline-any cline-no"> </span>
|
|
9128
8793
|
<span class="cline-any cline-no"> </span>
|
|
9129
8794
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -9365,19 +9030,6 @@
|
|
|
9365
9030
|
<span class="cline-any cline-neutral"> </span>
|
|
9366
9031
|
<span class="cline-any cline-neutral"> </span>
|
|
9367
9032
|
<span class="cline-any cline-neutral"> </span>
|
|
9368
|
-
<span class="cline-any cline-no"> </span>
|
|
9369
|
-
<span class="cline-any cline-no"> </span>
|
|
9370
|
-
<span class="cline-any cline-no"> </span>
|
|
9371
|
-
<span class="cline-any cline-no"> </span>
|
|
9372
|
-
<span class="cline-any cline-neutral"> </span>
|
|
9373
|
-
<span class="cline-any cline-no"> </span>
|
|
9374
|
-
<span class="cline-any cline-no"> </span>
|
|
9375
|
-
<span class="cline-any cline-no"> </span>
|
|
9376
|
-
<span class="cline-any cline-neutral"> </span>
|
|
9377
|
-
<span class="cline-any cline-neutral"> </span>
|
|
9378
|
-
<span class="cline-any cline-neutral"> </span>
|
|
9379
|
-
<span class="cline-any cline-neutral"> </span>
|
|
9380
|
-
<span class="cline-any cline-neutral"> </span>
|
|
9381
9033
|
<span class="cline-any cline-neutral"> </span>
|
|
9382
9034
|
<span class="cline-any cline-neutral"> </span>
|
|
9383
9035
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -9887,12 +9539,11 @@ import * as path from 'path';
|
|
|
9887
9539
|
import { Worker } from 'worker_threads';
|
|
9888
9540
|
/// #endif
|
|
9889
9541
|
|
|
9890
|
-
import * as tsProtocol from 'typescript/lib/protocol';
|
|
9891
|
-
import { Decimal } from 'decimal.js';
|
|
9892
9542
|
import { config } from '../config';
|
|
9893
9543
|
import { sentryMonitorNaslServer, sentryMonitorTSWorkerMessager } from '../sentry';
|
|
9894
9544
|
import Messager from '../common/Messager';
|
|
9895
|
-
import
|
|
9545
|
+
import * as tsProtocol from 'typescript/lib/protocol';
|
|
9546
|
+
import { formatEnums } from '../server/getMemberIdentifier';
|
|
9896
9547
|
|
|
9897
9548
|
import {
|
|
9898
9549
|
Module,
|
|
@@ -9967,7 +9618,6 @@ import {
|
|
|
9967
9618
|
Connection,
|
|
9968
9619
|
TriggerLauncher,
|
|
9969
9620
|
CallConnector,
|
|
9970
|
-
MetadataType
|
|
9971
9621
|
} from '../concepts';
|
|
9972
9622
|
|
|
9973
9623
|
import { lsp2tspNumber, SourceMap, SourceMapItem, isSameRange } from '../translator';
|
|
@@ -9986,6 +9636,7 @@ import { EventEmitter } from '../common/EventEmitter';
|
|
|
9986
9636
|
import { traverse } from '../utils';
|
|
9987
9637
|
import { withQueueExecute } from '../decorators';
|
|
9988
9638
|
|
|
9639
|
+
import { Decimal } from 'decimal.js';
|
|
9989
9640
|
import { getNodeByNodeCallee } from '../automate/engine/utils';
|
|
9990
9641
|
|
|
9991
9642
|
const EmbeddedTSFileLineMap: { [name: string]: number } = {
|
|
@@ -10026,7 +9677,7 @@ interface QuoteNode {
|
|
|
10026
9677
|
// 批量查找节点位置的节点信息类型
|
|
10027
9678
|
type QuickInfoNodes = Array<{ filePath: string; node: BaseNode; item: SourceMapItem }>;
|
|
10028
9679
|
|
|
10029
|
-
let isChangeInterface = false;
|
|
9680
|
+
let isChangeInterface = false; //判断是否导入接口
|
|
10030
9681
|
type ActionNode = { target: Variable; typeannotation: TypeAnnotation };
|
|
10031
9682
|
let actionArr: Array<ActionNode> = []; //用于导入接口收集更改的节点
|
|
10032
9683
|
let timer: number | null = null; //超时器用于收集导入接口相关
|
|
@@ -10050,17 +9701,17 @@ export function <span class="fstat-no" title="function not covered" >getDisplayS
|
|
|
10050
9701
|
const typeList: string[] = <span class="cstat-no" title="statement not covered" >(types?.[1].split(' | ') ?? []).map(<span class="fstat-no" title="function not covered" >(i</span>tem: string) => {</span>
|
|
10051
9702
|
<span class="cstat-no" title="statement not covered" > if (/<([^()]+)>/g.exec(item)) {</span>
|
|
10052
9703
|
<span class="cstat-no" title="statement not covered" > return item;</span>
|
|
10053
|
-
} <span class="cstat-no" title="statement not covered" >if (item.includes(' ')) {</span>
|
|
9704
|
+
} else <span class="cstat-no" title="statement not covered" >if (item.includes(' ')) {</span>
|
|
10054
9705
|
const strs = <span class="cstat-no" title="statement not covered" >item.split(' ');</span>
|
|
10055
9706
|
const type = <span class="cstat-no" title="statement not covered" >strs[strs.length - 1];</span>
|
|
10056
9707
|
<span class="cstat-no" title="statement not covered" > return type;</span>
|
|
10057
|
-
} <span class="cstat-no" title="statement not covered" >if (item.includes('.')) {</span>
|
|
9708
|
+
} else <span class="cstat-no" title="statement not covered" >if (item.includes('.')) {</span>
|
|
10058
9709
|
const strs = <span class="cstat-no" title="statement not covered" >item.split('.');</span>
|
|
10059
9710
|
const type = <span class="cstat-no" title="statement not covered" >strs[strs.length - 1];</span>
|
|
10060
9711
|
<span class="cstat-no" title="statement not covered" > return type;</span>
|
|
10061
|
-
}
|
|
9712
|
+
} else {
|
|
10062
9713
|
<span class="cstat-no" title="statement not covered" > return item;</span>
|
|
10063
|
-
|
|
9714
|
+
}
|
|
10064
9715
|
});
|
|
10065
9716
|
|
|
10066
9717
|
<span class="cstat-no" title="statement not covered" > if (targetType) {</span>
|
|
@@ -10069,29 +9720,6 @@ export function <span class="fstat-no" title="function not covered" >getDisplayS
|
|
|
10069
9720
|
<span class="cstat-no" title="statement not covered" > return typeList;</span>
|
|
10070
9721
|
}
|
|
10071
9722
|
|
|
10072
|
-
|
|
10073
|
-
function <span class="fstat-no" title="function not covered" >isCoreDateTimeType(</span>n : Argument): boolean {
|
|
10074
|
-
<span class="cstat-no" title="statement not covered" > return n?.expression?.__TypeAnnotation?.typeName === 'DateTime' &&</span>
|
|
10075
|
-
n?.expression?.__TypeAnnotation?.typeNamespace === 'nasl.core';
|
|
10076
|
-
}
|
|
10077
|
-
|
|
10078
|
-
function <span class="fstat-no" title="function not covered" >isFunctionWithFixedTimeZoneParam(</span>calleeName : string): boolean {
|
|
10079
|
-
const fns = <span class="cstat-no" title="statement not covered" >['CurrDateTime', 'CurrDate', 'CurrTime', 'FormatDateTime'];</span>
|
|
10080
|
-
<span class="cstat-no" title="statement not covered" > return fns.includes(calleeName);</span>
|
|
10081
|
-
}
|
|
10082
|
-
|
|
10083
|
-
|
|
10084
|
-
const timeZoneArgumentIndexMap = new Map<string, number>([
|
|
10085
|
-
['ToString', 1],
|
|
10086
|
-
['CurrDateTime', 0],
|
|
10087
|
-
['CurrDate', 0],
|
|
10088
|
-
['CurrTime', 0],
|
|
10089
|
-
['FormatDateTime', 2],
|
|
10090
|
-
['jsonSerialize', 1],
|
|
10091
|
-
['GetDateCount', 2],
|
|
10092
|
-
['GetSpecificDaysOfWeek', 3]
|
|
10093
|
-
])
|
|
10094
|
-
|
|
10095
9723
|
@sentryMonitorNaslServer
|
|
10096
9724
|
class NaslServer {
|
|
10097
9725
|
/** naslStdlib文件缓存 */
|
|
@@ -10170,8 +9798,6 @@ class NaslServer {
|
|
|
10170
9798
|
// 结束诊断和标注
|
|
10171
9799
|
<span class="cstat-no" title="statement not covered" > invokeCommand('naslServer:endWork');</span>
|
|
10172
9800
|
<span class="cstat-no" title="statement not covered" > invokeCommand('naslServer:nodeChange');</span>
|
|
10173
|
-
<span class="cstat-no" title="statement not covered" > this.embeddedTSEmitter.emit('naslServer:endWork');</span>
|
|
10174
|
-
<span class="cstat-no" title="statement not covered" > this.embeddedTSEmitter.emit('naslServer:nodeChange');</span>
|
|
10175
9801
|
} catch (e) {
|
|
10176
9802
|
<span class="cstat-no" title="statement not covered" > console.log('no "naslServer:nodeChange" event received');</span>
|
|
10177
9803
|
}
|
|
@@ -10200,7 +9826,7 @@ class NaslServer {
|
|
|
10200
9826
|
// 这个方法是 5.0 加入标准库的,但是这里 ts 版本是 4.x,ci 会挂,所以需要忽略
|
|
10201
9827
|
// @ts-ignore
|
|
10202
9828
|
const findLastIndex = <span class="cstat-no" title="statement not covered" >this.changeStackList.findLastIndex(<span class="fstat-no" title="function not covered" >(c</span>hangeStackItem: EventPayload) => {</span>
|
|
10203
|
-
const
|
|
9829
|
+
const target = <span class="cstat-no" title="statement not covered" >changeStackItem.target;</span>
|
|
10204
9830
|
const { fileNode: targetFileNode } = <span class="cstat-no" title="statement not covered" >this.getCurrentSource(target);</span>
|
|
10205
9831
|
<span class="cstat-no" title="statement not covered" > return targetFileNode === fileNode;</span>
|
|
10206
9832
|
});
|
|
@@ -10210,10 +9836,10 @@ class NaslServer {
|
|
|
10210
9836
|
<span class="cstat-no" title="statement not covered" > if (this.changeStackList[findLastIndex]?.field) {</span>
|
|
10211
9837
|
// 如果当前列表里有,这个文件节点,最后一个是field的话,直接return掉,不用塞这个update了
|
|
10212
9838
|
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
10213
|
-
}
|
|
9839
|
+
} else {
|
|
10214
9840
|
// 如果最后一项是普通的update的话,就可以去掉,后面那个会在塞过来
|
|
10215
9841
|
<span class="cstat-no" title="statement not covered" > this.changeStackList.pop();</span>
|
|
10216
|
-
|
|
9842
|
+
}
|
|
10217
9843
|
}
|
|
10218
9844
|
<span class="cstat-no" title="statement not covered" > this.changeStackList.push(item.originEvent);</span>
|
|
10219
9845
|
} catch (err) {
|
|
@@ -10250,7 +9876,7 @@ class NaslServer {
|
|
|
10250
9876
|
<span class="cstat-no" title="statement not covered" > Object.keys(naslStdlibMap).forEach(<span class="fstat-no" title="function not covered" >async </span>(libFileName: string) => {</span>
|
|
10251
9877
|
<span class="cstat-no" title="statement not covered" > await this.addFile(</span>
|
|
10252
9878
|
{
|
|
10253
|
-
file:
|
|
9879
|
+
file: '/' + libFileName,
|
|
10254
9880
|
fileContent: naslStdlibMap[libFileName],
|
|
10255
9881
|
},
|
|
10256
9882
|
{ cache: true }
|
|
@@ -10275,15 +9901,6 @@ class NaslServer {
|
|
|
10275
9901
|
<span class="cstat-no" title="statement not covered" > this.file2NodeMap.set(result.filePath, structure);</span>
|
|
10276
9902
|
} catch (err) {}
|
|
10277
9903
|
});
|
|
10278
|
-
<span class="cstat-no" title="statement not covered" > module.metadataTypes?.forEach(<span class="fstat-no" title="function not covered" >(m</span>etadataType) => {</span>
|
|
10279
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
10280
|
-
const result = <span class="cstat-no" title="statement not covered" >metadataType.toEmbeddedTSFile();</span>
|
|
10281
|
-
<span class="cstat-no" title="statement not covered" > results.push(result);</span>
|
|
10282
|
-
// sourceMap都存在目录级别内容下,在页面层级下去找
|
|
10283
|
-
<span class="cstat-no" title="statement not covered" > metadataType.sourceMap = result.sourceMap;</span>
|
|
10284
|
-
<span class="cstat-no" title="statement not covered" > this.file2NodeMap.set(result.filePath, metadataType);</span>
|
|
10285
|
-
} catch (err) {}
|
|
10286
|
-
});
|
|
10287
9904
|
<span class="cstat-no" title="statement not covered" > if (module instanceof App) {</span>
|
|
10288
9905
|
<span class="cstat-no" title="statement not covered" > module.overriddenLogics?.forEach?.(<span class="fstat-no" title="function not covered" >(l</span>ogic) => {</span>
|
|
10289
9906
|
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
@@ -10591,13 +10208,12 @@ class NaslServer {
|
|
|
10591
10208
|
<span class="cstat-no" title="statement not covered" > cache && this.cacheFile(file);</span>
|
|
10592
10209
|
<span class="cstat-no" title="statement not covered" > return this.messager.requestCommand('addFile', file);</span>
|
|
10593
10210
|
}
|
|
10594
|
-
|
|
10595
10211
|
// 缓存添加过的文件
|
|
10596
10212
|
<span class="fstat-no" title="function not covered" > cacheFile(</span>options: tsProtocol.OpenRequestArgs) {
|
|
10597
10213
|
<span class="cstat-no" title="statement not covered" > __naslStdlibFileCacheMap.set(options.file, options);</span>
|
|
10598
10214
|
}
|
|
10599
10215
|
|
|
10600
|
-
/**
|
|
10216
|
+
/**u
|
|
10601
10217
|
* 只新增文件
|
|
10602
10218
|
* @param {*} files
|
|
10603
10219
|
*/
|
|
@@ -10639,12 +10255,12 @@ class NaslServer {
|
|
|
10639
10255
|
// For TS build
|
|
10640
10256
|
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
10641
10257
|
let canDebug = <span class="cstat-no" title="statement not covered" >true;</span>
|
|
10642
|
-
<span class="cstat-no" title="statement not covered" > await axios.post(
|
|
10258
|
+
<span class="cstat-no" title="statement not covered" > await axios.post('/api/App/debugEmbedded?id=' + app.id, openFiles[0]).catch(<span class="fstat-no" title="function not covered" >() =</span>> (<span class="cstat-no" title="statement not covered" >canDebug = false)</span>);</span>
|
|
10643
10259
|
|
|
10644
10260
|
<span class="cstat-no" title="statement not covered" > if (canDebug) {</span>
|
|
10645
10261
|
<span class="cstat-no" title="statement not covered" > await Promise.all(</span>
|
|
10646
10262
|
openFiles.map(<span class="fstat-no" title="function not covered" >async </span>(file) => {
|
|
10647
|
-
const res = <span class="cstat-no" title="statement not covered" >await axios.post(
|
|
10263
|
+
const res = <span class="cstat-no" title="statement not covered" >await axios.post('/api/App/debugEmbedded?id=' + app.id, file);</span>
|
|
10648
10264
|
<span class="cstat-no" title="statement not covered" > return res.data;</span>
|
|
10649
10265
|
})
|
|
10650
10266
|
);
|
|
@@ -10695,9 +10311,9 @@ class NaslServer {
|
|
|
10695
10311
|
value,
|
|
10696
10312
|
noFilterList,
|
|
10697
10313
|
});
|
|
10698
|
-
}
|
|
10314
|
+
} else {
|
|
10699
10315
|
<span class="cstat-no" title="statement not covered" > console.log('没找到节点', node, currentSource, fileNode);</span>
|
|
10700
|
-
|
|
10316
|
+
}
|
|
10701
10317
|
}
|
|
10702
10318
|
|
|
10703
10319
|
<span class="fstat-no" title="function not covered" > _getValueSelectCompletion(</span>args: any) {
|
|
@@ -10741,9 +10357,9 @@ class NaslServer {
|
|
|
10741
10357
|
});
|
|
10742
10358
|
<span class="cstat-no" title="statement not covered" > if (!res.length) {</span>
|
|
10743
10359
|
<span class="cstat-no" title="statement not covered" > return [];</span>
|
|
10744
|
-
}
|
|
10360
|
+
} else {
|
|
10745
10361
|
<span class="cstat-no" title="statement not covered" > return [{ title: '基础类型', children: res }];</span>
|
|
10746
|
-
|
|
10362
|
+
}
|
|
10747
10363
|
}
|
|
10748
10364
|
} catch (err) {
|
|
10749
10365
|
<span class="cstat-no" title="statement not covered" > console.log(err);</span>
|
|
@@ -10787,7 +10403,7 @@ class NaslServer {
|
|
|
10787
10403
|
.replaceAll('\n', '')
|
|
10788
10404
|
.replace(/__name:"AStructure_\w{8}";/g, '')
|
|
10789
10405
|
.replace(/dataSources.([^.]+).entities.([^;]+)/g, <span class="fstat-no" title="function not covered" >($</span>1, $2, $3) => <span class="cstat-no" title="statement not covered" >`${$3}(${$2})`)</span>;
|
|
10790
|
-
} <span class="cstat-no" title="statement not covered" >if (typeStr.startsWith('{') && typeStr.endsWith('}')) {</span>
|
|
10406
|
+
} else <span class="cstat-no" title="statement not covered" >if (typeStr.startsWith('{') && typeStr.endsWith('}')) {</span>
|
|
10791
10407
|
/**
|
|
10792
10408
|
* {
|
|
10793
10409
|
text: nasl.core.String;
|
|
@@ -10819,7 +10435,6 @@ class NaslServer {
|
|
|
10819
10435
|
}
|
|
10820
10436
|
<span class="cstat-no" title="statement not covered" > return '';</span>
|
|
10821
10437
|
}
|
|
10822
|
-
|
|
10823
10438
|
<span class="fstat-no" title="function not covered" > async </span>getDataSchemaStructureOrTypeAnnotation(node: ViewElement) {
|
|
10824
10439
|
<span class="cstat-no" title="statement not covered" > if (!(node instanceof ViewElement)) <span class="cstat-no" title="statement not covered" >return;</span></span>
|
|
10825
10440
|
|
|
@@ -10839,7 +10454,7 @@ class NaslServer {
|
|
|
10839
10454
|
|
|
10840
10455
|
const types = <span class="cstat-no" title="statement not covered" >/<([^()]+)>/g.exec(displayString);</span>
|
|
10841
10456
|
const typeStr = <span class="cstat-no" title="statement not covered" >types && types[1];</span>
|
|
10842
|
-
const
|
|
10457
|
+
const app = <span class="cstat-no" title="statement not covered" >node.app;</span>
|
|
10843
10458
|
<span class="cstat-no" title="statement not covered" > if (typeStr.includes('__name: "AStructure_')) {</span>
|
|
10844
10459
|
const properties: StructureProperty[] = <span class="cstat-no" title="statement not covered" >[];</span>
|
|
10845
10460
|
<span class="cstat-no" title="statement not covered" > typeStr.replace(/([^:\s]+):\s+([^;]+);/g, <span class="fstat-no" title="function not covered" >($</span>1, name, typeKey) => {</span>
|
|
@@ -10862,7 +10477,7 @@ class NaslServer {
|
|
|
10862
10477
|
<span class="cstat-no" title="statement not covered" > return '';</span>
|
|
10863
10478
|
});
|
|
10864
10479
|
<span class="cstat-no" title="statement not covered" > return TypeAnnotation.createTypeAnonymousStructure(properties);</span>
|
|
10865
|
-
} <span class="cstat-no" title="statement not covered" >if (typeStr.startsWith('structures')) <span class="cstat-no" title="statement not covered" >return app.findNodeByCompleteName(`app.${typeStr}`);</span></span>
|
|
10480
|
+
} else <span class="cstat-no" title="statement not covered" >if (typeStr.startsWith('structures')) <span class="cstat-no" title="statement not covered" >return app.findNodeByCompleteName(`app.${typeStr}`);</span></span>
|
|
10866
10481
|
}
|
|
10867
10482
|
}
|
|
10868
10483
|
|
|
@@ -10929,9 +10544,9 @@ class NaslServer {
|
|
|
10929
10544
|
},
|
|
10930
10545
|
noFilterList,
|
|
10931
10546
|
});
|
|
10932
|
-
}
|
|
10547
|
+
} else {
|
|
10933
10548
|
<span class="cstat-no" title="statement not covered" > console.log('没找到节点', currentSource, fileNode);</span>
|
|
10934
|
-
|
|
10549
|
+
}
|
|
10935
10550
|
}
|
|
10936
10551
|
|
|
10937
10552
|
<span class="fstat-no" title="function not covered" > _getSelectNextCompletion(</span>args: any) {
|
|
@@ -10950,7 +10565,6 @@ class NaslServer {
|
|
|
10950
10565
|
<span class="cstat-no" title="statement not covered" > if (node.tsErrorDetail) <span class="cstat-no" title="statement not covered" >return;</span></span>
|
|
10951
10566
|
<span class="cstat-no" title="statement not covered" > node.tsErrorDetail = tsErrorDetail;</span>
|
|
10952
10567
|
}
|
|
10953
|
-
|
|
10954
10568
|
/**
|
|
10955
10569
|
* 处理诊断结果
|
|
10956
10570
|
* @param records 结果
|
|
@@ -10964,7 +10578,7 @@ class NaslServer {
|
|
|
10964
10578
|
}
|
|
10965
10579
|
<span class="cstat-no" title="statement not covered" > await Promise.all(</span>
|
|
10966
10580
|
records.map(<span class="fstat-no" title="function not covered" >async </span>(record) => {
|
|
10967
|
-
const
|
|
10581
|
+
const node = <span class="cstat-no" title="statement not covered" >record.node;</span>
|
|
10968
10582
|
<span class="cstat-no" title="statement not covered" > if (!node) <span class="cstat-no" title="statement not covered" >return;</span></span>
|
|
10969
10583
|
|
|
10970
10584
|
// 先获取原来的节点先清除一下之前有异常的节点,下面重新赋值
|
|
@@ -11024,7 +10638,7 @@ class NaslServer {
|
|
|
11024
10638
|
<span class="cstat-no" title="statement not covered" > if (diagnostic.severity === 'warning') {</span>
|
|
11025
10639
|
<span class="cstat-no" title="statement not covered" > record.suggestionDiagnostics.push(diagnostic);</span>
|
|
11026
10640
|
<span class="cstat-no" title="statement not covered" > return null;</span>
|
|
11027
|
-
} <span class="cstat-no" title="statement not covered" >if (currentNode.concept === 'OqlQueryComponent') {</span>
|
|
10641
|
+
} else <span class="cstat-no" title="statement not covered" >if (currentNode.concept === 'OqlQueryComponent') {</span>
|
|
11028
10642
|
// OQL别名错误降级为警告
|
|
11029
10643
|
<span class="cstat-no" title="statement not covered" > if (diagnostic.originalDiagnostic && diagnostic.originalDiagnostic?.text.includes('__OQL_ALIAS_WARNING__')) {</span>
|
|
11030
10644
|
// 重置 图标和错误等级
|
|
@@ -11069,7 +10683,7 @@ class NaslServer {
|
|
|
11069
10683
|
<span class="cstat-no" title="statement not covered" > if (diag?.node) {</span>
|
|
11070
10684
|
<span class="cstat-no" title="statement not covered" > return diag;</span>
|
|
11071
10685
|
// 一些已知警告的单独处理
|
|
11072
|
-
} <span class="cstat-no" title="statement not covered" >if (</span>
|
|
10686
|
+
} else <span class="cstat-no" title="statement not covered" >if (</span>
|
|
11073
10687
|
[
|
|
11074
10688
|
`'__LogicEmpty' is declared but its value is never read.`,
|
|
11075
10689
|
`'__destinationEmpty__' is declared but its value is never read.`,
|
|
@@ -11079,7 +10693,7 @@ class NaslServer {
|
|
|
11079
10693
|
].includes(diag.text)
|
|
11080
10694
|
) {
|
|
11081
10695
|
<span class="cstat-no" title="statement not covered" > return this._resolveDiagnostic(diag as unknown as tsProtocol.DiagnosticWithFileName, record.node as FileNode, record);</span>
|
|
11082
|
-
} <span class="cstat-no" title="statement not covered" >if (diag.text.includes(` is declared but its value is never read.`)) {</span>
|
|
10696
|
+
} else <span class="cstat-no" title="statement not covered" >if (diag.text.includes(` is declared but its value is never read.`)) {</span>
|
|
11083
10697
|
// 局部变量和输入变量未使用的警告
|
|
11084
10698
|
const fromModule = <span class="cstat-no" title="statement not covered" >record.node.parentNode.concept === 'Module';</span>
|
|
11085
10699
|
const fromConnector = <span class="cstat-no" title="statement not covered" >record.node.parentNode.concept === 'Connector';</span>
|
|
@@ -11108,7 +10722,7 @@ class NaslServer {
|
|
|
11108
10722
|
message: `未使用的输入参数${minRange.node.name}`,
|
|
11109
10723
|
};
|
|
11110
10724
|
<span class="cstat-no" title="statement not covered" > return diagnostic;</span>
|
|
11111
|
-
} <span class="cstat-no" title="statement not covered" >if (minRange.node instanceof Variable) {</span>
|
|
10725
|
+
} else <span class="cstat-no" title="statement not covered" >if (minRange.node instanceof Variable) {</span>
|
|
11112
10726
|
const diagnostic = <span class="cstat-no" title="statement not covered" >{</span>
|
|
11113
10727
|
node: minRange.node,
|
|
11114
10728
|
severity: 'warning',
|
|
@@ -11292,7 +10906,7 @@ class NaslServer {
|
|
|
11292
10906
|
const typeAnnotation = <span class="cstat-no" title="statement not covered" >item.__TypeAnnotation;</span>
|
|
11293
10907
|
// 仅处理有类型的情况,返回类型为void的情况由其他地方处理成报错
|
|
11294
10908
|
<span class="cstat-no" title="statement not covered" > if (typeAnnotation) {</span>
|
|
11295
|
-
const
|
|
10909
|
+
const sortedTypeKey = <span class="cstat-no" title="statement not covered" >typeAnnotation.sortedTypeKey;</span>
|
|
11296
10910
|
<span class="cstat-no" title="statement not covered" > if (!typeAnnotationMap[sortedTypeKey]) {</span>
|
|
11297
10911
|
<span class="cstat-no" title="statement not covered" > typeAnnotationMap[sortedTypeKey] = {</span>
|
|
11298
10912
|
typeAnnotation,
|
|
@@ -11344,7 +10958,7 @@ class NaslServer {
|
|
|
11344
10958
|
const typeAnnotation = <span class="cstat-no" title="statement not covered" >value.__TypeAnnotation;</span>
|
|
11345
10959
|
// 仅处理有类型的情况,返回类型为void的情况由其他地方处理成报错
|
|
11346
10960
|
<span class="cstat-no" title="statement not covered" > if (typeAnnotation) {</span>
|
|
11347
|
-
const
|
|
10961
|
+
const sortedTypeKey = <span class="cstat-no" title="statement not covered" >typeAnnotation.sortedTypeKey;</span>
|
|
11348
10962
|
<span class="cstat-no" title="statement not covered" > if (!typeAnnotationMap[sortedTypeKey]) {</span>
|
|
11349
10963
|
<span class="cstat-no" title="statement not covered" > typeAnnotationMap[sortedTypeKey] = {</span>
|
|
11350
10964
|
typeAnnotation,
|
|
@@ -11671,35 +11285,21 @@ class NaslServer {
|
|
|
11671
11285
|
<span class="cstat-no" title="statement not covered" > node.tsErrorDetail = diagnostic;</span>
|
|
11672
11286
|
<span class="cstat-no" title="statement not covered" > diagnostics.push(diagnostic);</span>
|
|
11673
11287
|
}
|
|
11674
|
-
const fileSourceCode = <span class="cstat-no" title="statement not covered" >this.getNodeCode(fileNode, value);</span>
|
|
11675
|
-
<span class="cstat-no" title="statement not covered" > if (fileSourceCode.includes('|') && fileSourceCode.includes('.metadataTypes.')) {</span>
|
|
11676
|
-
const typeAnnotation = <span class="cstat-no" title="statement not covered" >node.typeAnnotation.toJSON()</span>
|
|
11677
|
-
<span class="cstat-no" title="statement not covered" > this._treeMetadataType2CoreType(typeAnnotation, (node.rootNode as App))</span>
|
|
11678
|
-
const isDuplicate = <span class="cstat-no" title="statement not covered" >this._isDuplicateCoreType(typeAnnotation)</span>
|
|
11679
|
-
<span class="cstat-no" title="statement not covered" > if (isDuplicate) {</span>
|
|
11680
|
-
const diagnostic = <span class="cstat-no" title="statement not covered" >{</span>
|
|
11681
|
-
node: node,
|
|
11682
|
-
severity: 'error',
|
|
11683
|
-
message: `变量 ${node.name} 类型定义包含相同的数据类型`,
|
|
11684
|
-
};
|
|
11685
|
-
<span class="cstat-no" title="statement not covered" > diagnostics.push(diagnostic);</span>
|
|
11686
|
-
}
|
|
11687
|
-
}
|
|
11688
11288
|
} else <span class="cstat-no" title="statement not covered" >if (node instanceof BindAttribute || node instanceof BindDirective || node instanceof BindStyle) {</span>
|
|
11689
11289
|
<span class="cstat-no" title="statement not covered" > if (Array.isArray(node.bindExpressions)) {</span>
|
|
11690
11290
|
const exp = <span class="cstat-no" title="statement not covered" >node.bindExpressions.find(<span class="fstat-no" title="function not covered" >(b</span>indExpression) => <span class="cstat-no" title="statement not covered" >this.hasComponentLogics(bindExpression))</span>;</span>
|
|
11691
11291
|
<span class="cstat-no" title="statement not covered" > if (exp) {</span>
|
|
11692
|
-
//
|
|
11693
|
-
//
|
|
11694
|
-
//
|
|
11292
|
+
//const element: any = node.getAncestor('ViewElement');
|
|
11293
|
+
//const api = config.allNodesAPI[element?.tag];
|
|
11294
|
+
//const attr = api?.attrs?.find?.((attr) => {
|
|
11695
11295
|
// return attr.name === node.name;
|
|
11696
|
-
//
|
|
11296
|
+
//});
|
|
11697
11297
|
const map = <span class="cstat-no" title="statement not covered" >{</span>
|
|
11698
11298
|
BindAttribute: '属性',
|
|
11699
11299
|
BindDirective: '指令',
|
|
11700
11300
|
BindStyle: '样式属性',
|
|
11701
11301
|
};
|
|
11702
|
-
|
|
11302
|
+
//“${attr?.title || node.title || node.name}”
|
|
11703
11303
|
const diagnostic = <span class="cstat-no" title="statement not covered" >{</span>
|
|
11704
11304
|
node,
|
|
11705
11305
|
severity: 'error',
|
|
@@ -11812,7 +11412,7 @@ class NaslServer {
|
|
|
11812
11412
|
const rulesMap: any = <span class="cstat-no" title="statement not covered" >{};</span>
|
|
11813
11413
|
<span class="cstat-no" title="statement not covered" > if (Array.isArray(rules)) {</span>
|
|
11814
11414
|
<span class="cstat-no" title="statement not covered" > rules.forEach(<span class="fstat-no" title="function not covered" >(r</span>ule) => {</span>
|
|
11815
|
-
const match = <span class="cstat-no" title="statement not covered" >rule
|
|
11415
|
+
const match = <span class="cstat-no" title="statement not covered" >rule.match(/^([^()]+)\(([\d\-.]+)\)$/);</span>
|
|
11816
11416
|
<span class="cstat-no" title="statement not covered" > if (match) {</span>
|
|
11817
11417
|
const [, key, value] = <span class="cstat-no" title="statement not covered" >match;</span>
|
|
11818
11418
|
<span class="cstat-no" title="statement not covered" > rulesMap[key] = value;</span>
|
|
@@ -11874,7 +11474,7 @@ class NaslServer {
|
|
|
11874
11474
|
const { default: defaultVal } = <span class="cstat-no" title="statement not covered" >precisionOption || {};</span>
|
|
11875
11475
|
const precision = <span class="cstat-no" title="statement not covered" >databaseTypeAnnotation ? (databaseTypeAnnotation.arguments as any)?.precision : defaultVal;</span>
|
|
11876
11476
|
const ruleScale = (<span class="cstat-no" title="statement not covered" >typeAnnotation?.ruleMap as any)?.scale;</span>
|
|
11877
|
-
const scale = <span class="cstat-no" title="statement not covered" >ruleScale !== undefined ?
|
|
11477
|
+
const scale = <span class="cstat-no" title="statement not covered" >ruleScale !== undefined ? ruleScale + '' : '';</span>
|
|
11878
11478
|
let ensureScale = <span class="cstat-no" title="statement not covered" >true;</span>
|
|
11879
11479
|
<span class="cstat-no" title="statement not covered" > switch (typeName) {</span>
|
|
11880
11480
|
case 'String': {
|
|
@@ -11983,7 +11583,7 @@ class NaslServer {
|
|
|
11983
11583
|
// 储存小数部分
|
|
11984
11584
|
const memoryScaleStr = <span class="cstat-no" title="statement not covered" >memoryStr.slice(0, +(scale || '0'));</span>
|
|
11985
11585
|
// 储存绝对值
|
|
11986
|
-
const memoryAbsVal = <span class="cstat-no" title="statement not covered" >memoryIntAbsStr + (memoryScaleStr ?
|
|
11586
|
+
const memoryAbsVal = <span class="cstat-no" title="statement not covered" >memoryIntAbsStr + (memoryScaleStr ? '.' + memoryScaleStr : '');</span>
|
|
11987
11587
|
const decimalMemoryAbsVal = <span class="cstat-no" title="statement not covered" >new Decimal(memoryAbsVal);</span>
|
|
11988
11588
|
<span class="cstat-no" title="statement not covered" > [</span>
|
|
11989
11589
|
{
|
|
@@ -12051,7 +11651,7 @@ class NaslServer {
|
|
|
12051
11651
|
<span class="cstat-no" title="statement not covered" > diagnostics.push(diagnostic);</span>
|
|
12052
11652
|
}
|
|
12053
11653
|
<span class="cstat-no" title="statement not covered" > fileNode?.sourceMap.forEach(<span class="fstat-no" title="function not covered" >(v</span>alue, node) => {</span>
|
|
12054
|
-
//
|
|
11654
|
+
//OQL支持返回复合类型数据了
|
|
12055
11655
|
// SqlQueryComponent内部返回值类型,如果是嵌套的就需要报错
|
|
12056
11656
|
// if ((node instanceof OqlQueryComponent || node instanceof SqlQueryComponent) && (node as SqlQueryComponent).getTypeBanError()) {
|
|
12057
11657
|
// const diagnostic = {
|
|
@@ -12067,7 +11667,7 @@ class NaslServer {
|
|
|
12067
11667
|
const typeAnnotation = <span class="cstat-no" title="statement not covered" >type2TypeAnnotation((node as any).__nodeType);</span>
|
|
12068
11668
|
<span class="cstat-no" title="statement not covered" > if (!node.typeAnnotation && typeAnnotation) {</span>
|
|
12069
11669
|
<span class="cstat-no" title="statement not covered" > if (typeAnnotation.typeName === 'List' && typeAnnotation.typeKind === 'generic') {</span>
|
|
12070
|
-
const
|
|
11670
|
+
const typeArguments = <span class="cstat-no" title="statement not covered" >typeAnnotation.typeArguments;</span>
|
|
12071
11671
|
<span class="cstat-no" title="statement not covered" > if (typeArguments.length && typeArguments[0].isComplexType()) {</span>
|
|
12072
11672
|
const diagnostic = <span class="cstat-no" title="statement not covered" >{</span>
|
|
12073
11673
|
node,
|
|
@@ -12080,10 +11680,9 @@ class NaslServer {
|
|
|
12080
11680
|
}
|
|
12081
11681
|
}
|
|
12082
11682
|
}
|
|
12083
|
-
|
|
12084
11683
|
<span class="cstat-no" title="statement not covered" > if (node instanceof Return || node instanceof Variable) {</span>
|
|
12085
|
-
const nodeTypeName = <span class="cstat-no" title="statement not covered" >node.concept === 'Return' ? '输出参数' : '局部变量';</span>
|
|
12086
11684
|
<span class="cstat-no" title="statement not covered" > if (!node.typeAnnotation && !node.__TypeAnnotation) {</span>
|
|
11685
|
+
const nodeTypeName = <span class="cstat-no" title="statement not covered" >node.concept === 'Return' ? '输出参数' : '局部变量';</span>
|
|
12087
11686
|
let used = <span class="cstat-no" title="statement not covered" >false;</span>
|
|
12088
11687
|
<span class="cstat-no" title="statement not covered" > fileNode?.sourceMap.forEach(<span class="fstat-no" title="function not covered" >(v</span>alueIn, nodeIn) => {</span>
|
|
12089
11688
|
<span class="cstat-no" title="statement not covered" > if (!used && nodeIn && (nodeIn instanceof BatchAssignment || (nodeIn instanceof Assignment && nodeIn.left?.name))) {</span>
|
|
@@ -12118,36 +11717,6 @@ class NaslServer {
|
|
|
12118
11717
|
} else {
|
|
12119
11718
|
<span class="cstat-no" title="statement not covered" > delete node.tsErrorDetail;</span>
|
|
12120
11719
|
}
|
|
12121
|
-
const fileSourceCode = <span class="cstat-no" title="statement not covered" >this.getNodeCode(fileNode, value);</span>
|
|
12122
|
-
<span class="cstat-no" title="statement not covered" > if (fileSourceCode.includes('|') && fileSourceCode.includes('.metadataTypes.')) {</span>
|
|
12123
|
-
const typeAnnotation = <span class="cstat-no" title="statement not covered" >node.typeAnnotation.toJSON()</span>
|
|
12124
|
-
<span class="cstat-no" title="statement not covered" > this._treeMetadataType2CoreType(typeAnnotation, (node.rootNode as App))</span>
|
|
12125
|
-
const isDuplicate = <span class="cstat-no" title="statement not covered" >this._isDuplicateCoreType(typeAnnotation)</span>
|
|
12126
|
-
<span class="cstat-no" title="statement not covered" > if (isDuplicate) {</span>
|
|
12127
|
-
const diagnostic = <span class="cstat-no" title="statement not covered" >{</span>
|
|
12128
|
-
node: node,
|
|
12129
|
-
severity: 'error',
|
|
12130
|
-
message: `${nodeTypeName} ${node.name} 类型定义包含相同的数据类型`,
|
|
12131
|
-
};
|
|
12132
|
-
<span class="cstat-no" title="statement not covered" > diagnostics.push(diagnostic);</span>
|
|
12133
|
-
}
|
|
12134
|
-
}
|
|
12135
|
-
}
|
|
12136
|
-
<span class="cstat-no" title="statement not covered" > if (node instanceof Param) {</span>
|
|
12137
|
-
const fileSourceCode = <span class="cstat-no" title="statement not covered" >this.getNodeCode(fileNode, value);</span>
|
|
12138
|
-
<span class="cstat-no" title="statement not covered" > if (fileSourceCode.includes('|') && fileSourceCode.includes('.metadataTypes.')) {</span>
|
|
12139
|
-
const typeAnnotation = <span class="cstat-no" title="statement not covered" >node.typeAnnotation.toJSON()</span>
|
|
12140
|
-
<span class="cstat-no" title="statement not covered" > this._treeMetadataType2CoreType(typeAnnotation, (node.rootNode as App))</span>
|
|
12141
|
-
const isDuplicate = <span class="cstat-no" title="statement not covered" >this._isDuplicateCoreType(typeAnnotation)</span>
|
|
12142
|
-
<span class="cstat-no" title="statement not covered" > if (isDuplicate) {</span>
|
|
12143
|
-
const diagnostic = <span class="cstat-no" title="statement not covered" >{</span>
|
|
12144
|
-
node: node,
|
|
12145
|
-
severity: 'error',
|
|
12146
|
-
message: `输入参数 ${node.name} 类型定义包含相同的数据类型`,
|
|
12147
|
-
};
|
|
12148
|
-
<span class="cstat-no" title="statement not covered" > diagnostics.push(diagnostic);</span>
|
|
12149
|
-
}
|
|
12150
|
-
}
|
|
12151
11720
|
}
|
|
12152
11721
|
<span class="cstat-no" title="statement not covered" > this.checkNodeError(node, diagnostics);</span>
|
|
12153
11722
|
});
|
|
@@ -12155,91 +11724,10 @@ class NaslServer {
|
|
|
12155
11724
|
<span class="cstat-no" title="statement not covered" > fileNode?.sourceMap.forEach(<span class="fstat-no" title="function not covered" >(v</span>alue, node) => {</span>
|
|
12156
11725
|
<span class="cstat-no" title="statement not covered" > this.checkNodeError(node, diagnostics);</span>
|
|
12157
11726
|
});
|
|
12158
|
-
} else <span class="cstat-no" title="statement not covered" >if (fileNode instanceof MetadataType) {</span>
|
|
12159
|
-
<span class="cstat-no" title="statement not covered" > fileNode?.sourceMap.forEach(<span class="fstat-no" title="function not covered" >(v</span>alue, node) => {</span>
|
|
12160
|
-
const rulesMap: any = <span class="cstat-no" title="statement not covered" >{};</span>
|
|
12161
|
-
const { rules, typeAnnotation } = <span class="cstat-no" title="statement not covered" >node as MetadataType;</span>
|
|
12162
|
-
<span class="cstat-no" title="statement not covered" > if (Array.isArray(rules)) {</span>
|
|
12163
|
-
<span class="cstat-no" title="statement not covered" > rules.forEach(<span class="fstat-no" title="function not covered" >(r</span>ule) => {</span>
|
|
12164
|
-
<span class="cstat-no" title="statement not covered" > if (`${rule?.toUI()}` == 'undefined' || `${rule.toUI()}` == 'null') <span class="cstat-no" title="statement not covered" >return</span></span>
|
|
12165
|
-
const match = <span class="cstat-no" title="statement not covered" >rule.toUI?.().match(/^([^()]+)\(([\d\-.]+)\)$/);</span>
|
|
12166
|
-
<span class="cstat-no" title="statement not covered" > if (match) {</span>
|
|
12167
|
-
const [, key, value] = <span class="cstat-no" title="statement not covered" >match;</span>
|
|
12168
|
-
<span class="cstat-no" title="statement not covered" > rulesMap[key] = value;</span>
|
|
12169
|
-
}
|
|
12170
|
-
});
|
|
12171
|
-
}
|
|
12172
|
-
const { typeName } = <span class="cstat-no" title="statement not covered" >typeAnnotation || {};</span>
|
|
12173
|
-
const typeAnnotationErrorDetail: any = <span class="cstat-no" title="statement not covered" >{</span>
|
|
12174
|
-
severity: 'warning',
|
|
12175
|
-
errorPos: {},
|
|
12176
|
-
};
|
|
12177
|
-
const minVal = <span class="cstat-no" title="statement not covered" >rulesMap.min;</span>
|
|
12178
|
-
const maxVal = <span class="cstat-no" title="statement not covered" >rulesMap.max;</span>
|
|
12179
|
-
<span class="cstat-no" title="statement not covered" > if (['Long', 'Decimal'].includes(typeName) && !typeAnnotationErrorDetail.errorPos.min) {</span>
|
|
12180
|
-
<span class="cstat-no" title="statement not covered" > if (minVal && maxVal) {</span>
|
|
12181
|
-
<span class="cstat-no" title="statement not covered" > if (new Decimal(maxVal).lessThan(minVal)) {</span>
|
|
12182
|
-
const errorMsg = <span class="cstat-no" title="statement not covered" >'最小值不得大于最大值';</span>
|
|
12183
|
-
const diag: any = <span class="cstat-no" title="statement not covered" >{</span>
|
|
12184
|
-
node: node,
|
|
12185
|
-
severity: 'warning',
|
|
12186
|
-
message: errorMsg,
|
|
12187
|
-
};
|
|
12188
|
-
<span class="cstat-no" title="statement not covered" > diagnostics.push(diag);</span>
|
|
12189
|
-
<span class="cstat-no" title="statement not covered" > typeAnnotationErrorDetail.errorPos.min = errorMsg;</span>
|
|
12190
|
-
} else {
|
|
12191
|
-
<span class="cstat-no" title="statement not covered" > typeAnnotationErrorDetail.errorPos = {};</span>
|
|
12192
|
-
(<span class="cstat-no" title="statement not covered" >node as MetadataType).typeAnnotation.tsErrorDetail = null;</span>
|
|
12193
|
-
}
|
|
12194
|
-
}
|
|
12195
|
-
}
|
|
12196
|
-
<span class="cstat-no" title="statement not covered" > if (Object.keys(typeAnnotationErrorDetail.errorPos).length) {</span>
|
|
12197
|
-
<span class="cstat-no" title="statement not covered" > typeAnnotation.tsErrorDetail = typeAnnotationErrorDetail;</span>
|
|
12198
|
-
}
|
|
12199
|
-
})
|
|
12200
11727
|
}
|
|
12201
11728
|
<span class="cstat-no" title="statement not covered" > return diagnostics;</span>
|
|
12202
11729
|
}
|
|
12203
11730
|
|
|
12204
|
-
<span class="fstat-no" title="function not covered" > _treeMetadataType2CoreType(</span>type: TypeAnnotation, app: App) {
|
|
12205
|
-
<span class="cstat-no" title="statement not covered" > type.typeArguments?.forEach(<span class="fstat-no" title="function not covered" >(i</span>tem: TypeAnnotation) => {</span>
|
|
12206
|
-
<span class="cstat-no" title="statement not covered" > if (item.typeNamespace.endsWith('.metadataTypes')) {</span>
|
|
12207
|
-
let originType = <span class="cstat-no" title="statement not covered" >{} as TypeAnnotation</span>
|
|
12208
|
-
<span class="cstat-no" title="statement not covered" > if (item.typeNamespace === 'app.metadataTypes') {</span>
|
|
12209
|
-
<span class="cstat-no" title="statement not covered" > originType = app.metadataTypes?.find(<span class="fstat-no" title="function not covered" >(m</span>etadataType) => <span class="cstat-no" title="statement not covered" >metadataType.name === item.typeName)</span>?.typeAnnotation;</span>
|
|
12210
|
-
} else <span class="cstat-no" title="statement not covered" >if (item.typeNamespace.startsWith('extensions.') && item.typeNamespace.endsWith('.metadataTypes')) {</span>
|
|
12211
|
-
const dependencyName = <span class="cstat-no" title="statement not covered" >item.typeNamespace.replace('extensions.', '').replace('.metadataTypes', '')</span>
|
|
12212
|
-
<span class="cstat-no" title="statement not covered" > originType = app.dependencies?.find(<span class="fstat-no" title="function not covered" >(d</span>ependency) => <span class="cstat-no" title="statement not covered" >dependency.name === dependencyName)</span>?.metadataTypes?.find(<span class="fstat-no" title="function not covered" >(e</span>le) => <span class="cstat-no" title="statement not covered" >ele.name === item.typeName)</span>?.typeAnnotation ?? {} as TypeAnnotation</span>
|
|
12213
|
-
}
|
|
12214
|
-
<span class="cstat-no" title="statement not covered" > item.typeKind = 'primitive'</span>
|
|
12215
|
-
<span class="cstat-no" title="statement not covered" > item.typeNamespace = 'nasl.core'</span>
|
|
12216
|
-
<span class="cstat-no" title="statement not covered" > item.typeName = originType?.typeName</span>
|
|
12217
|
-
}
|
|
12218
|
-
<span class="cstat-no" title="statement not covered" > if (type.typeArguments?.length > 0) {</span>
|
|
12219
|
-
<span class="cstat-no" title="statement not covered" > type.typeArguments.forEach(<span class="fstat-no" title="function not covered" >(e</span>le) => {</span>
|
|
12220
|
-
<span class="cstat-no" title="statement not covered" > this._treeMetadataType2CoreType(ele, app)</span>
|
|
12221
|
-
})
|
|
12222
|
-
}
|
|
12223
|
-
})
|
|
12224
|
-
}
|
|
12225
|
-
|
|
12226
|
-
<span class="fstat-no" title="function not covered" > _isDuplicateCoreType(</span>type: TypeAnnotation) {
|
|
12227
|
-
const argsStringList = <span class="cstat-no" title="statement not covered" >type.typeArguments?.map(<span class="fstat-no" title="function not covered" >(i</span>tem) => <span class="cstat-no" title="statement not covered" >JSON.stringify(item))</span> || []</span>
|
|
12228
|
-
const setList = <span class="cstat-no" title="statement not covered" >Array.from(new Set(argsStringList))</span>
|
|
12229
|
-
<span class="cstat-no" title="statement not covered" > if (argsStringList.length > setList.length) {</span>
|
|
12230
|
-
<span class="cstat-no" title="statement not covered" > return true</span>
|
|
12231
|
-
}
|
|
12232
|
-
let flag = <span class="cstat-no" title="statement not covered" >false</span>
|
|
12233
|
-
<span class="cstat-no" title="statement not covered" > if (type.typeArguments?.length > 0) {</span>
|
|
12234
|
-
<span class="cstat-no" title="statement not covered" > type.typeArguments.forEach(<span class="fstat-no" title="function not covered" >(e</span>le) => {</span>
|
|
12235
|
-
const subFlag = <span class="cstat-no" title="statement not covered" >this._isDuplicateCoreType(ele)</span>
|
|
12236
|
-
<span class="cstat-no" title="statement not covered" > if (subFlag) {</span>
|
|
12237
|
-
<span class="cstat-no" title="statement not covered" > flag = true</span>
|
|
12238
|
-
}
|
|
12239
|
-
})
|
|
12240
|
-
}
|
|
12241
|
-
<span class="cstat-no" title="statement not covered" > return flag</span>
|
|
12242
|
-
}
|
|
12243
11731
|
<span class="fstat-no" title="function not covered" > checkNodeError(</span>node: BaseNode, diagnostics: Diagnostic[]): any {
|
|
12244
11732
|
<span class="cstat-no" title="statement not covered" > if (!node) <span class="cstat-no" title="statement not covered" >return;</span></span>
|
|
12245
11733
|
// 如果节点是match的看看节点里是不是有重复的
|
|
@@ -12412,8 +11900,7 @@ class NaslServer {
|
|
|
12412
11900
|
const { calleeNamespace, calleeName } = <span class="cstat-no" title="statement not covered" >node.parentNode.parentNode as CallLogic;</span>
|
|
12413
11901
|
<span class="cstat-no" title="statement not covered" > if (</span>
|
|
12414
11902
|
(calleeNamespace === 'nasl.ui' || calleeNamespace === 'nasl.util') &&
|
|
12415
|
-
(
|
|
12416
|
-
'jsonSerialize'].includes(calleeName))
|
|
11903
|
+
(calleeName === 'showMessage' || calleeName === 'consoleLog' || calleeName === 'jsonSerialize' || calleeName === 'jsonDeserialize')
|
|
12417
11904
|
) {
|
|
12418
11905
|
<span class="cstat-no" title="statement not covered" > showErr = true;</span>
|
|
12419
11906
|
}
|
|
@@ -12468,7 +11955,7 @@ class NaslServer {
|
|
|
12468
11955
|
// 先特殊处理等 类型合并后就可以去掉了
|
|
12469
11956
|
<span class="cstat-no" title="statement not covered" > if (excludeList.includes(leftType.sortedTypeKey) && excludeList.includes(rightType.sortedTypeKey)) {</span>
|
|
12470
11957
|
<span class="cstat-no" title="statement not covered" > return null;</span>
|
|
12471
|
-
} <span class="cstat-no" title="statement not covered" >if (excludeList2.includes(leftType.sortedTypeKey) || excludeList2.includes(rightType.sortedTypeKey)) {</span>
|
|
11958
|
+
} else <span class="cstat-no" title="statement not covered" >if (excludeList2.includes(leftType.sortedTypeKey) || excludeList2.includes(rightType.sortedTypeKey)) {</span>
|
|
12472
11959
|
<span class="cstat-no" title="statement not covered" > return null;</span>
|
|
12473
11960
|
}
|
|
12474
11961
|
const diagnostic = <span class="cstat-no" title="statement not covered" >{</span>
|
|
@@ -12508,7 +11995,7 @@ class NaslServer {
|
|
|
12508
11995
|
<span class="cstat-no" title="statement not covered" > if (typeKeyArr[0] === 'apis') {</span>
|
|
12509
11996
|
const structureName = <span class="cstat-no" title="statement not covered" >typeKeyArr[3];</span>
|
|
12510
11997
|
const moduleName = <span class="cstat-no" title="statement not covered" >typeKeyArr[1];</span>
|
|
12511
|
-
const
|
|
11998
|
+
const app = (<span class="cstat-no" title="statement not covered" >typeAnnotation.upperNode as Variable).app;</span>
|
|
12512
11999
|
<span class="cstat-no" title="statement not covered" > if (!app) {</span>
|
|
12513
12000
|
<span class="cstat-no" title="statement not covered" > return null;</span>
|
|
12514
12001
|
}
|
|
@@ -12524,14 +12011,14 @@ class NaslServer {
|
|
|
12524
12011
|
}
|
|
12525
12012
|
}
|
|
12526
12013
|
<span class="cstat-no" title="statement not covered" > return null;</span>
|
|
12527
|
-
}
|
|
12014
|
+
} else {
|
|
12528
12015
|
<span class="cstat-no" title="statement not covered" > return diag;</span>
|
|
12529
|
-
|
|
12016
|
+
}
|
|
12530
12017
|
});
|
|
12531
12018
|
<span class="cstat-no" title="statement not covered" > if (actionArr.length) {</span>
|
|
12532
12019
|
<span class="cstat-no" title="statement not covered" > if (timer) <span class="cstat-no" title="statement not covered" >return;</span></span>
|
|
12533
12020
|
<span class="cstat-no" title="statement not covered" > timer = window.setTimeout(<span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
12534
|
-
const
|
|
12021
|
+
const app = <span class="cstat-no" title="statement not covered" >actionArr[0].target.app;</span>
|
|
12535
12022
|
<span class="cstat-no" title="statement not covered" > app.emit('collect:start', {</span>
|
|
12536
12023
|
actionMsg: '设置导入接口数据类型错误',
|
|
12537
12024
|
});
|
|
@@ -12595,7 +12082,7 @@ class NaslServer {
|
|
|
12595
12082
|
*/
|
|
12596
12083
|
<span class="fstat-no" title="function not covered" > _findMinRange(</span>diagnostic: tsProtocol.DiagnosticWithFileName | tsProtocol.ReferencesResponseItem, fileNode: FileNode) {
|
|
12597
12084
|
let minRange: MinRange;
|
|
12598
|
-
const
|
|
12085
|
+
const sourceMap: SourceMap = <span class="cstat-no" title="statement not covered" >fileNode.sourceMap;</span>
|
|
12599
12086
|
// 是否找到了行内准确的,是的话,就不走多行的
|
|
12600
12087
|
let haveLineNode = <span class="cstat-no" title="statement not covered" >false;</span>
|
|
12601
12088
|
<span class="cstat-no" title="statement not covered" > for (const [node, item] of sourceMap.entries()) {</span>
|
|
@@ -12682,7 +12169,8 @@ class NaslServer {
|
|
|
12682
12169
|
offset: lsp2tspNumber(currentSource.start.character),
|
|
12683
12170
|
});
|
|
12684
12171
|
<span class="cstat-no" title="statement not covered" > refsList = [...newRefs.refs];</span>
|
|
12685
|
-
} else
|
|
12172
|
+
} else {
|
|
12173
|
+
<span class="cstat-no" title="statement not covered" > if (node instanceof Module) {</span>
|
|
12686
12174
|
const lists = <span class="cstat-no" title="statement not covered" >node.logics || node.structures || node.enums;</span>
|
|
12687
12175
|
const moduleName = (<span class="cstat-no" title="statement not covered" >fileNode as FileNode).getEmbeddedFilePath();</span>
|
|
12688
12176
|
<span class="cstat-no" title="statement not covered" > if (lists.length) {</span>
|
|
@@ -12692,7 +12180,7 @@ class NaslServer {
|
|
|
12692
12180
|
const newRefs = <span class="cstat-no" title="statement not covered" >await this.references({</span>
|
|
12693
12181
|
file: (fileNode as FileNode).getEmbeddedFilePath(),
|
|
12694
12182
|
line: 1,
|
|
12695
|
-
offset: 22,
|
|
12183
|
+
offset: 22, //固定的位置,module的位置信息
|
|
12696
12184
|
});
|
|
12697
12185
|
<span class="cstat-no" title="statement not covered" > refsList = newRefs.refs.filter(<span class="fstat-no" title="function not covered" >(i</span>tem) => <span class="cstat-no" title="statement not covered" >!item.file.startsWith(moduleName))</span>;</span>
|
|
12698
12186
|
// 多塞一个 ,删除的时候就有值了, 上面过滤了之后可能是空的
|
|
@@ -12700,6 +12188,7 @@ class NaslServer {
|
|
|
12700
12188
|
}
|
|
12701
12189
|
}
|
|
12702
12190
|
}
|
|
12191
|
+
}
|
|
12703
12192
|
|
|
12704
12193
|
// 如果是DataSource就需要在单独,查一边来修改名字
|
|
12705
12194
|
<span class="cstat-no" title="statement not covered" > if (node instanceof DataSource) {</span>
|
|
@@ -12759,7 +12248,7 @@ class NaslServer {
|
|
|
12759
12248
|
).length;
|
|
12760
12249
|
<span class="cstat-no" title="statement not covered" > if (!groupByLength && !aggregateLength && callQueryComponentTypeAnnotation.typeKind === 'anonymousStructure') {</span>
|
|
12761
12250
|
// 拿到 List 的泛型(匿名数据结构)的所有属性
|
|
12762
|
-
const
|
|
12251
|
+
const properties = <span class="cstat-no" title="statement not covered" >callQueryComponentTypeAnnotation.properties[0].typeAnnotation.typeArguments[0].properties;</span>
|
|
12763
12252
|
const targetProperty = <span class="cstat-no" title="statement not covered" >properties.find(<span class="fstat-no" title="function not covered" >(p</span>) => <span class="cstat-no" title="statement not covered" >p.name === utils.firstLowerCase(node.name))</span>;</span>
|
|
12764
12253
|
<span class="cstat-no" title="statement not covered" > if (!targetProperty) {</span>
|
|
12765
12254
|
<span class="cstat-no" title="statement not covered" > continue;</span>
|
|
@@ -13036,7 +12525,7 @@ class NaslServer {
|
|
|
13036
12525
|
}
|
|
13037
12526
|
<span class="cstat-no" title="statement not covered" > if (minRange.node instanceof CallLogic && node instanceof ViewElement) {</span>
|
|
13038
12527
|
<span class="cstat-no" title="statement not covered" > minRange.setTypeMethods = 'setCalleeNamespace';</span>
|
|
13039
|
-
<span class="cstat-no" title="statement not covered" > minRange.newValue =
|
|
12528
|
+
<span class="cstat-no" title="statement not covered" > minRange.newValue = 'elements.' + newValue + '.logics';</span>
|
|
13040
12529
|
}
|
|
13041
12530
|
// 如果节点是实体修改引发calllogic修改
|
|
13042
12531
|
<span class="cstat-no" title="statement not covered" > if (</span>
|
|
@@ -13055,9 +12544,9 @@ class NaslServer {
|
|
|
13055
12544
|
* 3.然后把namespace中的 $替换成 ''
|
|
13056
12545
|
*
|
|
13057
12546
|
*/
|
|
13058
|
-
const
|
|
12547
|
+
const tsCalleeNamespace = <span class="cstat-no" title="statement not covered" >minRange.node.tsCalleeNamespace;</span>
|
|
13059
12548
|
// 先看下标位置
|
|
13060
|
-
const
|
|
12549
|
+
const lineText = <span class="cstat-no" title="statement not covered" >record.lineText;</span>
|
|
13061
12550
|
const index = <span class="cstat-no" title="statement not covered" >lineText.indexOf(tsCalleeNamespace);</span>
|
|
13062
12551
|
// 在把开始结束位置的-开始位置,来知道是哪里要替换
|
|
13063
12552
|
const start = <span class="cstat-no" title="statement not covered" >record.start.offset - index - 1;</span>
|
|
@@ -13092,12 +12581,12 @@ class NaslServer {
|
|
|
13092
12581
|
<span class="cstat-no" title="statement not covered" > if (minRange.node instanceof Identifier) {</span>
|
|
13093
12582
|
// 匹配到的内容,当前这一行的内容;
|
|
13094
12583
|
// 因为要用下面的点位信息
|
|
13095
|
-
const
|
|
12584
|
+
const name = <span class="cstat-no" title="statement not covered" >minRange.node.name;</span>
|
|
13096
12585
|
// 如果name不改,那就是要改命名空间
|
|
13097
12586
|
<span class="cstat-no" title="statement not covered" > if (node instanceof Frontend || newValue === name) {</span>
|
|
13098
|
-
const
|
|
12587
|
+
const namespace = <span class="cstat-no" title="statement not covered" >minRange.node.namespace;</span>
|
|
13099
12588
|
// 先看下标位置
|
|
13100
|
-
const
|
|
12589
|
+
const lineText = <span class="cstat-no" title="statement not covered" >record.lineText;</span>
|
|
13101
12590
|
const index = <span class="cstat-no" title="statement not covered" >lineText.indexOf(namespace);</span>
|
|
13102
12591
|
// 在把开始结束位置的-开始位置,来知道是哪里要替换
|
|
13103
12592
|
const start = <span class="cstat-no" title="statement not covered" >record.start.offset - index - 1;</span>
|
|
@@ -13128,7 +12617,7 @@ class NaslServer {
|
|
|
13128
12617
|
// 枚举key的特殊性,因为它不是原来的key+value形式的
|
|
13129
12618
|
// 是加了中括号啥的,所以直接赋值新值
|
|
13130
12619
|
<span class="cstat-no" title="statement not covered" > if (node instanceof EnumItem) {</span>
|
|
13131
|
-
const newTextValue = <span class="cstat-no" title="statement not covered"
|
|
12620
|
+
const newTextValue = <span class="cstat-no" title="statement not covered" >node.parentNode.name + '.' + newValue;</span>
|
|
13132
12621
|
<span class="cstat-no" title="statement not covered" > minRange.newValue = newTextValue;</span>
|
|
13133
12622
|
} else {
|
|
13134
12623
|
// 匹配到的内容,当前这一行的内容;
|
|
@@ -13163,7 +12652,7 @@ class NaslServer {
|
|
|
13163
12652
|
<span class="cstat-no" title="statement not covered" > minRange.setTypeMethods = 'setEntityNameAndEffect';</span>
|
|
13164
12653
|
} else <span class="cstat-no" title="statement not covered" >if (minRange.node instanceof BindAttribute && minRange.node.name === 'url') {</span>
|
|
13165
12654
|
// 如果是查找到 上传地址的链接引用
|
|
13166
|
-
let newName = <span class="cstat-no" title="statement not covered" >newValue.replace(/[A-Z]/g, <span class="fstat-no" title="function not covered" >(i</span>tem) => <span class="cstat-no" title="statement not covered"
|
|
12655
|
+
let newName = <span class="cstat-no" title="statement not covered" >newValue.replace(/[A-Z]/g, <span class="fstat-no" title="function not covered" >(i</span>tem) => <span class="cstat-no" title="statement not covered" >'-' + item.toLowerCase())</span>;</span>
|
|
13167
12656
|
<span class="cstat-no" title="statement not covered" > newName = newName[0] === '-' ? newName.slice(1) : newName;</span>
|
|
13168
12657
|
const newTextValue = <span class="cstat-no" title="statement not covered" >node.parentNode.name === 'defaultDS' ? `/api/${newName}/import` : `/api/${node.parentNode.name}/${newName}/import`;</span>
|
|
13169
12658
|
<span class="cstat-no" title="statement not covered" > minRange.setTypeMethods = 'setUrlValue';</span>
|
|
@@ -13205,11 +12694,11 @@ class NaslServer {
|
|
|
13205
12694
|
* 3.然后把namespace中的 $替换成 ''
|
|
13206
12695
|
*
|
|
13207
12696
|
*/
|
|
13208
|
-
const
|
|
13209
|
-
const
|
|
13210
|
-
const oldValue = <span class="cstat-no" title="statement not covered"
|
|
12697
|
+
const tsCalleeNamespace = <span class="cstat-no" title="statement not covered" >minRange.node.tsCalleeNamespace;</span>
|
|
12698
|
+
const tsName = <span class="cstat-no" title="statement not covered" >minRange.node.tsName;</span>
|
|
12699
|
+
const oldValue = <span class="cstat-no" title="statement not covered" >tsCalleeNamespace + '.' + tsName;</span>
|
|
13211
12700
|
// 先看下标位置
|
|
13212
|
-
const
|
|
12701
|
+
const lineText = <span class="cstat-no" title="statement not covered" >record.lineText;</span>
|
|
13213
12702
|
const index = <span class="cstat-no" title="statement not covered" >lineText.indexOf(oldValue);</span>
|
|
13214
12703
|
// 在把开始结束位置的-开始位置,来知道是哪里要替换
|
|
13215
12704
|
const start = <span class="cstat-no" title="statement not covered" >record.start.offset - index - 1;</span>
|
|
@@ -13226,11 +12715,11 @@ class NaslServer {
|
|
|
13226
12715
|
}
|
|
13227
12716
|
}
|
|
13228
12717
|
<span class="cstat-no" title="statement not covered" > if (node instanceof Frontend && minRange.node instanceof Destination) {</span>
|
|
13229
|
-
const
|
|
13230
|
-
const
|
|
13231
|
-
const oldValue = <span class="cstat-no" title="statement not covered"
|
|
12718
|
+
const tsCalleeNamespace = <span class="cstat-no" title="statement not covered" >minRange.node.tsCalleeNamespace;</span>
|
|
12719
|
+
const tsName = <span class="cstat-no" title="statement not covered" >minRange.node.tsName;</span>
|
|
12720
|
+
const oldValue = <span class="cstat-no" title="statement not covered" >tsCalleeNamespace + '.' + tsName;</span>
|
|
13232
12721
|
// 先看下标位置
|
|
13233
|
-
const
|
|
12722
|
+
const lineText = <span class="cstat-no" title="statement not covered" >record.lineText;</span>
|
|
13234
12723
|
const index = <span class="cstat-no" title="statement not covered" >lineText.indexOf(oldValue);</span>
|
|
13235
12724
|
// 在把开始结束位置的-开始位置,来知道是哪里要替换
|
|
13236
12725
|
const start = <span class="cstat-no" title="statement not covered" >record.start.offset - index - 1;</span>
|
|
@@ -13250,7 +12739,7 @@ class NaslServer {
|
|
|
13250
12739
|
// 页面逻辑直接赋值就可以, 因为是相对路径
|
|
13251
12740
|
<span class="cstat-no" title="statement not covered" > if (node instanceof ViewElement) {</span>
|
|
13252
12741
|
<span class="cstat-no" title="statement not covered" > minRange.setTypeMethods = 'setCalleeNamespace';</span>
|
|
13253
|
-
<span class="cstat-no" title="statement not covered" > minRange.newValue =
|
|
12742
|
+
<span class="cstat-no" title="statement not covered" > minRange.newValue = 'elements.' + newValue + '.logics';</span>
|
|
13254
12743
|
} else {
|
|
13255
12744
|
/**
|
|
13256
12745
|
* 如果namespce是 'app.views.Student.views.404.views.505.views.update'
|
|
@@ -13261,11 +12750,11 @@ class NaslServer {
|
|
|
13261
12750
|
* 2.在匹配到的内容中取转后的namespace的位置
|
|
13262
12751
|
* 3.然后把namespace中的 $替换成 ''
|
|
13263
12752
|
*/
|
|
13264
|
-
const
|
|
12753
|
+
const tsCalleeNamespace = <span class="cstat-no" title="statement not covered" >minRange.node.tsCalleeNamespace;</span>
|
|
13265
12754
|
const oldValue = <span class="cstat-no" title="statement not covered" >tsCalleeNamespace;</span>
|
|
13266
12755
|
|
|
13267
12756
|
// 先看下标位置
|
|
13268
|
-
const
|
|
12757
|
+
const lineText = <span class="cstat-no" title="statement not covered" >record.lineText;</span>
|
|
13269
12758
|
const index = <span class="cstat-no" title="statement not covered" >lineText.indexOf(oldValue);</span>
|
|
13270
12759
|
|
|
13271
12760
|
// 在把开始结束位置的-开始位置,来知道是哪里要替换
|
|
@@ -13328,7 +12817,7 @@ class NaslServer {
|
|
|
13328
12817
|
<span class="cstat-no" title="statement not covered" > if (node instanceof DataSource) {</span>
|
|
13329
12818
|
const setTypeNamespace = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(t</span>ypeNamespace: string, record: any) => {</span>
|
|
13330
12819
|
// 先看下标位置
|
|
13331
|
-
const
|
|
12820
|
+
const lineText = <span class="cstat-no" title="statement not covered" >record.lineText;</span>
|
|
13332
12821
|
const index = <span class="cstat-no" title="statement not covered" >lineText.indexOf(typeNamespace);</span>
|
|
13333
12822
|
// 在把开始结束位置的-开始位置,来知道是哪里要替换
|
|
13334
12823
|
const start = <span class="cstat-no" title="statement not covered" >record.start.offset - index - 1;</span>
|
|
@@ -13371,7 +12860,7 @@ class NaslServer {
|
|
|
13371
12860
|
// 如果跳转链接或者页面变量同一个param和TypeAnnotation 有两个过滤掉一个
|
|
13372
12861
|
<span class="cstat-no" title="statement not covered" > if (</span>
|
|
13373
12862
|
(minRange.node instanceof Param || minRange.node instanceof Variable || minRange.node instanceof Return) &&
|
|
13374
|
-
(node instanceof Entity || node instanceof Enum || node instanceof Structure
|
|
12863
|
+
(node instanceof Entity || node instanceof Enum || node instanceof Structure)
|
|
13375
12864
|
) {
|
|
13376
12865
|
<span class="cstat-no" title="statement not covered" > return null;</span>
|
|
13377
12866
|
}
|
|
@@ -13453,7 +12942,7 @@ class NaslServer {
|
|
|
13453
12942
|
.sort(<span class="fstat-no" title="function not covered" >(a</span>, b) => {
|
|
13454
12943
|
<span class="cstat-no" title="statement not covered" > if (a.node.concept === 'QueryFieldExpression') {</span>
|
|
13455
12944
|
<span class="cstat-no" title="statement not covered" > return 1;</span>
|
|
13456
|
-
} <span class="cstat-no" title="statement not covered" >if (b.node.concept === 'QueryFieldExpression') {</span>
|
|
12945
|
+
} else <span class="cstat-no" title="statement not covered" >if (b.node.concept === 'QueryFieldExpression') {</span>
|
|
13457
12946
|
<span class="cstat-no" title="statement not covered" > return -1;</span>
|
|
13458
12947
|
}
|
|
13459
12948
|
<span class="cstat-no" title="statement not covered" > return 0;</span>
|
|
@@ -13695,7 +13184,7 @@ class NaslServer {
|
|
|
13695
13184
|
*/
|
|
13696
13185
|
<span class="fstat-no" title="function not covered" > getCurrentSource(</span>node: BaseNode) {
|
|
13697
13186
|
<span class="cstat-no" title="statement not covered" > if (node instanceof App || node instanceof Theme) <span class="cstat-no" title="statement not covered" >return { fileNode: null };</span></span>
|
|
13698
|
-
let
|
|
13187
|
+
let sourceMap = <span class="cstat-no" title="statement not covered" >node.sourceMap;</span>
|
|
13699
13188
|
let fileNode = <span class="cstat-no" title="statement not covered" >node;</span>
|
|
13700
13189
|
// 如果没有sourceMap,就继续向上找 ,或者到module结束
|
|
13701
13190
|
// 如果 节点找到 app 或者module 停止 或者entity找到DataSource为止
|
|
@@ -13746,17 +13235,18 @@ class NaslServer {
|
|
|
13746
13235
|
<span class="cstat-no" title="statement not covered" > range.line = currentSource.end.line;</span>
|
|
13747
13236
|
<span class="cstat-no" title="statement not covered" > range.offset = 0;</span>
|
|
13748
13237
|
} else <span class="cstat-no" title="statement not covered" >if (node.concept === 'BindAttribute') {</span>
|
|
13749
|
-
<span class="cstat-no" title="statement not covered" > range.offset
|
|
13238
|
+
<span class="cstat-no" title="statement not covered" > range.offset = range.offset + 7;</span>
|
|
13750
13239
|
} else <span class="cstat-no" title="statement not covered" >if (node.concept === 'BindDirective') {</span>
|
|
13751
|
-
<span class="cstat-no" title="statement not covered" > range.offset
|
|
13240
|
+
<span class="cstat-no" title="statement not covered" > range.offset = range.offset + 5;</span>
|
|
13752
13241
|
}
|
|
13753
13242
|
<span class="cstat-no" title="statement not covered" > return this._getFieldKeySelectCompletion({</span>
|
|
13754
13243
|
file: (fileNode as FileNode).getEmbeddedFilePath(),
|
|
13755
13244
|
range,
|
|
13756
13245
|
getFieldKey: fieldKey,
|
|
13757
13246
|
});
|
|
13247
|
+
} else {
|
|
13248
|
+
<span class="cstat-no" title="statement not covered" > console.log('没找到节点', currentSource, fileNode);</span>
|
|
13758
13249
|
}
|
|
13759
|
-
|
|
13760
13250
|
}
|
|
13761
13251
|
|
|
13762
13252
|
<span class="fstat-no" title="function not covered" > _getFieldKeySelectCompletion(</span>args: any) {
|
|
@@ -13806,7 +13296,7 @@ class NaslServer {
|
|
|
13806
13296
|
<span class="cstat-no" title="statement not covered" > return [...fileNodes];</span>
|
|
13807
13297
|
}
|
|
13808
13298
|
|
|
13809
|
-
|
|
13299
|
+
/**获取当前节点的已知类型
|
|
13810
13300
|
* @param node 当前要获取类型的节点
|
|
13811
13301
|
* @returns 不需要去查就可以返回类型的节点
|
|
13812
13302
|
*/
|
|
@@ -13979,7 +13469,7 @@ class NaslServer {
|
|
|
13979
13469
|
const lastLen = <span class="cstat-no" title="statement not covered" >codeArr?.[codeArr.length - 1]?.length;</span>
|
|
13980
13470
|
<span class="cstat-no" title="statement not covered" > indexOf = subStr.length - lastLen;</span>
|
|
13981
13471
|
}
|
|
13982
|
-
<span class="cstat-no" title="statement not covered" > fileDetail.offset
|
|
13472
|
+
<span class="cstat-no" title="statement not covered" > fileDetail.offset = fileDetail.offset + indexOf;</span>
|
|
13983
13473
|
} else <span class="cstat-no" title="statement not covered" >if (</span>
|
|
13984
13474
|
node.concept === 'MemberExpression' ||
|
|
13985
13475
|
node.concept === 'Identifier' ||
|
|
@@ -14028,11 +13518,12 @@ class NaslServer {
|
|
|
14028
13518
|
const item = (<span class="cstat-no" title="statement not covered" >resultMap as any)?.[file]?.[line]?.[offset];</span>
|
|
14029
13519
|
const itemType = <span class="cstat-no" title="statement not covered" >item?.[0]?.nodeType;</span>
|
|
14030
13520
|
const nodeTypeAnnotation = <span class="cstat-no" title="statement not covered" >type2TypeAnnotation(itemType);</span>
|
|
14031
|
-
const
|
|
13521
|
+
const node = <span class="cstat-no" title="statement not covered" >newQuickInfoNodes[index].node;</span>
|
|
14032
13522
|
|
|
14033
13523
|
<span class="cstat-no" title="statement not covered" > types.set(node, Object.freeze(nodeTypeAnnotation) as TypeAnnotation);</span>
|
|
14034
13524
|
|
|
14035
13525
|
const type = <span class="cstat-no" title="statement not covered" >itemType ? (Object.isFrozen(itemType) ? itemType : Object.freeze(itemType)) : null;</span>
|
|
13526
|
+
|
|
14036
13527
|
<span class="cstat-no" title="statement not covered" > if (type) {</span>
|
|
14037
13528
|
(<span class="cstat-no" title="statement not covered" >node as any).__nodeType = type;</span>
|
|
14038
13529
|
} else {
|
|
@@ -14114,7 +13605,7 @@ class NaslServer {
|
|
|
14114
13605
|
const nodes: QuickInfoNodes = <span class="cstat-no" title="statement not covered" >[];</span>
|
|
14115
13606
|
<span class="cstat-no" title="statement not covered" > this.file2NodeMap.forEach(<span class="fstat-no" title="function not covered" >(f</span>ileNode, filePath) => {</span>
|
|
14116
13607
|
// 先不排除view,传递给后端的时候,去除views下的标注
|
|
14117
|
-
<span class="cstat-no" title="statement not covered" > if (!['Structure', 'DataSource', 'Entity', 'Enum', 'Role'
|
|
13608
|
+
<span class="cstat-no" title="statement not covered" > if (!['Structure', 'DataSource', 'Entity', 'Enum', 'Role'].includes(fileNode.concept)) {</span>
|
|
14118
13609
|
<span class="cstat-no" title="statement not covered" > fileNode.sourceMap.forEach(<span class="fstat-no" title="function not covered" >(i</span>tem, node) => {</span>
|
|
14119
13610
|
<span class="cstat-no" title="statement not covered" > nodes.push({</span>
|
|
14120
13611
|
filePath,
|
|
@@ -14148,7 +13639,7 @@ class NaslServer {
|
|
|
14148
13639
|
<span class="cstat-no" title="statement not covered" > if (!fileNode) <span class="cstat-no" title="statement not covered" >return;</span></span>
|
|
14149
13640
|
<span class="cstat-no" title="statement not covered" > record.id = fileNode.id;</span>
|
|
14150
13641
|
<span class="cstat-no" title="statement not covered" > record.node = fileNode;</span>
|
|
14151
|
-
<span class="cstat-no" title="statement not covered" > if (!['Structure', 'DataSource', 'Entity', 'Enum', 'Role'
|
|
13642
|
+
<span class="cstat-no" title="statement not covered" > if (!['Structure', 'DataSource', 'Entity', 'Enum', 'Role'].includes(fileNode.concept)) {</span>
|
|
14152
13643
|
<span class="cstat-no" title="statement not covered" > fileNode.sourceMap &&</span>
|
|
14153
13644
|
fileNode.sourceMap.forEach(<span class="fstat-no" title="function not covered" >(i</span>tem, nodeItem) => {
|
|
14154
13645
|
<span class="cstat-no" title="statement not covered" > nodes.push({</span>
|
|
@@ -14272,19 +13763,6 @@ class NaslServer {
|
|
|
14272
13763
|
const jsonNode = <span class="cstat-no" title="statement not covered" >jsoner.queryNodeByPath(json, node.getNodePath(false));</span>
|
|
14273
13764
|
<span class="cstat-no" title="statement not covered" > jsonNode.typeAnnotation = (value as TypeAnnotation).toJSON();</span>
|
|
14274
13765
|
}
|
|
14275
|
-
|
|
14276
|
-
// jsonSerializer 是 CallLogic,其余是 CallFunction
|
|
14277
|
-
<span class="cstat-no" title="statement not covered" > if (node instanceof CallFunction || node instanceof CallLogic) {</span>
|
|
14278
|
-
const tzArgIdx = <span class="cstat-no" title="statement not covered" >timeZoneArgumentIndexMap.get(node.calleeName);</span>
|
|
14279
|
-
const args = <span class="cstat-no" title="statement not covered" >node.arguments;</span>
|
|
14280
|
-
const tzArg = <span class="cstat-no" title="statement not covered" >args ? args[tzArgIdx] : undefined;</span>
|
|
14281
|
-
|
|
14282
|
-
<span class="cstat-no" title="statement not covered" > if (tzArgIdx && tzArg?.keyword === '时区' && !isCoreDateTimeType(node.arguments[0])) {</span>
|
|
14283
|
-
<span class="cstat-no" title="statement not covered" > if (!isFunctionWithFixedTimeZoneParam(node.calleeName)) {</span>
|
|
14284
|
-
<span class="cstat-no" title="statement not covered" > node.arguments.pop();</span>
|
|
14285
|
-
}
|
|
14286
|
-
}
|
|
14287
|
-
}
|
|
14288
13766
|
});
|
|
14289
13767
|
}
|
|
14290
13768
|
|
|
@@ -14327,7 +13805,7 @@ class NaslServer {
|
|
|
14327
13805
|
}
|
|
14328
13806
|
}
|
|
14329
13807
|
// 用户自己声明的用用户的
|
|
14330
|
-
const callObj = <span class="cstat-no" title="statement not covered" >App.findNodeByCompleteName(
|
|
13808
|
+
const callObj = <span class="cstat-no" title="statement not covered" >App.findNodeByCompleteName(parent.calleeNamespace + '.' + parent.calleeName);</span>
|
|
14331
13809
|
const index = <span class="cstat-no" title="statement not covered" >parent.arguments.indexOf(node);</span>
|
|
14332
13810
|
const param = <span class="cstat-no" title="statement not covered" >callObj?.params?.[index] || {};</span>
|
|
14333
13811
|
// 取出参数的类型
|
|
@@ -14603,7 +14081,7 @@ class NaslServer {
|
|
|
14603
14081
|
*/
|
|
14604
14082
|
<span class="fstat-no" title="function not covered" > async </span>incidentalAction(action: string, fileNode: BaseNode, targetNode: BaseNode, oldpath?: string) {
|
|
14605
14083
|
<span class="cstat-no" title="statement not covered" > if ((action === 'create' || action === 'delete' || (action === 'update' && oldpath)) && fileNode === targetNode) {</span>
|
|
14606
|
-
|
|
14084
|
+
//删除、更改、新增端
|
|
14607
14085
|
<span class="cstat-no" title="statement not covered" > if (fileNode instanceof Frontend && (fileNode.views?.length || fileNode.variables?.length)) {</span>
|
|
14608
14086
|
const fileNodeChildren = <span class="cstat-no" title="statement not covered" >[...fileNode.views, ...fileNode.variables];</span>
|
|
14609
14087
|
<span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i < fileNodeChildren.length; i++) {</span>
|
|
@@ -14619,7 +14097,7 @@ class NaslServer {
|
|
|
14619
14097
|
} else <span class="cstat-no" title="statement not covered" >if (action === 'update' && oldpath) {</span>
|
|
14620
14098
|
const parentPath = <span class="cstat-no" title="statement not covered" >oldpath.replace('.ts', '/');</span>
|
|
14621
14099
|
const foldName = <span class="cstat-no" title="statement not covered" >fileNodeItem.concept === 'View' ? 'views' : 'variables';</span>
|
|
14622
|
-
const currentOldPath = <span class="cstat-no" title="statement not covered"
|
|
14100
|
+
const currentOldPath = <span class="cstat-no" title="statement not covered" >parentPath + foldName + '/' + fileNodeItem.name + '.ts';</span>
|
|
14623
14101
|
// 因为重命名这里只有当前修改父级的 旧名称, 所以他的子集也要根据旧名称去查依赖 更新内容
|
|
14624
14102
|
<span class="cstat-no" title="statement not covered" > await this.handleRename(fileNodeItem, fileNodeItem, result, currentOldPath);</span>
|
|
14625
14103
|
<span class="cstat-no" title="statement not covered" > await this.incidentalAction(action, fileNodeItem, fileNodeItem, currentOldPath);</span>
|
|
@@ -14641,7 +14119,7 @@ class NaslServer {
|
|
|
14641
14119
|
<span class="cstat-no" title="statement not covered" > await this.incidentalAction(action, fileNodeItem, fileNodeItem);</span>
|
|
14642
14120
|
} else <span class="cstat-no" title="statement not covered" >if (action === 'update' && oldpath) {</span>
|
|
14643
14121
|
const parentPath = <span class="cstat-no" title="statement not covered" >oldpath.replace('.ts', '/');</span>
|
|
14644
|
-
const currentOldPath = <span class="cstat-no" title="statement not covered"
|
|
14122
|
+
const currentOldPath = <span class="cstat-no" title="statement not covered" >parentPath + fileNodeItem.name + '.ts';</span>
|
|
14645
14123
|
// 因为重命名这里只有当前修改父级的 旧名称, 所以他的子集也要根据旧名称去查依赖 更新内容
|
|
14646
14124
|
<span class="cstat-no" title="statement not covered" > await this.handleRename(fileNodeItem, fileNodeItem, result, currentOldPath);</span>
|
|
14647
14125
|
<span class="cstat-no" title="statement not covered" > await this.incidentalAction(action, fileNodeItem, fileNodeItem, currentOldPath);</span>
|
|
@@ -14685,7 +14163,7 @@ class NaslServer {
|
|
|
14685
14163
|
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
14686
14164
|
const result = <span class="cstat-no" title="statement not covered" >entity.toEmbeddedTSFile();</span>
|
|
14687
14165
|
const parentPath = <span class="cstat-no" title="statement not covered" >oldpath.replace('.ts', '/');</span>
|
|
14688
|
-
const currentOldPath = <span class="cstat-no" title="statement not covered"
|
|
14166
|
+
const currentOldPath = <span class="cstat-no" title="statement not covered" >parentPath + '/entities/' + entity.name + '.ts';</span>
|
|
14689
14167
|
// 因为重命名这里只有当前修改父级的 旧名称, 所以他的子集也要根据旧名称去查依赖 更新内容
|
|
14690
14168
|
<span class="cstat-no" title="statement not covered" > await this.handleRename(entity, entity, result, currentOldPath);</span>
|
|
14691
14169
|
} catch (err) {
|
|
@@ -14699,7 +14177,7 @@ class NaslServer {
|
|
|
14699
14177
|
<span class="fstat-no" title="function not covered" > async </span>receiveHandleChange($event: EventPayload) {
|
|
14700
14178
|
<span class="cstat-no" title="statement not covered" > this.singleFileChangeIng = true;</span>
|
|
14701
14179
|
// 行为
|
|
14702
|
-
const
|
|
14180
|
+
const action = <span class="cstat-no" title="statement not covered" >$event.action;</span>
|
|
14703
14181
|
const targetNode = <span class="cstat-no" title="statement not covered" >$event.target;</span>
|
|
14704
14182
|
// Connection 相关配置的更新不需要写入文件
|
|
14705
14183
|
<span class="cstat-no" title="statement not covered" > if (targetNode?.parentNode instanceof Connection) {</span>
|
|
@@ -14797,7 +14275,7 @@ export { NaslServer };
|
|
|
14797
14275
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
14798
14276
|
Code coverage generated by
|
|
14799
14277
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
14800
|
-
at 2023-10-
|
|
14278
|
+
at 2023-10-19T09:18:56.902Z
|
|
14801
14279
|
</div>
|
|
14802
14280
|
<script src="../../prettify.js"></script>
|
|
14803
14281
|
<script>
|