@lcap/nasl 3.6.0-beta.1 → 3.7.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.nyc_output/{d58d92d8-c0d6-479b-9f82-1f4da8e73ff3.json → 559608df-ab15-4969-acf0-5239dacd6111.json} +1 -1
- package/.nyc_output/processinfo/559608df-ab15-4969-acf0-5239dacd6111.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -1
- package/coverage/index.html +153 -138
- package/coverage/src/automate/engine/index.html +1 -1
- package/coverage/src/automate/engine/utils.js.html +46 -46
- package/coverage/src/bak/index.html +15 -15
- package/coverage/src/bak/translator.js.html +153 -57
- 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 +43 -7
- package/coverage/src/breakpoint/generator/CallbackNode.ts.html +59 -8
- package/coverage/src/breakpoint/generator/index.html +21 -21
- 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 +1 -1
- package/coverage/src/breakpoint/shared/index.html +1 -1
- 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 +1 -1
- package/coverage/src/breakpoint/shared/utils.ts.html +1 -1
- package/coverage/src/breakpoint/store/core.ts.html +3 -3
- package/coverage/src/breakpoint/store/dock.ts.html +1 -1
- package/coverage/src/breakpoint/store/index.html +1 -1
- package/coverage/src/breakpoint/store/index.ts.html +1 -1
- package/coverage/src/common/BaseNode.ts.html +609 -180
- package/coverage/src/common/Command.ts.html +2 -2
- 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 +36 -21
- package/coverage/src/common/index.ts.html +7 -4
- package/coverage/src/common/utils.ts.html +136 -0
- package/coverage/src/concepts/Abort__.ts.html +39 -9
- package/coverage/src/concepts/AbstractInterface__.ts.html +280 -0
- package/coverage/src/concepts/Anchor__.ts.html +86 -29
- package/coverage/src/concepts/AnonymousFunction__.ts.html +262 -169
- package/coverage/src/concepts/App__.ts.html +1205 -152
- package/coverage/src/concepts/Argument__.ts.html +120 -51
- package/coverage/src/concepts/Assignee__.ts.html +124 -34
- package/coverage/src/concepts/AssignmentLine__.ts.html +48 -15
- package/coverage/src/concepts/Assignment__.ts.html +147 -69
- package/coverage/src/concepts/Attribute__.ts.html +41 -14
- package/coverage/src/concepts/AuthInterface__.ts.html +9 -6
- package/coverage/src/concepts/AuthLogicForCallInterface__.ts.html +108 -144
- package/coverage/src/concepts/AuthLogic__.ts.html +18 -6
- package/coverage/src/concepts/BackendVariable__.ts.html +135 -51
- package/coverage/src/concepts/Backend__.ts.html +106 -28
- package/coverage/src/concepts/BatchAssignment__.ts.html +274 -169
- package/coverage/src/concepts/BinaryExpression__.ts.html +188 -110
- package/coverage/src/concepts/BindAttribute__.ts.html +213 -93
- package/coverage/src/concepts/BindDirective__.ts.html +131 -26
- package/coverage/src/concepts/BindEvent__.ts.html +167 -71
- package/coverage/src/concepts/BindStyle__.ts.html +78 -21
- package/coverage/src/concepts/Block__.ts.html +910 -0
- package/coverage/src/concepts/BooleanLiteral__.ts.html +47 -20
- package/coverage/src/concepts/CallAuthInterface__.ts.html +105 -48
- package/coverage/src/concepts/CallConnector__.ts.html +62 -35
- package/coverage/src/concepts/CallFunction__.ts.html +328 -160
- package/coverage/src/concepts/CallInterface__.ts.html +93 -60
- package/coverage/src/concepts/CallLogic__.ts.html +544 -427
- package/coverage/src/concepts/CallQueryComponent__.ts.html +126 -93
- package/coverage/src/concepts/Comment__.ts.html +43 -10
- package/coverage/src/concepts/CompletionProperty__.ts.html +40 -13
- package/coverage/src/concepts/ConfigGroup__.ts.html +47 -20
- package/coverage/src/concepts/ConfigPropertyValue__.ts.html +22 -19
- package/coverage/src/concepts/ConfigProperty__.ts.html +97 -40
- package/coverage/src/concepts/Configuration__.ts.html +48 -21
- package/coverage/src/concepts/Connection__.ts.html +97 -22
- package/coverage/src/concepts/ConnectorTrigger__.ts.html +9 -6
- package/coverage/src/concepts/Connector__.ts.html +161 -38
- package/coverage/src/concepts/Constant__.ts.html +84 -24
- package/coverage/src/concepts/CountersignPolicy__.ts.html +316 -0
- package/coverage/src/concepts/DataSource__.ts.html +111 -57
- package/coverage/src/concepts/DatabaseTypeAnnotation__.ts.html +9 -6
- package/coverage/src/concepts/DefaultValue__.ts.html +1000 -0
- package/coverage/src/concepts/Destination__.ts.html +97 -55
- package/coverage/src/concepts/End__.ts.html +56 -26
- package/coverage/src/concepts/EntityIndex__.ts.html +40 -10
- package/coverage/src/concepts/EntityProperty__.ts.html +164 -56
- package/coverage/src/concepts/Entity__.ts.html +169 -91
- package/coverage/src/concepts/EnumItem__.ts.html +40 -10
- package/coverage/src/concepts/Enum__.ts.html +84 -24
- package/coverage/src/concepts/Event__.ts.html +41 -14
- package/coverage/src/concepts/ExternalDestination__.ts.html +75 -21
- package/coverage/src/concepts/ForEachStatement__.ts.html +143 -95
- package/coverage/src/concepts/FrontendLibrary__.ts.html +71 -20
- package/coverage/src/concepts/FrontendVariable__.ts.html +1 -1
- package/coverage/src/concepts/Frontend__.ts.html +213 -57
- package/coverage/src/concepts/Function__.ts.html +239 -86
- package/coverage/src/concepts/I18nInfo__.ts.html +436 -0
- package/coverage/src/concepts/Identifier__.ts.html +103 -73
- package/coverage/src/concepts/IfStatement__.ts.html +138 -75
- package/coverage/src/concepts/ImportedInterface__.ts.html +268 -0
- package/coverage/src/concepts/Integration__.ts.html +70 -19
- package/coverage/src/concepts/InterfaceParam__.ts.html +78 -21
- package/coverage/src/concepts/Interface__.ts.html +162 -60
- package/coverage/src/concepts/JSBlock__.ts.html +39 -9
- package/coverage/src/concepts/JavaLogic__.ts.html +42 -9
- package/coverage/src/concepts/LogicItem__.ts.html +56 -26
- package/coverage/src/concepts/Logic__.ts.html +409 -322
- package/coverage/src/concepts/MatchCase__.ts.html +181 -97
- package/coverage/src/concepts/Match__.ts.html +135 -63
- package/coverage/src/concepts/MemberExpression__.ts.html +185 -128
- package/coverage/src/concepts/MetadataType__.ts.html +2053 -0
- package/coverage/src/concepts/MicroApp__.ts.html +9 -6
- package/coverage/src/concepts/Module__.ts.html +690 -36
- package/coverage/src/concepts/MsgTriggerEvent__.ts.html +41 -14
- package/coverage/src/concepts/MsgTriggerLauncher__.ts.html +41 -14
- package/coverage/src/concepts/MultiApprovalPolicy__.ts.html +292 -0
- package/coverage/src/concepts/Namespace__.ts.html +359 -92
- package/coverage/src/concepts/NewComposite__.ts.html +326 -146
- package/coverage/src/concepts/NewList__.ts.html +195 -57
- package/coverage/src/concepts/NewMap__.ts.html +168 -63
- package/coverage/src/concepts/New__.ts.html +39 -9
- package/coverage/src/concepts/NullLiteral__.ts.html +36 -9
- package/coverage/src/concepts/NumericLiteral__.ts.html +86 -32
- package/coverage/src/concepts/OqlQueryComponent__.ts.html +161 -35
- package/coverage/src/concepts/OverriddenLogic__.ts.html +324 -201
- package/coverage/src/concepts/Param__.ts.html +155 -80
- package/coverage/src/concepts/Point__.ts.html +9 -6
- package/coverage/src/concepts/ProcessComponent__.ts.html +72 -21
- package/coverage/src/concepts/ProcessElement__.ts.html +524 -116
- package/coverage/src/concepts/ProcessOutcome__.ts.html +85 -13
- package/coverage/src/concepts/ProcessOutcomes__.ts.html +85 -13
- package/coverage/src/concepts/Process__.ts.html +217 -70
- package/coverage/src/concepts/QueryAggregateExpression__.ts.html +67 -16
- package/coverage/src/concepts/QueryFieldExpression__.ts.html +41 -11
- package/coverage/src/concepts/QueryFromExpression__.ts.html +81 -21
- package/coverage/src/concepts/QueryGroupByExpression__.ts.html +70 -19
- package/coverage/src/concepts/QueryJoinExpression__.ts.html +85 -25
- package/coverage/src/concepts/QueryLimitExpression__.ts.html +77 -20
- package/coverage/src/concepts/QueryOrderByExpression__.ts.html +80 -20
- package/coverage/src/concepts/QuerySelectExpression__.ts.html +42 -15
- package/coverage/src/concepts/Rect__.ts.html +9 -6
- package/coverage/src/concepts/Return__.ts.html +131 -50
- package/coverage/src/concepts/Role__.ts.html +45 -15
- package/coverage/src/concepts/SelectMembers__.ts.html +81 -24
- package/coverage/src/concepts/SequentialPolicy__.ts.html +259 -0
- package/coverage/src/concepts/Slot__.ts.html +40 -13
- package/coverage/src/concepts/SqlQueryComponent__.ts.html +84 -24
- package/coverage/src/concepts/Start__.ts.html +41 -14
- package/coverage/src/concepts/StaticString__.ts.html +403 -0
- package/coverage/src/concepts/StringInterpolation__.ts.html +127 -46
- package/coverage/src/concepts/StringLiteral__.ts.html +62 -32
- package/coverage/src/concepts/StructureProperty__.ts.html +86 -29
- package/coverage/src/concepts/Structure__.ts.html +122 -38
- package/coverage/src/concepts/SwitchCase__.ts.html +87 -36
- package/coverage/src/concepts/SwitchStatement__.ts.html +90 -33
- package/coverage/src/concepts/Theme__.ts.html +15 -12
- package/coverage/src/concepts/Transactional__.ts.html +9 -6
- package/coverage/src/concepts/TriggerEvent__.ts.html +41 -14
- package/coverage/src/concepts/TriggerLauncher__.ts.html +46 -13
- package/coverage/src/concepts/TypeAnnotation__.ts.html +348 -117
- package/coverage/src/concepts/TypeParam__.ts.html +42 -12
- package/coverage/src/concepts/UnaryExpression__.ts.html +105 -27
- package/coverage/src/concepts/Unparsed__.ts.html +36 -12
- package/coverage/src/concepts/UseComponent__.ts.html +9 -6
- package/coverage/src/concepts/ValidationRule__.ts.html +87 -48
- package/coverage/src/concepts/Variable__.ts.html +127 -46
- package/coverage/src/concepts/ViewBlock__.ts.html +9 -6
- package/coverage/src/concepts/ViewComponent__.ts.html +99 -24
- package/coverage/src/concepts/ViewElement__.ts.html +498 -288
- package/coverage/src/concepts/View__.ts.html +482 -170
- package/coverage/src/concepts/WhileStatement__.ts.html +118 -55
- package/coverage/src/concepts/basics/constants.ts.html +88 -0
- package/coverage/src/concepts/basics/index.html +116 -0
- package/coverage/src/concepts/basics/stdlib/index.html +1 -1
- 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 +2 -2
- package/coverage/src/concepts/basics/stdlib/nasl.ui.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.util.ts.html +4 -4
- 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/stdlib/timeZone.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 +1023 -963
- package/coverage/src/concepts/index.ts.html +1 -1
- package/coverage/src/concepts/index__.ts.html +16 -4
- package/coverage/src/concepts/utils/asserts.ts.html +27967 -0
- package/coverage/src/concepts/utils/index.html +116 -0
- package/coverage/src/config.ts.html +1 -1
- package/coverage/src/decorators/index.html +5 -5
- package/coverage/src/decorators/index.ts.html +32 -32
- package/coverage/src/decorators/promise.ts.html +10 -10
- package/coverage/src/eventBus.ts.html +1 -1
- package/coverage/src/generator/compileComponent.ts.html +1 -1
- package/coverage/src/generator/genBundleFiles.ts.html +17 -23
- package/coverage/src/generator/genHash.ts.html +1 -1
- package/coverage/src/generator/genMetaData.ts.html +103 -16
- package/coverage/src/generator/genReleaseBody.ts.html +43 -43
- package/coverage/src/generator/icestark.ts.html +10 -4
- package/coverage/src/generator/index.html +21 -21
- 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 +92 -20
- package/coverage/src/generator/qiankun.ts.html +9 -3
- package/coverage/src/generator/styleReplacer.ts.html +1 -1
- package/coverage/src/index.html +7 -7
- package/coverage/src/index.ts.html +4 -4
- package/coverage/src/manager/diagnostic.ts.html +11 -14
- package/coverage/src/manager/index.html +13 -13
- package/coverage/src/manager/stepRecorder.ts.html +1 -1
- package/coverage/src/natural/genNaturalTS.ts.html +1 -1
- package/coverage/src/natural/index.html +15 -15
- package/coverage/src/natural/index.ts.html +1 -1
- package/coverage/src/natural/naslStdlibMap.ts.html +1 -1
- package/coverage/src/natural/transformTSCode.ts.html +78 -18
- package/coverage/src/sentry/index.html +14 -14
- package/coverage/src/sentry/index.ts.html +38 -32
- package/coverage/src/server/createUiTs.ts.html +15 -6
- package/coverage/src/server/entity2LogicNamespace.ts.html +9 -9
- package/coverage/src/server/event.js.html +1 -1
- package/coverage/src/server/extendBaseNode.ts.html +73 -43
- package/coverage/src/server/formatTsUtils.ts.html +31 -28
- 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 +20 -8
- package/coverage/src/server/getMemberIdentifier.ts.html +231 -120
- package/coverage/src/server/getProcessComponents.ts.html +1 -1
- package/coverage/src/server/getProcesses.ts.html +163 -13
- package/coverage/src/server/getValidates.ts.html +1 -1
- package/coverage/src/server/index.html +63 -63
- package/coverage/src/server/index.ts.html +6 -3
- package/coverage/src/server/naslServer.ts.html +1207 -949
- 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 +59 -14
- package/coverage/src/service/creator/add.configs.js.html +27 -9
- package/coverage/src/service/creator/errHandles.js.html +28 -37
- package/coverage/src/service/creator/index.html +23 -23
- 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 +29 -29
- package/coverage/src/service/storage/index.ts.html +1 -1
- package/coverage/src/service/storage/init.ts.html +1533 -600
- package/coverage/src/service/storage/jsoner.ts.html +76 -13
- 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 +37 -58
- package/coverage/src/templator/genCurdEditMultipleKeyBlock.ts.html +19 -19
- package/coverage/src/templator/genCurdMultipleKeyBlock.ts.html +71 -89
- package/coverage/src/templator/genEditTableBlock.ts.html +76 -13
- 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 +66 -3
- package/coverage/src/templator/genUpdateBlock.ts.html +35 -32
- package/coverage/src/templator/index.html +38 -38
- package/coverage/src/templator/index.ts.html +1 -1
- package/coverage/src/templator/utils.ts.html +74 -11
- package/coverage/src/translator/constant.ts.html +1 -1
- package/coverage/src/translator/index.html +21 -21
- package/coverage/src/translator/index.ts.html +1 -1
- package/coverage/src/translator/utils.ts.html +389 -68
- package/coverage/src/utils/cookie.ts.html +4 -4
- package/coverage/src/utils/env.ts.html +1 -1
- package/coverage/src/utils/i18nInfo.ts.html +166 -0
- package/coverage/src/utils/index.html +34 -49
- package/coverage/src/utils/index.ts.html +115 -22
- package/coverage/src/utils/logger.ts.html +1 -1
- package/coverage/src/utils/sortTsString.ts.html +25 -10
- package/coverage/src/utils/string.ts.html +110 -8
- package/coverage/src/utils/time-slicing/constant.ts.html +196 -0
- package/coverage/src/utils/time-slicing/controller.ts.html +1144 -0
- package/coverage/src/utils/time-slicing/index.html +236 -0
- package/coverage/src/utils/time-slicing/index.ts.html +103 -0
- package/coverage/src/utils/time-slicing/page-state.ts.html +121 -0
- package/coverage/src/utils/time-slicing/performance.ts.html +253 -0
- package/coverage/src/utils/time-slicing/runner.ts.html +241 -0
- package/coverage/src/utils/time-slicing/tool.ts.html +220 -0
- package/coverage/src/utils/time-slicing/utils.ts.html +355 -0
- package/coverage/src/utils/time-slicing/wrapper.ts.html +259 -0
- package/coverage/src/utils/time-slicing.ts.html +1 -1
- package/coverage/src/utils/traverse.ts.html +1 -1
- package/coverage/src/utils/window.ts.html +1 -1
- package/out/common/BaseNode.js +10 -1
- package/out/common/BaseNode.js.map +1 -1
- package/out/concepts/Abort__.d.ts +7 -0
- package/out/concepts/Abort__.js +7 -0
- package/out/concepts/Abort__.js.map +1 -1
- package/out/concepts/AbstractInterface__.d.ts +7 -0
- package/out/concepts/AbstractInterface__.js +7 -0
- package/out/concepts/AbstractInterface__.js.map +1 -1
- package/out/concepts/Anchor__.d.ts +7 -0
- package/out/concepts/Anchor__.js +7 -0
- package/out/concepts/Anchor__.js.map +1 -1
- package/out/concepts/AnonymousFunction__.d.ts +7 -0
- package/out/concepts/AnonymousFunction__.js +7 -0
- package/out/concepts/AnonymousFunction__.js.map +1 -1
- package/out/concepts/App__.d.ts +7 -0
- package/out/concepts/App__.js +8 -1
- package/out/concepts/App__.js.map +1 -1
- package/out/concepts/Argument__.d.ts +7 -0
- package/out/concepts/Argument__.js +7 -0
- package/out/concepts/Argument__.js.map +1 -1
- package/out/concepts/Assignee__.d.ts +7 -0
- package/out/concepts/Assignee__.js +7 -0
- package/out/concepts/Assignee__.js.map +1 -1
- package/out/concepts/AssignmentLine__.d.ts +7 -0
- package/out/concepts/AssignmentLine__.js +7 -0
- package/out/concepts/AssignmentLine__.js.map +1 -1
- package/out/concepts/Assignment__.d.ts +7 -0
- package/out/concepts/Assignment__.js +7 -0
- package/out/concepts/Assignment__.js.map +1 -1
- package/out/concepts/Attribute__.d.ts +11 -13
- package/out/concepts/Attribute__.js +11 -14
- package/out/concepts/Attribute__.js.map +1 -1
- package/out/concepts/AuthInterface__.d.ts +7 -0
- package/out/concepts/AuthInterface__.js +7 -0
- package/out/concepts/AuthInterface__.js.map +1 -1
- package/out/concepts/AuthLogicForCallInterface__.d.ts +7 -0
- package/out/concepts/AuthLogicForCallInterface__.js +7 -0
- package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
- package/out/concepts/AuthLogic__.d.ts +7 -0
- package/out/concepts/AuthLogic__.js +7 -0
- package/out/concepts/AuthLogic__.js.map +1 -1
- package/out/concepts/BackendVariable__.d.ts +7 -0
- package/out/concepts/BackendVariable__.js +7 -0
- package/out/concepts/BackendVariable__.js.map +1 -1
- package/out/concepts/Backend__.d.ts +7 -0
- package/out/concepts/Backend__.js +7 -0
- package/out/concepts/Backend__.js.map +1 -1
- package/out/concepts/BaseSetter__.d.ts +25 -0
- package/out/concepts/BaseSetter__.js +53 -0
- package/out/concepts/BaseSetter__.js.map +1 -0
- package/out/concepts/BatchAssignment__.d.ts +7 -0
- package/out/concepts/BatchAssignment__.js +7 -0
- package/out/concepts/BatchAssignment__.js.map +1 -1
- package/out/concepts/BinaryExpression__.d.ts +7 -0
- package/out/concepts/BinaryExpression__.js +7 -0
- package/out/concepts/BinaryExpression__.js.map +1 -1
- package/out/concepts/BindAttribute__.d.ts +7 -0
- package/out/concepts/BindAttribute__.js +7 -0
- package/out/concepts/BindAttribute__.js.map +1 -1
- package/out/concepts/BindDirective__.d.ts +7 -0
- package/out/concepts/BindDirective__.js +7 -0
- package/out/concepts/BindDirective__.js.map +1 -1
- package/out/concepts/BindEvent__.d.ts +7 -0
- package/out/concepts/BindEvent__.js +7 -0
- package/out/concepts/BindEvent__.js.map +1 -1
- package/out/concepts/BindStyle__.d.ts +7 -0
- package/out/concepts/BindStyle__.js +7 -0
- package/out/concepts/BindStyle__.js.map +1 -1
- package/out/concepts/Block__.d.ts +7 -0
- package/out/concepts/Block__.js +7 -0
- package/out/concepts/Block__.js.map +1 -1
- package/out/concepts/BooleanLiteral__.d.ts +7 -0
- package/out/concepts/BooleanLiteral__.js +7 -0
- package/out/concepts/BooleanLiteral__.js.map +1 -1
- package/out/concepts/BusinessComponent__.d.ts +7 -0
- package/out/concepts/BusinessComponent__.js +8 -1
- package/out/concepts/BusinessComponent__.js.map +1 -1
- package/out/concepts/BusinessLogic__.d.ts +7 -0
- package/out/concepts/BusinessLogic__.js +7 -0
- package/out/concepts/BusinessLogic__.js.map +1 -1
- package/out/concepts/CallAuthInterface__.d.ts +7 -0
- package/out/concepts/CallAuthInterface__.js +7 -0
- package/out/concepts/CallAuthInterface__.js.map +1 -1
- package/out/concepts/CallConnector__.d.ts +7 -0
- package/out/concepts/CallConnector__.js +7 -0
- package/out/concepts/CallConnector__.js.map +1 -1
- package/out/concepts/CallEvent__.d.ts +7 -0
- package/out/concepts/CallEvent__.js +7 -0
- package/out/concepts/CallEvent__.js.map +1 -1
- package/out/concepts/CallFunction__.d.ts +17 -0
- package/out/concepts/CallFunction__.js +73 -2
- package/out/concepts/CallFunction__.js.map +1 -1
- package/out/concepts/CallInterface__.d.ts +7 -0
- package/out/concepts/CallInterface__.js +7 -0
- package/out/concepts/CallInterface__.js.map +1 -1
- package/out/concepts/CallLogic__.d.ts +7 -0
- package/out/concepts/CallLogic__.js +17 -9
- package/out/concepts/CallLogic__.js.map +1 -1
- package/out/concepts/CallQueryComponent__.d.ts +7 -0
- package/out/concepts/CallQueryComponent__.js +7 -0
- package/out/concepts/CallQueryComponent__.js.map +1 -1
- package/out/concepts/CapsulesSetter__.d.ts +109 -0
- package/out/concepts/CapsulesSetter__.js +163 -0
- package/out/concepts/CapsulesSetter__.js.map +1 -0
- package/out/concepts/Comment__.d.ts +7 -0
- package/out/concepts/Comment__.js +7 -0
- package/out/concepts/Comment__.js.map +1 -1
- package/out/concepts/CompletionProperty__.d.ts +7 -8
- package/out/concepts/CompletionProperty__.js +7 -16
- package/out/concepts/CompletionProperty__.js.map +1 -1
- package/out/concepts/ConfigGroup__.d.ts +7 -0
- package/out/concepts/ConfigGroup__.js +7 -0
- package/out/concepts/ConfigGroup__.js.map +1 -1
- package/out/concepts/ConfigPropertyValue__.d.ts +7 -0
- package/out/concepts/ConfigPropertyValue__.js +7 -0
- package/out/concepts/ConfigPropertyValue__.js.map +1 -1
- package/out/concepts/ConfigProperty__.d.ts +7 -0
- package/out/concepts/ConfigProperty__.js +7 -0
- package/out/concepts/ConfigProperty__.js.map +1 -1
- package/out/concepts/Configuration__.d.ts +7 -0
- package/out/concepts/Configuration__.js +7 -0
- package/out/concepts/Configuration__.js.map +1 -1
- package/out/concepts/Connection__.d.ts +7 -0
- package/out/concepts/Connection__.js +7 -0
- package/out/concepts/Connection__.js.map +1 -1
- package/out/concepts/ConnectorTrigger__.d.ts +7 -0
- package/out/concepts/ConnectorTrigger__.js +7 -0
- package/out/concepts/ConnectorTrigger__.js.map +1 -1
- package/out/concepts/Connector__.d.ts +7 -0
- package/out/concepts/Connector__.js +7 -0
- package/out/concepts/Connector__.js.map +1 -1
- package/out/concepts/Constant__.d.ts +7 -0
- package/out/concepts/Constant__.js +7 -0
- package/out/concepts/Constant__.js.map +1 -1
- package/out/concepts/CountersignPolicy__.d.ts +7 -0
- package/out/concepts/CountersignPolicy__.js +7 -0
- package/out/concepts/CountersignPolicy__.js.map +1 -1
- package/out/concepts/DataSource__.d.ts +7 -0
- package/out/concepts/DataSource__.js +7 -0
- package/out/concepts/DataSource__.js.map +1 -1
- package/out/concepts/DatabaseTypeAnnotation__.d.ts +7 -0
- package/out/concepts/DatabaseTypeAnnotation__.js +7 -0
- package/out/concepts/DatabaseTypeAnnotation__.js.map +1 -1
- package/out/concepts/DefaultValue__.d.ts +7 -0
- package/out/concepts/DefaultValue__.js +7 -0
- package/out/concepts/DefaultValue__.js.map +1 -1
- package/out/concepts/Destination__.d.ts +7 -0
- package/out/concepts/Destination__.js +7 -0
- package/out/concepts/Destination__.js.map +1 -1
- package/out/concepts/End__.d.ts +7 -0
- package/out/concepts/End__.js +7 -0
- package/out/concepts/End__.js.map +1 -1
- package/out/concepts/EntityIndex__.d.ts +7 -0
- package/out/concepts/EntityIndex__.js +7 -0
- package/out/concepts/EntityIndex__.js.map +1 -1
- package/out/concepts/EntityProperty__.d.ts +7 -0
- package/out/concepts/EntityProperty__.js +14 -8
- package/out/concepts/EntityProperty__.js.map +1 -1
- package/out/concepts/Entity__.d.ts +7 -0
- package/out/concepts/Entity__.js +7 -0
- package/out/concepts/Entity__.js.map +1 -1
- package/out/concepts/EnumItem__.d.ts +7 -0
- package/out/concepts/EnumItem__.js +7 -0
- package/out/concepts/EnumItem__.js.map +1 -1
- package/out/concepts/EnumSelectSetter__.d.ts +109 -0
- package/out/concepts/EnumSelectSetter__.js +163 -0
- package/out/concepts/EnumSelectSetter__.js.map +1 -0
- package/out/concepts/Enum__.d.ts +12 -0
- package/out/concepts/Enum__.js +33 -4
- package/out/concepts/Enum__.js.map +1 -1
- package/out/concepts/EventDeclaration__.d.ts +41 -0
- package/out/concepts/EventDeclaration__.js +81 -0
- package/out/concepts/EventDeclaration__.js.map +1 -0
- package/out/concepts/Event__.d.ts +10 -3
- package/out/concepts/Event__.js +9 -2
- package/out/concepts/Event__.js.map +1 -1
- package/out/concepts/ExternalDestination__.d.ts +7 -0
- package/out/concepts/ExternalDestination__.js +7 -0
- package/out/concepts/ExternalDestination__.js.map +1 -1
- package/out/concepts/ForEachStatement__.d.ts +7 -0
- package/out/concepts/ForEachStatement__.js +7 -0
- package/out/concepts/ForEachStatement__.js.map +1 -1
- package/out/concepts/FrontendLibrary__.d.ts +34 -27
- package/out/concepts/FrontendLibrary__.js +39 -32
- package/out/concepts/FrontendLibrary__.js.map +1 -1
- package/out/concepts/FrontendType__.d.ts +7 -0
- package/out/concepts/FrontendType__.js +7 -0
- package/out/concepts/FrontendType__.js.map +1 -1
- package/out/concepts/FrontendVariable__.d.ts +7 -0
- package/out/concepts/FrontendVariable__.js +7 -0
- package/out/concepts/FrontendVariable__.js.map +1 -1
- package/out/concepts/Frontend__.d.ts +7 -0
- package/out/concepts/Frontend__.js +7 -0
- package/out/concepts/Frontend__.js.map +1 -1
- package/out/concepts/Function__.d.ts +7 -0
- package/out/concepts/Function__.js +7 -0
- package/out/concepts/Function__.js.map +1 -1
- package/out/concepts/I18nInfo__.d.ts +7 -0
- package/out/concepts/I18nInfo__.js +7 -0
- package/out/concepts/I18nInfo__.js.map +1 -1
- package/out/concepts/IconSetter__.d.ts +29 -0
- package/out/concepts/IconSetter__.js +62 -0
- package/out/concepts/IconSetter__.js.map +1 -0
- package/out/concepts/Identifier__.d.ts +7 -0
- package/out/concepts/Identifier__.js +7 -0
- package/out/concepts/Identifier__.js.map +1 -1
- package/out/concepts/IfStatement__.d.ts +7 -0
- package/out/concepts/IfStatement__.js +7 -0
- package/out/concepts/IfStatement__.js.map +1 -1
- package/out/concepts/ImageSetter__.d.ts +25 -0
- package/out/concepts/ImageSetter__.js +53 -0
- package/out/concepts/ImageSetter__.js.map +1 -0
- package/out/concepts/ImportedInterface__.d.ts +7 -0
- package/out/concepts/ImportedInterface__.js +7 -0
- package/out/concepts/ImportedInterface__.js.map +1 -1
- package/out/concepts/InputSetter__.d.ts +29 -0
- package/out/concepts/InputSetter__.js +62 -0
- package/out/concepts/InputSetter__.js.map +1 -0
- package/out/concepts/Integration__.d.ts +7 -0
- package/out/concepts/Integration__.js +7 -0
- package/out/concepts/Integration__.js.map +1 -1
- package/out/concepts/InterfaceParam__.d.ts +7 -0
- package/out/concepts/InterfaceParam__.js +7 -0
- package/out/concepts/InterfaceParam__.js.map +1 -1
- package/out/concepts/Interface__.d.ts +7 -0
- package/out/concepts/Interface__.js +7 -0
- package/out/concepts/Interface__.js.map +1 -1
- package/out/concepts/JSBlock__.d.ts +7 -0
- package/out/concepts/JSBlock__.js +7 -0
- package/out/concepts/JSBlock__.js.map +1 -1
- package/out/concepts/JavaLogic__.d.ts +7 -0
- package/out/concepts/JavaLogic__.js +7 -0
- package/out/concepts/JavaLogic__.js.map +1 -1
- package/out/concepts/LogicDeclaration__.d.ts +289 -0
- package/out/concepts/LogicDeclaration__.js +352 -0
- package/out/concepts/LogicDeclaration__.js.map +1 -0
- package/out/concepts/LogicItem__.d.ts +7 -0
- package/out/concepts/LogicItem__.js +7 -0
- package/out/concepts/LogicItem__.js.map +1 -1
- package/out/concepts/Logic__.d.ts +17 -7
- package/out/concepts/Logic__.js +89 -8
- package/out/concepts/Logic__.js.map +1 -1
- package/out/concepts/MatchCase__.d.ts +7 -0
- package/out/concepts/MatchCase__.js +7 -0
- package/out/concepts/MatchCase__.js.map +1 -1
- package/out/concepts/Match__.d.ts +7 -0
- package/out/concepts/Match__.js +7 -0
- package/out/concepts/Match__.js.map +1 -1
- package/out/concepts/MemberExpression__.d.ts +7 -0
- package/out/concepts/MemberExpression__.js +7 -0
- package/out/concepts/MemberExpression__.js.map +1 -1
- package/out/concepts/MetadataType__.d.ts +7 -0
- package/out/concepts/MetadataType__.js +7 -0
- package/out/concepts/MetadataType__.js.map +1 -1
- package/out/concepts/MicroApp__.d.ts +7 -0
- package/out/concepts/MicroApp__.js +7 -0
- package/out/concepts/MicroApp__.js.map +1 -1
- package/out/concepts/Module__.d.ts +7 -0
- package/out/concepts/Module__.js +7 -0
- package/out/concepts/Module__.js.map +1 -1
- package/out/concepts/MsgTriggerEvent__.d.ts +7 -0
- package/out/concepts/MsgTriggerEvent__.js +7 -0
- package/out/concepts/MsgTriggerEvent__.js.map +1 -1
- package/out/concepts/MsgTriggerLauncher__.d.ts +7 -0
- package/out/concepts/MsgTriggerLauncher__.js +7 -0
- package/out/concepts/MsgTriggerLauncher__.js.map +1 -1
- package/out/concepts/MultiApprovalPolicy__.d.ts +7 -0
- package/out/concepts/MultiApprovalPolicy__.js +7 -0
- package/out/concepts/MultiApprovalPolicy__.js.map +1 -1
- package/out/concepts/Namespace__.d.ts +34 -27
- package/out/concepts/Namespace__.js +39 -32
- package/out/concepts/Namespace__.js.map +1 -1
- package/out/concepts/NewComposite__.d.ts +7 -0
- package/out/concepts/NewComposite__.js +7 -0
- package/out/concepts/NewComposite__.js.map +1 -1
- package/out/concepts/NewList__.d.ts +7 -0
- package/out/concepts/NewList__.js +7 -0
- package/out/concepts/NewList__.js.map +1 -1
- package/out/concepts/NewMap__.d.ts +7 -0
- package/out/concepts/NewMap__.js +7 -0
- package/out/concepts/NewMap__.js.map +1 -1
- package/out/concepts/New__.d.ts +7 -0
- package/out/concepts/New__.js +7 -0
- package/out/concepts/New__.js.map +1 -1
- package/out/concepts/NullLiteral__.d.ts +7 -0
- package/out/concepts/NullLiteral__.js +7 -0
- package/out/concepts/NullLiteral__.js.map +1 -1
- package/out/concepts/NumberInputSetter__.d.ts +45 -0
- package/out/concepts/NumberInputSetter__.js +98 -0
- package/out/concepts/NumberInputSetter__.js.map +1 -0
- package/out/concepts/NumericLiteral__.d.ts +7 -0
- package/out/concepts/NumericLiteral__.js +7 -0
- package/out/concepts/NumericLiteral__.js.map +1 -1
- package/out/concepts/OqlQueryComponent__.d.ts +7 -0
- package/out/concepts/OqlQueryComponent__.js +7 -0
- package/out/concepts/OqlQueryComponent__.js.map +1 -1
- package/out/concepts/OverriddenLogic__.d.ts +7 -0
- package/out/concepts/OverriddenLogic__.js +7 -0
- package/out/concepts/OverriddenLogic__.js.map +1 -1
- package/out/concepts/Paginate__.d.ts +7 -0
- package/out/concepts/Paginate__.js +7 -0
- package/out/concepts/Paginate__.js.map +1 -1
- package/out/concepts/ParamWithGroup__.d.ts +7 -0
- package/out/concepts/ParamWithGroup__.js +7 -0
- package/out/concepts/ParamWithGroup__.js.map +1 -1
- package/out/concepts/Param__.d.ts +9 -9
- package/out/concepts/Param__.js +17 -19
- package/out/concepts/Param__.js.map +1 -1
- package/out/concepts/Point__.d.ts +7 -0
- package/out/concepts/Point__.js +7 -0
- package/out/concepts/Point__.js.map +1 -1
- package/out/concepts/ProcessComponent__.d.ts +7 -0
- package/out/concepts/ProcessComponent__.js +7 -0
- package/out/concepts/ProcessComponent__.js.map +1 -1
- package/out/concepts/ProcessElement__.d.ts +7 -0
- package/out/concepts/ProcessElement__.js +7 -0
- package/out/concepts/ProcessElement__.js.map +1 -1
- package/out/concepts/ProcessOutcome__.d.ts +7 -0
- package/out/concepts/ProcessOutcome__.js +7 -0
- package/out/concepts/ProcessOutcome__.js.map +1 -1
- package/out/concepts/ProcessOutcomes__.d.ts +7 -0
- package/out/concepts/ProcessOutcomes__.js +7 -0
- package/out/concepts/ProcessOutcomes__.js.map +1 -1
- package/out/concepts/Process__.d.ts +7 -0
- package/out/concepts/Process__.js +7 -0
- package/out/concepts/Process__.js.map +1 -1
- package/out/concepts/PropDeclaration__.d.ts +99 -0
- package/out/concepts/PropDeclaration__.js +183 -0
- package/out/concepts/PropDeclaration__.js.map +1 -0
- package/out/concepts/PropertySelectSetter__.d.ts +25 -0
- package/out/concepts/PropertySelectSetter__.js +53 -0
- package/out/concepts/PropertySelectSetter__.js.map +1 -0
- package/out/concepts/QueryAggregateExpression__.d.ts +7 -0
- package/out/concepts/QueryAggregateExpression__.js +7 -0
- package/out/concepts/QueryAggregateExpression__.js.map +1 -1
- package/out/concepts/QueryFieldExpression__.d.ts +7 -0
- package/out/concepts/QueryFieldExpression__.js +7 -0
- package/out/concepts/QueryFieldExpression__.js.map +1 -1
- package/out/concepts/QueryFromExpression__.d.ts +7 -0
- package/out/concepts/QueryFromExpression__.js +7 -0
- package/out/concepts/QueryFromExpression__.js.map +1 -1
- package/out/concepts/QueryGroupByExpression__.d.ts +7 -0
- package/out/concepts/QueryGroupByExpression__.js +7 -0
- package/out/concepts/QueryGroupByExpression__.js.map +1 -1
- package/out/concepts/QueryJoinExpression__.d.ts +7 -0
- package/out/concepts/QueryJoinExpression__.js +7 -0
- package/out/concepts/QueryJoinExpression__.js.map +1 -1
- package/out/concepts/QueryLimitExpression__.d.ts +7 -0
- package/out/concepts/QueryLimitExpression__.js +7 -0
- package/out/concepts/QueryLimitExpression__.js.map +1 -1
- package/out/concepts/QueryOrderByExpression__.d.ts +7 -0
- package/out/concepts/QueryOrderByExpression__.js +7 -0
- package/out/concepts/QueryOrderByExpression__.js.map +1 -1
- package/out/concepts/QuerySelectExpression__.d.ts +7 -0
- package/out/concepts/QuerySelectExpression__.js +7 -0
- package/out/concepts/QuerySelectExpression__.js.map +1 -1
- package/out/concepts/Rect__.d.ts +7 -0
- package/out/concepts/Rect__.js +7 -0
- package/out/concepts/Rect__.js.map +1 -1
- package/out/concepts/Return__.d.ts +8 -1
- package/out/concepts/Return__.js +11 -0
- package/out/concepts/Return__.js.map +1 -1
- package/out/concepts/Role__.d.ts +7 -0
- package/out/concepts/Role__.js +7 -0
- package/out/concepts/Role__.js.map +1 -1
- package/out/concepts/SelectMembers__.d.ts +7 -0
- package/out/concepts/SelectMembers__.js +7 -0
- package/out/concepts/SelectMembers__.js.map +1 -1
- package/out/concepts/SequentialPolicy__.d.ts +7 -0
- package/out/concepts/SequentialPolicy__.js +7 -0
- package/out/concepts/SequentialPolicy__.js.map +1 -1
- package/out/concepts/SetterOption__.d.ts +49 -0
- package/out/concepts/SetterOption__.js +99 -0
- package/out/concepts/SetterOption__.js.map +1 -0
- package/out/concepts/SlotDeclaration__.d.ts +213 -0
- package/out/concepts/SlotDeclaration__.js +287 -0
- package/out/concepts/SlotDeclaration__.js.map +1 -0
- package/out/concepts/Slot__.d.ts +2 -2
- package/out/concepts/Slot__.js +1 -1
- package/out/concepts/Slot__.js.map +1 -1
- package/out/concepts/SqlQueryComponent__.d.ts +7 -0
- package/out/concepts/SqlQueryComponent__.js +7 -0
- package/out/concepts/SqlQueryComponent__.js.map +1 -1
- package/out/concepts/Start__.d.ts +7 -0
- package/out/concepts/Start__.js +7 -0
- package/out/concepts/Start__.js.map +1 -1
- package/out/concepts/StaticString__.d.ts +7 -0
- package/out/concepts/StaticString__.js +7 -0
- package/out/concepts/StaticString__.js.map +1 -1
- package/out/concepts/StringInterpolation__.d.ts +7 -0
- package/out/concepts/StringInterpolation__.js +8 -1
- package/out/concepts/StringInterpolation__.js.map +1 -1
- package/out/concepts/StringLiteral__.d.ts +7 -0
- package/out/concepts/StringLiteral__.js +7 -0
- package/out/concepts/StringLiteral__.js.map +1 -1
- package/out/concepts/StructureProperty__.d.ts +7 -8
- package/out/concepts/StructureProperty__.js +7 -16
- package/out/concepts/StructureProperty__.js.map +1 -1
- package/out/concepts/Structure__.d.ts +7 -0
- package/out/concepts/Structure__.js +7 -0
- package/out/concepts/Structure__.js.map +1 -1
- package/out/concepts/SwitchCase__.d.ts +7 -0
- package/out/concepts/SwitchCase__.js +7 -0
- package/out/concepts/SwitchCase__.js.map +1 -1
- package/out/concepts/SwitchSetter__.d.ts +25 -0
- package/out/concepts/SwitchSetter__.js +53 -0
- package/out/concepts/SwitchSetter__.js.map +1 -0
- package/out/concepts/SwitchStatement__.d.ts +7 -0
- package/out/concepts/SwitchStatement__.js +7 -0
- package/out/concepts/SwitchStatement__.js.map +1 -1
- package/out/concepts/ThemeVariable__.d.ts +29 -0
- package/out/concepts/ThemeVariable__.js +58 -0
- package/out/concepts/ThemeVariable__.js.map +1 -0
- package/out/concepts/Theme__.d.ts +7 -0
- package/out/concepts/Theme__.js +7 -0
- package/out/concepts/Theme__.js.map +1 -1
- package/out/concepts/Transactional__.d.ts +7 -0
- package/out/concepts/Transactional__.js +7 -0
- package/out/concepts/Transactional__.js.map +1 -1
- package/out/concepts/TriggerEvent__.d.ts +9 -81
- package/out/concepts/TriggerEvent__.js +10 -107
- package/out/concepts/TriggerEvent__.js.map +1 -1
- package/out/concepts/TriggerLauncher__.d.ts +7 -0
- package/out/concepts/TriggerLauncher__.js +7 -0
- package/out/concepts/TriggerLauncher__.js.map +1 -1
- package/out/concepts/TypeAnnotation__.d.ts +7 -0
- package/out/concepts/TypeAnnotation__.js +27 -11
- package/out/concepts/TypeAnnotation__.js.map +1 -1
- package/out/concepts/TypeParam__.d.ts +7 -0
- package/out/concepts/TypeParam__.js +7 -0
- package/out/concepts/TypeParam__.js.map +1 -1
- package/out/concepts/UnaryExpression__.d.ts +7 -0
- package/out/concepts/UnaryExpression__.js +7 -0
- package/out/concepts/UnaryExpression__.js.map +1 -1
- package/out/concepts/Unparsed__.d.ts +7 -0
- package/out/concepts/Unparsed__.js +7 -0
- package/out/concepts/Unparsed__.js.map +1 -1
- package/out/concepts/UseComponent__.d.ts +7 -0
- package/out/concepts/UseComponent__.js +7 -0
- package/out/concepts/UseComponent__.js.map +1 -1
- package/out/concepts/ValidationRule__.d.ts +7 -0
- package/out/concepts/ValidationRule__.js +8 -1
- package/out/concepts/ValidationRule__.js.map +1 -1
- package/out/concepts/Variable__.d.ts +8 -1
- package/out/concepts/Variable__.js +11 -0
- package/out/concepts/Variable__.js.map +1 -1
- package/out/concepts/ViewBlockWithImage__.d.ts +33 -0
- package/out/concepts/ViewBlockWithImage__.js +63 -0
- package/out/concepts/ViewBlockWithImage__.js.map +1 -0
- package/out/concepts/ViewBlock__.d.ts +12 -5
- package/out/concepts/ViewBlock__.js +16 -5
- package/out/concepts/ViewBlock__.js.map +1 -1
- package/out/concepts/ViewComponentDeclaration__.d.ts +721 -0
- package/out/concepts/ViewComponentDeclaration__.js +808 -0
- package/out/concepts/ViewComponentDeclaration__.js.map +1 -0
- package/out/concepts/ViewElement__.d.ts +7 -0
- package/out/concepts/ViewElement__.js +8 -6
- package/out/concepts/ViewElement__.js.map +1 -1
- package/out/concepts/View__.d.ts +9 -1
- package/out/concepts/View__.js +66 -5
- package/out/concepts/View__.js.map +1 -1
- package/out/concepts/WhileStatement__.d.ts +7 -0
- package/out/concepts/WhileStatement__.js +7 -0
- package/out/concepts/WhileStatement__.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.process.js +101 -3
- package/out/concepts/basics/stdlib/nasl.process.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.util.js +1 -1
- package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
- package/out/concepts/index__.d.ts +17 -2
- package/out/concepts/index__.js +17 -2
- package/out/concepts/index__.js.map +1 -1
- package/out/concepts/utils/asserts.d.ts +781 -41
- package/out/concepts/utils/asserts.js +1117 -133
- package/out/concepts/utils/asserts.js.map +1 -1
- package/out/concepts/utils/types.d.ts +56 -7
- package/out/generator/genMetaData.js +6 -0
- package/out/generator/genMetaData.js.map +1 -1
- package/out/index.d.ts +1 -0
- package/out/index.js +3 -1
- package/out/index.js.map +1 -1
- package/out/server/createUiTs.js +0 -1
- package/out/server/createUiTs.js.map +1 -1
- package/out/server/entity2LogicNamespace.js +1 -15
- package/out/server/entity2LogicNamespace.js.map +1 -1
- package/out/server/getConnector.d.ts +1 -0
- package/out/server/getConnector.js +35 -32
- package/out/server/getConnector.js.map +1 -1
- package/out/server/getLogics.js +1 -1
- package/out/server/getLogics.js.map +1 -1
- package/out/server/getMemberIdentifier.js +3 -3
- package/out/server/getMemberIdentifier.js.map +1 -1
- package/out/templator/genEditTableBlock.js +1 -1
- package/out/templator/genEditTableBlock.js.map +1 -1
- package/out/templator/genGridViewBlock.js +1 -1
- package/out/templator/genGridViewBlock.js.map +1 -1
- package/out/templator/genTableBlock.js +2 -2
- package/out/templator/genTableBlock.js.map +1 -1
- package/package.json +1 -1
- package/sandbox/stdlib/nasl.collection.ts +5 -3
- package/sandbox/stdlib/nasl.core.ts +2 -1
- package/sandbox/stdlib/nasl.process.ts +18 -0
- package/sandbox/stdlib/nasl.util.ts +5 -3
- package/src/common/BaseNode.ts +10 -1
- package/src/concepts/Abort__.ts +7 -0
- package/src/concepts/AbstractInterface__.ts +7 -0
- package/src/concepts/Anchor__.ts +7 -0
- package/src/concepts/AnonymousFunction__.ts +7 -0
- package/src/concepts/App__.ts +8 -1
- package/src/concepts/Argument__.ts +7 -0
- package/src/concepts/Assignee__.ts +7 -0
- package/src/concepts/AssignmentLine__.ts +7 -0
- package/src/concepts/Assignment__.ts +7 -0
- package/src/concepts/Attribute__.ts +12 -22
- package/src/concepts/AuthInterface__.ts +7 -0
- package/src/concepts/AuthLogicForCallInterface__.ts +7 -0
- package/src/concepts/AuthLogic__.ts +7 -0
- package/src/concepts/BackendVariable__.ts +7 -0
- package/src/concepts/Backend__.ts +7 -0
- package/src/concepts/BaseSetter__.ts +72 -0
- package/src/concepts/BatchAssignment__.ts +7 -0
- package/src/concepts/BinaryExpression__.ts +7 -0
- package/src/concepts/BindAttribute__.ts +8 -1
- package/src/concepts/BindDirective__.ts +7 -0
- package/src/concepts/BindEvent__.ts +7 -0
- package/src/concepts/BindStyle__.ts +7 -0
- package/src/concepts/Block__.ts +7 -0
- package/src/concepts/BooleanLiteral__.ts +7 -0
- package/src/concepts/BusinessComponent__.ts +20 -10
- package/src/concepts/BusinessLogic__.ts +7 -0
- package/src/concepts/CallAuthInterface__.ts +7 -0
- package/src/concepts/CallConnector__.ts +7 -0
- package/src/concepts/CallEvent__.ts +7 -0
- package/src/concepts/CallFunction__.ts +84 -2
- package/src/concepts/CallInterface__.ts +7 -0
- package/src/concepts/CallLogic__.ts +25 -16
- package/src/concepts/CallQueryComponent__.ts +16 -9
- package/src/concepts/CapsulesSetter__.ts +254 -0
- package/src/concepts/Comment__.ts +7 -0
- package/src/concepts/CompletionProperty__.ts +7 -20
- package/src/concepts/ConfigGroup__.ts +7 -0
- package/src/concepts/ConfigPropertyValue__.ts +7 -0
- package/src/concepts/ConfigProperty__.ts +7 -0
- package/src/concepts/Configuration__.ts +7 -0
- package/src/concepts/Connection__.ts +7 -0
- package/src/concepts/ConnectorTrigger__.ts +7 -0
- package/src/concepts/Connector__.ts +7 -0
- package/src/concepts/Constant__.ts +7 -0
- package/src/concepts/CountersignPolicy__.ts +7 -0
- package/src/concepts/DataSource__.ts +7 -0
- package/src/concepts/DatabaseTypeAnnotation__.ts +7 -0
- package/src/concepts/DefaultValue__.ts +7 -0
- package/src/concepts/Destination__.ts +7 -0
- package/src/concepts/End__.ts +7 -0
- package/src/concepts/EntityIndex__.ts +7 -0
- package/src/concepts/EntityProperty__.ts +14 -8
- package/src/concepts/Entity__.ts +7 -0
- package/src/concepts/EnumItem__.ts +7 -0
- package/src/concepts/EnumSelectSetter__.ts +254 -0
- package/src/concepts/Enum__.ts +38 -5
- package/src/concepts/EventDeclaration__.ts +95 -0
- package/src/concepts/Event__.ts +10 -3
- package/src/concepts/ExternalDestination__.ts +7 -0
- package/src/concepts/ForEachStatement__.ts +7 -0
- package/src/concepts/FrontendLibrary__.ts +93 -62
- package/src/concepts/FrontendType__.ts +7 -0
- package/src/concepts/FrontendVariable__.ts +7 -0
- package/src/concepts/Frontend__.ts +7 -0
- package/src/concepts/Function__.ts +7 -0
- package/src/concepts/I18nInfo__.ts +7 -0
- package/src/concepts/IconSetter__.ts +72 -0
- package/src/concepts/Identifier__.ts +7 -0
- package/src/concepts/IfStatement__.ts +7 -0
- package/src/concepts/ImageSetter__.ts +65 -0
- package/src/concepts/ImportedInterface__.ts +7 -0
- package/src/concepts/InputSetter__.ts +72 -0
- package/src/concepts/Integration__.ts +7 -0
- package/src/concepts/InterfaceParam__.ts +7 -0
- package/src/concepts/Interface__.ts +7 -0
- package/src/concepts/JSBlock__.ts +7 -0
- package/src/concepts/JavaLogic__.ts +7 -0
- package/src/concepts/LogicDeclaration__.ts +657 -0
- package/src/concepts/LogicItem__.ts +7 -0
- package/src/concepts/Logic__.ts +122 -34
- package/src/concepts/MatchCase__.ts +10 -3
- package/src/concepts/Match__.ts +9 -2
- package/src/concepts/MemberExpression__.ts +7 -0
- package/src/concepts/MetadataType__.ts +7 -0
- package/src/concepts/MicroApp__.ts +7 -0
- package/src/concepts/Module__.ts +7 -0
- package/src/concepts/MsgTriggerEvent__.ts +7 -0
- package/src/concepts/MsgTriggerLauncher__.ts +7 -0
- package/src/concepts/MultiApprovalPolicy__.ts +7 -0
- package/src/concepts/Namespace__.ts +91 -60
- package/src/concepts/NewComposite__.ts +7 -0
- package/src/concepts/NewList__.ts +7 -0
- package/src/concepts/NewMap__.ts +7 -0
- package/src/concepts/New__.ts +7 -0
- package/src/concepts/NullLiteral__.ts +7 -0
- package/src/concepts/NumberInputSetter__.ts +104 -0
- package/src/concepts/NumericLiteral__.ts +7 -0
- package/src/concepts/OqlQueryComponent__.ts +7 -0
- package/src/concepts/OverriddenLogic__.ts +7 -0
- package/src/concepts/Paginate__.ts +7 -0
- package/src/concepts/ParamWithGroup__.ts +7 -0
- package/src/concepts/Param__.ts +14 -24
- package/src/concepts/Point__.ts +7 -0
- package/src/concepts/ProcessComponent__.ts +7 -0
- package/src/concepts/ProcessElement__.ts +7 -0
- package/src/concepts/ProcessOutcome__.ts +7 -0
- package/src/concepts/ProcessOutcomes__.ts +7 -0
- package/src/concepts/Process__.ts +7 -0
- package/src/concepts/PropDeclaration__.ts +209 -0
- package/src/concepts/PropertySelectSetter__.ts +65 -0
- package/src/concepts/QueryAggregateExpression__.ts +7 -0
- package/src/concepts/QueryFieldExpression__.ts +7 -0
- package/src/concepts/QueryFromExpression__.ts +7 -0
- package/src/concepts/QueryGroupByExpression__.ts +7 -0
- package/src/concepts/QueryJoinExpression__.ts +7 -0
- package/src/concepts/QueryLimitExpression__.ts +7 -0
- package/src/concepts/QueryOrderByExpression__.ts +7 -0
- package/src/concepts/QuerySelectExpression__.ts +7 -0
- package/src/concepts/Rect__.ts +7 -0
- package/src/concepts/Return__.ts +8 -1
- package/src/concepts/Role__.ts +7 -0
- package/src/concepts/SelectMembers__.ts +7 -0
- package/src/concepts/SequentialPolicy__.ts +7 -0
- package/src/concepts/SetterOption__.ts +111 -0
- package/src/concepts/SlotDeclaration__.ts +488 -0
- package/src/concepts/Slot__.ts +2 -2
- package/src/concepts/SqlQueryComponent__.ts +7 -0
- package/src/concepts/Start__.ts +7 -0
- package/src/concepts/StaticString__.ts +7 -0
- package/src/concepts/StringInterpolation__.ts +8 -1
- package/src/concepts/StringLiteral__.ts +7 -0
- package/src/concepts/StructureProperty__.ts +7 -20
- package/src/concepts/Structure__.ts +7 -0
- package/src/concepts/SwitchCase__.ts +7 -0
- package/src/concepts/SwitchSetter__.ts +65 -0
- package/src/concepts/SwitchStatement__.ts +7 -0
- package/src/concepts/ThemeVariable__.ts +71 -0
- package/src/concepts/Theme__.ts +7 -0
- package/src/concepts/Transactional__.ts +7 -0
- package/src/concepts/TriggerEvent__.ts +12 -185
- package/src/concepts/TriggerLauncher__.ts +7 -0
- package/src/concepts/TypeAnnotation__.ts +29 -12
- package/src/concepts/TypeParam__.ts +7 -0
- package/src/concepts/UnaryExpression__.ts +7 -0
- package/src/concepts/Unparsed__.ts +7 -0
- package/src/concepts/UseComponent__.ts +7 -0
- package/src/concepts/ValidationRule__.ts +8 -1
- package/src/concepts/Variable__.ts +8 -1
- package/src/concepts/ViewBlockWithImage__.ts +80 -0
- package/src/concepts/ViewBlock__.ts +16 -9
- package/src/concepts/ViewComponentDeclaration__.ts +1670 -0
- package/src/concepts/ViewElement__.ts +9 -7
- package/src/concepts/View__.ts +91 -25
- package/src/concepts/WhileStatement__.ts +7 -0
- package/src/concepts/basics/stdlib/nasl.process.ts +103 -7
- package/src/concepts/basics/stdlib/nasl.util.ts +1 -1
- package/src/concepts/index__.ts +17 -2
- package/src/concepts/utils/asserts.ts +1223 -166
- package/src/concepts/utils/types.ts +85 -8
- package/src/generator/genMetaData.ts +7 -1
- package/src/index.ts +1 -0
- package/src/server/createUiTs.ts +0 -1
- package/src/server/entity2LogicNamespace.ts +1 -16
- package/src/server/getConnector.ts +40 -32
- package/src/server/getLogics.ts +1 -1
- package/src/server/getMemberIdentifier.ts +3 -3
- package/src/templator/genEditTableBlock.ts +1 -1
- package/src/templator/genGridViewBlock.ts +1 -1
- package/src/templator/genTableBlock.ts +2 -2
- package/test/concepts/entity/__snapshots__/toEmbeddedTS.spec.ts.snap +2 -2
- package/.nyc_output/processinfo/d58d92d8-c0d6-479b-9f82-1f4da8e73ff3.json +0 -1
- package/out/concepts/ViewComponent__.d.ts +0 -549
- package/out/concepts/ViewComponent__.js +0 -620
- package/out/concepts/ViewComponent__.js.map +0 -1
- package/src/concepts/ViewComponent__.ts +0 -1245
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">5.48% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>35/638</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">0.
|
|
33
|
+
<span class="strong">0.52% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>2/
|
|
35
|
+
<span class='fraction'>2/384</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">1.
|
|
40
|
+
<span class="strong">1.07% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>1/
|
|
42
|
+
<span class='fraction'>1/93</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">5.67% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>35/617</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -955,19 +955,333 @@
|
|
|
955
955
|
<a name='L890'></a><a href='#L890'>890</a>
|
|
956
956
|
<a name='L891'></a><a href='#L891'>891</a>
|
|
957
957
|
<a name='L892'></a><a href='#L892'>892</a>
|
|
958
|
-
<a name='L893'></a><a href='#L893'>893</a
|
|
958
|
+
<a name='L893'></a><a href='#L893'>893</a>
|
|
959
|
+
<a name='L894'></a><a href='#L894'>894</a>
|
|
960
|
+
<a name='L895'></a><a href='#L895'>895</a>
|
|
961
|
+
<a name='L896'></a><a href='#L896'>896</a>
|
|
962
|
+
<a name='L897'></a><a href='#L897'>897</a>
|
|
963
|
+
<a name='L898'></a><a href='#L898'>898</a>
|
|
964
|
+
<a name='L899'></a><a href='#L899'>899</a>
|
|
965
|
+
<a name='L900'></a><a href='#L900'>900</a>
|
|
966
|
+
<a name='L901'></a><a href='#L901'>901</a>
|
|
967
|
+
<a name='L902'></a><a href='#L902'>902</a>
|
|
968
|
+
<a name='L903'></a><a href='#L903'>903</a>
|
|
969
|
+
<a name='L904'></a><a href='#L904'>904</a>
|
|
970
|
+
<a name='L905'></a><a href='#L905'>905</a>
|
|
971
|
+
<a name='L906'></a><a href='#L906'>906</a>
|
|
972
|
+
<a name='L907'></a><a href='#L907'>907</a>
|
|
973
|
+
<a name='L908'></a><a href='#L908'>908</a>
|
|
974
|
+
<a name='L909'></a><a href='#L909'>909</a>
|
|
975
|
+
<a name='L910'></a><a href='#L910'>910</a>
|
|
976
|
+
<a name='L911'></a><a href='#L911'>911</a>
|
|
977
|
+
<a name='L912'></a><a href='#L912'>912</a>
|
|
978
|
+
<a name='L913'></a><a href='#L913'>913</a>
|
|
979
|
+
<a name='L914'></a><a href='#L914'>914</a>
|
|
980
|
+
<a name='L915'></a><a href='#L915'>915</a>
|
|
981
|
+
<a name='L916'></a><a href='#L916'>916</a>
|
|
982
|
+
<a name='L917'></a><a href='#L917'>917</a>
|
|
983
|
+
<a name='L918'></a><a href='#L918'>918</a>
|
|
984
|
+
<a name='L919'></a><a href='#L919'>919</a>
|
|
985
|
+
<a name='L920'></a><a href='#L920'>920</a>
|
|
986
|
+
<a name='L921'></a><a href='#L921'>921</a>
|
|
987
|
+
<a name='L922'></a><a href='#L922'>922</a>
|
|
988
|
+
<a name='L923'></a><a href='#L923'>923</a>
|
|
989
|
+
<a name='L924'></a><a href='#L924'>924</a>
|
|
990
|
+
<a name='L925'></a><a href='#L925'>925</a>
|
|
991
|
+
<a name='L926'></a><a href='#L926'>926</a>
|
|
992
|
+
<a name='L927'></a><a href='#L927'>927</a>
|
|
993
|
+
<a name='L928'></a><a href='#L928'>928</a>
|
|
994
|
+
<a name='L929'></a><a href='#L929'>929</a>
|
|
995
|
+
<a name='L930'></a><a href='#L930'>930</a>
|
|
996
|
+
<a name='L931'></a><a href='#L931'>931</a>
|
|
997
|
+
<a name='L932'></a><a href='#L932'>932</a>
|
|
998
|
+
<a name='L933'></a><a href='#L933'>933</a>
|
|
999
|
+
<a name='L934'></a><a href='#L934'>934</a>
|
|
1000
|
+
<a name='L935'></a><a href='#L935'>935</a>
|
|
1001
|
+
<a name='L936'></a><a href='#L936'>936</a>
|
|
1002
|
+
<a name='L937'></a><a href='#L937'>937</a>
|
|
1003
|
+
<a name='L938'></a><a href='#L938'>938</a>
|
|
1004
|
+
<a name='L939'></a><a href='#L939'>939</a>
|
|
1005
|
+
<a name='L940'></a><a href='#L940'>940</a>
|
|
1006
|
+
<a name='L941'></a><a href='#L941'>941</a>
|
|
1007
|
+
<a name='L942'></a><a href='#L942'>942</a>
|
|
1008
|
+
<a name='L943'></a><a href='#L943'>943</a>
|
|
1009
|
+
<a name='L944'></a><a href='#L944'>944</a>
|
|
1010
|
+
<a name='L945'></a><a href='#L945'>945</a>
|
|
1011
|
+
<a name='L946'></a><a href='#L946'>946</a>
|
|
1012
|
+
<a name='L947'></a><a href='#L947'>947</a>
|
|
1013
|
+
<a name='L948'></a><a href='#L948'>948</a>
|
|
1014
|
+
<a name='L949'></a><a href='#L949'>949</a>
|
|
1015
|
+
<a name='L950'></a><a href='#L950'>950</a>
|
|
1016
|
+
<a name='L951'></a><a href='#L951'>951</a>
|
|
1017
|
+
<a name='L952'></a><a href='#L952'>952</a>
|
|
1018
|
+
<a name='L953'></a><a href='#L953'>953</a>
|
|
1019
|
+
<a name='L954'></a><a href='#L954'>954</a>
|
|
1020
|
+
<a name='L955'></a><a href='#L955'>955</a>
|
|
1021
|
+
<a name='L956'></a><a href='#L956'>956</a>
|
|
1022
|
+
<a name='L957'></a><a href='#L957'>957</a>
|
|
1023
|
+
<a name='L958'></a><a href='#L958'>958</a>
|
|
1024
|
+
<a name='L959'></a><a href='#L959'>959</a>
|
|
1025
|
+
<a name='L960'></a><a href='#L960'>960</a>
|
|
1026
|
+
<a name='L961'></a><a href='#L961'>961</a>
|
|
1027
|
+
<a name='L962'></a><a href='#L962'>962</a>
|
|
1028
|
+
<a name='L963'></a><a href='#L963'>963</a>
|
|
1029
|
+
<a name='L964'></a><a href='#L964'>964</a>
|
|
1030
|
+
<a name='L965'></a><a href='#L965'>965</a>
|
|
1031
|
+
<a name='L966'></a><a href='#L966'>966</a>
|
|
1032
|
+
<a name='L967'></a><a href='#L967'>967</a>
|
|
1033
|
+
<a name='L968'></a><a href='#L968'>968</a>
|
|
1034
|
+
<a name='L969'></a><a href='#L969'>969</a>
|
|
1035
|
+
<a name='L970'></a><a href='#L970'>970</a>
|
|
1036
|
+
<a name='L971'></a><a href='#L971'>971</a>
|
|
1037
|
+
<a name='L972'></a><a href='#L972'>972</a>
|
|
1038
|
+
<a name='L973'></a><a href='#L973'>973</a>
|
|
1039
|
+
<a name='L974'></a><a href='#L974'>974</a>
|
|
1040
|
+
<a name='L975'></a><a href='#L975'>975</a>
|
|
1041
|
+
<a name='L976'></a><a href='#L976'>976</a>
|
|
1042
|
+
<a name='L977'></a><a href='#L977'>977</a>
|
|
1043
|
+
<a name='L978'></a><a href='#L978'>978</a>
|
|
1044
|
+
<a name='L979'></a><a href='#L979'>979</a>
|
|
1045
|
+
<a name='L980'></a><a href='#L980'>980</a>
|
|
1046
|
+
<a name='L981'></a><a href='#L981'>981</a>
|
|
1047
|
+
<a name='L982'></a><a href='#L982'>982</a>
|
|
1048
|
+
<a name='L983'></a><a href='#L983'>983</a>
|
|
1049
|
+
<a name='L984'></a><a href='#L984'>984</a>
|
|
1050
|
+
<a name='L985'></a><a href='#L985'>985</a>
|
|
1051
|
+
<a name='L986'></a><a href='#L986'>986</a>
|
|
1052
|
+
<a name='L987'></a><a href='#L987'>987</a>
|
|
1053
|
+
<a name='L988'></a><a href='#L988'>988</a>
|
|
1054
|
+
<a name='L989'></a><a href='#L989'>989</a>
|
|
1055
|
+
<a name='L990'></a><a href='#L990'>990</a>
|
|
1056
|
+
<a name='L991'></a><a href='#L991'>991</a>
|
|
1057
|
+
<a name='L992'></a><a href='#L992'>992</a>
|
|
1058
|
+
<a name='L993'></a><a href='#L993'>993</a>
|
|
1059
|
+
<a name='L994'></a><a href='#L994'>994</a>
|
|
1060
|
+
<a name='L995'></a><a href='#L995'>995</a>
|
|
1061
|
+
<a name='L996'></a><a href='#L996'>996</a>
|
|
1062
|
+
<a name='L997'></a><a href='#L997'>997</a>
|
|
1063
|
+
<a name='L998'></a><a href='#L998'>998</a>
|
|
1064
|
+
<a name='L999'></a><a href='#L999'>999</a>
|
|
1065
|
+
<a name='L1000'></a><a href='#L1000'>1000</a>
|
|
1066
|
+
<a name='L1001'></a><a href='#L1001'>1001</a>
|
|
1067
|
+
<a name='L1002'></a><a href='#L1002'>1002</a>
|
|
1068
|
+
<a name='L1003'></a><a href='#L1003'>1003</a>
|
|
1069
|
+
<a name='L1004'></a><a href='#L1004'>1004</a>
|
|
1070
|
+
<a name='L1005'></a><a href='#L1005'>1005</a>
|
|
1071
|
+
<a name='L1006'></a><a href='#L1006'>1006</a>
|
|
1072
|
+
<a name='L1007'></a><a href='#L1007'>1007</a>
|
|
1073
|
+
<a name='L1008'></a><a href='#L1008'>1008</a>
|
|
1074
|
+
<a name='L1009'></a><a href='#L1009'>1009</a>
|
|
1075
|
+
<a name='L1010'></a><a href='#L1010'>1010</a>
|
|
1076
|
+
<a name='L1011'></a><a href='#L1011'>1011</a>
|
|
1077
|
+
<a name='L1012'></a><a href='#L1012'>1012</a>
|
|
1078
|
+
<a name='L1013'></a><a href='#L1013'>1013</a>
|
|
1079
|
+
<a name='L1014'></a><a href='#L1014'>1014</a>
|
|
1080
|
+
<a name='L1015'></a><a href='#L1015'>1015</a>
|
|
1081
|
+
<a name='L1016'></a><a href='#L1016'>1016</a>
|
|
1082
|
+
<a name='L1017'></a><a href='#L1017'>1017</a>
|
|
1083
|
+
<a name='L1018'></a><a href='#L1018'>1018</a>
|
|
1084
|
+
<a name='L1019'></a><a href='#L1019'>1019</a>
|
|
1085
|
+
<a name='L1020'></a><a href='#L1020'>1020</a>
|
|
1086
|
+
<a name='L1021'></a><a href='#L1021'>1021</a>
|
|
1087
|
+
<a name='L1022'></a><a href='#L1022'>1022</a>
|
|
1088
|
+
<a name='L1023'></a><a href='#L1023'>1023</a>
|
|
1089
|
+
<a name='L1024'></a><a href='#L1024'>1024</a>
|
|
1090
|
+
<a name='L1025'></a><a href='#L1025'>1025</a>
|
|
1091
|
+
<a name='L1026'></a><a href='#L1026'>1026</a>
|
|
1092
|
+
<a name='L1027'></a><a href='#L1027'>1027</a>
|
|
1093
|
+
<a name='L1028'></a><a href='#L1028'>1028</a>
|
|
1094
|
+
<a name='L1029'></a><a href='#L1029'>1029</a>
|
|
1095
|
+
<a name='L1030'></a><a href='#L1030'>1030</a>
|
|
1096
|
+
<a name='L1031'></a><a href='#L1031'>1031</a>
|
|
1097
|
+
<a name='L1032'></a><a href='#L1032'>1032</a>
|
|
1098
|
+
<a name='L1033'></a><a href='#L1033'>1033</a>
|
|
1099
|
+
<a name='L1034'></a><a href='#L1034'>1034</a>
|
|
1100
|
+
<a name='L1035'></a><a href='#L1035'>1035</a>
|
|
1101
|
+
<a name='L1036'></a><a href='#L1036'>1036</a>
|
|
1102
|
+
<a name='L1037'></a><a href='#L1037'>1037</a>
|
|
1103
|
+
<a name='L1038'></a><a href='#L1038'>1038</a>
|
|
1104
|
+
<a name='L1039'></a><a href='#L1039'>1039</a>
|
|
1105
|
+
<a name='L1040'></a><a href='#L1040'>1040</a>
|
|
1106
|
+
<a name='L1041'></a><a href='#L1041'>1041</a>
|
|
1107
|
+
<a name='L1042'></a><a href='#L1042'>1042</a>
|
|
1108
|
+
<a name='L1043'></a><a href='#L1043'>1043</a>
|
|
1109
|
+
<a name='L1044'></a><a href='#L1044'>1044</a>
|
|
1110
|
+
<a name='L1045'></a><a href='#L1045'>1045</a>
|
|
1111
|
+
<a name='L1046'></a><a href='#L1046'>1046</a>
|
|
1112
|
+
<a name='L1047'></a><a href='#L1047'>1047</a>
|
|
1113
|
+
<a name='L1048'></a><a href='#L1048'>1048</a>
|
|
1114
|
+
<a name='L1049'></a><a href='#L1049'>1049</a>
|
|
1115
|
+
<a name='L1050'></a><a href='#L1050'>1050</a>
|
|
1116
|
+
<a name='L1051'></a><a href='#L1051'>1051</a>
|
|
1117
|
+
<a name='L1052'></a><a href='#L1052'>1052</a>
|
|
1118
|
+
<a name='L1053'></a><a href='#L1053'>1053</a>
|
|
1119
|
+
<a name='L1054'></a><a href='#L1054'>1054</a>
|
|
1120
|
+
<a name='L1055'></a><a href='#L1055'>1055</a>
|
|
1121
|
+
<a name='L1056'></a><a href='#L1056'>1056</a>
|
|
1122
|
+
<a name='L1057'></a><a href='#L1057'>1057</a>
|
|
1123
|
+
<a name='L1058'></a><a href='#L1058'>1058</a>
|
|
1124
|
+
<a name='L1059'></a><a href='#L1059'>1059</a>
|
|
1125
|
+
<a name='L1060'></a><a href='#L1060'>1060</a>
|
|
1126
|
+
<a name='L1061'></a><a href='#L1061'>1061</a>
|
|
1127
|
+
<a name='L1062'></a><a href='#L1062'>1062</a>
|
|
1128
|
+
<a name='L1063'></a><a href='#L1063'>1063</a>
|
|
1129
|
+
<a name='L1064'></a><a href='#L1064'>1064</a>
|
|
1130
|
+
<a name='L1065'></a><a href='#L1065'>1065</a>
|
|
1131
|
+
<a name='L1066'></a><a href='#L1066'>1066</a>
|
|
1132
|
+
<a name='L1067'></a><a href='#L1067'>1067</a>
|
|
1133
|
+
<a name='L1068'></a><a href='#L1068'>1068</a>
|
|
1134
|
+
<a name='L1069'></a><a href='#L1069'>1069</a>
|
|
1135
|
+
<a name='L1070'></a><a href='#L1070'>1070</a>
|
|
1136
|
+
<a name='L1071'></a><a href='#L1071'>1071</a>
|
|
1137
|
+
<a name='L1072'></a><a href='#L1072'>1072</a>
|
|
1138
|
+
<a name='L1073'></a><a href='#L1073'>1073</a>
|
|
1139
|
+
<a name='L1074'></a><a href='#L1074'>1074</a>
|
|
1140
|
+
<a name='L1075'></a><a href='#L1075'>1075</a>
|
|
1141
|
+
<a name='L1076'></a><a href='#L1076'>1076</a>
|
|
1142
|
+
<a name='L1077'></a><a href='#L1077'>1077</a>
|
|
1143
|
+
<a name='L1078'></a><a href='#L1078'>1078</a>
|
|
1144
|
+
<a name='L1079'></a><a href='#L1079'>1079</a>
|
|
1145
|
+
<a name='L1080'></a><a href='#L1080'>1080</a>
|
|
1146
|
+
<a name='L1081'></a><a href='#L1081'>1081</a>
|
|
1147
|
+
<a name='L1082'></a><a href='#L1082'>1082</a>
|
|
1148
|
+
<a name='L1083'></a><a href='#L1083'>1083</a>
|
|
1149
|
+
<a name='L1084'></a><a href='#L1084'>1084</a>
|
|
1150
|
+
<a name='L1085'></a><a href='#L1085'>1085</a>
|
|
1151
|
+
<a name='L1086'></a><a href='#L1086'>1086</a>
|
|
1152
|
+
<a name='L1087'></a><a href='#L1087'>1087</a>
|
|
1153
|
+
<a name='L1088'></a><a href='#L1088'>1088</a>
|
|
1154
|
+
<a name='L1089'></a><a href='#L1089'>1089</a>
|
|
1155
|
+
<a name='L1090'></a><a href='#L1090'>1090</a>
|
|
1156
|
+
<a name='L1091'></a><a href='#L1091'>1091</a>
|
|
1157
|
+
<a name='L1092'></a><a href='#L1092'>1092</a>
|
|
1158
|
+
<a name='L1093'></a><a href='#L1093'>1093</a>
|
|
1159
|
+
<a name='L1094'></a><a href='#L1094'>1094</a>
|
|
1160
|
+
<a name='L1095'></a><a href='#L1095'>1095</a>
|
|
1161
|
+
<a name='L1096'></a><a href='#L1096'>1096</a>
|
|
1162
|
+
<a name='L1097'></a><a href='#L1097'>1097</a>
|
|
1163
|
+
<a name='L1098'></a><a href='#L1098'>1098</a>
|
|
1164
|
+
<a name='L1099'></a><a href='#L1099'>1099</a>
|
|
1165
|
+
<a name='L1100'></a><a href='#L1100'>1100</a>
|
|
1166
|
+
<a name='L1101'></a><a href='#L1101'>1101</a>
|
|
1167
|
+
<a name='L1102'></a><a href='#L1102'>1102</a>
|
|
1168
|
+
<a name='L1103'></a><a href='#L1103'>1103</a>
|
|
1169
|
+
<a name='L1104'></a><a href='#L1104'>1104</a>
|
|
1170
|
+
<a name='L1105'></a><a href='#L1105'>1105</a>
|
|
1171
|
+
<a name='L1106'></a><a href='#L1106'>1106</a>
|
|
1172
|
+
<a name='L1107'></a><a href='#L1107'>1107</a>
|
|
1173
|
+
<a name='L1108'></a><a href='#L1108'>1108</a>
|
|
1174
|
+
<a name='L1109'></a><a href='#L1109'>1109</a>
|
|
1175
|
+
<a name='L1110'></a><a href='#L1110'>1110</a>
|
|
1176
|
+
<a name='L1111'></a><a href='#L1111'>1111</a>
|
|
1177
|
+
<a name='L1112'></a><a href='#L1112'>1112</a>
|
|
1178
|
+
<a name='L1113'></a><a href='#L1113'>1113</a>
|
|
1179
|
+
<a name='L1114'></a><a href='#L1114'>1114</a>
|
|
1180
|
+
<a name='L1115'></a><a href='#L1115'>1115</a>
|
|
1181
|
+
<a name='L1116'></a><a href='#L1116'>1116</a>
|
|
1182
|
+
<a name='L1117'></a><a href='#L1117'>1117</a>
|
|
1183
|
+
<a name='L1118'></a><a href='#L1118'>1118</a>
|
|
1184
|
+
<a name='L1119'></a><a href='#L1119'>1119</a>
|
|
1185
|
+
<a name='L1120'></a><a href='#L1120'>1120</a>
|
|
1186
|
+
<a name='L1121'></a><a href='#L1121'>1121</a>
|
|
1187
|
+
<a name='L1122'></a><a href='#L1122'>1122</a>
|
|
1188
|
+
<a name='L1123'></a><a href='#L1123'>1123</a>
|
|
1189
|
+
<a name='L1124'></a><a href='#L1124'>1124</a>
|
|
1190
|
+
<a name='L1125'></a><a href='#L1125'>1125</a>
|
|
1191
|
+
<a name='L1126'></a><a href='#L1126'>1126</a>
|
|
1192
|
+
<a name='L1127'></a><a href='#L1127'>1127</a>
|
|
1193
|
+
<a name='L1128'></a><a href='#L1128'>1128</a>
|
|
1194
|
+
<a name='L1129'></a><a href='#L1129'>1129</a>
|
|
1195
|
+
<a name='L1130'></a><a href='#L1130'>1130</a>
|
|
1196
|
+
<a name='L1131'></a><a href='#L1131'>1131</a>
|
|
1197
|
+
<a name='L1132'></a><a href='#L1132'>1132</a>
|
|
1198
|
+
<a name='L1133'></a><a href='#L1133'>1133</a>
|
|
1199
|
+
<a name='L1134'></a><a href='#L1134'>1134</a>
|
|
1200
|
+
<a name='L1135'></a><a href='#L1135'>1135</a>
|
|
1201
|
+
<a name='L1136'></a><a href='#L1136'>1136</a>
|
|
1202
|
+
<a name='L1137'></a><a href='#L1137'>1137</a>
|
|
1203
|
+
<a name='L1138'></a><a href='#L1138'>1138</a>
|
|
1204
|
+
<a name='L1139'></a><a href='#L1139'>1139</a>
|
|
1205
|
+
<a name='L1140'></a><a href='#L1140'>1140</a>
|
|
1206
|
+
<a name='L1141'></a><a href='#L1141'>1141</a>
|
|
1207
|
+
<a name='L1142'></a><a href='#L1142'>1142</a>
|
|
1208
|
+
<a name='L1143'></a><a href='#L1143'>1143</a>
|
|
1209
|
+
<a name='L1144'></a><a href='#L1144'>1144</a>
|
|
1210
|
+
<a name='L1145'></a><a href='#L1145'>1145</a>
|
|
1211
|
+
<a name='L1146'></a><a href='#L1146'>1146</a>
|
|
1212
|
+
<a name='L1147'></a><a href='#L1147'>1147</a>
|
|
1213
|
+
<a name='L1148'></a><a href='#L1148'>1148</a>
|
|
1214
|
+
<a name='L1149'></a><a href='#L1149'>1149</a>
|
|
1215
|
+
<a name='L1150'></a><a href='#L1150'>1150</a>
|
|
1216
|
+
<a name='L1151'></a><a href='#L1151'>1151</a>
|
|
1217
|
+
<a name='L1152'></a><a href='#L1152'>1152</a>
|
|
1218
|
+
<a name='L1153'></a><a href='#L1153'>1153</a>
|
|
1219
|
+
<a name='L1154'></a><a href='#L1154'>1154</a>
|
|
1220
|
+
<a name='L1155'></a><a href='#L1155'>1155</a>
|
|
1221
|
+
<a name='L1156'></a><a href='#L1156'>1156</a>
|
|
1222
|
+
<a name='L1157'></a><a href='#L1157'>1157</a>
|
|
1223
|
+
<a name='L1158'></a><a href='#L1158'>1158</a>
|
|
1224
|
+
<a name='L1159'></a><a href='#L1159'>1159</a>
|
|
1225
|
+
<a name='L1160'></a><a href='#L1160'>1160</a>
|
|
1226
|
+
<a name='L1161'></a><a href='#L1161'>1161</a>
|
|
1227
|
+
<a name='L1162'></a><a href='#L1162'>1162</a>
|
|
1228
|
+
<a name='L1163'></a><a href='#L1163'>1163</a>
|
|
1229
|
+
<a name='L1164'></a><a href='#L1164'>1164</a>
|
|
1230
|
+
<a name='L1165'></a><a href='#L1165'>1165</a>
|
|
1231
|
+
<a name='L1166'></a><a href='#L1166'>1166</a>
|
|
1232
|
+
<a name='L1167'></a><a href='#L1167'>1167</a>
|
|
1233
|
+
<a name='L1168'></a><a href='#L1168'>1168</a>
|
|
1234
|
+
<a name='L1169'></a><a href='#L1169'>1169</a>
|
|
1235
|
+
<a name='L1170'></a><a href='#L1170'>1170</a>
|
|
1236
|
+
<a name='L1171'></a><a href='#L1171'>1171</a>
|
|
1237
|
+
<a name='L1172'></a><a href='#L1172'>1172</a>
|
|
1238
|
+
<a name='L1173'></a><a href='#L1173'>1173</a>
|
|
1239
|
+
<a name='L1174'></a><a href='#L1174'>1174</a>
|
|
1240
|
+
<a name='L1175'></a><a href='#L1175'>1175</a>
|
|
1241
|
+
<a name='L1176'></a><a href='#L1176'>1176</a>
|
|
1242
|
+
<a name='L1177'></a><a href='#L1177'>1177</a>
|
|
1243
|
+
<a name='L1178'></a><a href='#L1178'>1178</a>
|
|
1244
|
+
<a name='L1179'></a><a href='#L1179'>1179</a>
|
|
1245
|
+
<a name='L1180'></a><a href='#L1180'>1180</a>
|
|
1246
|
+
<a name='L1181'></a><a href='#L1181'>1181</a>
|
|
1247
|
+
<a name='L1182'></a><a href='#L1182'>1182</a>
|
|
1248
|
+
<a name='L1183'></a><a href='#L1183'>1183</a>
|
|
1249
|
+
<a name='L1184'></a><a href='#L1184'>1184</a>
|
|
1250
|
+
<a name='L1185'></a><a href='#L1185'>1185</a>
|
|
1251
|
+
<a name='L1186'></a><a href='#L1186'>1186</a>
|
|
1252
|
+
<a name='L1187'></a><a href='#L1187'>1187</a>
|
|
1253
|
+
<a name='L1188'></a><a href='#L1188'>1188</a>
|
|
1254
|
+
<a name='L1189'></a><a href='#L1189'>1189</a>
|
|
1255
|
+
<a name='L1190'></a><a href='#L1190'>1190</a>
|
|
1256
|
+
<a name='L1191'></a><a href='#L1191'>1191</a>
|
|
1257
|
+
<a name='L1192'></a><a href='#L1192'>1192</a>
|
|
1258
|
+
<a name='L1193'></a><a href='#L1193'>1193</a>
|
|
1259
|
+
<a name='L1194'></a><a href='#L1194'>1194</a>
|
|
1260
|
+
<a name='L1195'></a><a href='#L1195'>1195</a>
|
|
1261
|
+
<a name='L1196'></a><a href='#L1196'>1196</a>
|
|
1262
|
+
<a name='L1197'></a><a href='#L1197'>1197</a>
|
|
1263
|
+
<a name='L1198'></a><a href='#L1198'>1198</a>
|
|
1264
|
+
<a name='L1199'></a><a href='#L1199'>1199</a>
|
|
1265
|
+
<a name='L1200'></a><a href='#L1200'>1200</a>
|
|
1266
|
+
<a name='L1201'></a><a href='#L1201'>1201</a>
|
|
1267
|
+
<a name='L1202'></a><a href='#L1202'>1202</a>
|
|
1268
|
+
<a name='L1203'></a><a href='#L1203'>1203</a>
|
|
1269
|
+
<a name='L1204'></a><a href='#L1204'>1204</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
1270
|
+
<span class="cline-any cline-yes">1x</span>
|
|
959
1271
|
<span class="cline-any cline-yes">1x</span>
|
|
960
1272
|
<span class="cline-any cline-yes">1x</span>
|
|
961
1273
|
<span class="cline-any cline-yes">1x</span>
|
|
962
1274
|
<span class="cline-any cline-yes">1x</span>
|
|
963
1275
|
<span class="cline-any cline-yes">1x</span>
|
|
964
1276
|
<span class="cline-any cline-yes">1x</span>
|
|
965
|
-
<span class="cline-any cline-neutral"> </span>
|
|
966
1277
|
<span class="cline-any cline-yes">1x</span>
|
|
1278
|
+
<span class="cline-any cline-neutral"> </span>
|
|
967
1279
|
<span class="cline-any cline-yes">1x</span>
|
|
968
1280
|
<span class="cline-any cline-neutral"> </span>
|
|
969
1281
|
<span class="cline-any cline-neutral"> </span>
|
|
970
1282
|
<span class="cline-any cline-neutral"> </span>
|
|
1283
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1284
|
+
<span class="cline-any cline-neutral"> </span>
|
|
971
1285
|
<span class="cline-any cline-yes">1x</span>
|
|
972
1286
|
<span class="cline-any cline-yes">1x</span>
|
|
973
1287
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -976,15 +1290,191 @@
|
|
|
976
1290
|
<span class="cline-any cline-neutral"> </span>
|
|
977
1291
|
<span class="cline-any cline-yes">1x</span>
|
|
978
1292
|
<span class="cline-any cline-neutral"> </span>
|
|
1293
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1294
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1295
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1296
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1297
|
+
<span class="cline-any cline-no"> </span>
|
|
1298
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1299
|
+
<span class="cline-any cline-no"> </span>
|
|
1300
|
+
<span class="cline-any cline-no"> </span>
|
|
1301
|
+
<span class="cline-any cline-no"> </span>
|
|
1302
|
+
<span class="cline-any cline-no"> </span>
|
|
1303
|
+
<span class="cline-any cline-no"> </span>
|
|
1304
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1305
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1306
|
+
<span class="cline-any cline-no"> </span>
|
|
1307
|
+
<span class="cline-any cline-no"> </span>
|
|
1308
|
+
<span class="cline-any cline-no"> </span>
|
|
1309
|
+
<span class="cline-any cline-no"> </span>
|
|
1310
|
+
<span class="cline-any cline-no"> </span>
|
|
1311
|
+
<span class="cline-any cline-no"> </span>
|
|
1312
|
+
<span class="cline-any cline-no"> </span>
|
|
1313
|
+
<span class="cline-any cline-no"> </span>
|
|
1314
|
+
<span class="cline-any cline-no"> </span>
|
|
1315
|
+
<span class="cline-any cline-no"> </span>
|
|
1316
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1317
|
+
<span class="cline-any cline-no"> </span>
|
|
1318
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1319
|
+
<span class="cline-any cline-no"> </span>
|
|
1320
|
+
<span class="cline-any cline-no"> </span>
|
|
1321
|
+
<span class="cline-any cline-no"> </span>
|
|
1322
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1323
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1324
|
+
<span class="cline-any cline-no"> </span>
|
|
1325
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1326
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1327
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1328
|
+
<span class="cline-any cline-no"> </span>
|
|
1329
|
+
<span class="cline-any cline-no"> </span>
|
|
1330
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1331
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1332
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1333
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1334
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1335
|
+
<span class="cline-any cline-no"> </span>
|
|
1336
|
+
<span class="cline-any cline-no"> </span>
|
|
1337
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1338
|
+
<span class="cline-any cline-no"> </span>
|
|
1339
|
+
<span class="cline-any cline-no"> </span>
|
|
1340
|
+
<span class="cline-any cline-no"> </span>
|
|
1341
|
+
<span class="cline-any cline-no"> </span>
|
|
1342
|
+
<span class="cline-any cline-no"> </span>
|
|
1343
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1344
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1345
|
+
<span class="cline-any cline-no"> </span>
|
|
1346
|
+
<span class="cline-any cline-no"> </span>
|
|
1347
|
+
<span class="cline-any cline-no"> </span>
|
|
1348
|
+
<span class="cline-any cline-no"> </span>
|
|
1349
|
+
<span class="cline-any cline-no"> </span>
|
|
1350
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1351
|
+
<span class="cline-any cline-no"> </span>
|
|
1352
|
+
<span class="cline-any cline-no"> </span>
|
|
1353
|
+
<span class="cline-any cline-no"> </span>
|
|
1354
|
+
<span class="cline-any cline-no"> </span>
|
|
1355
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1356
|
+
<span class="cline-any cline-no"> </span>
|
|
1357
|
+
<span class="cline-any cline-no"> </span>
|
|
1358
|
+
<span class="cline-any cline-no"> </span>
|
|
1359
|
+
<span class="cline-any cline-no"> </span>
|
|
1360
|
+
<span class="cline-any cline-no"> </span>
|
|
1361
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1362
|
+
<span class="cline-any cline-no"> </span>
|
|
1363
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1364
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1365
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1366
|
+
<span class="cline-any cline-no"> </span>
|
|
1367
|
+
<span class="cline-any cline-no"> </span>
|
|
1368
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1369
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1370
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1371
|
+
<span class="cline-any cline-no"> </span>
|
|
1372
|
+
<span class="cline-any cline-no"> </span>
|
|
1373
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1374
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1375
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1376
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1377
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1378
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1379
|
+
<span class="cline-any cline-no"> </span>
|
|
1380
|
+
<span class="cline-any cline-no"> </span>
|
|
1381
|
+
<span class="cline-any cline-no"> </span>
|
|
1382
|
+
<span class="cline-any cline-no"> </span>
|
|
1383
|
+
<span class="cline-any cline-no"> </span>
|
|
1384
|
+
<span class="cline-any cline-no"> </span>
|
|
1385
|
+
<span class="cline-any cline-no"> </span>
|
|
1386
|
+
<span class="cline-any cline-no"> </span>
|
|
1387
|
+
<span class="cline-any cline-no"> </span>
|
|
1388
|
+
<span class="cline-any cline-no"> </span>
|
|
1389
|
+
<span class="cline-any cline-no"> </span>
|
|
1390
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1391
|
+
<span class="cline-any cline-no"> </span>
|
|
1392
|
+
<span class="cline-any cline-no"> </span>
|
|
1393
|
+
<span class="cline-any cline-no"> </span>
|
|
1394
|
+
<span class="cline-any cline-no"> </span>
|
|
1395
|
+
<span class="cline-any cline-no"> </span>
|
|
1396
|
+
<span class="cline-any cline-no"> </span>
|
|
1397
|
+
<span class="cline-any cline-no"> </span>
|
|
1398
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1399
|
+
<span class="cline-any cline-no"> </span>
|
|
1400
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1401
|
+
<span class="cline-any cline-no"> </span>
|
|
1402
|
+
<span class="cline-any cline-no"> </span>
|
|
1403
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1404
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1405
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1406
|
+
<span class="cline-any cline-no"> </span>
|
|
1407
|
+
<span class="cline-any cline-no"> </span>
|
|
1408
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1409
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1410
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1411
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1412
|
+
<span class="cline-any cline-no"> </span>
|
|
1413
|
+
<span class="cline-any cline-no"> </span>
|
|
1414
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1415
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1416
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1417
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1418
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1419
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1420
|
+
<span class="cline-any cline-no"> </span>
|
|
1421
|
+
<span class="cline-any cline-no"> </span>
|
|
1422
|
+
<span class="cline-any cline-no"> </span>
|
|
1423
|
+
<span class="cline-any cline-no"> </span>
|
|
1424
|
+
<span class="cline-any cline-no"> </span>
|
|
1425
|
+
<span class="cline-any cline-no"> </span>
|
|
1426
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1427
|
+
<span class="cline-any cline-no"> </span>
|
|
1428
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1429
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1430
|
+
<span class="cline-any cline-no"> </span>
|
|
1431
|
+
<span class="cline-any cline-no"> </span>
|
|
1432
|
+
<span class="cline-any cline-no"> </span>
|
|
1433
|
+
<span class="cline-any cline-no"> </span>
|
|
1434
|
+
<span class="cline-any cline-no"> </span>
|
|
1435
|
+
<span class="cline-any cline-no"> </span>
|
|
1436
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1437
|
+
<span class="cline-any cline-no"> </span>
|
|
1438
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1439
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1440
|
+
<span class="cline-any cline-no"> </span>
|
|
1441
|
+
<span class="cline-any cline-no"> </span>
|
|
1442
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1443
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1444
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1445
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1446
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1447
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1448
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1449
|
+
<span class="cline-any cline-no"> </span>
|
|
1450
|
+
<span class="cline-any cline-no"> </span>
|
|
1451
|
+
<span class="cline-any cline-no"> </span>
|
|
1452
|
+
<span class="cline-any cline-no"> </span>
|
|
1453
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1454
|
+
<span class="cline-any cline-no"> </span>
|
|
1455
|
+
<span class="cline-any cline-no"> </span>
|
|
1456
|
+
<span class="cline-any cline-no"> </span>
|
|
1457
|
+
<span class="cline-any cline-no"> </span>
|
|
1458
|
+
<span class="cline-any cline-no"> </span>
|
|
979
1459
|
<span class="cline-any cline-neutral"> </span>
|
|
980
1460
|
<span class="cline-any cline-no"> </span>
|
|
981
1461
|
<span class="cline-any cline-no"> </span>
|
|
982
1462
|
<span class="cline-any cline-no"> </span>
|
|
1463
|
+
<span class="cline-any cline-neutral"> </span>
|
|
983
1464
|
<span class="cline-any cline-no"> </span>
|
|
1465
|
+
<span class="cline-any cline-neutral"> </span>
|
|
984
1466
|
<span class="cline-any cline-no"> </span>
|
|
985
1467
|
<span class="cline-any cline-no"> </span>
|
|
986
1468
|
<span class="cline-any cline-no"> </span>
|
|
1469
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1470
|
+
<span class="cline-any cline-neutral"> </span>
|
|
987
1471
|
<span class="cline-any cline-no"> </span>
|
|
1472
|
+
<span class="cline-any cline-no"> </span>
|
|
1473
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1474
|
+
<span class="cline-any cline-no"> </span>
|
|
1475
|
+
<span class="cline-any cline-no"> </span>
|
|
1476
|
+
<span class="cline-any cline-no"> </span>
|
|
1477
|
+
<span class="cline-any cline-neutral"> </span>
|
|
988
1478
|
<span class="cline-any cline-neutral"> </span>
|
|
989
1479
|
<span class="cline-any cline-no"> </span>
|
|
990
1480
|
<span class="cline-any cline-no"> </span>
|
|
@@ -994,10 +1484,73 @@
|
|
|
994
1484
|
<span class="cline-any cline-no"> </span>
|
|
995
1485
|
<span class="cline-any cline-no"> </span>
|
|
996
1486
|
<span class="cline-any cline-no"> </span>
|
|
1487
|
+
<span class="cline-any cline-no"> </span>
|
|
997
1488
|
<span class="cline-any cline-neutral"> </span>
|
|
998
1489
|
<span class="cline-any cline-no"> </span>
|
|
999
1490
|
<span class="cline-any cline-no"> </span>
|
|
1000
1491
|
<span class="cline-any cline-no"> </span>
|
|
1492
|
+
<span class="cline-any cline-no"> </span>
|
|
1493
|
+
<span class="cline-any cline-no"> </span>
|
|
1494
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1495
|
+
<span class="cline-any cline-no"> </span>
|
|
1496
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1497
|
+
<span class="cline-any cline-no"> </span>
|
|
1498
|
+
<span class="cline-any cline-no"> </span>
|
|
1499
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1500
|
+
<span class="cline-any cline-no"> </span>
|
|
1501
|
+
<span class="cline-any cline-no"> </span>
|
|
1502
|
+
<span class="cline-any cline-no"> </span>
|
|
1503
|
+
<span class="cline-any cline-no"> </span>
|
|
1504
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1505
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1506
|
+
<span class="cline-any cline-no"> </span>
|
|
1507
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1508
|
+
<span class="cline-any cline-no"> </span>
|
|
1509
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1510
|
+
<span class="cline-any cline-no"> </span>
|
|
1511
|
+
<span class="cline-any cline-no"> </span>
|
|
1512
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1513
|
+
<span class="cline-any cline-no"> </span>
|
|
1514
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1515
|
+
<span class="cline-any cline-no"> </span>
|
|
1516
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1517
|
+
<span class="cline-any cline-no"> </span>
|
|
1518
|
+
<span class="cline-any cline-no"> </span>
|
|
1519
|
+
<span class="cline-any cline-no"> </span>
|
|
1520
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1521
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1522
|
+
<span class="cline-any cline-no"> </span>
|
|
1523
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1524
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1525
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1526
|
+
<span class="cline-any cline-no"> </span>
|
|
1527
|
+
<span class="cline-any cline-no"> </span>
|
|
1528
|
+
<span class="cline-any cline-no"> </span>
|
|
1529
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1530
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1531
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1532
|
+
<span class="cline-any cline-no"> </span>
|
|
1533
|
+
<span class="cline-any cline-no"> </span>
|
|
1534
|
+
<span class="cline-any cline-no"> </span>
|
|
1535
|
+
<span class="cline-any cline-no"> </span>
|
|
1536
|
+
<span class="cline-any cline-no"> </span>
|
|
1537
|
+
<span class="cline-any cline-no"> </span>
|
|
1538
|
+
<span class="cline-any cline-no"> </span>
|
|
1539
|
+
<span class="cline-any cline-no"> </span>
|
|
1540
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1541
|
+
<span class="cline-any cline-no"> </span>
|
|
1542
|
+
<span class="cline-any cline-no"> </span>
|
|
1543
|
+
<span class="cline-any cline-no"> </span>
|
|
1544
|
+
<span class="cline-any cline-no"> </span>
|
|
1545
|
+
<span class="cline-any cline-no"> </span>
|
|
1546
|
+
<span class="cline-any cline-no"> </span>
|
|
1547
|
+
<span class="cline-any cline-no"> </span>
|
|
1548
|
+
<span class="cline-any cline-no"> </span>
|
|
1549
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1550
|
+
<span class="cline-any cline-no"> </span>
|
|
1551
|
+
<span class="cline-any cline-no"> </span>
|
|
1552
|
+
<span class="cline-any cline-no"> </span>
|
|
1553
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1001
1554
|
<span class="cline-any cline-neutral"> </span>
|
|
1002
1555
|
<span class="cline-any cline-neutral"> </span>
|
|
1003
1556
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1108,6 +1661,11 @@
|
|
|
1108
1661
|
<span class="cline-any cline-no"> </span>
|
|
1109
1662
|
<span class="cline-any cline-no"> </span>
|
|
1110
1663
|
<span class="cline-any cline-no"> </span>
|
|
1664
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1665
|
+
<span class="cline-any cline-no"> </span>
|
|
1666
|
+
<span class="cline-any cline-no"> </span>
|
|
1667
|
+
<span class="cline-any cline-no"> </span>
|
|
1668
|
+
<span class="cline-any cline-no"> </span>
|
|
1111
1669
|
<span class="cline-any cline-no"> </span>
|
|
1112
1670
|
<span class="cline-any cline-no"> </span>
|
|
1113
1671
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1216,6 +1774,8 @@
|
|
|
1216
1774
|
<span class="cline-any cline-no"> </span>
|
|
1217
1775
|
<span class="cline-any cline-no"> </span>
|
|
1218
1776
|
<span class="cline-any cline-neutral"> </span>
|
|
1777
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1778
|
+
<span class="cline-any cline-no"> </span>
|
|
1219
1779
|
<span class="cline-any cline-no"> </span>
|
|
1220
1780
|
<span class="cline-any cline-no"> </span>
|
|
1221
1781
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1243,6 +1803,9 @@
|
|
|
1243
1803
|
<span class="cline-any cline-no"> </span>
|
|
1244
1804
|
<span class="cline-any cline-no"> </span>
|
|
1245
1805
|
<span class="cline-any cline-no"> </span>
|
|
1806
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1807
|
+
<span class="cline-any cline-no"> </span>
|
|
1808
|
+
<span class="cline-any cline-no"> </span>
|
|
1246
1809
|
<span class="cline-any cline-no"> </span>
|
|
1247
1810
|
<span class="cline-any cline-neutral"> </span>
|
|
1248
1811
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1322,10 +1885,29 @@
|
|
|
1322
1885
|
<span class="cline-any cline-neutral"> </span>
|
|
1323
1886
|
<span class="cline-any cline-neutral"> </span>
|
|
1324
1887
|
<span class="cline-any cline-neutral"> </span>
|
|
1325
|
-
<span class="cline-any cline-no"> </span>
|
|
1888
|
+
<span class="cline-any cline-no"> </span>
|
|
1889
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1890
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1891
|
+
<span class="cline-any cline-no"> </span>
|
|
1892
|
+
<span class="cline-any cline-no"> </span>
|
|
1893
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1894
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1895
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1896
|
+
<span class="cline-any cline-no"> </span>
|
|
1897
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1898
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1899
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1900
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1901
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1902
|
+
<span class="cline-any cline-no"> </span>
|
|
1903
|
+
<span class="cline-any cline-no"> </span>
|
|
1904
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1905
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1906
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1907
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1908
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1326
1909
|
<span class="cline-any cline-neutral"> </span>
|
|
1327
1910
|
<span class="cline-any cline-neutral"> </span>
|
|
1328
|
-
<span class="cline-any cline-no"> </span>
|
|
1329
1911
|
<span class="cline-any cline-neutral"> </span>
|
|
1330
1912
|
<span class="cline-any cline-neutral"> </span>
|
|
1331
1913
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1334,6 +1916,7 @@
|
|
|
1334
1916
|
<span class="cline-any cline-no"> </span>
|
|
1335
1917
|
<span class="cline-any cline-no"> </span>
|
|
1336
1918
|
<span class="cline-any cline-no"> </span>
|
|
1919
|
+
<span class="cline-any cline-no"> </span>
|
|
1337
1920
|
<span class="cline-any cline-neutral"> </span>
|
|
1338
1921
|
<span class="cline-any cline-no"> </span>
|
|
1339
1922
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1365,6 +1948,7 @@
|
|
|
1365
1948
|
<span class="cline-any cline-neutral"> </span>
|
|
1366
1949
|
<span class="cline-any cline-neutral"> </span>
|
|
1367
1950
|
<span class="cline-any cline-neutral"> </span>
|
|
1951
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1368
1952
|
<span class="cline-any cline-yes">1x</span>
|
|
1369
1953
|
<span class="cline-any cline-yes">1x</span>
|
|
1370
1954
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -1411,6 +1995,7 @@
|
|
|
1411
1995
|
<span class="cline-any cline-no"> </span>
|
|
1412
1996
|
<span class="cline-any cline-no"> </span>
|
|
1413
1997
|
<span class="cline-any cline-no"> </span>
|
|
1998
|
+
<span class="cline-any cline-no"> </span>
|
|
1414
1999
|
<span class="cline-any cline-neutral"> </span>
|
|
1415
2000
|
<span class="cline-any cline-no"> </span>
|
|
1416
2001
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1418,6 +2003,7 @@
|
|
|
1418
2003
|
<span class="cline-any cline-no"> </span>
|
|
1419
2004
|
<span class="cline-any cline-no"> </span>
|
|
1420
2005
|
<span class="cline-any cline-no"> </span>
|
|
2006
|
+
<span class="cline-any cline-no"> </span>
|
|
1421
2007
|
<span class="cline-any cline-neutral"> </span>
|
|
1422
2008
|
<span class="cline-any cline-neutral"> </span>
|
|
1423
2009
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1432,6 +2018,7 @@
|
|
|
1432
2018
|
<span class="cline-any cline-neutral"> </span>
|
|
1433
2019
|
<span class="cline-any cline-neutral"> </span>
|
|
1434
2020
|
<span class="cline-any cline-neutral"> </span>
|
|
2021
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1435
2022
|
<span class="cline-any cline-no"> </span>
|
|
1436
2023
|
<span class="cline-any cline-no"> </span>
|
|
1437
2024
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1502,6 +2089,22 @@
|
|
|
1502
2089
|
<span class="cline-any cline-neutral"> </span>
|
|
1503
2090
|
<span class="cline-any cline-neutral"> </span>
|
|
1504
2091
|
<span class="cline-any cline-neutral"> </span>
|
|
2092
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2093
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2094
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2095
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2096
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2097
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2098
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2099
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2100
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2101
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2102
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2103
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2104
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2105
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2106
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2107
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1505
2108
|
<span class="cline-any cline-no"> </span>
|
|
1506
2109
|
<span class="cline-any cline-no"> </span>
|
|
1507
2110
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1513,8 +2116,11 @@
|
|
|
1513
2116
|
<span class="cline-any cline-no"> </span>
|
|
1514
2117
|
<span class="cline-any cline-neutral"> </span>
|
|
1515
2118
|
<span class="cline-any cline-neutral"> </span>
|
|
2119
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2120
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1516
2121
|
<span class="cline-any cline-no"> </span>
|
|
1517
2122
|
<span class="cline-any cline-no"> </span>
|
|
2123
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1518
2124
|
<span class="cline-any cline-no"> </span>
|
|
1519
2125
|
<span class="cline-any cline-neutral"> </span>
|
|
1520
2126
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1528,6 +2134,19 @@
|
|
|
1528
2134
|
<span class="cline-any cline-no"> </span>
|
|
1529
2135
|
<span class="cline-any cline-neutral"> </span>
|
|
1530
2136
|
<span class="cline-any cline-no"> </span>
|
|
2137
|
+
<span class="cline-any cline-no"> </span>
|
|
2138
|
+
<span class="cline-any cline-no"> </span>
|
|
2139
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2140
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2141
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2142
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2143
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2144
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2145
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2146
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2147
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2148
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2149
|
+
<span class="cline-any cline-no"> </span>
|
|
1531
2150
|
<span class="cline-any cline-neutral"> </span>
|
|
1532
2151
|
<span class="cline-any cline-neutral"> </span>
|
|
1533
2152
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1691,6 +2310,10 @@
|
|
|
1691
2310
|
<span class="cline-any cline-neutral"> </span>
|
|
1692
2311
|
<span class="cline-any cline-neutral"> </span>
|
|
1693
2312
|
<span class="cline-any cline-yes">1x</span>
|
|
2313
|
+
<span class="cline-any cline-no"> </span>
|
|
2314
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2315
|
+
<span class="cline-any cline-no"> </span>
|
|
2316
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1694
2317
|
<span class="cline-any cline-neutral"> </span>
|
|
1695
2318
|
<span class="cline-any cline-no"> </span>
|
|
1696
2319
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1764,6 +2387,7 @@
|
|
|
1764
2387
|
<span class="cline-any cline-neutral"> </span>
|
|
1765
2388
|
<span class="cline-any cline-neutral"> </span>
|
|
1766
2389
|
<span class="cline-any cline-neutral"> </span>
|
|
2390
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1767
2391
|
<span class="cline-any cline-no"> </span>
|
|
1768
2392
|
<span class="cline-any cline-no"> </span>
|
|
1769
2393
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1845,18 +2469,17 @@
|
|
|
1845
2469
|
<span class="cline-any cline-no"> </span>
|
|
1846
2470
|
<span class="cline-any cline-no"> </span>
|
|
1847
2471
|
<span class="cline-any cline-neutral"> </span>
|
|
1848
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1849
|
-
|
|
1850
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { App, LogicItem, Logic, Module, View, ViewElement, Argument, SelectMembers, SynatxNode, BindDirective, CallLogic } from '../../concepts';
|
|
2472
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { cloneDeep } from 'lodash';
|
|
2473
|
+
import { App, LogicItem, Logic, Module, View, ViewElement, Argument, SelectMembers, SyntaxNode, BindDirective, CallLogic } from '../../concepts';
|
|
1851
2474
|
import { addBreakpointNodesFromApp } from '../../breakpoint';
|
|
1852
2475
|
import { getConceptConstructor } from '../../decorators';
|
|
1853
2476
|
import { config } from '../../config';
|
|
1854
2477
|
import storageService from './service';
|
|
1855
2478
|
import { v4 as uuidv4 } from 'uuid';
|
|
1856
2479
|
import stepRecorder from '../../manager/stepRecorder';
|
|
2480
|
+
import * as jsoner from './jsoner';
|
|
1857
2481
|
/// #if !process.env.NODE_ENV || process.env.BUILD_TARGET === 'node'
|
|
1858
2482
|
import * as fs from 'fs-extra';
|
|
1859
|
-
import * as jsoner from './jsoner';
|
|
1860
2483
|
import type { NaslServer } from 'src/server/naslServer';
|
|
1861
2484
|
/// #endif
|
|
1862
2485
|
|
|
@@ -1868,254 +2491,500 @@ export const batchInstruct = storageService.batchInstruct;
|
|
|
1868
2491
|
export const breakpoint = storageService.breakpoint;
|
|
1869
2492
|
|
|
1870
2493
|
let tabTimestamp: string;
|
|
1871
|
-
export
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
2494
|
+
export const databaseTypes = storageService.databaseTypes;
|
|
2495
|
+
|
|
2496
|
+
export const operationRecordInfoMap: Map<string, any> = new Map();
|
|
2497
|
+
|
|
2498
|
+
// 操作栈记录
|
|
2499
|
+
export function <span class="fstat-no" title="function not covered" >doOperationRecord(</span>operation: Operation) {
|
|
2500
|
+
const request = <span class="cstat-no" title="statement not covered" >indexedDB.open('naslData', 1);</span>
|
|
2501
|
+
|
|
2502
|
+
<span class="cstat-no" title="statement not covered" > request.onupgradeneeded = <span class="fstat-no" title="function not covered" >(e</span>vent: any) => {</span>
|
|
2503
|
+
const db = <span class="cstat-no" title="statement not covered" >event.target.result;</span>
|
|
2504
|
+
const objectStore = <span class="cstat-no" title="statement not covered" >db.createObjectStore('operationRecord', { autoIncrement: true });</span>
|
|
2505
|
+
<span class="cstat-no" title="statement not covered" > objectStore.createIndex('appId', 'appId');</span>
|
|
2506
|
+
<span class="cstat-no" title="statement not covered" > objectStore.createIndex('timestamp', 'timestamp');</span>
|
|
2507
|
+
};
|
|
2508
|
+
|
|
2509
|
+
<span class="cstat-no" title="statement not covered" > request.onsuccess = <span class="fstat-no" title="function not covered" >(e</span>vent: any) => {</span>
|
|
2510
|
+
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
2511
|
+
const db = <span class="cstat-no" title="statement not covered" >event.target.result;</span>
|
|
2512
|
+
const transaction = <span class="cstat-no" title="statement not covered" >db.transaction('operationRecord', 'readwrite');</span>
|
|
2513
|
+
const objectStore = <span class="cstat-no" title="statement not covered" >transaction.objectStore('operationRecord');</span>
|
|
2514
|
+
<span class="cstat-no" title="statement not covered" > operation.appId = operationRecordInfoMap.get('appId');</span>
|
|
2515
|
+
<span class="cstat-no" title="statement not covered" > operation.branchId = operationRecordInfoMap.get('branchId');</span>
|
|
2516
|
+
<span class="cstat-no" title="statement not covered" > operation.accountId = operationRecordInfoMap.get('accountId');</span>
|
|
2517
|
+
<span class="cstat-no" title="statement not covered" > operation.userId = operationRecordInfoMap.get('userId');</span>
|
|
2518
|
+
<span class="cstat-no" title="statement not covered" > operation.phone = operationRecordInfoMap.get('phone');</span>
|
|
2519
|
+
// 将时间戳添加到记录中
|
|
2520
|
+
<span class="cstat-no" title="statement not covered" > operation.timestamp = Date.now();</span>
|
|
2521
|
+
// 这份数据不存在向上的引用,因此用cloneDeep没有关系
|
|
2522
|
+
<span class="cstat-no" title="statement not covered" > objectStore.put(cloneDeep(operation));</span>
|
|
2523
|
+
<span class="cstat-no" title="statement not covered" > transaction.oncomplete = <span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
2524
|
+
<span class="cstat-no" title="statement not covered" > db.close();</span>
|
|
2525
|
+
};
|
|
2526
|
+
} catch(err) {
|
|
2527
|
+
<span class="cstat-no" title="statement not covered" > console.log(err);</span>
|
|
2528
|
+
}
|
|
2529
|
+
};
|
|
2530
|
+
|
|
2531
|
+
<span class="cstat-no" title="statement not covered" > request.onerror = <span class="fstat-no" title="function not covered" >function(e</span>vent) {</span>
|
|
2532
|
+
<span class="cstat-no" title="statement not covered" > console.log('Failed to open database');</span>
|
|
2533
|
+
};
|
|
2534
|
+
}
|
|
2535
|
+
|
|
2536
|
+
// 删除失效数据
|
|
2537
|
+
async function <span class="fstat-no" title="function not covered" >deleteExpiredRecords(</span>) {
|
|
2538
|
+
<span class="cstat-no" title="statement not covered" > return new Promise(<span class="fstat-no" title="function not covered" >(r</span>esolve, reject) => {</span>
|
|
2539
|
+
const request = <span class="cstat-no" title="statement not covered" >indexedDB.open('naslData', 1);</span>
|
|
2540
|
+
|
|
2541
|
+
<span class="cstat-no" title="statement not covered" > request.onupgradeneeded = <span class="fstat-no" title="function not covered" >(e</span>vent: any) => {</span>
|
|
2542
|
+
const db = <span class="cstat-no" title="statement not covered" >event.target.result;</span>
|
|
2543
|
+
const objectStore = <span class="cstat-no" title="statement not covered" >db.createObjectStore('operationRecord', { autoIncrement: true });</span>
|
|
2544
|
+
<span class="cstat-no" title="statement not covered" > objectStore.createIndex('appId', 'appId');</span>
|
|
2545
|
+
<span class="cstat-no" title="statement not covered" > objectStore.createIndex('timestamp', 'timestamp');</span>
|
|
2546
|
+
};
|
|
2547
|
+
|
|
2548
|
+
<span class="cstat-no" title="statement not covered" > request.onsuccess = <span class="fstat-no" title="function not covered" >(e</span>vent: any) => {</span>
|
|
2549
|
+
const db = <span class="cstat-no" title="statement not covered" >event.target.result;</span>
|
|
2550
|
+
const transaction = <span class="cstat-no" title="statement not covered" >db.transaction('operationRecord', 'readwrite');</span>
|
|
2551
|
+
const objectStore = <span class="cstat-no" title="statement not covered" >transaction.objectStore('operationRecord');</span>
|
|
2552
|
+
const index = <span class="cstat-no" title="statement not covered" >objectStore.index('timestamp');</span>
|
|
2553
|
+
// 设置有效期,默认7天
|
|
2554
|
+
const localStorageExpiresAt = <span class="cstat-no" title="statement not covered" >window.localStorage.getItem('expiresAt');</span>
|
|
2555
|
+
const expiresAt = <span class="cstat-no" title="statement not covered" >Date.now() - (localStorageExpiresAt ? +localStorageExpiresAt : 7 * 24 * 60 * 60 * 1000);</span>
|
|
2556
|
+
const range = <span class="cstat-no" title="statement not covered" >IDBKeyRange.upperBound(expiresAt);</span>
|
|
2557
|
+
const expiredRecordsRequest = <span class="cstat-no" title="statement not covered" >index.openCursor(range);</span>
|
|
2558
|
+
|
|
2559
|
+
<span class="cstat-no" title="statement not covered" > expiredRecordsRequest.onsuccess = <span class="fstat-no" title="function not covered" >(e</span>vent: any) => {</span>
|
|
2560
|
+
const cursor = <span class="cstat-no" title="statement not covered" >event.target.result;</span>
|
|
2561
|
+
<span class="cstat-no" title="statement not covered" > if (cursor) {</span>
|
|
2562
|
+
<span class="cstat-no" title="statement not covered" > objectStore.delete(cursor.primaryKey);</span>
|
|
2563
|
+
<span class="cstat-no" title="statement not covered" > cursor.continue();</span>
|
|
2564
|
+
} else {
|
|
2565
|
+
<span class="cstat-no" title="statement not covered" > resolve(void 0);</span>
|
|
2566
|
+
}
|
|
2567
|
+
};
|
|
2568
|
+
|
|
2569
|
+
<span class="cstat-no" title="statement not covered" > transaction.oncomplete = <span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
2570
|
+
<span class="cstat-no" title="statement not covered" > db.close();</span>
|
|
2571
|
+
};
|
|
2572
|
+
};
|
|
2573
|
+
|
|
2574
|
+
<span class="cstat-no" title="statement not covered" > request.onerror = <span class="fstat-no" title="function not covered" >(e</span>vent) => {</span>
|
|
2575
|
+
<span class="cstat-no" title="statement not covered" > reject('Failed to open database');</span>
|
|
2576
|
+
};
|
|
2577
|
+
});
|
|
2578
|
+
}
|
|
2579
|
+
|
|
2580
|
+
// 操作栈查询
|
|
2581
|
+
export function <span class="fstat-no" title="function not covered" >operationRecordQuery(</span>app: any) {
|
|
2582
|
+
<span class="cstat-no" title="statement not covered" > return new Promise(<span class="fstat-no" title="function not covered" >(r</span>esolve, reject) => {</span>
|
|
2583
|
+
const appId = <span class="cstat-no" title="statement not covered" >app?.id;</span>
|
|
2584
|
+
const request = <span class="cstat-no" title="statement not covered" >indexedDB.open('naslData', 1);</span>
|
|
2585
|
+
<span class="cstat-no" title="statement not covered" > request.onsuccess = <span class="fstat-no" title="function not covered" >(e</span>vent: any) => {</span>
|
|
2586
|
+
const db = <span class="cstat-no" title="statement not covered" >event.target.result;</span>
|
|
2587
|
+
const transaction = <span class="cstat-no" title="statement not covered" >db.transaction('operationRecord', 'readonly');</span>
|
|
2588
|
+
const objectStore = <span class="cstat-no" title="statement not covered" >transaction.objectStore('operationRecord');</span>
|
|
2589
|
+
const index = <span class="cstat-no" title="statement not covered" >objectStore.index('appId');</span> // 查询 'appId' 索引
|
|
2590
|
+
const range = <span class="cstat-no" title="statement not covered" >IDBKeyRange.only(appId);</span>
|
|
2591
|
+
const request = <span class="cstat-no" title="statement not covered" >index.openCursor(range);</span>
|
|
2592
|
+
const result: any[] = <span class="cstat-no" title="statement not covered" >[];</span>
|
|
2593
|
+
|
|
2594
|
+
<span class="cstat-no" title="statement not covered" > request.onsuccess = <span class="fstat-no" title="function not covered" >(e</span>vent: any) => {</span>
|
|
2595
|
+
const cursor = <span class="cstat-no" title="statement not covered" >event.target.result;</span>
|
|
2596
|
+
<span class="cstat-no" title="statement not covered" > if (cursor) {</span>
|
|
2597
|
+
const record = <span class="cstat-no" title="statement not covered" >cursor.value;</span>
|
|
2598
|
+
const branchId = <span class="cstat-no" title="statement not covered" >operationRecordInfoMap.get('branchId');</span>
|
|
2599
|
+
<span class="cstat-no" title="statement not covered" > if (record.branchId === branchId) {</span>
|
|
2600
|
+
<span class="cstat-no" title="statement not covered" > result.push(record);</span>
|
|
2601
|
+
}
|
|
2602
|
+
<span class="cstat-no" title="statement not covered" > cursor.continue();</span>
|
|
2603
|
+
} else {
|
|
2604
|
+
<span class="cstat-no" title="statement not covered" > console.log('操作记录栈:', result);</span>
|
|
2605
|
+
<span class="cstat-no" title="statement not covered" > resolve(result);</span>
|
|
2606
|
+
}
|
|
2607
|
+
};
|
|
2608
|
+
|
|
2609
|
+
<span class="cstat-no" title="statement not covered" > transaction.oncomplete = <span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
2610
|
+
<span class="cstat-no" title="statement not covered" > db.close();</span>
|
|
2611
|
+
};
|
|
2612
|
+
|
|
2613
|
+
};
|
|
2614
|
+
|
|
2615
|
+
<span class="cstat-no" title="statement not covered" > request.onerror = <span class="fstat-no" title="function not covered" >(e</span>vent) => {</span>
|
|
2616
|
+
<span class="cstat-no" title="statement not covered" > reject('Failed to open database');</span>
|
|
2617
|
+
};
|
|
2618
|
+
});
|
|
2619
|
+
}
|
|
2620
|
+
|
|
2621
|
+
// 获取父对象
|
|
2622
|
+
function <span class="fstat-no" title="function not covered" >getParentInfo(</span>appJson: any, path: string) {
|
|
2623
|
+
const pathArr: string[] = <span class="cstat-no" title="statement not covered" >[];</span>
|
|
2624
|
+
<span class="cstat-no" title="statement not covered" > (path?.split('.') || []).forEach(<span class="fstat-no" title="function not covered" >(p</span>athItem: string) => {</span>
|
|
2625
|
+
const arrayPropertyKey = <span class="cstat-no" title="statement not covered" >pathItem.split('[')[0];</span>
|
|
2626
|
+
const matchArr = <span class="cstat-no" title="statement not covered" >pathItem.match(/\[(.+?)\]/);</span>
|
|
2627
|
+
<span class="cstat-no" title="statement not covered" > if (matchArr) {</span>
|
|
2628
|
+
<span class="cstat-no" title="statement not covered" > pathArr.push(arrayPropertyKey, matchArr[0]);</span>
|
|
2629
|
+
} else {
|
|
2630
|
+
<span class="cstat-no" title="statement not covered" > pathArr.push(pathItem);</span>
|
|
2631
|
+
}
|
|
2632
|
+
});
|
|
2633
|
+
<span class="cstat-no" title="statement not covered" > pathArr.pop();</span>
|
|
2634
|
+
let parentPath = <span class="cstat-no" title="statement not covered" >'';</span>
|
|
2635
|
+
<span class="cstat-no" title="statement not covered" > pathArr.forEach(<span class="fstat-no" title="function not covered" >(p</span>athItem: string, index: number) => {</span>
|
|
2636
|
+
const matchArr = <span class="cstat-no" title="statement not covered" >pathItem.match(/\[(.+?)\]/);</span>
|
|
2637
|
+
<span class="cstat-no" title="statement not covered" > if (matchArr || index === 0) {</span>
|
|
2638
|
+
<span class="cstat-no" title="statement not covered" > parentPath += pathItem;</span>
|
|
2639
|
+
} else {
|
|
2640
|
+
<span class="cstat-no" title="statement not covered" > parentPath += `.${pathItem}`</span>
|
|
2641
|
+
}
|
|
2642
|
+
});
|
|
2643
|
+
const parentNode = <span class="cstat-no" title="statement not covered" >jsoner.queryNodeByPath(appJson, parentPath);</span>
|
|
2644
|
+
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
2645
|
+
parentPath,
|
|
2646
|
+
parentNode,
|
|
2647
|
+
};
|
|
2648
|
+
}
|
|
2649
|
+
|
|
2650
|
+
// 操作记录回放
|
|
2651
|
+
export async function <span class="fstat-no" title="function not covered" >operationRecordPlayback(</span>app: any, operationRecordAction: 'undo' | 'redo') {
|
|
2652
|
+
const operationRecord: any = <span class="cstat-no" title="statement not covered" >await operationRecordQuery(app);</span>
|
|
2653
|
+
let operationRecordIndex = <span class="cstat-no" title="statement not covered" >operationRecordInfoMap.get('operationRecordIndex');</span>
|
|
2654
|
+
<span class="cstat-no" title="statement not covered" > if ([null, undefined].includes(operationRecordIndex)) {</span>
|
|
2655
|
+
<span class="cstat-no" title="statement not covered" > operationRecordIndex = operationRecord?.length;</span>
|
|
2656
|
+
}
|
|
2657
|
+
const appJson = <span class="cstat-no" title="statement not covered" >app.toJSON();</span>
|
|
2658
|
+
<span class="cstat-no" title="statement not covered" > if (operationRecordAction === 'undo') {</span>
|
|
2659
|
+
<span class="cstat-no" title="statement not covered" > if (operationRecordIndex > 0) {</span>
|
|
2660
|
+
const currentRecordItem = <span class="cstat-no" title="statement not covered" >operationRecord?.[operationRecordIndex];</span>
|
|
2661
|
+
const { type, action: recordItemAction } = <span class="cstat-no" title="statement not covered" >currentRecordItem || {};</span>
|
|
2662
|
+
// 多人协作
|
|
2663
|
+
<span class="cstat-no" title="statement not covered" > if (type === 'cooperation' && recordItemAction === 'confirmPull') {</span>
|
|
2664
|
+
<span class="cstat-no" title="statement not covered" > console.log(`当前所处栈位置:${operationRecordIndex},已经进行了多人协作“合并”操作,无法继续对操作栈进行回放!`);</span>
|
|
2665
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
2666
|
+
}
|
|
2667
|
+
<span class="cstat-no" title="statement not covered" > operationRecordIndex--;</span>
|
|
2668
|
+
} else {
|
|
2669
|
+
<span class="cstat-no" title="statement not covered" > console.log(`当前所处栈位置:${operationRecordIndex},无法继续回放`);</span>
|
|
2670
|
+
<span class="cstat-no" title="statement not covered" > console.log('当前appJSON:', appJson);</span>
|
|
2671
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
2672
|
+
}
|
|
2673
|
+
} else {
|
|
2674
|
+
<span class="cstat-no" title="statement not covered" > if (operationRecordIndex < operationRecord?.length) {</span>
|
|
2675
|
+
<span class="cstat-no" title="statement not covered" > operationRecordIndex++;</span>
|
|
2676
|
+
} else {
|
|
2677
|
+
<span class="cstat-no" title="statement not covered" > console.log(`当前所处栈位置:${operationRecordIndex},无法继续前进`);</span>
|
|
2678
|
+
<span class="cstat-no" title="statement not covered" > console.log('当前appJSON:', appJson);</span>
|
|
2679
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
2680
|
+
}
|
|
2681
|
+
}
|
|
2682
|
+
<span class="cstat-no" title="statement not covered" > operationRecordInfoMap.set('operationRecordIndex', operationRecordIndex);</span>
|
|
2683
|
+
const currentIndex = <span class="cstat-no" title="statement not covered" >operationRecordIndex;</span>
|
|
2684
|
+
<span class="cstat-no" title="statement not covered" > ([...operationRecord].splice(currentIndex, operationRecord?.length) || []).reverse()?.forEach(<span class="fstat-no" title="function not covered" >(r</span>ecordItem: any) => {</span>
|
|
2685
|
+
const { actionItem } = <span class="cstat-no" title="statement not covered" >recordItem || {};</span>
|
|
2686
|
+
const { list } = <span class="cstat-no" title="statement not covered" >actionItem || {};</span>
|
|
2687
|
+
<span class="cstat-no" title="statement not covered" > [...(list || [])].reverse().forEach(<span class="fstat-no" title="function not covered" >(a</span>ctionItem: any) => {</span>
|
|
2688
|
+
const { path, action, object, oldObject, parentKey, index: oldIndex } = <span class="cstat-no" title="statement not covered" >actionItem || {};</span>
|
|
2689
|
+
const { parentNode } = <span class="cstat-no" title="statement not covered" >getParentInfo(appJson, path);</span>
|
|
2690
|
+
let newPath = <span class="cstat-no" title="statement not covered" >path;</span>
|
|
2691
|
+
// 如果涉及到改名操作,需要特殊处理
|
|
2692
|
+
<span class="cstat-no" title="statement not covered" > if (operationRecordAction === 'undo' && action === 'update' && object?.name) {</span>
|
|
2693
|
+
const pathArr = <span class="cstat-no" title="statement not covered" >path?.split('.') || [];</span>
|
|
2694
|
+
const lastPathItem = <span class="cstat-no" title="statement not covered" >pathArr?.pop();</span>
|
|
2695
|
+
<span class="cstat-no" title="statement not covered" > if (lastPathItem) {</span>
|
|
2696
|
+
<span class="cstat-no" title="statement not covered" > pathArr.push(lastPathItem.replace(/(name=)[^\]]+/, `$1${object?.name}`));</span>
|
|
2697
|
+
}
|
|
2698
|
+
<span class="cstat-no" title="statement not covered" > newPath = pathArr.join('.');</span>
|
|
2699
|
+
}
|
|
2700
|
+
const node = <span class="cstat-no" title="statement not covered" >jsoner.queryNodeByPath(appJson, newPath);</span>
|
|
2701
|
+
<span class="cstat-no" title="statement not covered" > switch (action) {</span>
|
|
2702
|
+
case 'create':
|
|
2703
|
+
<span class="cstat-no" title="statement not covered" > if (Array.isArray(parentNode)) {</span>
|
|
2704
|
+
const index = <span class="cstat-no" title="statement not covered" >parentNode.indexOf(node);</span>
|
|
2705
|
+
<span class="cstat-no" title="statement not covered" > if (index !== -1) {</span>
|
|
2706
|
+
<span class="cstat-no" title="statement not covered" > parentNode.splice(index, 1);</span>
|
|
2707
|
+
}
|
|
2708
|
+
} else {
|
|
2709
|
+
<span class="cstat-no" title="statement not covered" > parentNode[parentKey] = null;</span>
|
|
2710
|
+
}
|
|
2711
|
+
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
2712
|
+
case 'delete':
|
|
2713
|
+
<span class="cstat-no" title="statement not covered" > if (Array.isArray(parentNode) && oldIndex !== -1) {</span>
|
|
2714
|
+
<span class="cstat-no" title="statement not covered" > parentNode.splice(oldIndex, 0, oldObject);</span>
|
|
2715
|
+
} else {
|
|
2716
|
+
<span class="cstat-no" title="statement not covered" > parentNode[parentKey] = oldObject;</span>
|
|
2717
|
+
}
|
|
2718
|
+
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
2719
|
+
case 'update':
|
|
2720
|
+
<span class="cstat-no" title="statement not covered" > for (const key in oldObject) {</span>
|
|
2721
|
+
<span class="cstat-no" title="statement not covered" > if (node) {</span>
|
|
2722
|
+
(<span class="cstat-no" title="statement not covered" >node as any)[key] = oldObject[key] ?? null;</span>
|
|
2723
|
+
}
|
|
2724
|
+
}
|
|
2725
|
+
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
2726
|
+
}
|
|
2727
|
+
});
|
|
2728
|
+
});
|
|
2729
|
+
<span class="cstat-no" title="statement not covered" > console.log('当前所处栈位置:', currentIndex);</span>
|
|
2730
|
+
<span class="cstat-no" title="statement not covered" > console.log('当前appJSON:', appJson);</span>
|
|
2731
|
+
<span class="cstat-no" title="statement not covered" > return appJson;</span>
|
|
2732
|
+
}
|
|
2733
|
+
|
|
2734
|
+
function <span class="fstat-no" title="function not covered" >getLogic(</span>key: string, app: any, diffLogicList: string[]) {
|
|
2735
|
+
<span class="cstat-no" title="statement not covered" > if (!diffLogicList.includes(key)) {</span>
|
|
2736
|
+
<span class="cstat-no" title="statement not covered" > diffLogicList.push(key);</span>
|
|
2737
|
+
<span class="cstat-no" title="statement not covered" > if (key.startsWith('app')) {</span>
|
|
2738
|
+
const index = <span class="cstat-no" title="statement not covered" >key.lastIndexOf('.');</span>
|
|
2739
|
+
const name = <span class="cstat-no" title="statement not covered" >key.slice(index + 1);</span>
|
|
2740
|
+
const logic = <span class="cstat-no" title="statement not covered" >app.logics.find(<span class="fstat-no" title="function not covered" >(i</span>tem: any) => <span class="cstat-no" title="statement not covered" >item.name === name)</span>;</span>
|
|
2741
|
+
<span class="cstat-no" title="statement not covered" > if (logic && logic.body && logic.body.length > 2) {</span>
|
|
2742
|
+
<span class="cstat-no" title="statement not covered" > logic.body.map(<span class="fstat-no" title="function not covered" >(i</span>tem: any) => <span class="cstat-no" title="statement not covered" >getStatement(item, app, diffLogicList))</span>;</span>
|
|
2743
|
+
}
|
|
2744
|
+
} else <span class="cstat-no" title="statement not covered" >if (key.startsWith('extensions')) {</span>
|
|
2745
|
+
const _pathArr = <span class="cstat-no" title="statement not covered" >key.split('.');</span>
|
|
1885
2746
|
const _name = <span class="cstat-no" title="statement not covered" >_pathArr[1];</span>
|
|
1886
|
-
const _path =
|
|
1887
|
-
const _list =
|
|
1888
|
-
|
|
1889
|
-
const name = it.name.replaceAll('-', '_')
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
if (logic && logic.body && logic.body.length > 2) {
|
|
1894
|
-
logic.body.map((
|
|
2747
|
+
const _path = <span class="cstat-no" title="statement not covered" >_pathArr[3];</span>
|
|
2748
|
+
const _list = <span class="cstat-no" title="statement not covered" >app.dependencies;</span>
|
|
2749
|
+
const _module = <span class="cstat-no" title="statement not covered" >_list.find(<span class="fstat-no" title="function not covered" >(i</span>t: Module) => {</span>
|
|
2750
|
+
const name = <span class="cstat-no" title="statement not covered" >it.name.replaceAll('-', '_');</span>
|
|
2751
|
+
<span class="cstat-no" title="statement not covered" > return name === _name;</span>
|
|
2752
|
+
});
|
|
2753
|
+
const logic = <span class="cstat-no" title="statement not covered" >_module?.logics?.find(<span class="fstat-no" title="function not covered" >(i</span>tem: Logic) => <span class="cstat-no" title="statement not covered" >item.name === _path)</span>;</span>
|
|
2754
|
+
<span class="cstat-no" title="statement not covered" > if (logic && logic.body && logic.body.length > 2) {</span>
|
|
2755
|
+
<span class="cstat-no" title="statement not covered" > logic.body.map(<span class="fstat-no" title="function not covered" >(i</span>tem: any) => <span class="cstat-no" title="statement not covered" >getStatement(item, app, diffLogicList))</span>;</span>
|
|
1895
2756
|
}
|
|
1896
2757
|
}
|
|
1897
2758
|
}
|
|
1898
|
-
}
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
2759
|
+
}
|
|
2760
|
+
|
|
2761
|
+
/* 获取LogicITEM */
|
|
2762
|
+
function <span class="fstat-no" title="function not covered" >getStatement(</span>state: any, app: any, diffLogicList: string[]) {
|
|
2763
|
+
let logicItems = <span class="cstat-no" title="statement not covered" >[];</span>
|
|
2764
|
+
<span class="cstat-no" title="statement not covered" > switch (state.concept) {</span>
|
|
2765
|
+
case 'Assignment':
|
|
2766
|
+
<span class="cstat-no" title="statement not covered" > logicItems = [state.left, state.right];</span>
|
|
2767
|
+
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
2768
|
+
case 'IfStatement':
|
|
2769
|
+
<span class="cstat-no" title="statement not covered" > logicItems = [...state.consequent, ...state.alternate];</span>
|
|
2770
|
+
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
2771
|
+
case 'ForEachStatement':
|
|
2772
|
+
<span class="cstat-no" title="statement not covered" > logicItems = [...state.body, state.each, state.start, state.end];</span>
|
|
1905
2773
|
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1906
|
-
|
|
1907
|
-
logicItems = [
|
|
2774
|
+
case 'Match':
|
|
2775
|
+
<span class="cstat-no" title="statement not covered" > logicItems = [state.expression, ...state.cases.map(getStatement).flat(1)];</span>
|
|
1908
2776
|
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1909
|
-
|
|
1910
|
-
logicItems = [...state.
|
|
2777
|
+
case 'MatchCase':
|
|
2778
|
+
<span class="cstat-no" title="statement not covered" > logicItems = [...state.patterns, ...state.body];</span>
|
|
1911
2779
|
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1912
|
-
|
|
1913
|
-
logicItems =
|
|
2780
|
+
case 'SwitchStatement':
|
|
2781
|
+
<span class="cstat-no" title="statement not covered" > logicItems = state.cases.map(getStatement).flat(1);</span>
|
|
1914
2782
|
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1915
|
-
|
|
1916
|
-
logicItems = [
|
|
2783
|
+
case 'SwitchCase':
|
|
2784
|
+
<span class="cstat-no" title="statement not covered" > logicItems = [state.test, ...state.consequent];</span>
|
|
1917
2785
|
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1918
|
-
|
|
1919
|
-
logicItems = state.
|
|
2786
|
+
case 'WhileStatement':
|
|
2787
|
+
<span class="cstat-no" title="statement not covered" > logicItems = [state.test, ...state.body];</span>
|
|
1920
2788
|
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1921
|
-
|
|
1922
|
-
logicItems =
|
|
2789
|
+
case 'CallLogic':
|
|
2790
|
+
<span class="cstat-no" title="statement not covered" > logicItems = state.arguments?.map(<span class="fstat-no" title="function not covered" >(i</span>tem: Argument) => <span class="cstat-no" title="statement not covered" >item.expression)</span>;</span>
|
|
2791
|
+
<span class="cstat-no" title="statement not covered" > getLogic(state.calleewholeKey, app, diffLogicList);</span>
|
|
1923
2792
|
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1924
|
-
|
|
1925
|
-
logicItems =
|
|
1926
|
-
<span class="cstat-no" title="statement not covered" > break;<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" ></span></span></span>
|
|
1927
|
-
ca<span class="cstat-no" title="statement not covered" >se 'CallLogic':</span>
|
|
1928
|
-
<span class="cstat-no" title="statement not covered" > logicIt</span>ems = state.arguments?.map((item: Argument) => item.expression);
|
|
1929
|
-
getLogic(state.calleewholeKey, app, diffLogicList);
|
|
1930
|
-
<span class="cstat-no" title="statement not covered" > break;<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" ></span></span></span>
|
|
1931
|
-
ca<span class="cstat-no" title="statement not covered" >se 'Cal</span>lFunction':
|
|
1932
|
-
logicItems = state.arguments?.map((item: Argument) => item.expression);
|
|
1933
|
-
<span class="cstat-no" title="statement not covered" > break;<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" ></span></span></span>
|
|
1934
|
-
ca<span class="cstat-no" title="statement not covered" >se 'Cal</span>lInterface':
|
|
1935
|
-
logicItems = state.arguments?.map((item: Argument) => item.expression);
|
|
2793
|
+
case 'CallFunction':
|
|
2794
|
+
<span class="cstat-no" title="statement not covered" > logicItems = state.arguments?.map(<span class="fstat-no" title="function not covered" >(i</span>tem: Argument) => <span class="cstat-no" title="statement not covered" >item.expression)</span>;</span>
|
|
1936
2795
|
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1937
|
-
|
|
1938
|
-
logicItems =
|
|
1939
|
-
<span class="cstat-no" title="statement not covered" > break;<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" ></span></span></span>
|
|
1940
|
-
ca<span class="cstat-no" title="statement not covered" >se 'Bat</span>chAssignment':
|
|
1941
|
-
logicItems = [state.left?.expression, ...state.left?.members, ...state.rights.map((item: SelectMembers) => [item?.expression, ...item?.members]).flat(1)];
|
|
2796
|
+
case 'CallInterface':
|
|
2797
|
+
<span class="cstat-no" title="statement not covered" > logicItems = state.arguments?.map(<span class="fstat-no" title="function not covered" >(i</span>tem: Argument) => <span class="cstat-no" title="statement not covered" >item.expression)</span>;</span>
|
|
1942
2798
|
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1943
|
-
|
|
1944
|
-
logicItems = [state.
|
|
2799
|
+
case 'ExternalDestination':
|
|
2800
|
+
<span class="cstat-no" title="statement not covered" > logicItems = [state.anchor, state.link];</span>
|
|
1945
2801
|
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1946
|
-
|
|
1947
|
-
logicItems = [...state.
|
|
1948
|
-
<span class="cstat-no" title="statement not covered" > break;<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" ></span></span></span>
|
|
1949
|
-
ca<span class="cstat-no" title="statement not covered" >se 'New</span>Composite':
|
|
1950
|
-
logicItems = [...state.rights.map((item: SelectMembers) => item.expression)];
|
|
2802
|
+
case 'BatchAssignment':
|
|
2803
|
+
<span class="cstat-no" title="statement not covered" > logicItems = [state.left?.expression, ...state.left?.members, ...state.rights.map(<span class="fstat-no" title="function not covered" >(i</span>tem: SelectMembers) => <span class="cstat-no" title="statement not covered" >[item?.expression, ...item?.members])</span>.flat(1)];</span>
|
|
1951
2804
|
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1952
|
-
|
|
1953
|
-
logicItems = [
|
|
2805
|
+
case 'MemberExpression':
|
|
2806
|
+
<span class="cstat-no" title="statement not covered" > logicItems = [state.object, state.property];</span>
|
|
2807
|
+
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
2808
|
+
case 'StringInterpolation':
|
|
2809
|
+
<span class="cstat-no" title="statement not covered" > logicItems = [...state.expressions];</span>
|
|
2810
|
+
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
2811
|
+
case 'NewComposite':
|
|
2812
|
+
<span class="cstat-no" title="statement not covered" > logicItems = [...state.rights.map(<span class="fstat-no" title="function not covered" >(i</span>tem: SelectMembers) => <span class="cstat-no" title="statement not covered" >item.expression)</span>];</span>
|
|
2813
|
+
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
2814
|
+
case 'NewList':
|
|
2815
|
+
<span class="cstat-no" title="statement not covered" > logicItems = [...state.items];</span>
|
|
1954
2816
|
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1955
2817
|
default:
|
|
1956
|
-
break
|
|
1957
|
-
|
|
2818
|
+
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
2819
|
+
}
|
|
1958
2820
|
|
|
1959
|
-
return logicItems.filter((
|
|
2821
|
+
<span class="cstat-no" title="statement not covered" > return logicItems.filter(<span class="fstat-no" title="function not covered" >(i</span>tem: LogicItem) => <span class="cstat-no" title="statement not covered" >!!item)</span>;</span>
|
|
1960
2822
|
}
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
if (!target.app.miniEnable) {
|
|
1965
|
-
return false
|
|
1966
|
-
}
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
if (len > 2) {
|
|
2823
|
+
|
|
2824
|
+
/* 小程序影响的服务端发布 */
|
|
2825
|
+
function <span class="fstat-no" title="function not covered" >getMiniAppChange(</span>target: any, obj: any, action: string) {
|
|
2826
|
+
<span class="cstat-no" title="statement not covered" > if (!target.app.miniEnable) {</span>
|
|
2827
|
+
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
2828
|
+
}
|
|
2829
|
+
/* 分端以后需要改 */
|
|
2830
|
+
const len = <span class="cstat-no" title="statement not covered" >target.nodePath?.split('.').length;</span>
|
|
2831
|
+
<span class="cstat-no" title="statement not covered" > if (len > 2) {</span>
|
|
1970
2832
|
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
1971
|
-
}
|
|
1972
|
-
if (action === 'delete') {
|
|
2833
|
+
}
|
|
2834
|
+
<span class="cstat-no" title="statement not covered" > if (action === 'delete') {</span>
|
|
1973
2835
|
<span class="cstat-no" title="statement not covered" > return true;</span>
|
|
1974
|
-
}
|
|
1975
|
-
if ('name' in obj || 'title' in obj) {
|
|
1976
|
-
return true
|
|
2836
|
+
} else {
|
|
2837
|
+
<span class="cstat-no" title="statement not covered" > if ('name' in obj || 'title' in obj) {</span>
|
|
2838
|
+
<span class="cstat-no" title="statement not covered" > return true;</span>
|
|
1977
2839
|
}
|
|
1978
2840
|
}
|
|
1979
2841
|
}
|
|
1980
2842
|
|
|
1981
2843
|
let aiExecuted = 0;
|
|
1982
|
-
let sessionPath = ''
|
|
1983
|
-
// AI
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
app.emit('logic:accepted', { ...actionItem, sessionPath })
|
|
2844
|
+
let sessionPath = '';
|
|
2845
|
+
// AI 生成内容是否被采纳
|
|
2846
|
+
const handleAIPoint = <span class="fstat-no" title="function not covered" >(a</span>pp: any, actionItem: any) => {
|
|
2847
|
+
const { actionMsg, action } = <span class="cstat-no" title="statement not covered" >actionItem || {};</span>
|
|
2848
|
+
<span class="cstat-no" title="statement not covered" > if (aiExecuted > 0) {</span>
|
|
2849
|
+
<span class="cstat-no" title="statement not covered" > app.emit('logic:accepted', { ...actionItem, sessionPath });</span>
|
|
1988
2850
|
<span class="cstat-no" title="statement not covered" > aiExecuted -= 1;</span>
|
|
1989
|
-
}
|
|
1990
|
-
if (actionMsg.includes('自然语言生成代码') && !action) {
|
|
2851
|
+
}
|
|
2852
|
+
<span class="cstat-no" title="statement not covered" > if (actionMsg.includes('自然语言生成代码') && !action) {</span>
|
|
1991
2853
|
<span class="cstat-no" title="statement not covered" > aiExecuted += 1;</span>
|
|
1992
2854
|
// eslint-disable-next-line prefer-destructuring
|
|
1993
|
-
sessionPath = actionMsg.match(/:(.*)/)[1]
|
|
2855
|
+
<span class="cstat-no" title="statement not covered" > sessionPath = actionMsg.match(/:(.*)/)[1];</span>
|
|
1994
2856
|
}
|
|
1995
2857
|
}
|
|
1996
2858
|
|
|
1997
2859
|
/**
|
|
1998
|
-
*
|
|
1999
|
-
|
|
2000
|
-
async function
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2004
|
-
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
|
|
2010
|
-
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
if (
|
|
2014
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2037
|
-
|
|
2038
|
-
|
|
2039
|
-
|
|
2860
|
+
* 执行更新
|
|
2861
|
+
*/
|
|
2862
|
+
async function <span class="fstat-no" title="function not covered" >doAction(</span>app: any, actionItem: any) {
|
|
2863
|
+
const isOperationRecord = <span class="cstat-no" title="statement not covered" >operationRecordInfoMap.get('isOperationRecord');</span>
|
|
2864
|
+
<span class="cstat-no" title="statement not covered" > if (isOperationRecord) {</span>
|
|
2865
|
+
<span class="cstat-no" title="statement not covered" > console.log('正在进行操作栈回放操作,如需行任何Nasl操作请刷新页面');</span>
|
|
2866
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
2867
|
+
}
|
|
2868
|
+
let hasFrontEnd = <span class="cstat-no" title="statement not covered" >false;</span>
|
|
2869
|
+
let hasBackEnd = <span class="cstat-no" title="statement not covered" >false;</span>
|
|
2870
|
+
const actionList: any[] = <span class="cstat-no" title="statement not covered" >[];</span>
|
|
2871
|
+
const { list, actionMsg, action } = <span class="cstat-no" title="statement not covered" >actionItem || {};</span>
|
|
2872
|
+
<span class="cstat-no" title="statement not covered" > handleAIPoint(app, actionItem);</span>
|
|
2873
|
+
const itemloop = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(_</span>i: LogicItem, app: any, diffArr: string[]) => {</span>
|
|
2874
|
+
const _l = <span class="cstat-no" title="statement not covered" >getStatement(_i, app, diffArr);</span>
|
|
2875
|
+
<span class="cstat-no" title="statement not covered" > if (_l.length) {</span>
|
|
2876
|
+
<span class="cstat-no" title="statement not covered" > _l.map(<span class="fstat-no" title="function not covered" >(_</span>ii: LogicItem) => <span class="cstat-no" title="statement not covered" >itemloop(_ii, app, diffArr))</span>;</span>
|
|
2877
|
+
}
|
|
2878
|
+
};
|
|
2879
|
+
const loopEle = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(v</span>iew: View | ViewElement, checkAuth: boolean) => {</span>
|
|
2880
|
+
<span class="cstat-no" title="statement not covered" > if (view instanceof View) {</span>
|
|
2881
|
+
<span class="cstat-no" title="statement not covered" > view?.elements?.forEach(<span class="fstat-no" title="function not covered" >(i</span>tem) => <span class="cstat-no" title="statement not covered" >loopEle(item, checkAuth))</span>;</span>
|
|
2882
|
+
}
|
|
2883
|
+
<span class="cstat-no" title="statement not covered" > view?.children?.forEach(<span class="fstat-no" title="function not covered" >(i</span>tem) => <span class="cstat-no" title="statement not covered" >loopEle(item, checkAuth))</span>;</span>
|
|
2884
|
+
<span class="cstat-no" title="statement not covered" > if (view instanceof ViewElement) {</span>
|
|
2885
|
+
<span class="cstat-no" title="statement not covered" > if (view.bindEvents.length) {</span>
|
|
2886
|
+
const diffArr: string[] = <span class="cstat-no" title="statement not covered" >[];</span>
|
|
2887
|
+
<span class="cstat-no" title="statement not covered" > view.bindEvents.forEach(<span class="fstat-no" title="function not covered" >(b</span>indEvent) => {</span>
|
|
2888
|
+
<span class="cstat-no" title="statement not covered" > bindEvent.logics.forEach(<span class="fstat-no" title="function not covered" >(l</span>ogic) => {</span>
|
|
2889
|
+
<span class="cstat-no" title="statement not covered" > logic.body.forEach(<span class="fstat-no" title="function not covered" >(l</span>ogicItem) => <span class="cstat-no" title="statement not covered" >itemloop(logicItem, app, diffArr))</span>;</span>
|
|
2890
|
+
});
|
|
2891
|
+
});
|
|
2892
|
+
const result = <span class="cstat-no" title="statement not covered" >diffArr.filter(<span class="fstat-no" title="function not covered" >(i</span>tem) => <span class="cstat-no" title="statement not covered" >item.startsWith('app') || item.startsWith('extensions'))</span>;</span>
|
|
2893
|
+
<span class="cstat-no" title="statement not covered" > if (result.length) {</span>
|
|
2894
|
+
<span class="cstat-no" title="statement not covered" > hasBackEnd = true;</span>
|
|
2895
|
+
}
|
|
2896
|
+
}
|
|
2897
|
+
<span class="cstat-no" title="statement not covered" > if (view.tag === 'u-uploader' || view.tag === 'van-uploader') {</span>
|
|
2898
|
+
const bute = <span class="cstat-no" title="statement not covered" >view?.bindAttrs.find(<span class="fstat-no" title="function not covered" >(i</span>tem) => <span class="cstat-no" title="statement not covered" >item.name === 'url')</span>;</span>
|
|
2899
|
+
const needUpdateBackEnd = <span class="cstat-no" title="statement not covered" >bute?.value?.endsWith('/import') || bute?.value?.includes('/upload/');</span>
|
|
2900
|
+
<span class="cstat-no" title="statement not covered" > if (checkAuth) {</span>
|
|
2901
|
+
<span class="cstat-no" title="statement not covered" > if (needUpdateBackEnd && !view.view.parentAuth) {</span>
|
|
2902
|
+
<span class="cstat-no" title="statement not covered" > hasBackEnd = true;</span>
|
|
2903
|
+
}
|
|
2904
|
+
} else {
|
|
2905
|
+
<span class="cstat-no" title="statement not covered" > if (needUpdateBackEnd) {</span>
|
|
2906
|
+
<span class="cstat-no" title="statement not covered" > hasBackEnd = true;</span>
|
|
2040
2907
|
}
|
|
2041
2908
|
}
|
|
2042
2909
|
}
|
|
2043
2910
|
}
|
|
2044
|
-
}
|
|
2045
|
-
|
|
2046
|
-
const loopEleAuth =
|
|
2047
|
-
|
|
2048
|
-
const bindDirective = item?.bindDirectives?.find(
|
|
2049
|
-
<span class="
|
|
2050
|
-
)
|
|
2051
|
-
if (bindDirective) {
|
|
2911
|
+
};
|
|
2912
|
+
|
|
2913
|
+
const loopEleAuth = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(v</span>iewElement: ViewElement) => {</span>
|
|
2914
|
+
<span class="cstat-no" title="statement not covered" > viewElement?.children?.forEach(<span class="fstat-no" title="function not covered" >(i</span>tem: ViewElement) => {</span>
|
|
2915
|
+
const bindDirective = <span class="cstat-no" title="statement not covered" >item?.bindDirectives?.find(</span>
|
|
2916
|
+
<span class="fstat-no" title="function not covered" > (i</span>tem: BindDirective) => <span class="cstat-no" title="statement not covered" >item.name === 'auth'</span>
|
|
2917
|
+
)
|
|
2918
|
+
<span class="cstat-no" title="statement not covered" > if (bindDirective) {</span>
|
|
2052
2919
|
<span class="cstat-no" title="statement not covered" > hasBackEnd = true</span>
|
|
2053
2920
|
}
|
|
2054
|
-
loopEleAuth(item)
|
|
2055
|
-
|
|
2056
|
-
}
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
list.forEach(
|
|
2060
|
-
const
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
if (['backend', 'overriddenLogics', 'dataSources', 'processes', 'roles', 'logics', 'enums', 'structures', 'interfaces', 'interfaceDependencies', 'configuration', 'dependencies', 'authLogics', 'authLogicsForCallInterface', 'triggerLaunchers', 'connections'].some((
|
|
2921
|
+
<span class="cstat-no" title="statement not covered" > loopEleAuth(item)</span>
|
|
2922
|
+
})
|
|
2923
|
+
}
|
|
2924
|
+
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
2925
|
+
<span class="cstat-no" title="statement not covered" > if (Array.isArray(list)) {</span>
|
|
2926
|
+
<span class="cstat-no" title="statement not covered" > list.forEach(<span class="fstat-no" title="function not covered" >(e</span>vent) => {</span>
|
|
2927
|
+
const emitTarget = <span class="cstat-no" title="statement not covered" >event?.originEvent?.target as SyntaxNode;</span>
|
|
2928
|
+
const _path: string = <span class="cstat-no" title="statement not covered" >event.originEvent.path;</span>
|
|
2929
|
+
const _root = <span class="cstat-no" title="statement not covered" >_path.split('.')?.[1] || '';</span>
|
|
2930
|
+
<span class="cstat-no" title="statement not covered" > if (['backend', 'overriddenLogics', 'dataSources', 'processes', 'roles', 'logics', 'enums', 'structures', 'interfaces', 'interfaceDependencies', 'configuration', 'dependencies', 'authLogics', 'authLogicsForCallInterface', 'triggerLaunchers', 'connections'].some(<span class="fstat-no" title="function not covered" >(i</span>tem) => <span class="cstat-no" title="statement not covered" >_root.startsWith(item))</span>) {</span>
|
|
2064
2931
|
<span class="cstat-no" title="statement not covered" > hasBackEnd = true;</span>
|
|
2065
|
-
}
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
hasBackEnd = true
|
|
2070
|
-
hasFrontEnd = true
|
|
2071
|
-
|
|
2072
|
-
}
|
|
2073
|
-
if (emitTarget.concept === 'ValidationRule') {
|
|
2074
|
-
if (
|
|
2932
|
+
}
|
|
2933
|
+
<span class="cstat-no" title="statement not covered" > if (emitTarget) {</span>
|
|
2934
|
+
<span class="cstat-no" title="statement not covered" > if (emitTarget.concept === 'App') {</span>
|
|
2935
|
+
<span class="cstat-no" title="statement not covered" > if (event?.object?.preferenceMap || event?.originEvent?.object?.preferenceMap) {</span>
|
|
2936
|
+
<span class="cstat-no" title="statement not covered" > hasBackEnd = true</span>
|
|
2937
|
+
<span class="cstat-no" title="statement not covered" > hasFrontEnd = true</span>
|
|
2938
|
+
}
|
|
2939
|
+
}
|
|
2940
|
+
<span class="cstat-no" title="statement not covered" > if (emitTarget.concept === 'ValidationRule') {</span>
|
|
2941
|
+
<span class="cstat-no" title="statement not covered" > if (</span>
|
|
2075
2942
|
event?.object?.enableServerValidation ||
|
|
2076
|
-
|
|
2077
|
-
)
|
|
2078
|
-
hasBackEnd = true
|
|
2079
|
-
hasFrontEnd = true
|
|
2080
|
-
|
|
2081
|
-
}
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
emitTarget.body.forEach((
|
|
2086
|
-
itemloop(it, app, diffArr)
|
|
2087
|
-
})
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
if (result.length) {
|
|
2091
|
-
hasBackEnd = true
|
|
2092
|
-
|
|
2093
|
-
}
|
|
2094
|
-
if ('view' in emitTarget && emitTarget.view) {
|
|
2943
|
+
event?.originEvent?.object?.enableServerValidation
|
|
2944
|
+
) {
|
|
2945
|
+
<span class="cstat-no" title="statement not covered" > hasBackEnd = true</span>
|
|
2946
|
+
<span class="cstat-no" title="statement not covered" > hasFrontEnd = true</span>
|
|
2947
|
+
}
|
|
2948
|
+
}
|
|
2949
|
+
<span class="cstat-no" title="statement not covered" > if (emitTarget.concept === 'Logic') {</span>
|
|
2950
|
+
const diffArr: string[] = <span class="cstat-no" title="statement not covered" >[];</span>
|
|
2951
|
+
<span class="cstat-no" title="statement not covered" > if (emitTarget.body.length > 2) {</span>
|
|
2952
|
+
<span class="cstat-no" title="statement not covered" > emitTarget.body.forEach(<span class="fstat-no" title="function not covered" >(i</span>t: LogicItem) => {</span>
|
|
2953
|
+
<span class="cstat-no" title="statement not covered" > itemloop(it, app, diffArr);</span>
|
|
2954
|
+
});
|
|
2955
|
+
}
|
|
2956
|
+
const result = <span class="cstat-no" title="statement not covered" >diffArr.filter(<span class="fstat-no" title="function not covered" >(i</span>tem) => <span class="cstat-no" title="statement not covered" >item.startsWith('app') || item.startsWith('extensions'))</span>;</span>
|
|
2957
|
+
<span class="cstat-no" title="statement not covered" > if (result.length) {</span>
|
|
2958
|
+
<span class="cstat-no" title="statement not covered" > hasBackEnd = true;</span>
|
|
2959
|
+
}
|
|
2960
|
+
}
|
|
2961
|
+
<span class="cstat-no" title="statement not covered" > if ('view' in emitTarget && emitTarget.view) {</span>
|
|
2095
2962
|
<span class="cstat-no" title="statement not covered" > hasFrontEnd = true</span>
|
|
2096
|
-
}
|
|
2097
|
-
|
|
2963
|
+
}
|
|
2964
|
+
<span class="cstat-no" title="statement not covered" > if (emitTarget.concept === 'BindDirective') {</span>
|
|
2098
2965
|
const isDelete = <span class="cstat-no" title="statement not covered" >event?.originEvent?.action === 'delete'</span>
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
if (isAuto) {
|
|
2102
|
-
hasBackEnd = true
|
|
2103
|
-
|
|
2104
|
-
}
|
|
2105
|
-
if (event?.originEvent?.object?.name === 'auth') {
|
|
2106
|
-
hasBackEnd = true
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
if (getMiniAppChange(emitTarget, event?.originEvent?.object, event?.originEvent?.action)) {
|
|
2111
|
-
|
|
2112
|
-
}
|
|
2113
|
-
|
|
2114
|
-
const
|
|
2115
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2966
|
+
<span class="cstat-no" title="statement not covered" > if (isDelete) {</span>
|
|
2967
|
+
const isAuto = <span class="cstat-no" title="statement not covered" >~event?.originEvent?.path?.indexOf('name=auth')</span>
|
|
2968
|
+
<span class="cstat-no" title="statement not covered" > if (isAuto) {</span>
|
|
2969
|
+
<span class="cstat-no" title="statement not covered" > hasBackEnd = true</span>
|
|
2970
|
+
}
|
|
2971
|
+
}
|
|
2972
|
+
<span class="cstat-no" title="statement not covered" > if (event?.originEvent?.object?.name === 'auth') {</span>
|
|
2973
|
+
<span class="cstat-no" title="statement not covered" > hasBackEnd = true</span>
|
|
2974
|
+
}
|
|
2975
|
+
}
|
|
2976
|
+
<span class="cstat-no" title="statement not covered" > if (emitTarget.concept === 'View') {</span>
|
|
2977
|
+
<span class="cstat-no" title="statement not covered" > if (getMiniAppChange(emitTarget, event?.originEvent?.object, event?.originEvent?.action)) {</span>
|
|
2978
|
+
<span class="cstat-no" title="statement not covered" > hasBackEnd = true;</span>
|
|
2979
|
+
}
|
|
2980
|
+
|
|
2981
|
+
const isDelete = <span class="cstat-no" title="statement not covered" >event?.originEvent?.action === 'delete';</span>
|
|
2982
|
+
const isAuthView = <span class="cstat-no" title="statement not covered" >emitTarget.auth && event?.originEvent?.object?.name;</span>
|
|
2983
|
+
const isUpdateAuth = <span class="cstat-no" title="statement not covered" >event?.originEvent?.action === 'update' && "auth" in (event?.originEvent?.object || {});</span>
|
|
2984
|
+
const isUpdateAuthDes = <span class="cstat-no" title="statement not covered" >event?.originEvent?.action === 'update' && "authDescription" in (event?.originEvent?.object || {});</span>
|
|
2985
|
+
const isUpdateBindRoles = <span class="cstat-no" title="statement not covered" >event?.originEvent?.action === 'update' && event?.originEvent?.object && event?.originEvent?.object?.bindRoles;</span>
|
|
2986
|
+
<span class="cstat-no" title="statement not covered" > if (isDelete || isUpdateAuth || isUpdateBindRoles || isAuthView||isUpdateAuthDes) {</span>
|
|
2987
|
+
<span class="cstat-no" title="statement not covered" > hasBackEnd = true;</span>
|
|
2119
2988
|
// const app = emitTarget.app;
|
|
2120
2989
|
// const diffArr: string[] = [];
|
|
2121
2990
|
// emitTarget.logics.forEach((logic: Logic) => {
|
|
@@ -2130,76 +2999,79 @@ async function doAc<span class="cstat-no" title="statement not covered" >tion(a<
|
|
|
2130
2999
|
// hasBackEnd = true;
|
|
2131
3000
|
// }
|
|
2132
3001
|
// emitTarget.children.forEach((item: View | ViewElement) => loopEle(item, isDelete));
|
|
2133
|
-
|
|
3002
|
+
// emitTarget.elements.forEach((item: View | ViewElement) => loopEle(item, isDelete));
|
|
2134
3003
|
}
|
|
2135
3004
|
<span class="cstat-no" title="statement not covered" > hasFrontEnd = true;</span>
|
|
2136
|
-
}
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
3005
|
+
}
|
|
3006
|
+
<span class="cstat-no" title="statement not covered" > if (emitTarget.concept === 'ViewElement') {</span>
|
|
3007
|
+
<span class="cstat-no" title="statement not covered" > if ("authDescription" in (event?.originEvent?.object || {})) {</span>
|
|
3008
|
+
<span class="cstat-no" title="statement not covered" > hasBackEnd = true;</span>
|
|
3009
|
+
} ;
|
|
3010
|
+
<span class="cstat-no" title="statement not covered" > if (event?.originEvent?.object?.name) {</span>
|
|
3011
|
+
const bindDirective = <span class="cstat-no" title="statement not covered" >emitTarget.bindDirectives.find(</span>
|
|
3012
|
+
<span class="fstat-no" title="function not covered" > (i</span>tem: BindDirective) => <span class="cstat-no" title="statement not covered" >item.name === 'auth'</span>
|
|
3013
|
+
)
|
|
3014
|
+
<span class="cstat-no" title="statement not covered" > if (bindDirective) {</span>
|
|
3015
|
+
<span class="cstat-no" title="statement not covered" > hasBackEnd = true;</span>
|
|
3016
|
+
}
|
|
3017
|
+
}
|
|
3018
|
+
<span class="cstat-no" title="statement not covered" > if (event?.originEvent?.action === 'delete') {</span>
|
|
3019
|
+
const bindDirective = <span class="cstat-no" title="statement not covered" >emitTarget?.bindDirectives?.find(</span>
|
|
3020
|
+
<span class="fstat-no" title="function not covered" > (i</span>tem: BindDirective) => <span class="cstat-no" title="statement not covered" >item.name === 'auth'</span>
|
|
3021
|
+
)
|
|
3022
|
+
<span class="cstat-no" title="statement not covered" > if (bindDirective) {</span>
|
|
2151
3023
|
<span class="cstat-no" title="statement not covered" > hasBackEnd = true</span>
|
|
2152
3024
|
}
|
|
2153
3025
|
<span class="cstat-no" title="statement not covered" > loopEleAuth(emitTarget)</span>
|
|
2154
|
-
}
|
|
2155
|
-
|
|
2156
|
-
if (event?.originEvent?.object && event?.originEvent?.object?.bindRoles) {
|
|
2157
|
-
hasBackEnd = true
|
|
2158
|
-
|
|
3026
|
+
}
|
|
3027
|
+
<span class="cstat-no" title="statement not covered" > if (event?.originEvent?.action !== 'create') {</span>
|
|
3028
|
+
<span class="cstat-no" title="statement not covered" > if (event?.originEvent?.object && event?.originEvent?.object?.bindRoles) {</span>
|
|
3029
|
+
<span class="cstat-no" title="statement not covered" > hasBackEnd = true</span>
|
|
3030
|
+
}
|
|
2159
3031
|
}
|
|
2160
3032
|
<span class="cstat-no" title="statement not covered" > loopEle(emitTarget, true)</span>
|
|
2161
3033
|
}
|
|
2162
|
-
|
|
2163
|
-
|
|
3034
|
+
<span class="cstat-no" title="statement not covered" > if (emitTarget.concept === 'BindAttribute' && emitTarget.name === 'url') {</span>
|
|
3035
|
+
const needUpdateBackEnd =
|
|
2164
3036
|
<span class="cstat-no" title="statement not covered" > emitTarget?.value?.endsWith('/import') || emitTarget?.value?.includes('/upload/')</span>
|
|
2165
|
-
if (!emitTarget.view.parentAuth && needUpdateBackEnd) {
|
|
2166
|
-
hasBackEnd = true
|
|
2167
|
-
|
|
2168
|
-
}
|
|
2169
|
-
|
|
2170
|
-
const arrlist:
|
|
2171
|
-
getLogic((emitTarget as CallLogic).calleeKey, emitTarget.app, arrlist)
|
|
2172
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2173
|
-
|
|
2174
|
-
if (result.length) {
|
|
2175
|
-
hasBackEnd = true
|
|
3037
|
+
<span class="cstat-no" title="statement not covered" > if (!emitTarget.view.parentAuth && needUpdateBackEnd) {</span>
|
|
3038
|
+
<span class="cstat-no" title="statement not covered" > hasBackEnd = true</span>
|
|
3039
|
+
}
|
|
3040
|
+
}
|
|
3041
|
+
<span class="cstat-no" title="statement not covered" > if (emitTarget.concept === 'CallLogic') {</span>
|
|
3042
|
+
const arrlist: string[] = <span class="cstat-no" title="statement not covered" >[];</span>
|
|
3043
|
+
<span class="cstat-no" title="statement not covered" > getLogic((emitTarget as CallLogic).calleeKey, emitTarget.app, arrlist);</span>
|
|
3044
|
+
const result = <span class="cstat-no" title="statement not covered" >arrlist.filter(<span class="fstat-no" title="function not covered" >(i</span>tem) => <span class="cstat-no" title="statement not covered" >item.startsWith('app') || item.startsWith('extensions'))</span>;</span>
|
|
3045
|
+
// console.log(result, 'CallLogic');
|
|
3046
|
+
<span class="cstat-no" title="statement not covered" > if (result.length) {</span>
|
|
3047
|
+
<span class="cstat-no" title="statement not covered" > hasBackEnd = true;</span>
|
|
2176
3048
|
}
|
|
2177
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2178
|
-
//<span class="cstat-no" title="statement not covered" > 更新端时需要出发后端更新</span>
|
|
2179
|
-
if (emitTarget.concept === 'Frontend') {
|
|
2180
|
-
hasBackEnd = true;
|
|
2181
3049
|
}
|
|
2182
|
-
|
|
2183
|
-
<span class="cstat-no" title="statement not covered"
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
3050
|
+
// 更新端时需要出发后端更新
|
|
3051
|
+
<span class="cstat-no" title="statement not covered" > if (emitTarget.concept === 'Frontend') {</span>
|
|
3052
|
+
<span class="cstat-no" title="statement not covered" > hasBackEnd = true;</span>
|
|
3053
|
+
}
|
|
3054
|
+
}
|
|
3055
|
+
|
|
3056
|
+
<span class="cstat-no" title="statement not covered" > event.eventList.forEach(<span class="fstat-no" title="function not covered" >({</span> action, path, object: objItem }: { action: string; path: string; object: any }) => {</span>
|
|
3057
|
+
<span class="cstat-no" title="statement not covered" > if (Array.isArray(objItem)) {</span>
|
|
3058
|
+
<span class="cstat-no" title="statement not covered" > if (action === 'update') {</span>
|
|
3059
|
+
<span class="cstat-no" title="statement not covered" > actionList.push({</span>
|
|
2188
3060
|
action,
|
|
2189
3061
|
path,
|
|
2190
3062
|
node: objItem[0],
|
|
2191
|
-
|
|
2192
|
-
}
|
|
2193
|
-
objItem.forEach((
|
|
2194
|
-
actionList.push({
|
|
3063
|
+
});
|
|
3064
|
+
} else {
|
|
3065
|
+
<span class="cstat-no" title="statement not covered" > objItem.forEach(<span class="fstat-no" title="function not covered" >(i</span>tem, index) => {</span>
|
|
3066
|
+
<span class="cstat-no" title="statement not covered" > actionList.push({</span>
|
|
2195
3067
|
action,
|
|
2196
3068
|
path,
|
|
2197
3069
|
node: item,
|
|
2198
3070
|
});
|
|
2199
3071
|
});
|
|
2200
|
-
|
|
3072
|
+
}
|
|
2201
3073
|
} else {
|
|
2202
|
-
actionList.push({
|
|
3074
|
+
<span class="cstat-no" title="statement not covered" > actionList.push({</span>
|
|
2203
3075
|
action,
|
|
2204
3076
|
path,
|
|
2205
3077
|
object: objItem,
|
|
@@ -2207,46 +3079,66 @@ async function doAc<span class="cstat-no" title="statement not covered" >tion(a<
|
|
|
2207
3079
|
}
|
|
2208
3080
|
});
|
|
2209
3081
|
});
|
|
2210
|
-
|
|
2211
|
-
}
|
|
2212
|
-
console.log(error)
|
|
2213
|
-
taskQueue.refreshNasl(app, {
|
|
3082
|
+
}
|
|
3083
|
+
} catch (error) {
|
|
3084
|
+
<span class="cstat-no" title="statement not covered" > console.log(error);</span>
|
|
3085
|
+
<span class="cstat-no" title="statement not covered" > taskQueue.refreshNasl(app, {</span>
|
|
2214
3086
|
errorInfo: {
|
|
2215
3087
|
message: error?.message,
|
|
2216
3088
|
stack: error?.stack,
|
|
2217
|
-
|
|
3089
|
+
},
|
|
2218
3090
|
});
|
|
2219
|
-
return
|
|
2220
|
-
}
|
|
3091
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
3092
|
+
}
|
|
2221
3093
|
|
|
2222
|
-
const
|
|
2223
|
-
|
|
2224
|
-
|
|
3094
|
+
const uuid = <span class="cstat-no" title="statement not covered" >uuidv4().replace(/-/g, '');</span>
|
|
3095
|
+
const instructList = <span class="cstat-no" title="statement not covered" >[{</span>
|
|
3096
|
+
uuid,
|
|
3097
|
+
actions: actionList,
|
|
2225
3098
|
}];
|
|
2226
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2227
|
-
|
|
2228
|
-
|
|
2229
|
-
|
|
3099
|
+
const operation: Operation = <span class="cstat-no" title="statement not covered" >{</span>
|
|
3100
|
+
type: 'doAction',
|
|
3101
|
+
uuid,
|
|
3102
|
+
actionItem: {
|
|
3103
|
+
actionMsg,
|
|
3104
|
+
list: list.map(<span class="fstat-no" title="function not covered" >(i</span>tem: any) => {
|
|
3105
|
+
const { path, action, object, oldObject, parentKey, index } = <span class="cstat-no" title="statement not covered" >item?.originEvent || {};</span>
|
|
3106
|
+
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
3107
|
+
path,
|
|
3108
|
+
action,
|
|
3109
|
+
parentKey,
|
|
3110
|
+
index,
|
|
3111
|
+
object: object?.toJSON?.() || object,
|
|
3112
|
+
oldObject: oldObject?.toJSON?.() || oldObject,
|
|
3113
|
+
}
|
|
3114
|
+
}),
|
|
3115
|
+
},
|
|
3116
|
+
};
|
|
3117
|
+
<span class="cstat-no" title="statement not covered" > saveNasl({ app, hasFrontEnd, hasBackEnd, instructList, operationList: [operation] });</span>
|
|
3118
|
+
// 进行nasl操作后需要将Index重置
|
|
3119
|
+
<span class="cstat-no" title="statement not covered" > operationRecordInfoMap.set('operationRecordIndex', null);</span>
|
|
3120
|
+
<span class="cstat-no" title="statement not covered" > if (!app._historying) {</span>
|
|
3121
|
+
<span class="cstat-no" title="statement not covered" > if (app._historyIndex !== app._historyList.length) {</span>
|
|
2230
3122
|
<span class="cstat-no" title="statement not covered" > app._historyList = app._historyList.splice(0, app._historyIndex);</span>
|
|
2231
3123
|
}
|
|
2232
|
-
|
|
3124
|
+
<span class="cstat-no" title="statement not covered" > app._historyList.push({</span>
|
|
2233
3125
|
actionMsg,
|
|
2234
|
-
<span class="
|
|
3126
|
+
list: list.map(<span class="fstat-no" title="function not covered" >(i</span>tem: any) => <span class="cstat-no" title="statement not covered" >item?.originEvent)</span>,
|
|
2235
3127
|
});
|
|
2236
|
-
|
|
3128
|
+
<span class="cstat-no" title="statement not covered" > app._historyIndex = app._historyList.length;</span>
|
|
2237
3129
|
} else {
|
|
2238
|
-
const actionMap = {
|
|
3130
|
+
const actionMap = <span class="cstat-no" title="statement not covered" >{</span>
|
|
2239
3131
|
undo: '已撤销操作:',
|
|
2240
|
-
redo: '
|
|
2241
|
-
|
|
2242
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2243
|
-
|
|
2244
|
-
if (process.env.BUILD_TARGET !== 'node') {
|
|
2245
|
-
<span class="cstat-no" title="statement not covered" > require('element-plus')
|
|
3132
|
+
redo: '已重做操作:',
|
|
3133
|
+
};
|
|
3134
|
+
let msg = <span class="cstat-no" title="statement not covered" >actionMap[action as 'undo' | 'redo'];</span>
|
|
3135
|
+
<span class="cstat-no" title="statement not covered" > msg += actionMsg;</span>
|
|
3136
|
+
<span class="cstat-no" title="statement not covered" > if (process.env.BUILD_TARGET !== 'node') {</span>
|
|
3137
|
+
<span class="cstat-no" title="statement not covered" > require('element-plus').ElMessage.info(msg);</span>
|
|
2246
3138
|
}
|
|
2247
3139
|
<span class="cstat-no" title="statement not covered" > app._historying = false;</span>
|
|
2248
3140
|
}
|
|
2249
|
-
stepRecorder.initialized && stepRecorder.record(actionMsg, actionItem, actionList)
|
|
3141
|
+
<span class="cstat-no" title="statement not covered" > stepRecorder.initialized && stepRecorder.record(actionMsg, actionItem, actionList);</span>
|
|
2250
3142
|
}
|
|
2251
3143
|
|
|
2252
3144
|
type Instruct = {
|
|
@@ -2258,6 +3150,7 @@ type TaskOption = {
|
|
|
2258
3150
|
hasFrontEnd: boolean,
|
|
2259
3151
|
hasBackEnd: boolean,
|
|
2260
3152
|
instructList: Instruct[],
|
|
3153
|
+
operationList: Operation[],
|
|
2261
3154
|
};
|
|
2262
3155
|
enum TaskQueueStatus {
|
|
2263
3156
|
ExceedMaxTaskCount,
|
|
@@ -2275,141 +3168,163 @@ class TaskQueue {
|
|
|
2275
3168
|
lastQueue: TaskOption[] = []
|
|
2276
3169
|
running: Boolean = false
|
|
2277
3170
|
maxTaskCount: number = 10
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
addTask(task: TaskOption) {
|
|
3171
|
+
status?: TaskQueueStatus = undefined
|
|
3172
|
+
|
|
3173
|
+
<span class="fstat-no" title="function not covered" > addTask(</span>task: TaskOption) {
|
|
2281
3174
|
<span class="cstat-no" title="statement not covered" > this.queue.push(task);</span>
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
this.status = TaskQueueStatus.ExceedMaxTaskCount
|
|
2285
|
-
task.app.emit('ExceedMaxTaskCount')
|
|
2286
|
-
|
|
2287
|
-
|
|
2288
|
-
this.run()
|
|
2289
|
-
|
|
2290
|
-
|
|
2291
|
-
|
|
3175
|
+
|
|
3176
|
+
<span class="cstat-no" title="statement not covered" > if (this.queue.length >= this.maxTaskCount) {</span>
|
|
3177
|
+
<span class="cstat-no" title="statement not covered" > this.status = TaskQueueStatus.ExceedMaxTaskCount;</span>
|
|
3178
|
+
<span class="cstat-no" title="statement not covered" > task.app.emit('ExceedMaxTaskCount');</span>
|
|
3179
|
+
}
|
|
3180
|
+
|
|
3181
|
+
<span class="cstat-no" title="statement not covered" > this.run();</span>
|
|
3182
|
+
}
|
|
3183
|
+
|
|
3184
|
+
<span class="fstat-no" title="function not covered" > clear(</span>) {
|
|
2292
3185
|
<span class="cstat-no" title="statement not covered" > this.queue = [];</span>
|
|
2293
3186
|
<span class="cstat-no" title="statement not covered" > this.lastQueue = [];</span>
|
|
2294
|
-
this.status = undefined
|
|
2295
|
-
this.running = false
|
|
2296
|
-
|
|
2297
|
-
|
|
2298
|
-
|
|
3187
|
+
<span class="cstat-no" title="statement not covered" > this.status = undefined;</span>
|
|
3188
|
+
<span class="cstat-no" title="statement not covered" > this.running = false;</span>
|
|
3189
|
+
}
|
|
3190
|
+
|
|
3191
|
+
<span class="fstat-no" title="function not covered" > async </span>run(queue = <span class="branch-0 cbranch-no" title="branch not covered" >this.queue)</span> {
|
|
2299
3192
|
<span class="cstat-no" title="statement not covered" > if (this.running)</span>
|
|
2300
3193
|
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
2301
|
-
if (queue.length === 0)
|
|
2302
|
-
|
|
2303
|
-
|
|
2304
|
-
const app =
|
|
2305
|
-
let hasFrontEnd =
|
|
2306
|
-
let hasBackEnd = false
|
|
2307
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2308
|
-
<span class="cstat-no" title="statement not covered"
|
|
2309
|
-
|
|
3194
|
+
<span class="cstat-no" title="statement not covered" > if (queue.length === 0)</span>
|
|
3195
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
3196
|
+
|
|
3197
|
+
const app = <span class="cstat-no" title="statement not covered" >queue[0].app;</span>
|
|
3198
|
+
let hasFrontEnd = <span class="cstat-no" title="statement not covered" >false;</span>
|
|
3199
|
+
let hasBackEnd = <span class="cstat-no" title="statement not covered" >false;</span>
|
|
3200
|
+
let instructList: Instruct[] = <span class="cstat-no" title="statement not covered" >[];</span>
|
|
3201
|
+
let operationList: Operation[] = <span class="cstat-no" title="statement not covered" >[];</span>
|
|
3202
|
+
|
|
3203
|
+
<span class="cstat-no" title="statement not covered" > for (const task of queue) {</span>
|
|
2310
3204
|
<span class="cstat-no" title="statement not covered" > if (task.hasFrontEnd)</span>
|
|
2311
3205
|
<span class="cstat-no" title="statement not covered" > hasFrontEnd = true;</span>
|
|
2312
3206
|
<span class="cstat-no" title="statement not covered" > if (task.hasBackEnd)</span>
|
|
2313
|
-
hasBackEnd = true
|
|
2314
|
-
instructList = instructList.concat(task.instructList)
|
|
2315
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2316
|
-
|
|
2317
|
-
|
|
2318
|
-
|
|
2319
|
-
this.
|
|
2320
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2321
|
-
|
|
2322
|
-
|
|
2323
|
-
|
|
2324
|
-
|
|
3207
|
+
<span class="cstat-no" title="statement not covered" > hasBackEnd = true;</span>
|
|
3208
|
+
<span class="cstat-no" title="statement not covered" > instructList = instructList.concat(task.instructList);</span>
|
|
3209
|
+
<span class="cstat-no" title="statement not covered" > operationList = operationList.concat(task.operationList);</span>
|
|
3210
|
+
}
|
|
3211
|
+
|
|
3212
|
+
<span class="cstat-no" title="statement not covered" > if (queue === this.queue) {</span>
|
|
3213
|
+
<span class="cstat-no" title="statement not covered" > this.lastQueue = [...queue];</span>
|
|
3214
|
+
<span class="cstat-no" title="statement not covered" > this.queue = [];</span>
|
|
3215
|
+
}
|
|
3216
|
+
|
|
3217
|
+
<span class="cstat-no" title="statement not covered" > this.running = true;</span>
|
|
3218
|
+
const error = <span class="cstat-no" title="statement not covered" >await _saveNasl({</span>
|
|
3219
|
+
app, hasFrontEnd, hasBackEnd, instructList, operationList
|
|
2325
3220
|
});
|
|
2326
3221
|
|
|
2327
|
-
|
|
2328
|
-
|
|
2329
|
-
|
|
2330
|
-
|
|
2331
|
-
|
|
3222
|
+
// code: 401650, 检测到当前应用拉取操作已被强制结束, 用户确认后再刷新
|
|
3223
|
+
// code: 500502 msg: '该应用已在新tab 页打开,请刷新!' 不重试或刷新
|
|
3224
|
+
// code: 500505 需要刷新浏览器
|
|
3225
|
+
<span class="cstat-no" title="statement not covered" > if (!error)</span>
|
|
3226
|
+
<span class="cstat-no" title="statement not covered" > this.recover(app);</span>
|
|
3227
|
+
else <span class="cstat-no" title="statement not covered" >if (![401650, 500502, 500505].includes(error.code)) {</span>
|
|
2332
3228
|
// 连接失败,或超时,或后端持久化异常
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
this.running = false
|
|
3229
|
+
<span class="cstat-no" title="statement not covered" > if ((error.message === 'Network Error' || error.message?.includes('timeout') || error.code === 500500)</span>
|
|
3230
|
+
&& this.status !== TaskQueueStatus.Retrying) {
|
|
3231
|
+
<span class="cstat-no" title="statement not covered" > this.running = false;</span>
|
|
2336
3232
|
<span class="cstat-no" title="statement not covered" > this.retry();</span>
|
|
2337
3233
|
} else
|
|
2338
|
-
<span class="cstat-no" title="statement not covered" > this.
|
|
2339
|
-
|
|
2340
|
-
return
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
<span class="cstat-no" title="statement not covered" > this.running
|
|
2344
|
-
|
|
2345
|
-
this.run()
|
|
2346
|
-
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
if (this.lastQueue.length === 0)
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2353
|
-
<span class="cstat-no" title="statement not covered" > this.status =
|
|
2354
|
-
app.emit('Retrying')
|
|
2355
|
-
this.run(this.lastQueue)
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
async refreshNasl(app: App, options: RefreshNaslOptions = { errorInfo: {} }) {
|
|
2359
|
-
const failedQueue = this.lastQueue.map(({ hasFrontEnd, hasBackEnd, instructList }) => ({
|
|
2360
|
-
hasFrontEnd
|
|
3234
|
+
<span class="cstat-no" title="statement not covered" > this.refreshNasl(app);</span>
|
|
3235
|
+
|
|
3236
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
3237
|
+
}
|
|
3238
|
+
|
|
3239
|
+
<span class="cstat-no" title="statement not covered" > this.running = false;</span>
|
|
3240
|
+
|
|
3241
|
+
<span class="cstat-no" title="statement not covered" > this.run();</span>
|
|
3242
|
+
}
|
|
3243
|
+
|
|
3244
|
+
<span class="fstat-no" title="function not covered" > retry(</span>) {
|
|
3245
|
+
<span class="cstat-no" title="statement not covered" > if (this.lastQueue.length === 0)</span>
|
|
3246
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
3247
|
+
|
|
3248
|
+
const app = <span class="cstat-no" title="statement not covered" >this.lastQueue[0].app;</span>
|
|
3249
|
+
<span class="cstat-no" title="statement not covered" > this.status = TaskQueueStatus.Retrying;</span>
|
|
3250
|
+
<span class="cstat-no" title="statement not covered" > app.emit('Retrying');</span>
|
|
3251
|
+
<span class="cstat-no" title="statement not covered" > this.run(this.lastQueue);</span>
|
|
3252
|
+
}
|
|
3253
|
+
|
|
3254
|
+
<span class="fstat-no" title="function not covered" > async </span>refreshNasl(app: App, options: RefreshNaslOptions = <span class="branch-0 cbranch-no" title="branch not covered" >{ errorInfo: {} })</span> {
|
|
3255
|
+
const failedQueue = <span class="cstat-no" title="statement not covered" >this.lastQueue.map(<span class="fstat-no" title="function not covered" >({</span> hasFrontEnd, hasBackEnd, instructList }) => (<span class="cstat-no" title="statement not covered" >{</span></span>
|
|
3256
|
+
hasFrontEnd, hasBackEnd, instructList,
|
|
2361
3257
|
}));
|
|
2362
|
-
const queue = this.queue.map(({ hasFrontEnd, hasBackEnd, instructList }) => ({
|
|
2363
|
-
|
|
3258
|
+
const queue = <span class="cstat-no" title="statement not covered" >this.queue.map(<span class="fstat-no" title="function not covered" >({</span> hasFrontEnd, hasBackEnd, instructList }) => (<span class="cstat-no" title="statement not covered" >{</span></span>
|
|
3259
|
+
hasFrontEnd, hasBackEnd, instructList,
|
|
2364
3260
|
}));
|
|
2365
|
-
await storageService.saveFrontendNasl({
|
|
3261
|
+
<span class="cstat-no" title="statement not covered" > await storageService.saveFrontendNasl({</span>
|
|
2366
3262
|
body: {
|
|
2367
3263
|
nasl: app?.toJSON(),
|
|
2368
3264
|
failedQueue,
|
|
2369
3265
|
queue,
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
}).catch((
|
|
2373
|
-
<span class="cstat-no" title="statement not covered" > console.log(
|
|
2374
|
-
|
|
2375
|
-
this.clear()
|
|
2376
|
-
app.emit('refresh')
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
recover(app: App) {
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
<span class="cstat-no" title="statement not covered" > app.
|
|
2383
|
-
this.status = undefined
|
|
3266
|
+
errorInfo: options.errorInfo,
|
|
3267
|
+
},
|
|
3268
|
+
}).catch(<span class="fstat-no" title="function not covered" >(e</span>rr: any) => {
|
|
3269
|
+
<span class="cstat-no" title="statement not covered" > console.log('备份 nasl 失败:', err);</span>
|
|
3270
|
+
});
|
|
3271
|
+
<span class="cstat-no" title="statement not covered" > this.clear();</span>
|
|
3272
|
+
<span class="cstat-no" title="statement not covered" > app.emit('refresh');</span>
|
|
3273
|
+
}
|
|
3274
|
+
|
|
3275
|
+
<span class="fstat-no" title="function not covered" > recover(</span>app: App) {
|
|
3276
|
+
<span class="cstat-no" title="statement not covered" > switch (this.status) {</span>
|
|
3277
|
+
case TaskQueueStatus.ExceedMaxTaskCount:
|
|
3278
|
+
<span class="cstat-no" title="statement not covered" > app.emit('BelowMaxTaskCount');</span>
|
|
3279
|
+
<span class="cstat-no" title="statement not covered" > this.status = undefined;</span>
|
|
3280
|
+
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
3281
|
+
case TaskQueueStatus.Retrying:
|
|
3282
|
+
<span class="cstat-no" title="statement not covered" > app.emit('SuccessRetry');</span>
|
|
3283
|
+
<span class="cstat-no" title="statement not covered" > this.status = undefined;</span>
|
|
2384
3284
|
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
2385
|
-
ca<span class="cstat-no" title="statement not covered" >se TaskQueueStatus.Retryi</span>ng:
|
|
2386
|
-
<span class="cstat-no" title="statement not covered" > app.emi</span>t('SuccessRetry');
|
|
2387
|
-
this.status = undefined;
|
|
2388
|
-
break;
|
|
2389
3285
|
}
|
|
2390
3286
|
}
|
|
2391
3287
|
}
|
|
2392
|
-
|
|
2393
|
-
|
|
2394
|
-
async function saveNasl(options: TaskOption) {
|
|
2395
|
-
taskQueue.addTask(options)
|
|
2396
|
-
}
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
|
|
3288
|
+
|
|
3289
|
+
export const taskQueue = new TaskQueue();
|
|
3290
|
+
async function <span class="fstat-no" title="function not covered" >saveNasl(</span>options: TaskOption) {
|
|
3291
|
+
<span class="cstat-no" title="statement not covered" > taskQueue.addTask(options);</span>
|
|
3292
|
+
}
|
|
3293
|
+
|
|
3294
|
+
class Operation {
|
|
3295
|
+
appId?: string;
|
|
3296
|
+
branchId?: string;
|
|
3297
|
+
accountId?: string;
|
|
3298
|
+
userId?: string;
|
|
3299
|
+
phone?: string;
|
|
3300
|
+
actionItem: any;
|
|
3301
|
+
res?: any;
|
|
3302
|
+
err?: any;
|
|
3303
|
+
parentKey?: string;
|
|
3304
|
+
timestamp?: any;
|
|
3305
|
+
type?: string;
|
|
3306
|
+
uuid?: string;
|
|
3307
|
+
action?: string;
|
|
3308
|
+
}
|
|
3309
|
+
|
|
3310
|
+
async function <span class="fstat-no" title="function not covered" >_saveNasl(</span>options: TaskOption) {
|
|
3311
|
+
const { app, hasFrontEnd, hasBackEnd, instructList, operationList } = <span class="cstat-no" title="statement not covered" >options;</span>
|
|
2400
3312
|
<span class="cstat-no" title="statement not covered" > app.emit('saving');</span>
|
|
2401
|
-
|
|
2402
|
-
|
|
3313
|
+
let ChangedNASLType = <span class="cstat-no" title="statement not covered" >'';</span>
|
|
3314
|
+
<span class="cstat-no" title="statement not covered" > if (hasFrontEnd && hasBackEnd) {</span>
|
|
2403
3315
|
<span class="cstat-no" title="statement not covered" > ChangedNASLType = 'both';</span>
|
|
2404
3316
|
} else <span class="cstat-no" title="statement not covered" >if (hasFrontEnd) {</span>
|
|
2405
3317
|
<span class="cstat-no" title="statement not covered" > ChangedNASLType = 'web';</span>
|
|
2406
|
-
} else if (hasBackEnd) {
|
|
2407
|
-
ChangedNASLType = 'backend'
|
|
2408
|
-
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
|
|
3318
|
+
} else <span class="cstat-no" title="statement not covered" >if (hasBackEnd) {</span>
|
|
3319
|
+
<span class="cstat-no" title="statement not covered" > ChangedNASLType = 'backend';</span>
|
|
3320
|
+
}
|
|
3321
|
+
let res: any;
|
|
3322
|
+
let err: any;
|
|
3323
|
+
|
|
3324
|
+
<span class="cstat-no" title="statement not covered" > if (config.storage.protocol === 'http') {</span>
|
|
3325
|
+
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
3326
|
+
// 接口请求
|
|
3327
|
+
<span class="cstat-no" title="statement not covered" > res = await storageService.batchInstruct({</span>
|
|
2413
3328
|
body: instructList,
|
|
2414
3329
|
headers: {
|
|
2415
3330
|
appId: app.id,
|
|
@@ -2417,27 +3332,40 @@ as<span class="cstat-no" title="statement not covered" >ync function _saveNa</sp
|
|
|
2417
3332
|
tabTimestamp,
|
|
2418
3333
|
// 其他封装在 storageService 里了
|
|
2419
3334
|
},
|
|
2420
|
-
|
|
3335
|
+
});
|
|
2421
3336
|
} catch (error) {
|
|
2422
|
-
|
|
3337
|
+
<span class="cstat-no" title="statement not covered" > err = error;</span>
|
|
2423
3338
|
}
|
|
2424
|
-
|
|
2425
|
-
|
|
3339
|
+
const { code, msg, result, success } = <span class="cstat-no" title="statement not covered" >err || {};</span>
|
|
3340
|
+
<span class="cstat-no" title="statement not covered" > operationList.forEach(<span class="fstat-no" title="function not covered" >(o</span>peration) => {</span>
|
|
3341
|
+
<span class="cstat-no" title="statement not covered" > doOperationRecord({</span>
|
|
3342
|
+
...operation,
|
|
3343
|
+
res,
|
|
3344
|
+
err: {
|
|
3345
|
+
code,
|
|
3346
|
+
msg,
|
|
3347
|
+
result,
|
|
3348
|
+
success,
|
|
3349
|
+
},
|
|
3350
|
+
});
|
|
3351
|
+
});
|
|
3352
|
+
} else <span class="cstat-no" title="statement not covered" >if (config.storage.protocol === 'mock') {</span>
|
|
3353
|
+
// Do nothing
|
|
2426
3354
|
} else {
|
|
2427
|
-
const json =
|
|
2428
|
-
|
|
2429
|
-
|
|
2430
|
-
for (const { actions } of instructList) {
|
|
2431
|
-
actionList = actionList.concat(actions)
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
jsoner.batchAction(json, actionList)
|
|
2435
|
-
await fs.writeJSON(config.storage.basePath, json, {
|
|
3355
|
+
const json = <span class="cstat-no" title="statement not covered" >await fs.readJSON(config.storage.basePath);</span>
|
|
3356
|
+
|
|
3357
|
+
let actionList: any[] = <span class="cstat-no" title="statement not covered" >[];</span>
|
|
3358
|
+
<span class="cstat-no" title="statement not covered" > for (const { actions } of instructList) {</span>
|
|
3359
|
+
<span class="cstat-no" title="statement not covered" > actionList = actionList.concat(actions);</span>
|
|
3360
|
+
}
|
|
3361
|
+
|
|
3362
|
+
<span class="cstat-no" title="statement not covered" > jsoner.batchAction(json, actionList);</span>
|
|
3363
|
+
<span class="cstat-no" title="statement not covered" > await fs.writeJSON(config.storage.basePath, json, {</span>
|
|
2436
3364
|
spaces: 4,
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
app.emit('saved', err)
|
|
2440
|
-
return err
|
|
3365
|
+
});
|
|
3366
|
+
}
|
|
3367
|
+
<span class="cstat-no" title="statement not covered" > app.emit('saved', err);</span>
|
|
3368
|
+
<span class="cstat-no" title="statement not covered" > return err;</span>
|
|
2441
3369
|
}
|
|
2442
3370
|
|
|
2443
3371
|
export interface ProxyApp extends App {
|
|
@@ -2451,123 +3379,123 @@ export interface ProxyApp extends App {
|
|
|
2451
3379
|
_actionMsg: string;
|
|
2452
3380
|
_action: string;
|
|
2453
3381
|
naslServer: NaslServer;
|
|
2454
|
-
}
|
|
2455
|
-
|
|
2456
|
-
|
|
2457
|
-
<span class="cstat-no" title="statement not covered" > app._isCollectingCount
|
|
2458
|
-
<span class="cstat-no" title="statement not covered" > app._collectingList = [
|
|
3382
|
+
}
|
|
3383
|
+
|
|
3384
|
+
export function <span class="fstat-no" title="function not covered" >handleApp(</span>app: ProxyApp) {
|
|
3385
|
+
<span class="cstat-no" title="statement not covered" > app._isCollectingCount = 0;</span>
|
|
3386
|
+
<span class="cstat-no" title="statement not covered" > app._collectingList = [];</span>
|
|
2459
3387
|
<span class="cstat-no" title="statement not covered" > app._historyList = [];</span>
|
|
2460
|
-
<span class="cstat-no" title="statement not covered" > app._historyIndex
|
|
2461
|
-
app._historying = false
|
|
2462
|
-
<span class="cstat-no" title="statement not covered" > app._timer =
|
|
2463
|
-
|
|
2464
|
-
|
|
2465
|
-
const proxyApp = this
|
|
2466
|
-
proxyApp._historying = true
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
|
-
|
|
2470
|
-
const proxyApp = this
|
|
2471
|
-
proxyApp._historying = true
|
|
3388
|
+
<span class="cstat-no" title="statement not covered" > app._historyIndex = 0;</span>
|
|
3389
|
+
<span class="cstat-no" title="statement not covered" > app._historying = false;</span>
|
|
3390
|
+
<span class="cstat-no" title="statement not covered" > app._timer = null;</span>
|
|
3391
|
+
|
|
3392
|
+
<span class="cstat-no" title="statement not covered" > app.on('undo', <span class="fstat-no" title="function not covered" >function (this: ProxyApp) {</span></span>
|
|
3393
|
+
const proxyApp = <span class="cstat-no" title="statement not covered" >this;</span>
|
|
3394
|
+
<span class="cstat-no" title="statement not covered" > proxyApp._historying = true;</span>
|
|
3395
|
+
});
|
|
3396
|
+
|
|
3397
|
+
<span class="cstat-no" title="statement not covered" > app.on('redo', <span class="fstat-no" title="function not covered" >function (this: ProxyApp) {</span></span>
|
|
3398
|
+
const proxyApp = <span class="cstat-no" title="statement not covered" >this;</span>
|
|
3399
|
+
<span class="cstat-no" title="statement not covered" > proxyApp._historying = true;</span>
|
|
2472
3400
|
});
|
|
2473
3401
|
|
|
2474
3402
|
/**
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
|
|
2478
|
-
|
|
2479
|
-
if (proxyApp._timer) {
|
|
3403
|
+
* 开启收集
|
|
3404
|
+
*/
|
|
3405
|
+
<span class="cstat-no" title="statement not covered" > app.on('collect:start', <span class="fstat-no" title="function not covered" >function (this: ProxyApp, e</span>vent: any) {</span>
|
|
3406
|
+
const proxyApp = <span class="cstat-no" title="statement not covered" >this;</span>
|
|
3407
|
+
<span class="cstat-no" title="statement not covered" > if (proxyApp._timer) {</span>
|
|
2480
3408
|
<span class="cstat-no" title="statement not covered" > clearTimeout(proxyApp._timer);</span>
|
|
2481
|
-
}
|
|
2482
|
-
if (!proxyApp._noTimer) {
|
|
3409
|
+
}
|
|
3410
|
+
<span class="cstat-no" title="statement not covered" > if (!proxyApp._noTimer) {</span>
|
|
2483
3411
|
<span class="cstat-no" title="statement not covered" > proxyApp._noTimer = event.noTimer;</span>
|
|
2484
|
-
}
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
console.error('收集超时,请及时排查原因', event)
|
|
2488
|
-
taskQueue.refreshNasl(proxyApp, {
|
|
3412
|
+
}
|
|
3413
|
+
<span class="cstat-no" title="statement not covered" > if (!proxyApp._noTimer) {</span>
|
|
3414
|
+
<span class="cstat-no" title="statement not covered" > proxyApp._timer = setTimeout(<span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
3415
|
+
<span class="cstat-no" title="statement not covered" > console.error('收集超时,请及时排查原因', event);</span>
|
|
3416
|
+
<span class="cstat-no" title="statement not covered" > taskQueue.refreshNasl(proxyApp, {</span>
|
|
2489
3417
|
errorInfo: {
|
|
2490
3418
|
message: '收集超时,请及时排查原因',
|
|
2491
3419
|
},
|
|
2492
3420
|
});
|
|
2493
|
-
|
|
2494
|
-
}
|
|
2495
|
-
|
|
2496
|
-
proxyApp._actionMsg = event?.actionMsg
|
|
2497
|
-
<span class="cstat-no" title="statement not covered" > proxyApp._action = event?.
|
|
3421
|
+
}, 2500);
|
|
3422
|
+
}
|
|
3423
|
+
<span class="cstat-no" title="statement not covered" > if (!proxyApp._isCollectingCount) {</span>
|
|
3424
|
+
<span class="cstat-no" title="statement not covered" > proxyApp._actionMsg = event?.actionMsg;</span>
|
|
3425
|
+
<span class="cstat-no" title="statement not covered" > proxyApp._action = event?.action;</span>
|
|
2498
3426
|
}
|
|
2499
|
-
proxyApp._isCollectingCount
|
|
3427
|
+
<span class="cstat-no" title="statement not covered" > proxyApp._isCollectingCount++;</span>
|
|
2500
3428
|
});
|
|
2501
3429
|
|
|
2502
3430
|
/**
|
|
2503
|
-
|
|
2504
|
-
|
|
2505
|
-
|
|
2506
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2507
|
-
|
|
2508
|
-
|
|
2509
|
-
if (proxyApp._timer) {
|
|
2510
|
-
clearTimeout(proxyApp._timer)
|
|
2511
|
-
}
|
|
2512
|
-
//
|
|
2513
|
-
const
|
|
2514
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2515
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2516
|
-
<span class="cstat-no" title="statement not covered" > proxyApp.
|
|
3431
|
+
* 结束收集
|
|
3432
|
+
*/
|
|
3433
|
+
<span class="cstat-no" title="statement not covered" > app.on('collect:end', <span class="fstat-no" title="function not covered" >async </span>function (this: ProxyApp) {</span>
|
|
3434
|
+
const proxyApp = <span class="cstat-no" title="statement not covered" >this;</span>
|
|
3435
|
+
<span class="cstat-no" title="statement not covered" > proxyApp._isCollectingCount--;</span>
|
|
3436
|
+
<span class="cstat-no" title="statement not covered" > if (proxyApp._isCollectingCount === 0) {</span>
|
|
3437
|
+
<span class="cstat-no" title="statement not covered" > if (proxyApp._timer) {</span>
|
|
3438
|
+
<span class="cstat-no" title="statement not covered" > clearTimeout(proxyApp._timer);</span>
|
|
3439
|
+
}
|
|
3440
|
+
// 结束收集时,立即将全局收集变量状态重置,防止下次收集数据混乱
|
|
3441
|
+
const collectingList = <span class="cstat-no" title="statement not covered" >proxyApp._collectingList;</span>
|
|
3442
|
+
const actionMsg = <span class="cstat-no" title="statement not covered" >proxyApp._actionMsg;</span>
|
|
3443
|
+
const action = <span class="cstat-no" title="statement not covered" >proxyApp._action;</span>
|
|
3444
|
+
<span class="cstat-no" title="statement not covered" > proxyApp._collectingList = [];</span>
|
|
2517
3445
|
<span class="cstat-no" title="statement not covered" > proxyApp._actionMsg = '';</span>
|
|
2518
3446
|
<span class="cstat-no" title="statement not covered" > proxyApp._action = '';</span>
|
|
2519
|
-
|
|
2520
|
-
|
|
2521
|
-
mountDatabaseTypes(proxyApp)
|
|
2522
|
-
proxyApp.naslServer?.embeddedTSEmitter?.emit('change', {
|
|
2523
|
-
|
|
3447
|
+
<span class="cstat-no" title="statement not covered" > proxyApp._noTimer = undefined;</span>
|
|
3448
|
+
<span class="cstat-no" title="statement not covered" > if (Array.isArray(collectingList) && collectingList.length) {</span>
|
|
3449
|
+
<span class="cstat-no" title="statement not covered" > mountDatabaseTypes(proxyApp);</span>
|
|
3450
|
+
<span class="cstat-no" title="statement not covered" > proxyApp.naslServer?.embeddedTSEmitter?.emit('change', {</span>
|
|
3451
|
+
value: collectingList,
|
|
2524
3452
|
});
|
|
2525
|
-
await doAction(proxyApp, {
|
|
3453
|
+
<span class="cstat-no" title="statement not covered" > await doAction(proxyApp, {</span>
|
|
2526
3454
|
list: collectingList,
|
|
2527
3455
|
actionMsg,
|
|
2528
3456
|
action,
|
|
2529
|
-
})
|
|
2530
|
-
|
|
2531
|
-
} <span class="cstat-no" title="statement not covered" >
|
|
2532
|
-
proxyApp._isCollectingCount = 0
|
|
2533
|
-
throw Error('关闭收集有问题,请排查')
|
|
3457
|
+
});
|
|
3458
|
+
}
|
|
3459
|
+
} else <span class="cstat-no" title="statement not covered" >if (proxyApp._isCollectingCount < 0) {</span>
|
|
3460
|
+
<span class="cstat-no" title="statement not covered" > proxyApp._isCollectingCount = 0;</span>
|
|
3461
|
+
<span class="cstat-no" title="statement not covered" > throw Error('关闭收集有问题,请排查');</span>
|
|
2534
3462
|
}
|
|
2535
3463
|
});
|
|
2536
3464
|
|
|
2537
3465
|
/**
|
|
2538
|
-
|
|
2539
|
-
|
|
2540
|
-
app.on('storage', function (this: ProxyApp,
|
|
2541
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2542
|
-
|
|
2543
|
-
if (proxyApp._isCollectingCount === 0) {
|
|
2544
|
-
proxyApp.naslServer?.embeddedTSEmitter?.emit('change', {
|
|
2545
|
-
value: [event]
|
|
2546
|
-
})
|
|
2547
|
-
let actionMsg =
|
|
2548
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2549
|
-
const { concept, name } = target || {}
|
|
2550
|
-
|
|
2551
|
-
|
|
2552
|
-
actionMsg = '添加'
|
|
3466
|
+
* 有变更
|
|
3467
|
+
*/
|
|
3468
|
+
<span class="cstat-no" title="statement not covered" > app.on('storage', <span class="fstat-no" title="function not covered" >function (this: ProxyApp, e</span>vent: any) {</span>
|
|
3469
|
+
const proxyApp = <span class="cstat-no" title="statement not covered" >this;</span>
|
|
3470
|
+
// 是否正在收集
|
|
3471
|
+
<span class="cstat-no" title="statement not covered" > if (proxyApp._isCollectingCount === 0) {</span>
|
|
3472
|
+
<span class="cstat-no" title="statement not covered" > proxyApp.naslServer?.embeddedTSEmitter?.emit('change', {</span>
|
|
3473
|
+
value: [event],
|
|
3474
|
+
});
|
|
3475
|
+
let actionMsg = <span class="cstat-no" title="statement not covered" >'';</span>
|
|
3476
|
+
const { action, target } = <span class="cstat-no" title="statement not covered" >event.originEvent || {};</span>
|
|
3477
|
+
const { concept, name } = <span class="cstat-no" title="statement not covered" >target || {};</span>
|
|
3478
|
+
<span class="cstat-no" title="statement not covered" > switch (action) {</span>
|
|
3479
|
+
case 'create':
|
|
3480
|
+
<span class="cstat-no" title="statement not covered" > actionMsg = '添加';</span>
|
|
2553
3481
|
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
2554
|
-
|
|
2555
|
-
actionMsg = '删除'
|
|
3482
|
+
case 'delete':
|
|
3483
|
+
<span class="cstat-no" title="statement not covered" > actionMsg = '删除';</span>
|
|
2556
3484
|
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
2557
|
-
|
|
2558
|
-
actionMsg = '修改'
|
|
3485
|
+
case 'update':
|
|
3486
|
+
<span class="cstat-no" title="statement not covered" > actionMsg = '修改';</span>
|
|
2559
3487
|
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
2560
|
-
|
|
2561
|
-
|
|
2562
|
-
if (name) {
|
|
3488
|
+
}
|
|
3489
|
+
<span class="cstat-no" title="statement not covered" > actionMsg += getConceptConstructor(concept).nodeTitle;</span>
|
|
3490
|
+
<span class="cstat-no" title="statement not covered" > if (name) {</span>
|
|
2563
3491
|
<span class="cstat-no" title="statement not covered" > actionMsg += `“${name}”`;</span>
|
|
2564
3492
|
}
|
|
2565
|
-
doAction(proxyApp, {
|
|
3493
|
+
<span class="cstat-no" title="statement not covered" > doAction(proxyApp, {</span>
|
|
2566
3494
|
list: [event],
|
|
2567
3495
|
actionMsg,
|
|
2568
|
-
|
|
3496
|
+
});
|
|
2569
3497
|
} else {
|
|
2570
|
-
proxyApp._collectingList.push(event)
|
|
3498
|
+
<span class="cstat-no" title="statement not covered" > proxyApp._collectingList.push(event);</span>
|
|
2571
3499
|
}
|
|
2572
3500
|
});
|
|
2573
3501
|
}
|
|
@@ -2582,13 +3510,17 @@ type BreakpointItem =
|
|
|
2582
3510
|
/**
|
|
2583
3511
|
* 加载 app
|
|
2584
3512
|
* @param appId 如果是从文件读,就不需要传
|
|
2585
|
-
* @returns app
|
|
3513
|
+
* @returns app 对象
|
|
2586
3514
|
*/
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
|
|
2590
|
-
|
|
2591
|
-
|
|
3515
|
+
export async function <span class="fstat-no" title="function not covered" >loadApp(</span>appId?: string) {
|
|
3516
|
+
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
3517
|
+
// 删除失效数据
|
|
3518
|
+
<span class="cstat-no" title="statement not covered" > deleteExpiredRecords();</span>
|
|
3519
|
+
} catch(err) { }
|
|
3520
|
+
let app: App;
|
|
3521
|
+
<span class="cstat-no" title="statement not covered" > if (config.storage.protocol === 'http') {</span>
|
|
3522
|
+
<span class="cstat-no" title="statement not covered" > console.time('batchQuery');</span>
|
|
3523
|
+
const promises = <span class="cstat-no" title="statement not covered" >[</span>
|
|
2592
3524
|
storageService.batchQuery({
|
|
2593
3525
|
body: [
|
|
2594
3526
|
{
|
|
@@ -2608,37 +3540,37 @@ ex<span class="cstat-no" title="statement not covered" >port async function load
|
|
|
2608
3540
|
storageService.breakpoint({
|
|
2609
3541
|
body: { appId }
|
|
2610
3542
|
})
|
|
2611
|
-
]
|
|
3543
|
+
]
|
|
3544
|
+
|
|
3545
|
+
const [batchQueryRes, breakpointRes] = <span class="cstat-no" title="statement not covered" >await Promise.all(promises)</span>
|
|
2612
3546
|
|
|
2613
|
-
const [batchQueryRes, breakpointRes] = await Promise.all(promises)
|
|
2614
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
2615
3547
|
// 请求
|
|
2616
3548
|
<span class="cstat-no" title="statement not covered" > console.timeEnd('batchQuery');</span>
|
|
2617
|
-
|
|
2618
|
-
tabTimestamp = batchQueryRes?.headers?.tabtimestamp
|
|
2619
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2620
|
-
|
|
2621
|
-
console.time('new App')
|
|
2622
|
-
<span class="cstat-no" title="statement not covered" > app = new App(Object.
|
|
2623
|
-
|
|
2624
|
-
breakpointRes?.forEach((
|
|
2625
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2626
|
-
|
|
2627
|
-
if (breakpointStatus) {
|
|
2628
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2629
|
-
|
|
2630
|
-
if (node) {
|
|
2631
|
-
node.breakpoint = breakpointStatus
|
|
3549
|
+
|
|
3550
|
+
<span class="cstat-no" title="statement not covered" > tabTimestamp = batchQueryRes?.headers?.tabtimestamp;</span>
|
|
3551
|
+
const data = <span class="cstat-no" title="statement not covered" >batchQueryRes?.data?.result;</span>
|
|
3552
|
+
|
|
3553
|
+
<span class="cstat-no" title="statement not covered" > console.time('new App');</span>
|
|
3554
|
+
<span class="cstat-no" title="statement not covered" > app = new App(Object.assign(data?.[0], { id: appId }));</span>
|
|
3555
|
+
|
|
3556
|
+
<span class="cstat-no" title="statement not covered" > breakpointRes?.forEach(<span class="fstat-no" title="function not covered" >(i</span>tem: BreakpointItem = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> => {</span>
|
|
3557
|
+
const { path, breakpointStatus } = <span class="cstat-no" title="statement not covered" >item</span>
|
|
3558
|
+
|
|
3559
|
+
<span class="cstat-no" title="statement not covered" > if (breakpointStatus) {</span>
|
|
3560
|
+
const node = <span class="cstat-no" title="statement not covered" >app.findNodeByPath(path)</span>
|
|
3561
|
+
|
|
3562
|
+
<span class="cstat-no" title="statement not covered" > if (node) {</span>
|
|
3563
|
+
<span class="cstat-no" title="statement not covered" > node.breakpoint = breakpointStatus</span>
|
|
2632
3564
|
}
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
|
|
2636
|
-
if (!app.id) {
|
|
3565
|
+
}
|
|
3566
|
+
})
|
|
3567
|
+
<span class="cstat-no" title="statement not covered" > console.timeEnd('new App');</span>
|
|
3568
|
+
<span class="cstat-no" title="statement not covered" > if (!app.id) {</span>
|
|
2637
3569
|
<span class="cstat-no" title="statement not covered" > app.id = appId;</span>
|
|
2638
|
-
}
|
|
3570
|
+
}
|
|
2639
3571
|
<span class="cstat-no" title="statement not covered" > addBreakpointNodesFromApp(app)</span>
|
|
2640
|
-
} else if (config.storage.protocol === 'mock') {
|
|
2641
|
-
app = new App({
|
|
3572
|
+
} else <span class="cstat-no" title="statement not covered" >if (config.storage.protocol === 'mock') {</span>
|
|
3573
|
+
<span class="cstat-no" title="statement not covered" > app = new App({</span>
|
|
2642
3574
|
id: appId,
|
|
2643
3575
|
concept: 'App',
|
|
2644
3576
|
name: 'devapp',
|
|
@@ -2656,88 +3588,89 @@ ex<span class="cstat-no" title="statement not covered" >port async function load
|
|
|
2656
3588
|
dependencies: [],
|
|
2657
3589
|
interfaceDependencies: [],
|
|
2658
3590
|
frontends: [],
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
|
|
2663
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2664
|
-
|
|
2665
|
-
|
|
2666
|
-
<span class="cstat-no" title="statement not covered" > (app as
|
|
2667
|
-
|
|
2668
|
-
|
|
3591
|
+
metadataTypes: []
|
|
3592
|
+
});
|
|
3593
|
+
} else {
|
|
3594
|
+
const json = <span class="cstat-no" title="statement not covered" >await fs.readJSON(config.storage.basePath);</span>
|
|
3595
|
+
<span class="cstat-no" title="statement not covered" > app = new App(appId ? Object.assign(json, { id: appId }) : json);</span>
|
|
3596
|
+
}
|
|
3597
|
+
// config.scope = app.scope;
|
|
3598
|
+
<span class="cstat-no" title="statement not covered" > handleApp(app as ProxyApp);</span>
|
|
3599
|
+
(<span class="cstat-no" title="statement not covered" >app as any)._isCollectingCount = 0;</span>
|
|
3600
|
+
<span class="cstat-no" title="statement not covered" > mountDatabaseTypes(app);</span>
|
|
3601
|
+
<span class="cstat-no" title="statement not covered" > return app as App;</span>
|
|
2669
3602
|
}
|
|
2670
|
-
|
|
2671
|
-
|
|
2672
|
-
|
|
2673
|
-
if (!app.__databaseTypeMap) {
|
|
2674
|
-
|
|
2675
|
-
}
|
|
2676
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
if (dataSourceSqlType && !app.__databaseTypeMap[dataSourceSqlType]) {
|
|
2682
|
-
dbTypeSet.add(dataSourceSqlType)
|
|
3603
|
+
|
|
3604
|
+
// 在app上挂载所有的数据库类型
|
|
3605
|
+
export async function <span class="fstat-no" title="function not covered" >mountDatabaseTypes(</span>app: App) {
|
|
3606
|
+
<span class="cstat-no" title="statement not covered" > if (!app.__databaseTypeMap) {</span>
|
|
3607
|
+
<span class="cstat-no" title="statement not covered" > app.__databaseTypeMap = {};</span>
|
|
3608
|
+
}
|
|
3609
|
+
const dataSources = <span class="cstat-no" title="statement not covered" >app?.dataSources;</span>
|
|
3610
|
+
const dbTypeSet = <span class="cstat-no" title="statement not covered" >new Set();</span>
|
|
3611
|
+
<span class="cstat-no" title="statement not covered" > if (Array.isArray(dataSources)) {</span>
|
|
3612
|
+
<span class="cstat-no" title="statement not covered" > dataSources.forEach(<span class="fstat-no" title="function not covered" >(d</span>ataSource) => {</span>
|
|
3613
|
+
const dataSourceSqlType = <span class="cstat-no" title="statement not covered" >JSON.parse(dataSource.dataSourceConfig?.devProperty?.value || '{}')?.type;</span>
|
|
3614
|
+
<span class="cstat-no" title="statement not covered" > if (dataSourceSqlType && !app.__databaseTypeMap[dataSourceSqlType]) {</span>
|
|
3615
|
+
<span class="cstat-no" title="statement not covered" > dbTypeSet.add(dataSourceSqlType);</span>
|
|
2683
3616
|
}
|
|
2684
|
-
})
|
|
2685
|
-
|
|
2686
|
-
const dbTypes =
|
|
2687
|
-
if (Array.isArray(dbTypes) && dbTypes.length) {
|
|
2688
|
-
const res: any = await databaseTypes({
|
|
3617
|
+
});
|
|
3618
|
+
}
|
|
3619
|
+
const dbTypes = <span class="cstat-no" title="statement not covered" >[...dbTypeSet];</span>
|
|
3620
|
+
<span class="cstat-no" title="statement not covered" > if (Array.isArray(dbTypes) && dbTypes.length) {</span>
|
|
3621
|
+
const res: any = <span class="cstat-no" title="statement not covered" >await databaseTypes({</span>
|
|
2689
3622
|
query: {
|
|
2690
3623
|
dbTypes: dbTypes.join(','),
|
|
2691
|
-
|
|
2692
|
-
})
|
|
2693
|
-
|
|
2694
|
-
res.forEach(
|
|
2695
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2696
|
-
|
|
2697
|
-
|
|
2698
|
-
columnTypes.forEach(
|
|
2699
|
-
const { naslType, dataBaseTypes } = columnType
|
|
2700
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2701
|
-
|
|
2702
|
-
|
|
2703
|
-
|
|
2704
|
-
|
|
2705
|
-
|
|
3624
|
+
},
|
|
3625
|
+
});
|
|
3626
|
+
<span class="cstat-no" title="statement not covered" > if (Array.isArray(res)) {</span>
|
|
3627
|
+
<span class="cstat-no" title="statement not covered" > res.forEach(<span class="fstat-no" title="function not covered" >(d</span>atabaseType: any) => {</span>
|
|
3628
|
+
const { dbType, columnTypes } = <span class="cstat-no" title="statement not covered" >databaseType || {};</span>
|
|
3629
|
+
const columnTypeMap: any = <span class="cstat-no" title="statement not covered" >{};</span>
|
|
3630
|
+
<span class="cstat-no" title="statement not covered" > if (Array.isArray(columnTypes)) {</span>
|
|
3631
|
+
<span class="cstat-no" title="statement not covered" > columnTypes.forEach(<span class="fstat-no" title="function not covered" >(c</span>olumnType) => {</span>
|
|
3632
|
+
const { naslType, dataBaseTypes } = <span class="cstat-no" title="statement not covered" >columnType;</span>
|
|
3633
|
+
const dataBaseTypeMap: any = <span class="cstat-no" title="statement not covered" >{};</span>
|
|
3634
|
+
let defaultDataBaseType;
|
|
3635
|
+
<span class="cstat-no" title="statement not covered" > if (Array.isArray(dataBaseTypes)) {</span>
|
|
3636
|
+
<span class="cstat-no" title="statement not covered" > dataBaseTypes.forEach(<span class="fstat-no" title="function not covered" >(d</span>ataBaseType) => {</span>
|
|
3637
|
+
const { type } = <span class="cstat-no" title="statement not covered" >dataBaseType || {};</span>
|
|
3638
|
+
<span class="cstat-no" title="statement not covered" > if (type) {</span>
|
|
2706
3639
|
<span class="cstat-no" title="statement not covered" > dataBaseTypeMap[type] = dataBaseType;</span>
|
|
2707
|
-
|
|
2708
|
-
if (defaultType) {
|
|
2709
|
-
defaultDataBaseType = dataBaseType
|
|
3640
|
+
const { defaultType } = <span class="cstat-no" title="statement not covered" >dataBaseType;</span>
|
|
3641
|
+
<span class="cstat-no" title="statement not covered" > if (defaultType) {</span>
|
|
3642
|
+
<span class="cstat-no" title="statement not covered" > defaultDataBaseType = dataBaseType;</span>
|
|
2710
3643
|
}
|
|
2711
3644
|
}
|
|
2712
|
-
|
|
3645
|
+
});
|
|
2713
3646
|
}
|
|
2714
|
-
columnTypeMap[naslType] = {
|
|
3647
|
+
<span class="cstat-no" title="statement not covered" > columnTypeMap[naslType] = {</span>
|
|
2715
3648
|
dataBaseTypes,
|
|
2716
3649
|
dataBaseTypeMap,
|
|
2717
3650
|
defaultDataBaseType,
|
|
2718
3651
|
};
|
|
2719
|
-
|
|
3652
|
+
});
|
|
2720
3653
|
}
|
|
2721
|
-
app.__databaseTypeMap[dbType] = columnTypeMap
|
|
3654
|
+
<span class="cstat-no" title="statement not covered" > app.__databaseTypeMap[dbType] = columnTypeMap;</span>
|
|
2722
3655
|
});
|
|
2723
|
-
|
|
2724
|
-
}
|
|
2725
|
-
|
|
2726
|
-
dataSources.forEach((
|
|
2727
|
-
dataSource.__hasDatabaseConfig = !!(app.__databaseTypeMap?.[dataSource.dataSourceSqlType])
|
|
3656
|
+
}
|
|
3657
|
+
}
|
|
3658
|
+
<span class="cstat-no" title="statement not covered" > if (Array.isArray(dataSources)) {</span>
|
|
3659
|
+
<span class="cstat-no" title="statement not covered" > dataSources.forEach(<span class="fstat-no" title="function not covered" >(d</span>ataSource) => {</span>
|
|
3660
|
+
<span class="cstat-no" title="statement not covered" > dataSource.__hasDatabaseConfig = !!(app.__databaseTypeMap?.[dataSource.dataSourceSqlType]);</span>
|
|
2728
3661
|
});
|
|
2729
3662
|
}
|
|
2730
3663
|
}
|
|
2731
3664
|
|
|
2732
3665
|
/**
|
|
2733
3666
|
* 加载 app
|
|
2734
|
-
* @returns app
|
|
2735
|
-
|
|
2736
|
-
export
|
|
2737
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2738
|
-
<span class="cstat-no" title="statement not covered" >
|
|
2739
|
-
handleApp(app as ProxyApp)
|
|
2740
|
-
return app
|
|
3667
|
+
* @returns app 对象
|
|
3668
|
+
*/
|
|
3669
|
+
export function <span class="fstat-no" title="function not covered" >loadAppSync(</span>) {
|
|
3670
|
+
const json = <span class="cstat-no" title="statement not covered" >fs.readJSONSync(config.storage.basePath);</span>
|
|
3671
|
+
const app = <span class="cstat-no" title="statement not covered" >new App(json);</span>
|
|
3672
|
+
<span class="cstat-no" title="statement not covered" > handleApp(app as ProxyApp);</span>
|
|
3673
|
+
<span class="cstat-no" title="statement not covered" > return app;</span>
|
|
2741
3674
|
}
|
|
2742
3675
|
</pre></td></tr></table></pre>
|
|
2743
3676
|
|
|
@@ -2746,7 +3679,7 @@ export functio<span class="cstat-no" title="statement not covered" >n loadAppSyn
|
|
|
2746
3679
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
2747
3680
|
Code coverage generated by
|
|
2748
3681
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
2749
|
-
at 2023-
|
|
3682
|
+
at 2023-12-14T04:42:19.254Z
|
|
2750
3683
|
</div>
|
|
2751
3684
|
<script src="../../../prettify.js"></script>
|
|
2752
3685
|
<script>
|