@lcap/nasl 2.20.0-beta.2 → 2.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/automate/engine/index.d.ts +1 -1
- package/out/automate/engine/index.js +2 -3
- package/out/automate/engine/index.js.map +1 -1
- package/out/automate/engine/uniqueName.d.ts +1 -1
- package/out/automate/engine/uniqueName.js +2 -2
- package/out/automate/engine/uniqueName.js.map +1 -1
- package/out/automate/engine/utils.js +4 -1
- package/out/automate/engine/utils.js.map +1 -1
- package/out/automate/template/myProcess.d.ts +1 -1
- package/out/automate/template/myProcess.js +2 -2
- package/out/automate/template/myProcess.js.map +1 -1
- package/out/bak/translator.js +14 -22
- package/out/bak/translator.js.map +1 -1
- package/out/common/BaseNode.js +4 -1
- package/out/common/BaseNode.js.map +1 -1
- package/out/common/Command.d.ts +1 -0
- package/out/common/Command.js +5 -1
- package/out/common/Command.js.map +1 -1
- package/out/concepts/App__.d.ts +4 -0
- package/out/concepts/App__.js +30 -6
- package/out/concepts/App__.js.map +1 -1
- package/out/concepts/Assignee__.js +4 -3
- package/out/concepts/Assignee__.js.map +1 -1
- package/out/concepts/BatchAssignment__.js +3 -3
- package/out/concepts/BatchAssignment__.js.map +1 -1
- package/out/concepts/BindAttribute__.d.ts +7 -0
- package/out/concepts/BindAttribute__.js +270 -39
- package/out/concepts/BindAttribute__.js.map +1 -1
- package/out/concepts/BindDirective__.d.ts +7 -0
- package/out/concepts/BindDirective__.js +215 -17
- package/out/concepts/BindDirective__.js.map +1 -1
- package/out/concepts/BindStyle__.d.ts +7 -0
- package/out/concepts/BindStyle__.js +194 -4
- package/out/concepts/BindStyle__.js.map +1 -1
- package/out/concepts/CallFunction__.js +22 -8
- package/out/concepts/CallFunction__.js.map +1 -1
- package/out/concepts/CallInterface__.js +3 -2
- package/out/concepts/CallInterface__.js.map +1 -1
- package/out/concepts/CallLogic__.d.ts +3 -0
- package/out/concepts/CallLogic__.js +78 -89
- package/out/concepts/CallLogic__.js.map +1 -1
- package/out/concepts/CallQueryComponent__.js +20 -3
- package/out/concepts/CallQueryComponent__.js.map +1 -1
- package/out/concepts/ConfigGroup__.d.ts +1 -0
- package/out/concepts/ConfigGroup__.js +13 -0
- package/out/concepts/ConfigGroup__.js.map +1 -1
- package/out/concepts/ConfigProperty__.d.ts +19 -0
- package/out/concepts/ConfigProperty__.js +61 -0
- package/out/concepts/ConfigProperty__.js.map +1 -1
- package/out/concepts/Configuration__.d.ts +1 -0
- package/out/concepts/Configuration__.js +13 -0
- package/out/concepts/Configuration__.js.map +1 -1
- package/out/concepts/DataSource__.js.map +1 -1
- package/out/concepts/Destination__.d.ts +1 -0
- package/out/concepts/Destination__.js +61 -7
- package/out/concepts/Destination__.js.map +1 -1
- package/out/concepts/EntityProperty__.js +9 -1
- package/out/concepts/EntityProperty__.js.map +1 -1
- package/out/concepts/EnumItem__.d.ts +5 -5
- package/out/concepts/EnumItem__.js +6 -6
- package/out/concepts/Enum__.d.ts +20 -19
- package/out/concepts/Enum__.js +28 -1
- package/out/concepts/Enum__.js.map +1 -1
- package/out/concepts/ExternalDestination__.d.ts +1 -0
- package/out/concepts/ExternalDestination__.js +21 -3
- package/out/concepts/ExternalDestination__.js.map +1 -1
- package/out/concepts/ForEachStatement__.js +2 -0
- package/out/concepts/ForEachStatement__.js.map +1 -1
- package/out/concepts/Frontend__.d.ts +2 -1
- package/out/concepts/Frontend__.js.map +1 -1
- package/out/concepts/Identifier__.js +16 -5
- package/out/concepts/Identifier__.js.map +1 -1
- package/out/concepts/InterfaceParam__.js +9 -1
- package/out/concepts/InterfaceParam__.js.map +1 -1
- package/out/concepts/JSBlock__.js +5 -1
- package/out/concepts/JSBlock__.js.map +1 -1
- package/out/concepts/Logic__.d.ts +79 -79
- package/out/concepts/Logic__.js +16 -3
- package/out/concepts/Logic__.js.map +1 -1
- package/out/concepts/Match__.d.ts +0 -3
- package/out/concepts/Match__.js +11 -66
- package/out/concepts/Match__.js.map +1 -1
- package/out/concepts/MemberExpression__.js +9 -0
- package/out/concepts/MemberExpression__.js.map +1 -1
- package/out/concepts/Module__.d.ts +16 -0
- package/out/concepts/Module__.js +43 -0
- package/out/concepts/Module__.js.map +1 -1
- package/out/concepts/NewComposite__.d.ts +2 -4
- package/out/concepts/NewComposite__.js +91 -126
- package/out/concepts/NewComposite__.js.map +1 -1
- package/out/concepts/NewList__.d.ts +1 -0
- package/out/concepts/NewList__.js +22 -2
- package/out/concepts/NewList__.js.map +1 -1
- package/out/concepts/NewMap__.d.ts +1 -0
- package/out/concepts/NewMap__.js +43 -11
- package/out/concepts/NewMap__.js.map +1 -1
- package/out/concepts/OqlQueryComponent__.js +40 -12
- package/out/concepts/OqlQueryComponent__.js.map +1 -1
- package/out/concepts/Param__.js +10 -2
- package/out/concepts/Param__.js.map +1 -1
- package/out/concepts/ProcessElement__.js +2 -1
- package/out/concepts/ProcessElement__.js.map +1 -1
- package/out/concepts/ProcessOutcome__.js +1 -1
- package/out/concepts/ProcessOutcome__.js.map +1 -1
- package/out/concepts/ProcessOutcomes__.js +1 -1
- package/out/concepts/ProcessOutcomes__.js.map +1 -1
- package/out/concepts/Process__.js +1 -0
- package/out/concepts/Process__.js.map +1 -1
- package/out/concepts/Return__.js +10 -2
- package/out/concepts/Return__.js.map +1 -1
- package/out/concepts/StringInterpolation__.js +14 -2
- package/out/concepts/StringInterpolation__.js.map +1 -1
- package/out/concepts/StringLiteral__.js +6 -6
- package/out/concepts/StringLiteral__.js.map +1 -1
- package/out/concepts/StructureProperty__.js +9 -1
- package/out/concepts/StructureProperty__.js.map +1 -1
- package/out/concepts/TypeAnnotation__.d.ts +6 -3
- package/out/concepts/TypeAnnotation__.js +67 -13
- package/out/concepts/TypeAnnotation__.js.map +1 -1
- package/out/concepts/ValidationRule__.d.ts +1 -0
- package/out/concepts/ValidationRule__.js +53 -0
- package/out/concepts/ValidationRule__.js.map +1 -1
- package/out/concepts/Variable__.js +9 -1
- package/out/concepts/Variable__.js.map +1 -1
- package/out/concepts/ViewElement__.js +17 -1
- package/out/concepts/ViewElement__.js.map +1 -1
- package/out/concepts/View__.d.ts +1 -3
- package/out/concepts/View__.js +22 -11
- package/out/concepts/View__.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.collection.js +6 -1
- package/out/concepts/basics/stdlib/nasl.collection.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.configuration.js +3 -0
- package/out/concepts/basics/stdlib/nasl.configuration.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.core.d.ts +2 -0
- package/out/concepts/basics/stdlib/nasl.core.js +34 -0
- package/out/concepts/basics/stdlib/nasl.core.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.util.js +4 -2
- package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
- package/out/concepts/basics/types/index.d.ts +1 -0
- package/out/concepts/basics/types/index.js +3 -1
- package/out/concepts/basics/types/index.js.map +1 -1
- package/out/concepts/index__.d.ts +0 -1
- package/out/concepts/index__.js +0 -1
- package/out/concepts/index__.js.map +1 -1
- package/out/enums/KEYWORDS.js +8 -0
- package/out/enums/KEYWORDS.js.map +1 -1
- package/out/generator/genBundleFiles.js +24 -5
- package/out/generator/genBundleFiles.js.map +1 -1
- package/out/generator/genReleaseBody.d.ts +2 -3
- package/out/generator/genReleaseBody.js +97 -23
- package/out/generator/genReleaseBody.js.map +1 -1
- package/out/generator/permission.d.ts +2 -10
- package/out/generator/permission.js +27 -14
- package/out/generator/permission.js.map +1 -1
- package/out/server/entity2LogicNamespace.js +2 -20
- package/out/server/entity2LogicNamespace.js.map +1 -1
- package/out/server/extendBaseNode.js +16 -5
- package/out/server/extendBaseNode.js.map +1 -1
- package/out/server/formatTsUtils.d.ts +2 -1
- package/out/server/formatTsUtils.js +40 -10
- package/out/server/formatTsUtils.js.map +1 -1
- package/out/server/getLogics.d.ts +2 -2
- package/out/server/getLogics.js +3 -3
- package/out/server/getLogics.js.map +1 -1
- package/out/server/getMemberIdentifier.d.ts +1 -0
- package/out/server/getMemberIdentifier.js +27 -1
- package/out/server/getMemberIdentifier.js.map +1 -1
- package/out/server/index.js +1 -0
- package/out/server/index.js.map +1 -1
- package/out/server/naslServer.d.ts +7 -1
- package/out/server/naslServer.js +519 -46
- package/out/server/naslServer.js.map +1 -1
- package/out/server/translator.js +109 -33
- package/out/server/translator.js.map +1 -1
- package/out/service/storage/init.js +21 -1
- package/out/service/storage/init.js.map +1 -1
- package/out/templator/genCreateBlock.js +1 -3
- package/out/templator/genCreateBlock.js.map +1 -1
- package/out/templator/genCurdEditMultipleKeyBlock.js +1 -3
- package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
- package/out/templator/genCurdMultipleKeyBlock.js +2 -4
- package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
- package/out/templator/genGetBlock.js +1 -1
- package/out/templator/genGetBlock.js.map +1 -1
- package/out/templator/genGridViewBlock.js +2 -2
- package/out/templator/genGridViewBlock.js.map +1 -1
- package/out/templator/genListViewBlock.js +7 -1
- package/out/templator/genListViewBlock.js.map +1 -1
- package/out/templator/genSelectBlock.js +1 -1
- package/out/templator/genSelectBlock.js.map +1 -1
- package/out/templator/genTableBlock.js +2 -2
- package/out/templator/genTableBlock.js.map +1 -1
- package/out/templator/genUpdateBlock.js +2 -3
- package/out/templator/genUpdateBlock.js.map +1 -1
- package/out/utils/traverse.js +8 -2
- package/out/utils/traverse.js.map +1 -1
- package/package.json +2 -2
- package/sandbox/stdlib/dist/nasl.logging.js +0 -0
- package/sandbox/stdlib/dist/nasl.util.js +0 -0
- package/sandbox/stdlib/nasl.collection.ts +1 -0
- package/sandbox/stdlib/nasl.core.ts +34 -0
- package/sandbox/stdlib/nasl.oql.ts +71 -15
- package/sandbox/stdlib/nasl.util.ts +9 -3
- package/src/automate/engine/dist/index.dev.js +517 -0
- package/src/automate/engine/index.js +2 -3
- package/src/automate/engine/uniqueName.js +2 -2
- package/src/automate/engine/utils.js +4 -2
- package/src/automate/template/myProcess.js +2 -2
- package/src/bak/translator.js +16 -25
- package/src/common/BaseNode.ts +3 -1
- package/src/common/Command.ts +4 -0
- package/src/common/dist/BaseNode.js +1101 -0
- package/src/concepts/App__.ts +36 -7
- package/src/concepts/Assignee__.ts +4 -3
- package/src/concepts/BatchAssignment__.ts +3 -3
- package/src/concepts/BindAttribute__.ts +299 -38
- package/src/concepts/BindDirective__.ts +204 -31
- package/src/concepts/BindStyle__.ts +187 -24
- package/src/concepts/CallFunction__.ts +55 -10
- package/src/concepts/CallInterface__.ts +3 -2
- package/src/concepts/CallLogic__.ts +110 -90
- package/src/concepts/CallQueryComponent__.ts +18 -3
- package/src/concepts/ConfigGroup__.ts +17 -4
- package/src/concepts/ConfigProperty__.ts +70 -4
- package/src/concepts/Configuration__.ts +14 -5
- package/src/concepts/DataSource__.ts +4 -1
- package/src/concepts/Destination__.ts +61 -7
- package/src/concepts/EntityProperty__.ts +7 -1
- package/src/concepts/EnumItem__.ts +6 -6
- package/src/concepts/Enum__.ts +22 -19
- package/src/concepts/ExternalDestination__.ts +28 -8
- package/src/concepts/ForEachStatement__.ts +2 -0
- package/src/concepts/Frontend__.ts +2 -1
- package/src/concepts/Identifier__.ts +16 -5
- package/src/concepts/InterfaceParam__.ts +7 -1
- package/src/concepts/JSBlock__.ts +3 -2
- package/src/concepts/Logic__.ts +95 -83
- package/src/concepts/Match__.ts +31 -67
- package/src/concepts/MemberExpression__.ts +6 -0
- package/src/concepts/Module__.ts +57 -0
- package/src/concepts/NewComposite__.ts +95 -140
- package/src/concepts/NewList__.ts +23 -2
- package/src/concepts/NewMap__.ts +48 -24
- package/src/concepts/OqlQueryComponent__.ts +40 -20
- package/src/concepts/Param__.ts +178 -176
- package/src/concepts/ProcessElement__.ts +2 -1
- package/src/concepts/ProcessOutcome__.ts +1 -1
- package/src/concepts/ProcessOutcomes__.ts +1 -1
- package/src/concepts/Process__.ts +1 -0
- package/src/concepts/Return__.ts +8 -2
- package/src/concepts/StringInterpolation__.ts +19 -7
- package/src/concepts/StringLiteral__.ts +7 -6
- package/src/concepts/StructureProperty__.ts +7 -1
- package/src/concepts/TypeAnnotation__.ts +101 -14
- package/src/concepts/ValidationRule__.ts +58 -9
- package/src/concepts/Variable__.ts +11 -1
- package/src/concepts/ViewElement__.ts +39 -2
- package/src/concepts/View__.ts +26 -14
- package/src/concepts/basics/stdlib/dist/nasl.util.js +1602 -0
- package/src/concepts/basics/stdlib/dist/reference2TypeAnnotationList.js +24 -0
- package/src/concepts/basics/stdlib/nasl.collection.ts +6 -1
- package/src/concepts/basics/stdlib/nasl.configuration.ts +3 -0
- package/src/concepts/basics/stdlib/nasl.core.ts +33 -2
- package/src/concepts/basics/stdlib/nasl.util.ts +4 -2
- package/src/concepts/basics/types/index.ts +1 -0
- package/src/concepts/dist/BindAttribute__.js +795 -0
- package/src/concepts/dist/BindEvent__.js +732 -0
- package/src/concepts/dist/CallFunction__.js +527 -0
- package/src/concepts/dist/CallLogic__.js +932 -0
- package/src/concepts/dist/Destination__.js +708 -0
- package/src/concepts/dist/ExternalDestination__.js +298 -0
- package/src/concepts/dist/Identifier__.js +311 -0
- package/src/concepts/dist/StringInterpolation__.js +231 -0
- package/src/concepts/dist/TypeAnnotation__.js +834 -0
- package/src/concepts/dist/ViewElement__.js +1692 -0
- package/src/concepts/dist/View__.js +1601 -0
- package/src/concepts/index__.ts +0 -1
- package/src/enums/KEYWORDS.ts +8 -0
- package/src/generator/dist/genBundleFiles.js +261 -0
- package/src/generator/dist/genMetaData.js +245 -0
- package/src/generator/dist/permission.js +405 -0
- package/src/generator/genBundleFiles.ts +24 -5
- package/src/generator/genReleaseBody.ts +75 -30
- package/src/generator/permission.ts +31 -15
- package/src/server/entity2LogicNamespace.ts +2 -20
- package/src/server/extendBaseNode.ts +15 -5
- package/src/server/formatTsUtils.ts +41 -10
- package/src/server/getLogics.ts +4 -4
- package/src/server/getMemberIdentifier.ts +27 -1
- package/src/server/index.ts +2 -0
- package/src/server/naslServer.ts +520 -48
- package/src/server/translator.ts +96 -34
- package/src/service/storage/dist/init.js +579 -0
- package/src/service/storage/init.ts +22 -2
- package/src/templator/dist/genEditTableBlock.js +204 -0
- package/src/templator/dist/genGridViewBlock.js +265 -0
- package/src/templator/dist/genListViewBlock.js +84 -0
- package/src/templator/dist/genTableBlock.js +209 -0
- package/src/templator/dist/utils.js +527 -0
- package/src/templator/genCreateBlock.ts +1 -3
- package/src/templator/genCurdEditMultipleKeyBlock.ts +1 -3
- package/src/templator/genCurdMultipleKeyBlock.ts +2 -4
- package/src/templator/genGetBlock.ts +1 -1
- package/src/templator/genGridViewBlock.ts +3 -4
- package/src/templator/genListViewBlock.ts +9 -3
- package/src/templator/genSelectBlock.ts +1 -1
- package/src/templator/genTableBlock.ts +3 -3
- package/src/templator/genUpdateBlock.ts +2 -3
- package/src/utils/traverse.ts +10 -2
- package/ts-worker/lib/tsserver.js +10 -2
- package/ts-worker/package.json +1 -0
- package/ts-worker/webpack.config.js +11 -2
- package/out/concepts/ConstructArgument__.d.ts +0 -40
- package/out/concepts/ConstructArgument__.js +0 -108
- package/out/concepts/ConstructArgument__.js.map +0 -1
- package/out/concepts/Construct__.d.ts +0 -189
- package/out/concepts/Construct__.js +0 -340
- package/out/concepts/Construct__.js.map +0 -1
- package/out/templator/sql-parser/index.d.ts +0 -1
- package/out/templator/sql-parser/index.js +0 -228
- package/out/templator/sql-parser/index.js.map +0 -1
- package/out/templator/sql-parser/parser.js +0 -26664
- package/out/templator/sql-parser/parser.js.map +0 -1
|
@@ -257,7 +257,7 @@ export class StringInterpolation extends LogicItem {
|
|
|
257
257
|
|
|
258
258
|
exchangeLogicItem(target: LogicItem, logicitem: LogicItem) {
|
|
259
259
|
const idx = this.expressions.findIndex(exp => exp === target);
|
|
260
|
-
if(idx !== -1) {
|
|
260
|
+
if (idx !== -1) {
|
|
261
261
|
const exps = this.expressions.slice();
|
|
262
262
|
exps.splice(idx, 1, logicitem);
|
|
263
263
|
this.setExpressions(exps);
|
|
@@ -265,29 +265,41 @@ export class StringInterpolation extends LogicItem {
|
|
|
265
265
|
}
|
|
266
266
|
|
|
267
267
|
toVue(options?: ElementToVueOptions): string {
|
|
268
|
-
return this.expressions.map(exp
|
|
268
|
+
return this.expressions.map((exp: any) => {
|
|
269
|
+
let expCode = exp.toVue();
|
|
270
|
+
if (options?.finalCode !== false) {
|
|
271
|
+
const expTypeAnnotation = exp.typeAnnotation || exp.__TypeAnnotation;
|
|
272
|
+
expCode = `$utils['ToString'](${expCode}, '${expTypeAnnotation?.sortedTypeKey}')`;
|
|
273
|
+
}
|
|
274
|
+
return expCode;
|
|
275
|
+
}).join(' + ');
|
|
269
276
|
}
|
|
270
277
|
toUI(): string {
|
|
271
278
|
return this.expressions.map(exp => exp.toUI()).join(' + ');
|
|
272
279
|
}
|
|
273
280
|
|
|
274
281
|
toJS(): string {
|
|
275
|
-
|
|
282
|
+
if (!this.expressions.length)
|
|
283
|
+
return '';
|
|
284
|
+
return this.expressions.map((exp: any) => {
|
|
285
|
+
const expTypeAnnotation = exp.typeAnnotation || exp.__TypeAnnotation;
|
|
286
|
+
return `this.$utils['ToString'](${exp.toJS()}, '${expTypeAnnotation?.sortedTypeKey}')`;
|
|
287
|
+
}).join(' + ');
|
|
276
288
|
}
|
|
277
289
|
|
|
278
|
-
toBrief(): string {
|
|
290
|
+
toBrief(): string {
|
|
279
291
|
return this.expressions.map(exp => exp.toJS()).join(' + ');
|
|
280
292
|
}
|
|
281
|
-
|
|
293
|
+
|
|
282
294
|
@withSourceMap()
|
|
283
295
|
toEmbeddedTS(state?: TranslatorState): string {
|
|
284
296
|
let code = 'nasl.util.stringInterpolation(';
|
|
285
297
|
this.expressions.forEach((exp, idx) => {
|
|
286
298
|
code += exp.toEmbeddedTS(shiftState(state, code));
|
|
287
|
-
if(idx !== this.expressions.length - 1){
|
|
299
|
+
if (idx !== this.expressions.length - 1) {
|
|
288
300
|
code += ', ';
|
|
289
301
|
}
|
|
290
|
-
|
|
302
|
+
|
|
291
303
|
});
|
|
292
304
|
code += ')\n';
|
|
293
305
|
return code;
|
|
@@ -59,16 +59,16 @@ export class StringLiteral extends LogicItem {
|
|
|
59
59
|
toVue(options?: ElementToVueOptions): string {
|
|
60
60
|
let code = '';
|
|
61
61
|
if (typeof this.value === 'string') {
|
|
62
|
-
code =
|
|
62
|
+
code = `\`${this.value}\``;
|
|
63
63
|
if (options?.finalCode !== false) {
|
|
64
|
-
code =
|
|
64
|
+
code = `\`${this.value.replace(/['"`\\]/g, (m) => {
|
|
65
65
|
const escape = '\\\\';
|
|
66
66
|
if (m === '\\') {
|
|
67
67
|
return `${escape}${escape}`;
|
|
68
68
|
} else {
|
|
69
69
|
return `${escape}${m}`;
|
|
70
70
|
}
|
|
71
|
-
})}
|
|
71
|
+
})}\``;
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
return code;
|
|
@@ -77,7 +77,7 @@ export class StringLiteral extends LogicItem {
|
|
|
77
77
|
toUI(): string {
|
|
78
78
|
let code = '';
|
|
79
79
|
if (typeof this.value === 'string') {
|
|
80
|
-
code =
|
|
80
|
+
code = `\`${this.value}\``;
|
|
81
81
|
}
|
|
82
82
|
return code;
|
|
83
83
|
}
|
|
@@ -85,12 +85,13 @@ export class StringLiteral extends LogicItem {
|
|
|
85
85
|
toJS(): string {
|
|
86
86
|
let code = ``;
|
|
87
87
|
if (typeof this.value === 'string') {
|
|
88
|
-
code +=
|
|
88
|
+
code += `\`${this.value.replace(/['"`\\]/g, (m) => `\\${m}`)}\``;
|
|
89
89
|
}
|
|
90
90
|
return code;
|
|
91
91
|
}
|
|
92
|
+
|
|
92
93
|
toBrief(): string {
|
|
93
|
-
return
|
|
94
|
+
return `\`${this.value}\``;
|
|
94
95
|
}
|
|
95
96
|
|
|
96
97
|
@withSourceMap()
|
|
@@ -226,11 +226,13 @@ export class StructureProperty extends BaseNode {
|
|
|
226
226
|
//================================================================================
|
|
227
227
|
|
|
228
228
|
get hasChildren() {
|
|
229
|
-
const { typeKind, typeNamespace } = this.typeAnnotation;
|
|
229
|
+
const { typeKind, typeName, typeNamespace } = this.typeAnnotation;
|
|
230
230
|
if (typeKind === 'reference' || typeKind === 'generic') {
|
|
231
231
|
if (typeNamespace.endsWith('.enums'))
|
|
232
232
|
return null;
|
|
233
233
|
return [{}];
|
|
234
|
+
} else if (typeNamespace === 'nasl.core' && ['String', 'Text', 'Email'].includes(typeName)) {
|
|
235
|
+
return [{}];
|
|
234
236
|
}
|
|
235
237
|
return null;
|
|
236
238
|
}
|
|
@@ -274,6 +276,10 @@ export class StructureProperty extends BaseNode {
|
|
|
274
276
|
}
|
|
275
277
|
}
|
|
276
278
|
completionChildren = properties;
|
|
279
|
+
} else if (typeNamespace === 'nasl.core' && ['String', 'Text', 'Email'].includes(typeName)) {
|
|
280
|
+
const node = getNaslNodeByNodeCallee(typeNamespace, typeName);
|
|
281
|
+
const properties = ((node as Structure)?.properties && [...(node as Structure)?.properties]) || [];
|
|
282
|
+
completionChildren = properties;
|
|
277
283
|
} else {
|
|
278
284
|
completionChildren = [];
|
|
279
285
|
}
|
|
@@ -121,6 +121,8 @@ export class TypeAnnotation extends BaseNode {
|
|
|
121
121
|
@property()
|
|
122
122
|
ruleMap: Object = undefined;
|
|
123
123
|
|
|
124
|
+
|
|
125
|
+
|
|
124
126
|
/**
|
|
125
127
|
* @param source 需要合并的部分参数
|
|
126
128
|
*/
|
|
@@ -157,6 +159,10 @@ export class TypeAnnotation extends BaseNode {
|
|
|
157
159
|
});
|
|
158
160
|
}
|
|
159
161
|
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
160
166
|
/**
|
|
161
167
|
* 插入类型标注
|
|
162
168
|
* @internal
|
|
@@ -189,6 +195,8 @@ export class TypeAnnotation extends BaseNode {
|
|
|
189
195
|
return typeAnnotation;
|
|
190
196
|
}
|
|
191
197
|
|
|
198
|
+
|
|
199
|
+
|
|
192
200
|
/**
|
|
193
201
|
* 插入类型标注
|
|
194
202
|
* @param typeAnnotationOptions 类型标注参数
|
|
@@ -211,6 +219,8 @@ export class TypeAnnotation extends BaseNode {
|
|
|
211
219
|
return node;
|
|
212
220
|
}
|
|
213
221
|
|
|
222
|
+
|
|
223
|
+
|
|
214
224
|
/**
|
|
215
225
|
* 添加类型标注
|
|
216
226
|
* @internal
|
|
@@ -230,6 +240,8 @@ export class TypeAnnotation extends BaseNode {
|
|
|
230
240
|
return this._insertTypeAnnotationInTypeArgumentsAt(options as any, index);
|
|
231
241
|
}
|
|
232
242
|
|
|
243
|
+
|
|
244
|
+
|
|
233
245
|
/**
|
|
234
246
|
* 添加类型标注
|
|
235
247
|
* @param typeAnnotationOptions 类型标注参数
|
|
@@ -253,6 +265,8 @@ export class TypeAnnotation extends BaseNode {
|
|
|
253
265
|
return node;
|
|
254
266
|
}
|
|
255
267
|
|
|
268
|
+
|
|
269
|
+
|
|
256
270
|
/**
|
|
257
271
|
* 插入类型标注
|
|
258
272
|
* @internal
|
|
@@ -285,6 +299,8 @@ export class TypeAnnotation extends BaseNode {
|
|
|
285
299
|
return typeAnnotation;
|
|
286
300
|
}
|
|
287
301
|
|
|
302
|
+
|
|
303
|
+
|
|
288
304
|
/**
|
|
289
305
|
* 插入类型标注
|
|
290
306
|
* @param typeAnnotationOptions 类型标注参数
|
|
@@ -307,6 +323,8 @@ export class TypeAnnotation extends BaseNode {
|
|
|
307
323
|
return node;
|
|
308
324
|
}
|
|
309
325
|
|
|
326
|
+
|
|
327
|
+
|
|
310
328
|
/**
|
|
311
329
|
* 添加类型标注
|
|
312
330
|
* @internal
|
|
@@ -326,6 +344,8 @@ export class TypeAnnotation extends BaseNode {
|
|
|
326
344
|
return this._insertTypeAnnotationInReturnTypeAt(options as any, index);
|
|
327
345
|
}
|
|
328
346
|
|
|
347
|
+
|
|
348
|
+
|
|
329
349
|
/**
|
|
330
350
|
* 添加类型标注
|
|
331
351
|
* @param typeAnnotationOptions 类型标注参数
|
|
@@ -349,6 +369,11 @@ export class TypeAnnotation extends BaseNode {
|
|
|
349
369
|
return node;
|
|
350
370
|
}
|
|
351
371
|
|
|
372
|
+
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
|
|
376
|
+
|
|
352
377
|
/**
|
|
353
378
|
* 插入数据结构属性
|
|
354
379
|
* @internal
|
|
@@ -381,6 +406,8 @@ export class TypeAnnotation extends BaseNode {
|
|
|
381
406
|
return structureProperty;
|
|
382
407
|
}
|
|
383
408
|
|
|
409
|
+
|
|
410
|
+
|
|
384
411
|
/**
|
|
385
412
|
* 插入数据结构属性
|
|
386
413
|
* @param structurePropertyOptions 数据结构属性参数
|
|
@@ -403,6 +430,8 @@ export class TypeAnnotation extends BaseNode {
|
|
|
403
430
|
return node;
|
|
404
431
|
}
|
|
405
432
|
|
|
433
|
+
|
|
434
|
+
|
|
406
435
|
/**
|
|
407
436
|
* 添加数据结构属性
|
|
408
437
|
* @internal
|
|
@@ -422,6 +451,8 @@ export class TypeAnnotation extends BaseNode {
|
|
|
422
451
|
return this._insertStructurePropertyAt(options as any, index);
|
|
423
452
|
}
|
|
424
453
|
|
|
454
|
+
|
|
455
|
+
|
|
425
456
|
/**
|
|
426
457
|
* 添加数据结构属性
|
|
427
458
|
* @param structurePropertyOptions 数据结构属性参数
|
|
@@ -445,6 +476,9 @@ export class TypeAnnotation extends BaseNode {
|
|
|
445
476
|
return node;
|
|
446
477
|
}
|
|
447
478
|
|
|
479
|
+
|
|
480
|
+
|
|
481
|
+
|
|
448
482
|
/**
|
|
449
483
|
* 删除类型标注
|
|
450
484
|
* @param typeAnnotation 已有的类型标注实例
|
|
@@ -452,10 +486,12 @@ export class TypeAnnotation extends BaseNode {
|
|
|
452
486
|
removeTypeAnnotationInTypeArguments(typeAnnotation: TypeAnnotation): void;
|
|
453
487
|
|
|
454
488
|
removeTypeAnnotationInTypeArguments(options: TypeAnnotation) {
|
|
455
|
-
|
|
489
|
+
let typeAnnotation: TypeAnnotation = options;
|
|
456
490
|
return typeAnnotation.delete();
|
|
457
491
|
}
|
|
458
492
|
|
|
493
|
+
|
|
494
|
+
|
|
459
495
|
/**
|
|
460
496
|
* 删除类型标注
|
|
461
497
|
* @param typeAnnotation 已有的类型标注实例
|
|
@@ -463,7 +499,7 @@ export class TypeAnnotation extends BaseNode {
|
|
|
463
499
|
removeTypeAnnotationInReturnType(typeAnnotation: TypeAnnotation): void;
|
|
464
500
|
|
|
465
501
|
removeTypeAnnotationInReturnType(options: TypeAnnotation) {
|
|
466
|
-
|
|
502
|
+
let typeAnnotation: TypeAnnotation = options;
|
|
467
503
|
return typeAnnotation.delete();
|
|
468
504
|
}
|
|
469
505
|
|
|
@@ -490,6 +526,8 @@ export class TypeAnnotation extends BaseNode {
|
|
|
490
526
|
return params;
|
|
491
527
|
}
|
|
492
528
|
|
|
529
|
+
|
|
530
|
+
|
|
493
531
|
/**
|
|
494
532
|
* 删除数据结构属性
|
|
495
533
|
* @param structureProperty 已有的数据结构属性实例
|
|
@@ -497,7 +535,7 @@ export class TypeAnnotation extends BaseNode {
|
|
|
497
535
|
removeStructureProperty(structureProperty: StructureProperty): void;
|
|
498
536
|
|
|
499
537
|
removeStructureProperty(options: StructureProperty) {
|
|
500
|
-
|
|
538
|
+
let structureProperty: StructureProperty = options;
|
|
501
539
|
return structureProperty.delete();
|
|
502
540
|
}
|
|
503
541
|
|
|
@@ -558,7 +596,7 @@ export class TypeAnnotation extends BaseNode {
|
|
|
558
596
|
return `${this.typeNamespace}.${this.typeName}<${(this.typeArguments || []).map((arg) => arg.typeKey)}>`;
|
|
559
597
|
} else if (this.typeKind === 'anonymousStructure') {
|
|
560
598
|
return `{ ${this.properties.map(({ name, typeAnnotation }) =>
|
|
561
|
-
(`${name}: ${typeAnnotation ? typeAnnotation.typeKey : '
|
|
599
|
+
(`${name}: ${typeAnnotation ? typeAnnotation.typeKey : '未知'}`)).join(', ')} }`;
|
|
562
600
|
} else if (this.typeKind === 'union') {
|
|
563
601
|
return `${this.typeArguments.map((arg) => arg.typeKey).join(' | ')}`;
|
|
564
602
|
} else {
|
|
@@ -571,7 +609,7 @@ export class TypeAnnotation extends BaseNode {
|
|
|
571
609
|
if (this.typeKind === 'anonymousStructure') {
|
|
572
610
|
// 按匿名数据结构的key排序
|
|
573
611
|
return `{${this.properties.sort(({ name: name1 }, { name: name2 }) => name1 > name2 ? 1 : -1).map(({ name, typeAnnotation }) =>
|
|
574
|
-
(`${name}: ${typeAnnotation ? typeAnnotation.sortedTypeKey : '
|
|
612
|
+
(`${name}: ${typeAnnotation ? typeAnnotation.sortedTypeKey : '未知'}`)).join(', ')}}`;
|
|
575
613
|
} else if (this.typeKind === 'union') {
|
|
576
614
|
// 按返回的每个具体项排序
|
|
577
615
|
return `${this.typeArguments.map((arg) => arg.sortedTypeKey).sort((name1, name2) => name1 > name2 ? 1 : -1).join(' | ')}`;
|
|
@@ -643,7 +681,7 @@ export class TypeAnnotation extends BaseNode {
|
|
|
643
681
|
return `${this.typeName}<${this.typeArguments.map((arg) => arg.typeTitle || arg.name || 'T').join(', ')}>`;
|
|
644
682
|
} else if (this.typeKind === 'anonymousStructure') {
|
|
645
683
|
return `{ ${this.properties?.map(({ name, typeAnnotation }) =>
|
|
646
|
-
(`${name}: ${typeAnnotation ? typeAnnotation.typeTitle : '
|
|
684
|
+
(`${name}: ${typeAnnotation ? typeAnnotation.typeTitle : '未知'}`)).join(', ')} }`;
|
|
647
685
|
} else if (this.typeKind === 'union') {
|
|
648
686
|
return `${this.typeArguments.map((arg) => arg.typeTitle || arg.name).join(' 或 ')}`;
|
|
649
687
|
} else {
|
|
@@ -651,19 +689,52 @@ export class TypeAnnotation extends BaseNode {
|
|
|
651
689
|
}
|
|
652
690
|
}
|
|
653
691
|
|
|
692
|
+
/**
|
|
693
|
+
* 用于展示的 纯中文的type 标题
|
|
694
|
+
*/
|
|
695
|
+
get typeChineseTitle(): string {
|
|
696
|
+
if (this.typeKind === 'primitive') {
|
|
697
|
+
return `${PRIMITIVE_TITLE[this.typeName] || ''}`;
|
|
698
|
+
} else if (this.typeKind === 'reference') {
|
|
699
|
+
return this.typeName;
|
|
700
|
+
} else if (this.typeKind === 'generic') {
|
|
701
|
+
return `${this.typeName}<${this.typeArguments.map((arg) => arg.typeChineseTitle || arg.name || 'T').join(', ')}>`;
|
|
702
|
+
} else if (this.typeKind === 'anonymousStructure') {
|
|
703
|
+
return `{ ${this.properties?.map(({ name, typeAnnotation }) =>
|
|
704
|
+
(`${name}: ${typeAnnotation ? typeAnnotation.typeChineseTitle : '未知'}`)).join(', ')} }`;
|
|
705
|
+
} else if (this.typeKind === 'union') {
|
|
706
|
+
return `${this.typeArguments.map((arg) => arg.typeChineseTitle || arg.name).join(' 或 ')}`;
|
|
707
|
+
} else {
|
|
708
|
+
return this.typeName;
|
|
709
|
+
}
|
|
710
|
+
}
|
|
711
|
+
|
|
654
712
|
get typeTitleList() {
|
|
655
|
-
const typeTitleList = [];
|
|
713
|
+
const typeTitleList: any[] = [];
|
|
656
714
|
if (this.typeKind === 'anonymousStructure') {
|
|
657
715
|
typeTitleList.push({ key: '{' });
|
|
658
716
|
const length = this.properties?.length;
|
|
659
717
|
this.properties?.forEach(({ name, typeAnnotation }, index) => {
|
|
660
718
|
if (index === length - 1) {
|
|
661
|
-
typeTitleList.push({ key: name, value: `${typeAnnotation ? typeAnnotation.typeTitle : '
|
|
719
|
+
typeTitleList.push({ key: name, value: `${typeAnnotation ? typeAnnotation.typeTitle : '未知'}` });
|
|
662
720
|
} else {
|
|
663
|
-
typeTitleList.push({ key: name, value: `${typeAnnotation ? typeAnnotation.typeTitle : '
|
|
721
|
+
typeTitleList.push({ key: name, value: `${typeAnnotation ? typeAnnotation.typeTitle : '未知'}`, dot: ',' });
|
|
664
722
|
}
|
|
665
723
|
});
|
|
666
724
|
typeTitleList.push({ key: '}' });
|
|
725
|
+
} else if (this.typeName === 'List') {
|
|
726
|
+
const propsTypeList = [].concat(...this.typeArguments.map((arg) => arg.typeTitleList));
|
|
727
|
+
if (propsTypeList[0]?.key === '{') {
|
|
728
|
+
propsTypeList[0].key = 'List<{';
|
|
729
|
+
} else {
|
|
730
|
+
typeTitleList.push({ key: 'List<' });
|
|
731
|
+
}
|
|
732
|
+
typeTitleList.push(...propsTypeList);
|
|
733
|
+
if (propsTypeList[propsTypeList.length - 1]?.key === '}') {
|
|
734
|
+
propsTypeList[propsTypeList.length - 1].key = '}>';
|
|
735
|
+
} else {
|
|
736
|
+
typeTitleList.push({ key: '>' });
|
|
737
|
+
}
|
|
667
738
|
} else {
|
|
668
739
|
typeTitleList.push({ key: this.typeTitle });
|
|
669
740
|
}
|
|
@@ -779,9 +850,11 @@ export class TypeAnnotation extends BaseNode {
|
|
|
779
850
|
let code = `{ __name: "AStructure_${this.hash}", `;
|
|
780
851
|
(this.properties || []).forEach((property, i) => {
|
|
781
852
|
code += `${property.name}: `;
|
|
782
|
-
code += `${property.typeAnnotation ? property.typeAnnotation.toEmbeddedTS(shiftState(state, code, { inline: true, tabSize: (state?.tabSize || 0) + 1 })) : '
|
|
783
|
-
|
|
853
|
+
code += `${property.typeAnnotation ? property.typeAnnotation.toEmbeddedTS(shiftState(state, code, { inline: true, tabSize: (state?.tabSize || 0) + 1 })) : '`未知`'}`;
|
|
854
|
+
if (i < this.properties?.length - 1)
|
|
855
|
+
code += ', ';
|
|
784
856
|
});
|
|
857
|
+
code += ' }';
|
|
785
858
|
return code;
|
|
786
859
|
} else {
|
|
787
860
|
if (this.tsCalleeNamespace && this.typeName) {
|
|
@@ -806,7 +879,7 @@ export class TypeAnnotation extends BaseNode {
|
|
|
806
879
|
return 1;
|
|
807
880
|
return aName < bName ? -1 : 0;
|
|
808
881
|
}).map(({ name, typeAnnotation }) =>
|
|
809
|
-
(`${name}: ${typeAnnotation ? typeAnnotation.anonymousStructureTypeDesc : '
|
|
882
|
+
(`${name}: ${typeAnnotation ? typeAnnotation.anonymousStructureTypeDesc : '未知'}`)).join(', ')} }`;
|
|
810
883
|
} else {
|
|
811
884
|
return this.typeName;
|
|
812
885
|
}
|
|
@@ -823,7 +896,7 @@ export class TypeAnnotation extends BaseNode {
|
|
|
823
896
|
let code = '';
|
|
824
897
|
if (this.typeKind === 'primitive') {
|
|
825
898
|
if (this.typeName === 'String') {
|
|
826
|
-
code = ` "${value}" `;
|
|
899
|
+
code = ` new nasl.core.String("${value}") `;
|
|
827
900
|
} else {
|
|
828
901
|
if (['Text'].includes(this.typeName)) {
|
|
829
902
|
code = ` new ${this.typeNamespace}.${this.typeName}("${value}")`;
|
|
@@ -891,7 +964,7 @@ export class TypeAnnotation extends BaseNode {
|
|
|
891
964
|
|
|
892
965
|
// 是否是复合类型 List|Map|entities|structures
|
|
893
966
|
isComplexType() {
|
|
894
|
-
const namespaceType = this.typeNamespace
|
|
967
|
+
const namespaceType = this.typeNamespace?.split('.').pop();
|
|
895
968
|
return ['Map', 'List'].includes(this.typeName) || (this.typeKind === 'reference' && ['entities', 'structures'].includes(namespaceType));
|
|
896
969
|
}
|
|
897
970
|
/* 类型签名 */
|
|
@@ -912,6 +985,20 @@ export class TypeAnnotation extends BaseNode {
|
|
|
912
985
|
return str;
|
|
913
986
|
}
|
|
914
987
|
|
|
988
|
+
/* 判断2个类型是否一致 */
|
|
989
|
+
isSame(typeAnnotation: TypeAnnotation) {
|
|
990
|
+
typeAnnotation.typeArguments;
|
|
991
|
+
const typeAnnotation1 = this.toJSON();
|
|
992
|
+
const typeAnnotation2 = typeAnnotation.toJSON();
|
|
993
|
+
if (typeAnnotation1.typeArguments) {
|
|
994
|
+
typeAnnotation1.typeArguments = this.sortedTypeKey;
|
|
995
|
+
}
|
|
996
|
+
if (typeAnnotation2.typeArguments) {
|
|
997
|
+
typeAnnotation2.typeArguments = typeAnnotation.sortedTypeKey;
|
|
998
|
+
}
|
|
999
|
+
return JSON.stringify(typeAnnotation1) === JSON.stringify(typeAnnotation2);
|
|
1000
|
+
}
|
|
1001
|
+
|
|
915
1002
|
//================================================================================
|
|
916
1003
|
// 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
|
|
917
1004
|
// ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
|
|
@@ -60,7 +60,7 @@ export class ValidationRule extends LogicItem {
|
|
|
60
60
|
@property('LogicItem')
|
|
61
61
|
errorMessage: LogicItem = undefined;
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
|
|
64
64
|
|
|
65
65
|
/**
|
|
66
66
|
* @param source 需要合并的部分参数
|
|
@@ -75,7 +75,7 @@ export class ValidationRule extends LogicItem {
|
|
|
75
75
|
return super.from(source, parentNode, parentKey) as ValidationRule;
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
|
|
79
79
|
/**
|
|
80
80
|
* 设置错误信息
|
|
81
81
|
*/
|
|
@@ -91,9 +91,9 @@ export class ValidationRule extends LogicItem {
|
|
|
91
91
|
});
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
|
|
95
94
|
|
|
96
|
-
|
|
95
|
+
|
|
96
|
+
|
|
97
97
|
|
|
98
98
|
/**
|
|
99
99
|
* 插入实际参数
|
|
@@ -127,7 +127,7 @@ export class ValidationRule extends LogicItem {
|
|
|
127
127
|
return argument;
|
|
128
128
|
}
|
|
129
129
|
|
|
130
|
-
|
|
130
|
+
|
|
131
131
|
|
|
132
132
|
/**
|
|
133
133
|
* 插入实际参数
|
|
@@ -151,7 +151,7 @@ export class ValidationRule extends LogicItem {
|
|
|
151
151
|
return node;
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
-
|
|
154
|
+
|
|
155
155
|
|
|
156
156
|
/**
|
|
157
157
|
* 添加实际参数
|
|
@@ -172,7 +172,7 @@ export class ValidationRule extends LogicItem {
|
|
|
172
172
|
return this._insertArgumentAt(options as any, index);
|
|
173
173
|
}
|
|
174
174
|
|
|
175
|
-
|
|
175
|
+
|
|
176
176
|
|
|
177
177
|
/**
|
|
178
178
|
* 添加实际参数
|
|
@@ -198,7 +198,7 @@ export class ValidationRule extends LogicItem {
|
|
|
198
198
|
}
|
|
199
199
|
|
|
200
200
|
|
|
201
|
-
|
|
201
|
+
|
|
202
202
|
|
|
203
203
|
/**
|
|
204
204
|
* 删除实际参数
|
|
@@ -211,7 +211,7 @@ export class ValidationRule extends LogicItem {
|
|
|
211
211
|
return argument.delete();
|
|
212
212
|
}
|
|
213
213
|
|
|
214
|
-
|
|
214
|
+
|
|
215
215
|
|
|
216
216
|
/**
|
|
217
217
|
* 删除逻辑项
|
|
@@ -265,6 +265,55 @@ export class ValidationRule extends LogicItem {
|
|
|
265
265
|
// ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
|
|
266
266
|
// 自动生成的代码已结束。下面可以手动编写。
|
|
267
267
|
//================================================================================
|
|
268
|
+
toInViewMethod() {
|
|
269
|
+
let code = '{';
|
|
270
|
+
// 兼容就得简写模式
|
|
271
|
+
if (this.calleeName && this.calleeName.includes('(')) {
|
|
272
|
+
return `'${this.calleeName}'`;
|
|
273
|
+
} else if (this.calleeName === 'unique') {
|
|
274
|
+
code += `validate: 'excluded',`;
|
|
275
|
+
} else if (this.calleeName === 'confirmed') {
|
|
276
|
+
code += `validate: 'is',`;
|
|
277
|
+
} else {
|
|
278
|
+
code += `validate: '${this.calleeName}',`;
|
|
279
|
+
}
|
|
280
|
+
if (this.arguments.length) {
|
|
281
|
+
let args = '[';
|
|
282
|
+
this.arguments?.forEach((arg, index) => {
|
|
283
|
+
args += arg?.toJS();
|
|
284
|
+
if (index !== this.arguments?.length - 1)
|
|
285
|
+
args += ', ';
|
|
286
|
+
});
|
|
287
|
+
args += ']';
|
|
288
|
+
code += `args: ${args} ,`;
|
|
289
|
+
}
|
|
290
|
+
if (this.errorMessage) {
|
|
291
|
+
code += `message: ${this.errorMessage?.toJS()},`;
|
|
292
|
+
} else {
|
|
293
|
+
let defaultError = (defaultErrorMessage as Record<string, string>)[this.calleeName];
|
|
294
|
+
let index = 0;
|
|
295
|
+
while (defaultError && defaultError.indexOf(`{args}`) !== -1) {
|
|
296
|
+
defaultError = defaultError.replace(`{args}`, `\${${this.arguments[index]?.toJS()}}`);
|
|
297
|
+
index++;
|
|
298
|
+
}
|
|
299
|
+
const itemTitle = (this?.parentNode as any)?.parentNode?.bindAttrs?.find((item: BindAttribute) => item.name === 'label');
|
|
300
|
+
let labelName;
|
|
301
|
+
if (itemTitle?.expression?.toJS()) {
|
|
302
|
+
labelName = `\${${itemTitle?.expression?.toJS()}}`;
|
|
303
|
+
} else {
|
|
304
|
+
labelName = itemTitle?.value || '表单项';
|
|
305
|
+
}
|
|
306
|
+
defaultError = defaultError && defaultError.replace(`{label}`, labelName);
|
|
307
|
+
code += `message: \`${defaultError}\`,`;
|
|
308
|
+
}
|
|
309
|
+
code += `trigger: 'input+blur'`;
|
|
310
|
+
if (['required', 'filled', 'notEmpty'].includes(this.calleeName)) {
|
|
311
|
+
code += ',required: true';
|
|
312
|
+
}
|
|
313
|
+
code += '}';
|
|
314
|
+
return code;
|
|
315
|
+
}
|
|
316
|
+
|
|
268
317
|
toVue(options?: ElementToVueOptions) {
|
|
269
318
|
let code = '{';
|
|
270
319
|
// 兼容就得简写模式
|
|
@@ -175,6 +175,10 @@ export class Variable extends BaseNode {
|
|
|
175
175
|
});
|
|
176
176
|
}
|
|
177
177
|
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
|
|
178
182
|
/**
|
|
179
183
|
* 删除类型标注
|
|
180
184
|
* @param name 类型标注名称
|
|
@@ -413,9 +417,11 @@ export class Variable extends BaseNode {
|
|
|
413
417
|
return null;
|
|
414
418
|
const { typeKind, typeName, typeNamespace } = this.typeAnnotation;
|
|
415
419
|
if (typeKind === 'reference' || typeKind === 'generic') {
|
|
416
|
-
if (typeNamespace.endsWith('.enums')
|
|
420
|
+
if (typeNamespace.endsWith('.enums'))
|
|
417
421
|
return null;
|
|
418
422
|
return [{}];
|
|
423
|
+
} else if (typeNamespace === 'nasl.core' && ['String', 'Text', 'Email'].includes(typeName)) {
|
|
424
|
+
return [{}];
|
|
419
425
|
}
|
|
420
426
|
return null;
|
|
421
427
|
}
|
|
@@ -451,6 +457,10 @@ export class Variable extends BaseNode {
|
|
|
451
457
|
}
|
|
452
458
|
}
|
|
453
459
|
completionChildren = properties;
|
|
460
|
+
} else if (typeNamespace === 'nasl.core' && ['String', 'Text', 'Email'].includes(typeName)) {
|
|
461
|
+
const node = getNaslNodeByNodeCallee(typeNamespace, typeName);
|
|
462
|
+
const properties = ((node as Structure)?.properties && [...(node as Structure)?.properties]) || [];
|
|
463
|
+
completionChildren = properties;
|
|
454
464
|
} else {
|
|
455
465
|
completionChildren = [];
|
|
456
466
|
}
|