@lcap/nasl 3.5.0-alpha.1 → 3.5.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/bak/translator.js +119 -39
- package/out/bak/translator.js.map +1 -1
- package/out/breakpoint/generator/BreakpointNode.d.ts +3 -0
- package/out/breakpoint/generator/BreakpointNode.js +9 -0
- package/out/breakpoint/generator/BreakpointNode.js.map +1 -1
- package/out/breakpoint/generator/CallbackNode.js +15 -0
- package/out/breakpoint/generator/CallbackNode.js.map +1 -1
- package/out/breakpoint/shared/constants.js +1 -0
- package/out/breakpoint/shared/constants.js.map +1 -1
- package/out/breakpoint/shared/utils.js +12 -6
- package/out/breakpoint/shared/utils.js.map +1 -1
- package/out/common/BaseNode.d.ts +1 -0
- package/out/common/BaseNode.js +23 -34
- package/out/common/BaseNode.js.map +1 -1
- package/out/concepts/App__.d.ts +51 -51
- package/out/concepts/App__.js +87 -92
- package/out/concepts/App__.js.map +1 -1
- package/out/concepts/BackendVariable__.js +10 -2
- package/out/concepts/BackendVariable__.js.map +1 -1
- package/out/concepts/BinaryExpression__.d.ts +2 -0
- package/out/concepts/BinaryExpression__.js +4 -0
- package/out/concepts/BinaryExpression__.js.map +1 -1
- package/out/concepts/BindAttribute__.js +16 -6
- package/out/concepts/BindAttribute__.js.map +1 -1
- package/out/concepts/BindDirective__.d.ts +1 -0
- package/out/concepts/BindDirective__.js +19 -4
- package/out/concepts/BindDirective__.js.map +1 -1
- package/out/concepts/BindEvent__.d.ts +3 -1
- package/out/concepts/BindEvent__.js +38 -13
- package/out/concepts/BindEvent__.js.map +1 -1
- package/out/concepts/BusinessComponent__.d.ts +637 -0
- package/out/concepts/BusinessComponent__.js +1892 -0
- package/out/concepts/BusinessComponent__.js.map +1 -0
- package/out/concepts/BusinessLogic__.d.ts +38 -0
- package/out/concepts/BusinessLogic__.js +358 -0
- package/out/concepts/BusinessLogic__.js.map +1 -0
- package/out/concepts/CallEvent__.d.ts +97 -0
- package/out/concepts/CallEvent__.js +263 -0
- package/out/concepts/CallEvent__.js.map +1 -0
- package/out/concepts/CallFunction__.d.ts +2 -0
- package/out/concepts/CallFunction__.js +14 -2
- package/out/concepts/CallFunction__.js.map +1 -1
- package/out/concepts/CallInterface__.d.ts +2 -0
- package/out/concepts/CallInterface__.js +5 -1
- package/out/concepts/CallInterface__.js.map +1 -1
- package/out/concepts/CallLogic__.d.ts +5 -2
- package/out/concepts/CallLogic__.js +43 -50
- package/out/concepts/CallLogic__.js.map +1 -1
- package/out/concepts/Constant__.js +7 -6
- package/out/concepts/Constant__.js.map +1 -1
- package/out/concepts/Destination__.js +2 -2
- package/out/concepts/Destination__.js.map +1 -1
- package/out/concepts/End__.js +2 -1
- package/out/concepts/End__.js.map +1 -1
- package/out/concepts/Event__.d.ts +10 -0
- package/out/concepts/Event__.js +49 -0
- package/out/concepts/Event__.js.map +1 -1
- package/out/concepts/FrontendType__.d.ts +308 -0
- package/out/concepts/FrontendType__.js +605 -0
- package/out/concepts/FrontendType__.js.map +1 -0
- package/out/concepts/Frontend__.d.ts +0 -88
- package/out/concepts/Frontend__.js +1 -143
- package/out/concepts/Frontend__.js.map +1 -1
- package/out/concepts/Identifier__.d.ts +5 -0
- package/out/concepts/Identifier__.js +19 -9
- package/out/concepts/Identifier__.js.map +1 -1
- package/out/concepts/LogicItem__.d.ts +1 -1
- package/out/concepts/LogicItem__.js.map +1 -1
- package/out/concepts/Logic__.d.ts +3 -1
- package/out/concepts/Logic__.js +16 -13
- package/out/concepts/Logic__.js.map +1 -1
- package/out/concepts/MemberExpression__.d.ts +1 -1
- package/out/concepts/MemberExpression__.js +3 -3
- package/out/concepts/MemberExpression__.js.map +1 -1
- package/out/concepts/NewComposite__.d.ts +2 -0
- package/out/concepts/NewComposite__.js +4 -0
- package/out/concepts/NewComposite__.js.map +1 -1
- package/out/concepts/NewList__.d.ts +2 -0
- package/out/concepts/NewList__.js +4 -0
- package/out/concepts/NewList__.js.map +1 -1
- package/out/concepts/NewMap__.d.ts +2 -0
- package/out/concepts/NewMap__.js +4 -0
- package/out/concepts/NewMap__.js.map +1 -1
- package/out/concepts/ParamWithGroup__.d.ts +39 -0
- package/out/concepts/ParamWithGroup__.js +85 -0
- package/out/concepts/ParamWithGroup__.js.map +1 -0
- package/out/concepts/Param__.js +11 -3
- package/out/concepts/Param__.js.map +1 -1
- package/out/concepts/Return__.js +17 -9
- package/out/concepts/Return__.js.map +1 -1
- package/out/concepts/TypeAnnotation__.js.map +1 -1
- package/out/concepts/Variable__.js +17 -8
- package/out/concepts/Variable__.js.map +1 -1
- package/out/concepts/ViewElement__.d.ts +17 -1
- package/out/concepts/ViewElement__.js +141 -15
- package/out/concepts/ViewElement__.js.map +1 -1
- package/out/concepts/View__.js +4 -4
- package/out/concepts/View__.js.map +1 -1
- package/out/concepts/index__.d.ts +5 -0
- package/out/concepts/index__.js +5 -0
- package/out/concepts/index__.js.map +1 -1
- package/out/concepts/utils/asserts.d.ts +258 -3
- package/out/concepts/utils/asserts.js +351 -13
- package/out/concepts/utils/asserts.js.map +1 -1
- package/out/concepts/utils/quick-info.d.ts +13 -0
- package/out/concepts/utils/quick-info.js +51 -0
- package/out/concepts/utils/quick-info.js.map +1 -0
- package/out/concepts/utils/types.d.ts +20 -3
- package/out/generator/genBundleFiles.js +25 -11
- package/out/generator/genBundleFiles.js.map +1 -1
- package/out/generator/genReleaseBody.js +12 -3
- package/out/generator/genReleaseBody.js.map +1 -1
- package/out/generator/permission.js +3 -3
- package/out/generator/permission.js.map +1 -1
- package/out/server/extendBaseNode.js +6 -4
- package/out/server/extendBaseNode.js.map +1 -1
- package/out/server/getLogics.js +62 -27
- package/out/server/getLogics.js.map +1 -1
- package/out/server/getMemberIdentifier.js +6 -1
- package/out/server/getMemberIdentifier.js.map +1 -1
- package/out/server/naslServer.js +26 -59
- package/out/server/naslServer.js.map +1 -1
- package/out/server/translator.js +6 -1
- package/out/server/translator.js.map +1 -1
- package/out/service/storage/init.js +1 -2
- package/out/service/storage/init.js.map +1 -1
- package/out/templator/genCreateBlock.js +6 -6
- package/out/templator/genCreateBlock.js.map +1 -1
- package/out/templator/genCurdEditMultipleKeyBlock.js +16 -16
- package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
- package/out/templator/genCurdMultipleKeyBlock.js +36 -36
- package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
- package/out/templator/genGetBlock.js +4 -4
- package/out/templator/genGetBlock.js.map +1 -1
- package/out/templator/genGridViewBlock.js +12 -12
- package/out/templator/genGridViewBlock.js.map +1 -1
- package/out/templator/genListViewBlock.js +4 -4
- package/out/templator/genListViewBlock.js.map +1 -1
- package/out/templator/genSelectBlock.js +3 -3
- package/out/templator/genSelectBlock.js.map +1 -1
- package/out/templator/genTableBlock.js +10 -10
- package/out/templator/genTableBlock.js.map +1 -1
- package/out/templator/genUpdateBlock.js +8 -8
- package/out/templator/genUpdateBlock.js.map +1 -1
- package/out/templator/utils.d.ts +2 -2
- package/out/templator/utils.js.map +1 -1
- package/out/translator/utils.d.ts +2 -2
- package/out/translator/utils.js +0 -18
- package/out/translator/utils.js.map +1 -1
- package/out/utils/i18nInfo.js +7 -2
- package/out/utils/i18nInfo.js.map +1 -1
- package/package.json +1 -1
- package/src/bak/translator.js +121 -43
- package/src/breakpoint/generator/BreakpointNode.ts +12 -0
- package/src/breakpoint/generator/CallbackNode.ts +17 -0
- package/src/breakpoint/shared/constants.ts +1 -0
- package/src/breakpoint/shared/utils.ts +13 -8
- package/src/common/BaseNode.ts +22 -34
- package/src/concepts/App__.ts +140 -146
- package/src/concepts/BackendVariable__.ts +10 -2
- package/src/concepts/BinaryExpression__.ts +5 -1
- package/src/concepts/BindAttribute__.ts +15 -6
- package/src/concepts/BindDirective__.ts +19 -4
- package/src/concepts/BindEvent__.ts +40 -12
- package/src/concepts/BusinessComponent__.ts +2659 -0
- package/src/concepts/BusinessLogic__.ts +376 -0
- package/src/concepts/CallEvent__.ts +334 -0
- package/src/concepts/CallFunction__.ts +15 -2
- package/src/concepts/CallInterface__.ts +6 -1
- package/src/concepts/CallLogic__.ts +50 -58
- package/src/concepts/Constant__.ts +5 -7
- package/src/concepts/Destination__.ts +2 -2
- package/src/concepts/End__.ts +1 -0
- package/src/concepts/Event__.ts +57 -0
- package/src/concepts/FrontendType__.ts +919 -0
- package/src/concepts/Frontend__.ts +3 -251
- package/src/concepts/Identifier__.ts +29 -13
- package/src/concepts/LogicItem__.ts +1 -0
- package/src/concepts/Logic__.ts +21 -14
- package/src/concepts/MemberExpression__.ts +3 -3
- package/src/concepts/NewComposite__.ts +5 -5
- package/src/concepts/NewList__.ts +6 -2
- package/src/concepts/NewMap__.ts +6 -3
- package/src/concepts/ParamWithGroup__.ts +101 -0
- package/src/concepts/Param__.ts +11 -3
- package/src/concepts/Return__.ts +15 -12
- package/src/concepts/TypeAnnotation__.ts +1 -1
- package/src/concepts/Variable__.ts +17 -9
- package/src/concepts/ViewElement__.ts +164 -31
- package/src/concepts/View__.ts +6 -4
- package/src/concepts/index__.ts +5 -0
- package/src/concepts/utils/asserts.ts +367 -4
- package/src/concepts/utils/quick-info.ts +64 -0
- package/src/concepts/utils/types.ts +28 -0
- package/src/generator/genBundleFiles.ts +33 -15
- package/src/generator/genReleaseBody.ts +14 -3
- package/src/generator/permission.ts +8 -6
- package/src/server/extendBaseNode.ts +22 -20
- package/src/server/getLogics.ts +79 -41
- package/src/server/getMemberIdentifier.ts +7 -1
- package/src/server/naslServer.ts +28 -57
- package/src/server/translator.ts +7 -1
- package/src/service/storage/init.ts +1 -2
- package/src/templator/genCreateBlock.ts +6 -6
- package/src/templator/genCurdEditMultipleKeyBlock.ts +16 -16
- package/src/templator/genCurdMultipleKeyBlock.ts +36 -36
- package/src/templator/genGetBlock.ts +4 -4
- package/src/templator/genGridViewBlock.ts +12 -12
- package/src/templator/genListViewBlock.ts +4 -4
- package/src/templator/genSelectBlock.ts +3 -3
- package/src/templator/genTableBlock.ts +10 -10
- package/src/templator/genUpdateBlock.ts +8 -8
- package/src/templator/utils.ts +2 -2
- package/src/translator/utils.ts +2 -22
- package/src/utils/i18nInfo.ts +7 -2
- package/test/concepts/binary-expression/__snapshots__/getQuickInfoOffset.spec.ts.snap +25 -0
- package/test/concepts/binary-expression/getQuickInfoOffset.spec.ts +19 -0
- package/test/concepts/call-function/__snapshots__/getQuickInfoOffset.spec.ts.snap +41 -0
- package/test/concepts/call-function/fixtures/from-string.json +68 -59
- package/test/concepts/call-function/fixtures/to-string-global-tz.json +67 -58
- package/test/concepts/call-function/fixtures/to-string-no-tz.json +57 -48
- package/test/concepts/call-function/fixtures/to-string-user-tz.json +69 -60
- package/test/concepts/call-function/fixtures/to-string-utc-tz.json +69 -60
- package/test/concepts/call-function/getQuickInfoOffset.spec.ts +19 -0
- package/test/concepts/call-interface/__snapshots__/getQuickInfoOffset.spec.ts.snap +86 -0
- package/test/concepts/call-interface/__snapshots__/toEmbeddedTS.spec.ts.snap +3 -3
- package/test/concepts/call-interface/fixtures/only-interface.json +81 -72
- package/test/concepts/call-interface/fixtures/with-body-complex-argument.json +223 -214
- package/test/concepts/call-interface/fixtures/with-body-no-argument.json +85 -76
- package/test/concepts/call-interface/fixtures/with-body-simple-argument.json +100 -91
- package/test/concepts/call-interface/fixtures/with-headers-no-argument.json +88 -79
- package/test/concepts/call-interface/fixtures/with-headers.json +90 -81
- package/test/concepts/call-interface/fixtures/with-query-no-argument.json +88 -79
- package/test/concepts/call-interface/fixtures/with-query.json +90 -81
- package/test/concepts/call-interface/getQuickInfoOffset.spec.ts +19 -0
- package/test/concepts/call-logic/__snapshots__/getQuickInfoOffset.spec.ts.snap +4 -2
- package/test/concepts/call-logic/fixtures/entries-get-with-arguments.json +104 -95
- package/test/concepts/call-logic/fixtures/entries-update-with-arguments.json +209 -200
- package/test/concepts/call-logic/fixtures/global-logic-argument-no-expression.json +97 -88
- package/test/concepts/call-logic/fixtures/global-logic-argument-some-expression.json +124 -115
- package/test/concepts/call-logic/fixtures/json-deserialize.json +120 -111
- package/test/concepts/call-logic/fixtures/json-serialize-with-string.json +124 -115
- package/test/concepts/call-logic/fixtures/json-serialize.json +124 -115
- package/test/concepts/call-logic/fixtures/view-buildin-logic-with-argument.json +91 -82
- package/test/concepts/call-logic/fixtures/view-component-logic-no-argument.json +88 -79
- package/test/concepts/call-logic/fixtures/view-component-with-validation.json +144 -135
- package/test/concepts/call-logic/getQuickInfoOffset.spec.ts +2 -7
- package/test/concepts/identifier/fixtures/view-variable.json +145 -136
- package/test/concepts/new-composite/__snapshots__/getQuickInfoOffset.spec.ts.snap +104 -0
- package/test/concepts/new-composite/__snapshots__/toEmbeddedTS.spec.ts.snap +97 -0
- package/test/concepts/new-composite/__snapshots__/toJS.spec.ts.snap +43 -0
- package/test/concepts/new-composite/constant.ts +5 -0
- package/test/concepts/new-composite/fixtures/nested-transform.json +241 -0
- package/test/concepts/new-composite/fixtures/nested.json +146 -0
- package/test/concepts/new-composite/fixtures/normal.json +63 -0
- package/test/concepts/new-composite/getQuickInfoOffset.spec.ts +19 -0
- package/test/concepts/new-composite/toEmbeddedTS.spec.ts +15 -0
- package/test/concepts/new-composite/toJS.spec.ts +14 -0
- package/test/concepts/new-list/__snapshots__/getQuickInfoOffset.spec.ts.snap +165 -0
- package/test/concepts/new-list/__snapshots__/toEmbeddedTS.spec.ts.snap +207 -0
- package/test/concepts/new-list/__snapshots__/toJS.spec.ts.snap +63 -0
- package/test/concepts/new-list/constant.ts +5 -0
- package/test/concepts/new-list/fixtures/nested-map.json +117 -0
- package/test/concepts/new-list/fixtures/nested-tranform.json +140 -0
- package/test/concepts/new-list/fixtures/nested.json +107 -0
- package/test/concepts/new-list/fixtures/normal.json +95 -0
- package/test/concepts/new-list/getQuickInfoOffset.spec.ts +19 -0
- package/test/concepts/new-list/toEmbeddedTS.spec.ts +15 -0
- package/test/concepts/new-list/toJS.spec.ts +14 -0
- package/test/concepts/new-map/__snapshots__/getQuickInfoOffset.spec.ts.snap +115 -0
- package/test/concepts/new-map/__snapshots__/toEmbeddedTS.spec.ts.snap +192 -0
- package/test/concepts/new-map/__snapshots__/toJS.spec.ts.snap +54 -0
- package/test/concepts/new-map/constant.ts +5 -0
- package/test/concepts/new-map/fixtures/nested-transform.json +169 -0
- package/test/concepts/new-map/fixtures/nested.json +141 -0
- package/test/concepts/new-map/fixtures/normal.json +101 -0
- package/test/concepts/new-map/getQuickInfoOffset.spec.ts +19 -0
- package/test/concepts/new-map/toEmbeddedTS.spec.ts +15 -0
- package/test/concepts/new-map/toJS.spec.ts +14 -0
- package/test/concepts/utils.ts +17 -0
- package/test/concepts/view-element/__snapshots__/toVue.spec.ts.snap +1 -1
- package/test/concepts/view-element/fixtures/default-login.json +221 -212
- package/test/concepts/view-element/fixtures/default-not-found.json +183 -174
- package/test/concepts/view-element/fixtures/with-role-auth.json +91 -82
- package/test/concepts/view-element/fixtures/with-table.json +1894 -1885
- package/test/concepts/view-element/toVue.spec.ts +1 -0
- package/.nyc_output/b920244d-8d01-4e76-be5a-95132217c5a1.json +0 -1
- package/.nyc_output/processinfo/b920244d-8d01-4e76-be5a-95132217c5a1.json +0 -1
- package/.nyc_output/processinfo/index.json +0 -1
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +0 -461
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -196
- package/coverage/src/automate/engine/index.html +0 -116
- package/coverage/src/automate/engine/utils.js.html +0 -1414
- package/coverage/src/bak/index.html +0 -116
- package/coverage/src/bak/translator.js.html +0 -631
- package/coverage/src/breakpoint/generator/AfterStartNode.ts.html +0 -175
- package/coverage/src/breakpoint/generator/BeforeEndNode.ts.html +0 -169
- package/coverage/src/breakpoint/generator/BreakpointNode.ts.html +0 -1246
- package/coverage/src/breakpoint/generator/CallbackNode.ts.html +0 -145
- package/coverage/src/breakpoint/generator/index.html +0 -176
- package/coverage/src/breakpoint/generator/index.ts.html +0 -508
- package/coverage/src/breakpoint/index.html +0 -116
- package/coverage/src/breakpoint/index.ts.html +0 -94
- package/coverage/src/breakpoint/shared/constants.ts.html +0 -436
- package/coverage/src/breakpoint/shared/index.html +0 -176
- package/coverage/src/breakpoint/shared/index.ts.html +0 -94
- package/coverage/src/breakpoint/shared/operations.ts.html +0 -160
- package/coverage/src/breakpoint/shared/socket.ts.html +0 -1297
- package/coverage/src/breakpoint/shared/utils.ts.html +0 -1087
- package/coverage/src/breakpoint/store/core.ts.html +0 -1600
- package/coverage/src/breakpoint/store/dock.ts.html +0 -733
- package/coverage/src/breakpoint/store/index.html +0 -146
- package/coverage/src/breakpoint/store/index.ts.html +0 -91
- package/coverage/src/common/BaseNode.ts.html +0 -4081
- package/coverage/src/common/Command.ts.html +0 -310
- package/coverage/src/common/EventEmitter.ts.html +0 -373
- package/coverage/src/common/Messager.ts.html +0 -820
- package/coverage/src/common/asyncFuncMap.ts.html +0 -127
- package/coverage/src/common/index.html +0 -191
- package/coverage/src/common/index.ts.html +0 -94
- package/coverage/src/concepts/Abort__.ts.html +0 -331
- package/coverage/src/concepts/Anchor__.ts.html +0 -667
- package/coverage/src/concepts/AnonymousFunction__.ts.html +0 -2092
- package/coverage/src/concepts/App__.ts.html +0 -13651
- package/coverage/src/concepts/Argument__.ts.html +0 -907
- package/coverage/src/concepts/Assignee__.ts.html +0 -2317
- package/coverage/src/concepts/AssignmentLine__.ts.html +0 -430
- package/coverage/src/concepts/Assignment__.ts.html +0 -1174
- package/coverage/src/concepts/Attribute__.ts.html +0 -919
- package/coverage/src/concepts/AuthInterface__.ts.html +0 -370
- package/coverage/src/concepts/AuthLogicForCallInterface__.ts.html +0 -2011
- package/coverage/src/concepts/AuthLogic__.ts.html +0 -793
- package/coverage/src/concepts/BackendVariable__.ts.html +0 -1690
- package/coverage/src/concepts/Backend__.ts.html +0 -1192
- package/coverage/src/concepts/BatchAssignment__.ts.html +0 -3376
- package/coverage/src/concepts/BinaryExpression__.ts.html +0 -1468
- package/coverage/src/concepts/BindAttribute__.ts.html +0 -3931
- package/coverage/src/concepts/BindDirective__.ts.html +0 -2002
- package/coverage/src/concepts/BindEvent__.ts.html +0 -3487
- package/coverage/src/concepts/BindStyle__.ts.html +0 -1645
- package/coverage/src/concepts/BooleanLiteral__.ts.html +0 -421
- package/coverage/src/concepts/CallAuthInterface__.ts.html +0 -1642
- package/coverage/src/concepts/CallConnector__.ts.html +0 -925
- package/coverage/src/concepts/CallFunction__.ts.html +0 -2164
- package/coverage/src/concepts/CallInterface__.ts.html +0 -2776
- package/coverage/src/concepts/CallLogic__.ts.html +0 -4693
- package/coverage/src/concepts/CallQueryComponent__.ts.html +0 -5419
- package/coverage/src/concepts/Comment__.ts.html +0 -397
- package/coverage/src/concepts/CompletionProperty__.ts.html +0 -946
- package/coverage/src/concepts/ConfigGroup__.ts.html +0 -1132
- package/coverage/src/concepts/ConfigPropertyValue__.ts.html +0 -427
- package/coverage/src/concepts/ConfigProperty__.ts.html +0 -1375
- package/coverage/src/concepts/Configuration__.ts.html +0 -1054
- package/coverage/src/concepts/Connection__.ts.html +0 -1387
- package/coverage/src/concepts/ConnectorTrigger__.ts.html +0 -598
- package/coverage/src/concepts/Connector__.ts.html +0 -4390
- package/coverage/src/concepts/Constant__.ts.html +0 -1123
- package/coverage/src/concepts/DataSource__.ts.html +0 -1798
- package/coverage/src/concepts/DatabaseTypeAnnotation__.ts.html +0 -334
- package/coverage/src/concepts/DefaultValue__.ts.html +0 -946
- package/coverage/src/concepts/Destination__.ts.html +0 -2761
- package/coverage/src/concepts/End__.ts.html +0 -436
- package/coverage/src/concepts/EntityIndex__.ts.html +0 -799
- package/coverage/src/concepts/EntityProperty__.ts.html +0 -2866
- package/coverage/src/concepts/Entity__.ts.html +0 -3070
- package/coverage/src/concepts/EnumItem__.ts.html +0 -553
- package/coverage/src/concepts/Enum__.ts.html +0 -1258
- package/coverage/src/concepts/Event__.ts.html +0 -1111
- package/coverage/src/concepts/ExternalDestination__.ts.html +0 -1060
- package/coverage/src/concepts/ForEachStatement__.ts.html +0 -2023
- package/coverage/src/concepts/FrontendLibrary__.ts.html +0 -1762
- package/coverage/src/concepts/FrontendVariable__.ts.html +0 -292
- package/coverage/src/concepts/Frontend__.ts.html +0 -4078
- package/coverage/src/concepts/Function__.ts.html +0 -3718
- package/coverage/src/concepts/Identifier__.ts.html +0 -1060
- package/coverage/src/concepts/IfStatement__.ts.html +0 -1636
- package/coverage/src/concepts/Integration__.ts.html +0 -1273
- package/coverage/src/concepts/InterfaceParam__.ts.html +0 -1258
- package/coverage/src/concepts/Interface__.ts.html +0 -3463
- package/coverage/src/concepts/JSBlock__.ts.html +0 -424
- package/coverage/src/concepts/JavaLogic__.ts.html +0 -463
- package/coverage/src/concepts/LogicItem__.ts.html +0 -1174
- package/coverage/src/concepts/Logic__.ts.html +0 -7732
- package/coverage/src/concepts/MatchCase__.ts.html +0 -2974
- package/coverage/src/concepts/Match__.ts.html +0 -2494
- package/coverage/src/concepts/MemberExpression__.ts.html +0 -1744
- package/coverage/src/concepts/MicroApp__.ts.html +0 -439
- package/coverage/src/concepts/Module__.ts.html +0 -9385
- package/coverage/src/concepts/MsgTriggerEvent__.ts.html +0 -1072
- package/coverage/src/concepts/MsgTriggerLauncher__.ts.html +0 -1045
- package/coverage/src/concepts/Namespace__.ts.html +0 -8221
- package/coverage/src/concepts/NewComposite__.ts.html +0 -4765
- package/coverage/src/concepts/NewList__.ts.html +0 -1702
- package/coverage/src/concepts/NewMap__.ts.html +0 -2470
- package/coverage/src/concepts/New__.ts.html +0 -289
- package/coverage/src/concepts/NullLiteral__.ts.html +0 -352
- package/coverage/src/concepts/NumericLiteral__.ts.html +0 -697
- package/coverage/src/concepts/OqlQueryComponent__.ts.html +0 -1237
- package/coverage/src/concepts/OverriddenLogic__.ts.html +0 -6970
- package/coverage/src/concepts/Param__.ts.html +0 -1798
- package/coverage/src/concepts/Point__.ts.html +0 -334
- package/coverage/src/concepts/ProcessComponent__.ts.html +0 -1717
- package/coverage/src/concepts/ProcessElement__.ts.html +0 -6187
- package/coverage/src/concepts/ProcessOutcome__.ts.html +0 -355
- package/coverage/src/concepts/ProcessOutcomes__.ts.html +0 -355
- package/coverage/src/concepts/Process__.ts.html +0 -5071
- package/coverage/src/concepts/QueryAggregateExpression__.ts.html +0 -589
- package/coverage/src/concepts/QueryFieldExpression__.ts.html +0 -586
- package/coverage/src/concepts/QueryFromExpression__.ts.html +0 -937
- package/coverage/src/concepts/QueryGroupByExpression__.ts.html +0 -580
- package/coverage/src/concepts/QueryJoinExpression__.ts.html +0 -1606
- package/coverage/src/concepts/QueryLimitExpression__.ts.html +0 -664
- package/coverage/src/concepts/QueryOrderByExpression__.ts.html +0 -706
- package/coverage/src/concepts/QuerySelectExpression__.ts.html +0 -1741
- package/coverage/src/concepts/Rect__.ts.html +0 -376
- package/coverage/src/concepts/Return__.ts.html +0 -1471
- package/coverage/src/concepts/Role__.ts.html +0 -604
- package/coverage/src/concepts/SelectMembers__.ts.html +0 -1279
- package/coverage/src/concepts/Slot__.ts.html +0 -649
- package/coverage/src/concepts/SqlQueryComponent__.ts.html +0 -1003
- package/coverage/src/concepts/Start__.ts.html +0 -307
- package/coverage/src/concepts/StringInterpolation__.ts.html +0 -1156
- package/coverage/src/concepts/StringLiteral__.ts.html +0 -508
- package/coverage/src/concepts/StructureProperty__.ts.html +0 -1300
- package/coverage/src/concepts/Structure__.ts.html +0 -2182
- package/coverage/src/concepts/SwitchCase__.ts.html +0 -1204
- package/coverage/src/concepts/SwitchStatement__.ts.html +0 -904
- package/coverage/src/concepts/Theme__.ts.html +0 -361
- package/coverage/src/concepts/Transactional__.ts.html +0 -631
- package/coverage/src/concepts/TriggerEvent__.ts.html +0 -1039
- package/coverage/src/concepts/TriggerLauncher__.ts.html +0 -778
- package/coverage/src/concepts/TypeAnnotation__.ts.html +0 -3832
- package/coverage/src/concepts/TypeParam__.ts.html +0 -322
- package/coverage/src/concepts/UnaryExpression__.ts.html +0 -730
- package/coverage/src/concepts/Unparsed__.ts.html +0 -397
- package/coverage/src/concepts/UseComponent__.ts.html +0 -334
- package/coverage/src/concepts/ValidationRule__.ts.html +0 -1876
- package/coverage/src/concepts/Variable__.ts.html +0 -1705
- package/coverage/src/concepts/ViewBlock__.ts.html +0 -355
- package/coverage/src/concepts/ViewComponent__.ts.html +0 -4327
- package/coverage/src/concepts/ViewElement__.ts.html +0 -8992
- package/coverage/src/concepts/View__.ts.html +0 -9019
- package/coverage/src/concepts/WhileStatement__.ts.html +0 -1105
- package/coverage/src/concepts/basics/stdlib/index.html +0 -356
- package/coverage/src/concepts/basics/stdlib/index.ts.html +0 -208
- package/coverage/src/concepts/basics/stdlib/nasl.auth.ts.html +0 -565
- package/coverage/src/concepts/basics/stdlib/nasl.browser.ts.html +0 -517
- package/coverage/src/concepts/basics/stdlib/nasl.collection.ts.html +0 -226
- package/coverage/src/concepts/basics/stdlib/nasl.configuration.ts.html +0 -172
- package/coverage/src/concepts/basics/stdlib/nasl.core.ts.html +0 -214
- package/coverage/src/concepts/basics/stdlib/nasl.event.ts.html +0 -145
- package/coverage/src/concepts/basics/stdlib/nasl.http.ts.html +0 -589
- package/coverage/src/concepts/basics/stdlib/nasl.interface.ts.html +0 -214
- package/coverage/src/concepts/basics/stdlib/nasl.io.ts.html +0 -229
- package/coverage/src/concepts/basics/stdlib/nasl.logging.ts.html +0 -268
- package/coverage/src/concepts/basics/stdlib/nasl.process.ts.html +0 -1999
- package/coverage/src/concepts/basics/stdlib/nasl.ui.ts.html +0 -3259
- package/coverage/src/concepts/basics/stdlib/nasl.util.ts.html +0 -6955
- package/coverage/src/concepts/basics/stdlib/nasl.validation.ts.html +0 -1768
- package/coverage/src/concepts/basics/stdlib/reference2TypeAnnotationList.ts.html +0 -163
- package/coverage/src/concepts/basics/stdlib/timeZone.ts.html +0 -664
- package/coverage/src/concepts/basics/types/coreTypeList.ts.html +0 -121
- package/coverage/src/concepts/basics/types/index.html +0 -131
- package/coverage/src/concepts/basics/types/index.ts.html +0 -160
- package/coverage/src/concepts/index.html +0 -1976
- package/coverage/src/concepts/index.ts.html +0 -103
- package/coverage/src/concepts/index__.ts.html +0 -454
- package/coverage/src/config.ts.html +0 -325
- package/coverage/src/decorators/index.html +0 -131
- package/coverage/src/decorators/index.ts.html +0 -583
- package/coverage/src/decorators/promise.ts.html +0 -169
- package/coverage/src/eventBus.ts.html +0 -100
- package/coverage/src/generator/compileComponent.ts.html +0 -142
- package/coverage/src/generator/genBundleFiles.ts.html +0 -1828
- package/coverage/src/generator/genHash.ts.html +0 -124
- package/coverage/src/generator/genMetaData.ts.html +0 -1084
- package/coverage/src/generator/genReleaseBody.ts.html +0 -1282
- package/coverage/src/generator/icestark.ts.html +0 -220
- package/coverage/src/generator/index.html +0 -266
- package/coverage/src/generator/index.ts.html +0 -106
- package/coverage/src/generator/microApp.ts.html +0 -172
- package/coverage/src/generator/permission.ts.html +0 -1036
- package/coverage/src/generator/qiankun.ts.html +0 -232
- package/coverage/src/generator/styleReplacer.ts.html +0 -199
- package/coverage/src/index.html +0 -146
- package/coverage/src/index.ts.html +0 -124
- package/coverage/src/manager/diagnostic.ts.html +0 -442
- package/coverage/src/manager/index.html +0 -131
- package/coverage/src/manager/stepRecorder.ts.html +0 -457
- package/coverage/src/natural/genNaturalTS.ts.html +0 -355
- package/coverage/src/natural/index.html +0 -161
- package/coverage/src/natural/index.ts.html +0 -91
- package/coverage/src/natural/naslStdlibMap.ts.html +0 -157
- package/coverage/src/natural/transformTSCode.ts.html +0 -2707
- package/coverage/src/sentry/index.html +0 -116
- package/coverage/src/sentry/index.ts.html +0 -676
- package/coverage/src/server/createUiTs.ts.html +0 -919
- package/coverage/src/server/entity2LogicNamespace.ts.html +0 -1294
- package/coverage/src/server/event.js.html +0 -526
- package/coverage/src/server/extendBaseNode.ts.html +0 -1762
- package/coverage/src/server/formatTsUtils.ts.html +0 -2689
- package/coverage/src/server/getConnector.ts.html +0 -316
- package/coverage/src/server/getExtensionModules.ts.html +0 -178
- package/coverage/src/server/getFunctions.ts.html +0 -133
- package/coverage/src/server/getInterfaces.ts.html +0 -229
- package/coverage/src/server/getLogging.ts.html +0 -100
- package/coverage/src/server/getLogics.ts.html +0 -1363
- package/coverage/src/server/getMemberIdentifier.ts.html +0 -1606
- package/coverage/src/server/getProcessComponents.ts.html +0 -112
- package/coverage/src/server/getProcesses.ts.html +0 -2023
- package/coverage/src/server/getValidates.ts.html +0 -115
- package/coverage/src/server/index.html +0 -401
- package/coverage/src/server/index.ts.html +0 -229
- package/coverage/src/server/naslServer.ts.html +0 -14356
- package/coverage/src/server/naslStdlibMap.ts.html +0 -241
- package/coverage/src/server/process2LogicNamespace.ts.html +0 -454
- package/coverage/src/server/translator.ts.html +0 -2566
- package/coverage/src/service/creator/add.configs.js.html +0 -397
- package/coverage/src/service/creator/errHandles.js.html +0 -304
- package/coverage/src/service/creator/index.html +0 -146
- package/coverage/src/service/creator/index.js.html +0 -352
- package/coverage/src/service/datasource/api.js.html +0 -118
- package/coverage/src/service/datasource/index.html +0 -131
- package/coverage/src/service/datasource/index.js.html +0 -103
- package/coverage/src/service/logic/api.js.html +0 -109
- package/coverage/src/service/logic/index.html +0 -131
- package/coverage/src/service/logic/index.js.html +0 -103
- package/coverage/src/service/storage/api.js.html +0 -202
- package/coverage/src/service/storage/index.html +0 -206
- package/coverage/src/service/storage/index.ts.html +0 -103
- package/coverage/src/service/storage/init.ts.html +0 -3721
- package/coverage/src/service/storage/jsoner.ts.html +0 -502
- package/coverage/src/service/storage/map.ts.html +0 -256
- package/coverage/src/service/storage/service.ts.html +0 -331
- package/coverage/src/service/storage/storagePoint.ts.html +0 -304
- package/coverage/src/templator/genCallComponentLogic.ts.html +0 -163
- package/coverage/src/templator/genCreateBlock.ts.html +0 -1093
- package/coverage/src/templator/genCurdEditMultipleKeyBlock.ts.html +0 -1609
- package/coverage/src/templator/genCurdMultipleKeyBlock.ts.html +0 -2254
- package/coverage/src/templator/genEditTableBlock.ts.html +0 -1021
- package/coverage/src/templator/genEnumSelectBlock.ts.html +0 -178
- package/coverage/src/templator/genGetBlock.ts.html +0 -451
- package/coverage/src/templator/genGridViewBlock.ts.html +0 -1114
- package/coverage/src/templator/genListViewBlock.ts.html +0 -475
- package/coverage/src/templator/genQueryComponent.ts.html +0 -1207
- package/coverage/src/templator/genSelectBlock.ts.html +0 -1243
- package/coverage/src/templator/genTableBlock.ts.html +0 -973
- package/coverage/src/templator/genUpdateBlock.ts.html +0 -1192
- package/coverage/src/templator/index.html +0 -326
- package/coverage/src/templator/index.ts.html +0 -154
- package/coverage/src/templator/utils.ts.html +0 -1861
- package/coverage/src/translator/constant.ts.html +0 -106
- package/coverage/src/translator/index.html +0 -146
- package/coverage/src/translator/index.ts.html +0 -94
- package/coverage/src/translator/utils.ts.html +0 -436
- package/coverage/src/utils/cookie.ts.html +0 -265
- package/coverage/src/utils/env.ts.html +0 -91
- package/coverage/src/utils/index.html +0 -236
- package/coverage/src/utils/index.ts.html +0 -694
- package/coverage/src/utils/logger.ts.html +0 -145
- package/coverage/src/utils/sortTsString.ts.html +0 -187
- package/coverage/src/utils/string.ts.html +0 -400
- package/coverage/src/utils/time-slicing.ts.html +0 -418
- package/coverage/src/utils/traverse.ts.html +0 -568
- package/coverage/src/utils/window.ts.html +0 -112
package/src/concepts/App__.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { queryNodeByPath } from '../service/storage/jsoner';
|
|
2
2
|
import { getNaslNodeByNodeCallee, getNodeByNodeCallee } from '../automate/engine/utils';
|
|
3
|
-
import ConfigProperty from './ConfigProperty__';
|
|
4
|
-
import TypeAnnotation from './TypeAnnotation__';
|
|
5
|
-
import View from './View__';
|
|
6
|
-
import AuthInterface from './AuthInterface__';
|
|
7
|
-
import Interface from './Interface__';
|
|
3
|
+
import type ConfigProperty from './ConfigProperty__';
|
|
4
|
+
import type TypeAnnotation from './TypeAnnotation__';
|
|
5
|
+
import type View from './View__';
|
|
6
|
+
import type AuthInterface from './AuthInterface__';
|
|
7
|
+
import type Interface from './Interface__';
|
|
8
|
+
import type Frontend from './Frontend__';
|
|
8
9
|
import { CUSTOM_CONNECTOR_EDITABLE_SUFFIX } from './basics/constants';
|
|
9
10
|
|
|
10
|
-
// import CallLogic from './CallLogic__';
|
|
11
|
-
|
|
12
11
|
export interface AssetsInfo {
|
|
13
12
|
js: Array<string>;
|
|
14
13
|
css: Array<string>;
|
|
@@ -52,7 +51,7 @@ import type Enum from './Enum__';
|
|
|
52
51
|
import type Logic from './Logic__';
|
|
53
52
|
import type OverriddenLogic from './OverriddenLogic__';
|
|
54
53
|
import type AbstractInterface from './AbstractInterface__';
|
|
55
|
-
import type
|
|
54
|
+
import type FrontendType from './FrontendType__';
|
|
56
55
|
import Backend from './Backend__';
|
|
57
56
|
import type Process from './Process__';
|
|
58
57
|
import type Role from './Role__';
|
|
@@ -199,14 +198,14 @@ export class App extends BaseNode {
|
|
|
199
198
|
interfaces: Array<AbstractInterface> = [];
|
|
200
199
|
|
|
201
200
|
/**
|
|
202
|
-
*
|
|
201
|
+
* 端类型列表
|
|
203
202
|
*/
|
|
204
203
|
@property({
|
|
205
|
-
objectRef: '
|
|
204
|
+
objectRef: 'FrontendType',
|
|
206
205
|
isArray: true,
|
|
207
206
|
defaultValue: [],
|
|
208
207
|
})
|
|
209
|
-
|
|
208
|
+
frontendTypes: Array<FrontendType> = [];
|
|
210
209
|
|
|
211
210
|
/**
|
|
212
211
|
* 后端
|
|
@@ -1464,156 +1463,158 @@ export class App extends BaseNode {
|
|
|
1464
1463
|
return utils.unique(name, this.getAbstractInterfaceExistingNames(), undefined, true);
|
|
1465
1464
|
}
|
|
1466
1465
|
|
|
1467
|
-
|
|
1466
|
+
getFrontendTypeExistingNames(excludedList: Array<FrontendType> = []) {
|
|
1468
1467
|
const excludedSet = new Set(excludedList);
|
|
1469
|
-
return ((this.
|
|
1468
|
+
return ((this.frontendTypes as FrontendType[]) || [])
|
|
1469
|
+
.filter((item) => !excludedSet.has(item))
|
|
1470
|
+
.map((item) => item?.name);
|
|
1470
1471
|
}
|
|
1471
|
-
|
|
1472
|
-
return utils.unique(name, this.
|
|
1472
|
+
getFrontendTypeUniqueName(name = 'frontendType1') {
|
|
1473
|
+
return utils.unique(name, this.getFrontendTypeExistingNames(), undefined, true);
|
|
1473
1474
|
}
|
|
1474
1475
|
|
|
1475
1476
|
/**
|
|
1476
|
-
*
|
|
1477
|
+
* 插入端类型
|
|
1477
1478
|
* @internal
|
|
1478
|
-
* @param name
|
|
1479
|
+
* @param name 端类型名称,如果不填会自动生成一个唯一名称
|
|
1479
1480
|
*/
|
|
1480
|
-
|
|
1481
|
+
_insertFrontendTypeAt(name: string, index: number): FrontendType;
|
|
1481
1482
|
|
|
1482
1483
|
/**
|
|
1483
|
-
*
|
|
1484
|
+
* 插入端类型
|
|
1484
1485
|
* @internal
|
|
1485
|
-
* @param
|
|
1486
|
+
* @param frontendTypeOptions 端类型参数
|
|
1486
1487
|
*/
|
|
1487
|
-
|
|
1488
|
+
_insertFrontendTypeAt(frontendTypeOptions: Partial<FrontendType>, index: number): FrontendType;
|
|
1488
1489
|
|
|
1489
1490
|
/**
|
|
1490
|
-
*
|
|
1491
|
+
* 插入端类型
|
|
1491
1492
|
* @internal
|
|
1492
|
-
* @param
|
|
1493
|
+
* @param frontendType 已有的端类型实例
|
|
1493
1494
|
*/
|
|
1494
|
-
|
|
1495
|
+
_insertFrontendTypeAt(frontendType: FrontendType, index: number): FrontendType;
|
|
1495
1496
|
|
|
1496
|
-
|
|
1497
|
-
const
|
|
1498
|
-
const relationOptions = { parentNode: this, parentKey: '
|
|
1499
|
-
const
|
|
1500
|
-
let
|
|
1497
|
+
_insertFrontendTypeAt(options: string | Partial<FrontendType> | FrontendType, index: number) {
|
|
1498
|
+
const frontendTypeOptions: any = {};
|
|
1499
|
+
const relationOptions = { parentNode: this, parentKey: 'frontendTypes' };
|
|
1500
|
+
const FrontendType = getConceptConstructor('FrontendType');
|
|
1501
|
+
let frontendType: FrontendType;
|
|
1501
1502
|
if (!options) {
|
|
1502
|
-
|
|
1503
|
+
frontendType = FrontendType.from(
|
|
1503
1504
|
{
|
|
1504
|
-
...
|
|
1505
|
-
name: this.
|
|
1505
|
+
...frontendTypeOptions,
|
|
1506
|
+
name: this.getFrontendTypeUniqueName(),
|
|
1506
1507
|
},
|
|
1507
1508
|
this,
|
|
1508
|
-
'
|
|
1509
|
+
'frontendTypes',
|
|
1509
1510
|
);
|
|
1510
1511
|
} else if (typeof options === 'string') {
|
|
1511
|
-
|
|
1512
|
+
frontendType = FrontendType.from(
|
|
1512
1513
|
{
|
|
1513
|
-
...
|
|
1514
|
+
...frontendTypeOptions,
|
|
1514
1515
|
name: options,
|
|
1515
1516
|
},
|
|
1516
1517
|
this,
|
|
1517
|
-
'
|
|
1518
|
+
'frontendTypes',
|
|
1518
1519
|
);
|
|
1519
|
-
} else if (asserts.
|
|
1520
|
+
} else if (asserts.isFrontendType(options)) {
|
|
1520
1521
|
options.ensureDelete(); // 同一实例不支持多处存在
|
|
1521
|
-
|
|
1522
|
-
Object.assign(
|
|
1522
|
+
frontendType = options;
|
|
1523
|
+
Object.assign(frontendType, relationOptions);
|
|
1523
1524
|
} else {
|
|
1524
|
-
|
|
1525
|
+
frontendType = FrontendType.from(
|
|
1525
1526
|
{
|
|
1526
|
-
...
|
|
1527
|
+
...frontendTypeOptions,
|
|
1527
1528
|
...options,
|
|
1528
1529
|
},
|
|
1529
1530
|
this,
|
|
1530
|
-
'
|
|
1531
|
+
'frontendTypes',
|
|
1531
1532
|
);
|
|
1532
1533
|
}
|
|
1533
|
-
this.
|
|
1534
|
-
return
|
|
1534
|
+
this.frontendTypes.splice(index, 0, frontendType);
|
|
1535
|
+
return frontendType;
|
|
1535
1536
|
}
|
|
1536
1537
|
|
|
1537
1538
|
/**
|
|
1538
|
-
*
|
|
1539
|
-
* @param name
|
|
1539
|
+
* 插入端类型
|
|
1540
|
+
* @param name 端类型名称,如果不填会自动生成一个唯一名称
|
|
1540
1541
|
*/
|
|
1541
|
-
|
|
1542
|
+
insertFrontendTypeAt(name: string, index: number): FrontendType;
|
|
1542
1543
|
|
|
1543
1544
|
/**
|
|
1544
|
-
*
|
|
1545
|
-
* @param
|
|
1545
|
+
* 插入端类型
|
|
1546
|
+
* @param frontendTypeOptions 端类型参数
|
|
1546
1547
|
*/
|
|
1547
|
-
|
|
1548
|
+
insertFrontendTypeAt(frontendTypeOptions: Partial<FrontendType>, index: number): FrontendType;
|
|
1548
1549
|
|
|
1549
1550
|
/**
|
|
1550
|
-
*
|
|
1551
|
-
* @param
|
|
1551
|
+
* 插入端类型
|
|
1552
|
+
* @param frontendType 已有的端类型实例
|
|
1552
1553
|
*/
|
|
1553
|
-
|
|
1554
|
+
insertFrontendTypeAt(frontendType: FrontendType, index: number): FrontendType;
|
|
1554
1555
|
|
|
1555
|
-
|
|
1556
|
-
const node = this.
|
|
1556
|
+
insertFrontendTypeAt(options: string | Partial<FrontendType> | FrontendType, index: number) {
|
|
1557
|
+
const node = this._insertFrontendTypeAt(options as any, index);
|
|
1557
1558
|
node.create({
|
|
1558
1559
|
index,
|
|
1559
1560
|
parentNode: this,
|
|
1560
|
-
parentKey: '
|
|
1561
|
+
parentKey: 'frontendTypes',
|
|
1561
1562
|
});
|
|
1562
1563
|
return node;
|
|
1563
1564
|
}
|
|
1564
1565
|
|
|
1565
1566
|
/**
|
|
1566
|
-
*
|
|
1567
|
+
* 添加端类型
|
|
1567
1568
|
* @internal
|
|
1568
|
-
* @param name
|
|
1569
|
+
* @param name 端类型名称,如果不填会自动生成一个唯一名称
|
|
1569
1570
|
*/
|
|
1570
|
-
|
|
1571
|
+
_addFrontendType(name?: string): FrontendType;
|
|
1571
1572
|
|
|
1572
1573
|
/**
|
|
1573
|
-
*
|
|
1574
|
+
* 添加端类型
|
|
1574
1575
|
* @internal
|
|
1575
|
-
* @param
|
|
1576
|
+
* @param frontendTypeOptions 端类型参数
|
|
1576
1577
|
*/
|
|
1577
|
-
|
|
1578
|
+
_addFrontendType(frontendTypeOptions: Partial<FrontendType>): FrontendType;
|
|
1578
1579
|
|
|
1579
1580
|
/**
|
|
1580
|
-
*
|
|
1581
|
+
* 添加端类型
|
|
1581
1582
|
* @internal
|
|
1582
|
-
* @param
|
|
1583
|
+
* @param frontendType 已有的端类型实例
|
|
1583
1584
|
*/
|
|
1584
|
-
|
|
1585
|
+
_addFrontendType(frontendType: FrontendType): FrontendType;
|
|
1585
1586
|
|
|
1586
|
-
|
|
1587
|
-
const index = this.
|
|
1588
|
-
return this.
|
|
1587
|
+
_addFrontendType(options?: string | Partial<FrontendType> | FrontendType) {
|
|
1588
|
+
const index = this.frontendTypes.length;
|
|
1589
|
+
return this._insertFrontendTypeAt(options as any, index);
|
|
1589
1590
|
}
|
|
1590
1591
|
|
|
1591
1592
|
/**
|
|
1592
|
-
*
|
|
1593
|
+
* 添加端类型
|
|
1593
1594
|
* @internal
|
|
1594
|
-
* @param name
|
|
1595
|
+
* @param name 端类型名称,如果不填会自动生成一个唯一名称
|
|
1595
1596
|
*/
|
|
1596
|
-
|
|
1597
|
+
addFrontendType(name?: string): FrontendType;
|
|
1597
1598
|
|
|
1598
1599
|
/**
|
|
1599
|
-
*
|
|
1600
|
-
* @param
|
|
1600
|
+
* 添加端类型
|
|
1601
|
+
* @param frontendTypeOptions 端类型参数
|
|
1601
1602
|
*/
|
|
1602
|
-
|
|
1603
|
+
addFrontendType(frontendTypeOptions: Partial<FrontendType>): FrontendType;
|
|
1603
1604
|
|
|
1604
1605
|
/**
|
|
1605
|
-
*
|
|
1606
|
-
* @param
|
|
1606
|
+
* 添加端类型
|
|
1607
|
+
* @param frontendType 已有的端类型实例
|
|
1607
1608
|
*/
|
|
1608
|
-
|
|
1609
|
+
addFrontendType(frontendType: FrontendType): FrontendType;
|
|
1609
1610
|
|
|
1610
|
-
|
|
1611
|
-
const node = this.
|
|
1612
|
-
const index = this.
|
|
1611
|
+
addFrontendType(options?: string | Partial<FrontendType> | FrontendType) {
|
|
1612
|
+
const node = this._addFrontendType(options as any);
|
|
1613
|
+
const index = this.frontendTypes.indexOf(node);
|
|
1613
1614
|
node.create({
|
|
1614
1615
|
index,
|
|
1615
1616
|
parentNode: this,
|
|
1616
|
-
parentKey: '
|
|
1617
|
+
parentKey: 'frontendTypes',
|
|
1617
1618
|
});
|
|
1618
1619
|
return node;
|
|
1619
1620
|
}
|
|
@@ -3231,45 +3232,45 @@ export class App extends BaseNode {
|
|
|
3231
3232
|
}
|
|
3232
3233
|
|
|
3233
3234
|
/**
|
|
3234
|
-
*
|
|
3235
|
-
* @param name
|
|
3235
|
+
* 删除端类型
|
|
3236
|
+
* @param name 端类型名称
|
|
3236
3237
|
*/
|
|
3237
|
-
|
|
3238
|
+
removeFrontendType(name: string): void;
|
|
3238
3239
|
|
|
3239
3240
|
/**
|
|
3240
|
-
*
|
|
3241
|
-
* @param
|
|
3241
|
+
* 删除端类型
|
|
3242
|
+
* @param frontendType 已有的端类型实例
|
|
3242
3243
|
*/
|
|
3243
|
-
|
|
3244
|
+
removeFrontendType(frontendType: FrontendType): void;
|
|
3244
3245
|
|
|
3245
|
-
|
|
3246
|
-
let
|
|
3246
|
+
removeFrontendType(options: string | FrontendType) {
|
|
3247
|
+
let frontendType: FrontendType;
|
|
3247
3248
|
if (typeof options === 'string') {
|
|
3248
|
-
|
|
3249
|
-
if (!
|
|
3250
|
-
throw new Error('
|
|
3249
|
+
frontendType = (this.frontendTypes as FrontendType[]).find((item) => item.name === options);
|
|
3250
|
+
if (!frontendType) {
|
|
3251
|
+
throw new Error('找不到端类型 ' + options);
|
|
3251
3252
|
}
|
|
3252
3253
|
} else {
|
|
3253
|
-
|
|
3254
|
+
frontendType = options;
|
|
3254
3255
|
}
|
|
3255
|
-
return
|
|
3256
|
+
return frontendType.delete();
|
|
3256
3257
|
}
|
|
3257
3258
|
|
|
3258
|
-
|
|
3259
|
-
const parentKey =
|
|
3259
|
+
__removeFrontendType(frontendType: FrontendType) {
|
|
3260
|
+
const parentKey = frontendType.parentKey;
|
|
3260
3261
|
const params: Params = {
|
|
3261
3262
|
parentNode: this,
|
|
3262
3263
|
parentKey,
|
|
3263
3264
|
index: -1,
|
|
3264
3265
|
object: null,
|
|
3265
|
-
oldObject:
|
|
3266
|
+
oldObject: frontendType,
|
|
3266
3267
|
};
|
|
3267
3268
|
if (parentKey) {
|
|
3268
3269
|
params.parentKey = parentKey;
|
|
3269
3270
|
// @ts-ignore
|
|
3270
3271
|
const t = this.__v_raw || this;
|
|
3271
3272
|
// @ts-ignore
|
|
3272
|
-
const n =
|
|
3273
|
+
const n = frontendType.__v_raw || frontendType;
|
|
3273
3274
|
if (Array.isArray((t as any)[parentKey])) {
|
|
3274
3275
|
// @ts-ignore
|
|
3275
3276
|
const index = (t as any)[parentKey].findIndex((el) => (el.__v_raw || el) === n);
|
|
@@ -3970,7 +3971,7 @@ export class App extends BaseNode {
|
|
|
3970
3971
|
node = modules.find((moduleItem) => moduleItem.name === moduleName && moduleItem?.parentNode?.concept === 'Integration');
|
|
3971
3972
|
} else {
|
|
3972
3973
|
node = modules.find((moduleItem) => moduleItem.name === moduleName);
|
|
3973
|
-
}
|
|
3974
|
+
}
|
|
3974
3975
|
}
|
|
3975
3976
|
for (let index = 0; index < nameArr.length; index++) {
|
|
3976
3977
|
if (!node) {
|
|
@@ -3997,23 +3998,21 @@ export class App extends BaseNode {
|
|
|
3997
3998
|
}
|
|
3998
3999
|
|
|
3999
4000
|
loadPackageInfo(scope: string) {
|
|
4000
|
-
const
|
|
4001
|
-
const { framework, ui } = materialConfig;
|
|
4002
|
-
|
|
4001
|
+
const dependencyMap = (window as any).globalData.ideVersionDetail.dependencies;
|
|
4003
4002
|
const packageInfo = {
|
|
4004
4003
|
template: { name: '', version: '', scope },
|
|
4005
4004
|
ui: { name: '', version: '', scope },
|
|
4006
4005
|
scope,
|
|
4007
4006
|
};
|
|
4008
4007
|
|
|
4009
|
-
packageInfo.template.name = scope === 'h5' ?
|
|
4010
|
-
packageInfo.template.version =
|
|
4011
|
-
|
|
4012
|
-
packageInfo.ui.name = scope === 'h5' ? ui
|
|
4013
|
-
packageInfo.ui.version =
|
|
4014
|
-
|
|
4015
|
-
|
|
4016
|
-
|
|
4008
|
+
packageInfo.template.name = scope === 'h5' ? '@lcap/mobile-template' : 'lcap-pc-template';
|
|
4009
|
+
packageInfo.template.version =
|
|
4010
|
+
scope === 'h5' ? dependencyMap.FrontendArchH5.version : dependencyMap.FrontendArchPC.version;
|
|
4011
|
+
packageInfo.ui.name = scope === 'h5' ? '@lcap/mobile-ui' : 'cloud-ui.vusion';
|
|
4012
|
+
packageInfo.ui.version =
|
|
4013
|
+
scope === 'h5'
|
|
4014
|
+
? dependencyMap.FrontendComponentLibraryH5.version
|
|
4015
|
+
: dependencyMap.FrontendComponentLibraryPC.version;
|
|
4017
4016
|
return packageInfo;
|
|
4018
4017
|
}
|
|
4019
4018
|
|
|
@@ -4048,13 +4047,21 @@ export class App extends BaseNode {
|
|
|
4048
4047
|
`${prefix}/packages/vue@2/dist/vue.min.js`,
|
|
4049
4048
|
// `${prefix}/packages/vue-router@3/dist/vue-router.min.js`,
|
|
4050
4049
|
|
|
4051
|
-
|
|
4050
|
+
scope === 'h5'
|
|
4051
|
+
? `${prefix}/packages/@lcap/mobile-ui@${packageInfo.ui.version}/dist-theme/index.js`
|
|
4052
|
+
: `${prefix}/packages/cloud-ui.vusion@${packageInfo.ui.version}/dist-theme/index.js`,
|
|
4052
4053
|
|
|
4053
|
-
|
|
4054
|
+
scope === 'h5'
|
|
4055
|
+
? `${prefix}/packages/@lcap/mobile-template@${packageInfo.template.version}/cloudAdminDesigner.umd.min.js`
|
|
4056
|
+
: `${prefix}/packages/lcap-pc-template@${packageInfo.template.version}/cloudAdminDesigner.umd.min.js`,
|
|
4054
4057
|
],
|
|
4055
4058
|
css: [
|
|
4056
|
-
|
|
4057
|
-
|
|
4059
|
+
scope === 'h5'
|
|
4060
|
+
? `${prefix}/packages/@lcap/mobile-ui@${packageInfo.ui.version}/dist-theme/index.css`
|
|
4061
|
+
: `${prefix}/packages/cloud-ui.vusion@${packageInfo.ui.version}/dist-theme/index.css`,
|
|
4062
|
+
scope === 'h5'
|
|
4063
|
+
? `${prefix}/packages/@lcap/mobile-template@${packageInfo.template.version}/cloudAdminDesigner.css`
|
|
4064
|
+
: `${prefix}/packages/lcap-pc-template@${packageInfo.template.version}/cloudAdminDesigner.css`,
|
|
4058
4065
|
],
|
|
4059
4066
|
},
|
|
4060
4067
|
custom: {
|
|
@@ -4063,10 +4070,10 @@ export class App extends BaseNode {
|
|
|
4063
4070
|
names: [],
|
|
4064
4071
|
},
|
|
4065
4072
|
};
|
|
4066
|
-
const
|
|
4073
|
+
const frontendTypes = this.frontendTypes.filter((frontendType) => frontendType.kind === scope);
|
|
4067
4074
|
const existingSet = new Set();
|
|
4068
|
-
|
|
4069
|
-
|
|
4075
|
+
frontendTypes.forEach((frontendType) => {
|
|
4076
|
+
frontendType.componentDependencies.forEach((dep) => {
|
|
4070
4077
|
const { name, version } = dep;
|
|
4071
4078
|
const jsName = `${prefix}/packages/${name}@${version}/dist-theme/index.js`;
|
|
4072
4079
|
if (!existingSet.has(jsName)) {
|
|
@@ -4173,7 +4180,11 @@ export class App extends BaseNode {
|
|
|
4173
4180
|
structureCount: this.structures.length,
|
|
4174
4181
|
enumCount: this.enums.length,
|
|
4175
4182
|
logicCount: this.logics.length,
|
|
4176
|
-
viewCount: sum(
|
|
4183
|
+
viewCount: sum(
|
|
4184
|
+
this.frontendTypes.map((frontendType) =>
|
|
4185
|
+
sum(frontendType.frontends.map((frontend) => countView(frontend.views))),
|
|
4186
|
+
),
|
|
4187
|
+
),
|
|
4177
4188
|
processCount: this.processes.length,
|
|
4178
4189
|
};
|
|
4179
4190
|
}
|
|
@@ -4345,35 +4356,19 @@ export class App extends BaseNode {
|
|
|
4345
4356
|
return errorList;
|
|
4346
4357
|
}
|
|
4347
4358
|
|
|
4348
|
-
addFrontendForType(options?: string | Partial<Frontend> | Frontend) {
|
|
4349
|
-
let insertIndex = -1;
|
|
4350
|
-
this.frontends.forEach((frontend, index) => {
|
|
4351
|
-
if (frontend.type === (options as any).type) {
|
|
4352
|
-
insertIndex = index;
|
|
4353
|
-
}
|
|
4354
|
-
});
|
|
4355
|
-
if ((options as any).type === 'h5' && insertIndex === -1) {
|
|
4356
|
-
insertIndex = this.frontends.length;
|
|
4357
|
-
}
|
|
4358
|
-
const node = this._insertFrontendAt(options as any, insertIndex + 1);
|
|
4359
|
-
const index = this.frontends.indexOf(node);
|
|
4360
|
-
node.create({
|
|
4361
|
-
index,
|
|
4362
|
-
parentNode: this,
|
|
4363
|
-
parentKey: 'frontends',
|
|
4364
|
-
});
|
|
4365
|
-
return node;
|
|
4366
|
-
}
|
|
4367
|
-
|
|
4368
4359
|
getFrontendExistingTitles(excludedList: Array<Frontend> = []) {
|
|
4369
4360
|
const excludedSet = new Set(excludedList);
|
|
4370
|
-
return (
|
|
4361
|
+
return (this.frontendTypes || [])
|
|
4362
|
+
.map((frontendType) => frontendType.frontends?.filter((item) => !excludedSet.has(item)).map((item) => item.title))
|
|
4363
|
+
.flat(2);
|
|
4371
4364
|
}
|
|
4372
4365
|
|
|
4373
4366
|
getExtensionsCallbackLogics() {
|
|
4374
4367
|
let resultLogics: string[] = [];
|
|
4375
|
-
this.
|
|
4376
|
-
|
|
4368
|
+
this.frontendTypes.forEach((frontendType) => {
|
|
4369
|
+
frontendType?.frontends?.forEach((frontend) => {
|
|
4370
|
+
resultLogics = [...resultLogics, ...frontend.getExtensionsCallbackLogics()];
|
|
4371
|
+
});
|
|
4377
4372
|
});
|
|
4378
4373
|
return Array.from(new Set(resultLogics));
|
|
4379
4374
|
}
|
|
@@ -4387,7 +4382,6 @@ export class App extends BaseNode {
|
|
|
4387
4382
|
}
|
|
4388
4383
|
|
|
4389
4384
|
genAllCustomComponents() {
|
|
4390
|
-
const { frontends } = this;
|
|
4391
4385
|
const compMap: {
|
|
4392
4386
|
pc: Array<any>;
|
|
4393
4387
|
h5: Array<any>;
|
|
@@ -4396,12 +4390,12 @@ export class App extends BaseNode {
|
|
|
4396
4390
|
h5: [],
|
|
4397
4391
|
};
|
|
4398
4392
|
const existingSet = new Set();
|
|
4399
|
-
|
|
4400
|
-
if (
|
|
4401
|
-
|
|
4393
|
+
this.frontendTypes.forEach((frontendType) => {
|
|
4394
|
+
if (frontendType.componentDependencies) {
|
|
4395
|
+
frontendType.componentDependencies.forEach((dep) => {
|
|
4402
4396
|
const { name } = dep;
|
|
4403
4397
|
if (!existingSet.has(name)) {
|
|
4404
|
-
compMap[
|
|
4398
|
+
compMap[frontendType.kind].push(dep);
|
|
4405
4399
|
}
|
|
4406
4400
|
});
|
|
4407
4401
|
}
|
|
@@ -321,12 +321,20 @@ export class BackendVariable extends BaseNode {
|
|
|
321
321
|
toJS(state?: TranslatorState): string {
|
|
322
322
|
const context = this.view ? 'this' : 'Vue.prototype';
|
|
323
323
|
const typeAnnotation = this.typeAnnotation || this.__TypeAnnotation;
|
|
324
|
+
let { sortedTypeKey, typeKind, typeName, typeNamespace } = typeAnnotation || {};
|
|
325
|
+
if (typeNamespace?.endsWith('.metadataTypes')) {
|
|
326
|
+
const referenceNode = this.app.findNodeByCompleteName(typeNamespace + '.' + typeName) || {};
|
|
327
|
+
const typeAn = referenceNode.typeAnnotation || {};
|
|
328
|
+
sortedTypeKey = `${typeAn.typeNamespace}.${typeAn.typeName}`;
|
|
329
|
+
typeKind = typeAn.typeKind;
|
|
330
|
+
typeName = typeAn.typeName;
|
|
331
|
+
}
|
|
324
332
|
const needGenInitFromSchema =
|
|
325
333
|
typeAnnotation &&
|
|
326
|
-
(!['primitive', 'union'].includes(
|
|
334
|
+
(!['primitive', 'union'].includes(typeKind) || typeName === 'DateTime');
|
|
327
335
|
let code = `${this.name} =`;
|
|
328
336
|
if (needGenInitFromSchema) {
|
|
329
|
-
code += `${context}.$genInitFromSchema('${
|
|
337
|
+
code += `${context}.$genInitFromSchema('${sortedTypeKey}',`;
|
|
330
338
|
}
|
|
331
339
|
|
|
332
340
|
if (this.defaultValue?.expression) {
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { wrapForEachToGenerator as wrapForEach } from '../utils/time-slicing';
|
|
2
1
|
import {
|
|
3
2
|
TranslatorState,
|
|
4
3
|
shiftState,
|
|
@@ -9,6 +8,7 @@ import {
|
|
|
9
8
|
TranslatorGenerator,
|
|
10
9
|
} from '../translator';
|
|
11
10
|
import { ElementToVueOptions } from './ViewElement__';
|
|
11
|
+
import { getCallExpressionQuickInfo, Range, GetCode } from './utils/quick-info';
|
|
12
12
|
|
|
13
13
|
const operatorMap = {
|
|
14
14
|
'&&': 'and',
|
|
@@ -475,6 +475,10 @@ export class BinaryExpression extends LogicItem {
|
|
|
475
475
|
return code;
|
|
476
476
|
}
|
|
477
477
|
|
|
478
|
+
getQuickInfoOffset(range: Range, getCode: GetCode) {
|
|
479
|
+
return getCallExpressionQuickInfo(range, getCode);
|
|
480
|
+
}
|
|
481
|
+
|
|
478
482
|
//================================================================================
|
|
479
483
|
// 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
|
|
480
484
|
// ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
|
|
@@ -1080,15 +1080,20 @@ export class BindAttribute extends BaseNode {
|
|
|
1080
1080
|
return str;
|
|
1081
1081
|
}
|
|
1082
1082
|
|
|
1083
|
+
|
|
1083
1084
|
@withSourceMapGenerator
|
|
1084
1085
|
*toEmbeddedTS(state = createCompilerState()): TranslatorGenerator {
|
|
1085
1086
|
const self = this;
|
|
1086
1087
|
const { name, type, value, rules, expression, playground } = self;
|
|
1087
1088
|
let code = '';
|
|
1088
|
-
|
|
1089
|
-
|
|
1089
|
+
// 业务组件
|
|
1090
|
+
const isBusinessComponent = self.viewElement?.isCorrespondingBusinessComponent;
|
|
1091
|
+
if (isBusinessComponent) {
|
|
1092
|
+
code += `${name}: `;
|
|
1093
|
+
} else if (self?.name === 'data-source' && self?.expression?.concept === 'CallLogic') {
|
|
1094
|
+
code += `() => {\n`;
|
|
1090
1095
|
} else {
|
|
1091
|
-
code
|
|
1096
|
+
code += '() => {\n';
|
|
1092
1097
|
}
|
|
1093
1098
|
if (['destination', 'externalDestination'].includes(name) && type === 'dynamic') {
|
|
1094
1099
|
code += yield* (self as any)[name].toEmbeddedTS(shiftState(state, code, { tabSize: (state?.tabSize || 0) + 1 }));
|
|
@@ -1100,7 +1105,7 @@ export class BindAttribute extends BaseNode {
|
|
|
1100
1105
|
});
|
|
1101
1106
|
} else if (expression) {
|
|
1102
1107
|
code += yield* expression.toEmbeddedTS(shiftState(state, code, { tabSize: (state?.tabSize || 0) + 1 }));
|
|
1103
|
-
code += '
|
|
1108
|
+
code += '\n';
|
|
1104
1109
|
} else if (name === 'url' && value) {
|
|
1105
1110
|
/**
|
|
1106
1111
|
* ls定制化处理
|
|
@@ -1126,13 +1131,15 @@ export class BindAttribute extends BaseNode {
|
|
|
1126
1131
|
code += ';\n';
|
|
1127
1132
|
}
|
|
1128
1133
|
}
|
|
1129
|
-
if (type === 'dynamic') {
|
|
1134
|
+
if (type === 'dynamic' && !isBusinessComponent) {
|
|
1130
1135
|
yield* wrapForEach(playground, function* warpForEachGenerator(item, index) {
|
|
1131
1136
|
code += yield* item.toEmbeddedTS(shiftState(state, code, { tabSize: (state?.tabSize || 0) + 1 }));
|
|
1132
1137
|
code += ';\n';
|
|
1133
1138
|
});
|
|
1134
1139
|
}
|
|
1135
|
-
|
|
1140
|
+
if (!isBusinessComponent) {
|
|
1141
|
+
code += '\n}';
|
|
1142
|
+
}
|
|
1136
1143
|
return code;
|
|
1137
1144
|
}
|
|
1138
1145
|
|
|
@@ -1168,6 +1175,8 @@ export class BindAttribute extends BaseNode {
|
|
|
1168
1175
|
type = `${self.value}`.includes('.') ? 'nasl.core.Decimal' : 'nasl.core.Long';
|
|
1169
1176
|
} else if (typeof self.value === 'boolean') {
|
|
1170
1177
|
type = 'nasl.core.Boolean';
|
|
1178
|
+
} else if (['page-size', 'page-number'].includes(self.name) && self.value === null) {
|
|
1179
|
+
type = 'nasl.core.Long'
|
|
1171
1180
|
}
|
|
1172
1181
|
code += `${type}`;
|
|
1173
1182
|
} else {
|
|
@@ -629,21 +629,36 @@ export class BindDirective extends BaseNode {
|
|
|
629
629
|
return str;
|
|
630
630
|
}
|
|
631
631
|
|
|
632
|
+
get viewElement() {
|
|
633
|
+
return this.getAncestor('ViewElement') as ViewElement;
|
|
634
|
+
}
|
|
635
|
+
|
|
632
636
|
@withSourceMapGenerator
|
|
633
637
|
*toEmbeddedTS(state = createCompilerState()): TranslatorGenerator {
|
|
634
638
|
const self = this;
|
|
635
|
-
|
|
639
|
+
// 业务组件
|
|
640
|
+
const isBusinessComponent = self.viewElement?.correspondingBusinessComponent;
|
|
641
|
+
let code = '';
|
|
642
|
+
if (!isBusinessComponent) {
|
|
643
|
+
code += '()=>{';
|
|
644
|
+
}
|
|
636
645
|
if (self.expression) {
|
|
637
646
|
code += yield* self.expression.toEmbeddedTS(shiftState(state, code, { tabSize: (state?.tabSize || 0) + 1 }));
|
|
638
|
-
code += '
|
|
647
|
+
code += '\n';
|
|
639
648
|
}
|
|
640
649
|
if (self.type === 'dynamic') {
|
|
641
650
|
yield* wrapForEach(self.playground, function* warpForEachGenerator(item, index) {
|
|
642
651
|
code += yield* item.toEmbeddedTS(shiftState(state, code, { tabSize: (state?.tabSize || 0) + 1 }));
|
|
643
|
-
if (index !== self.playground.length - 1) code += '
|
|
652
|
+
if (index !== self.playground.length - 1) code += '\n';
|
|
644
653
|
});
|
|
645
654
|
}
|
|
646
|
-
|
|
655
|
+
if (isBusinessComponent) {
|
|
656
|
+
if (code) {
|
|
657
|
+
code = `${self.name === 'if' ? '__NASLIF' : self.name}: ${code}`;
|
|
658
|
+
}
|
|
659
|
+
} else {
|
|
660
|
+
code += '}';
|
|
661
|
+
}
|
|
647
662
|
return code;
|
|
648
663
|
}
|
|
649
664
|
|