@abaplint/cli 2.120.25 → 2.120.26
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/build/cli.js +66 -33
- package/package.json +2 -2
package/build/cli.js
CHANGED
|
@@ -29103,6 +29103,51 @@ exports.BasicTypes = BasicTypes;
|
|
|
29103
29103
|
|
|
29104
29104
|
/***/ },
|
|
29105
29105
|
|
|
29106
|
+
/***/ "../core/build/src/abap/5_syntax/expressions/_check_database_fields.js"
|
|
29107
|
+
/*!*****************************************************************************!*\
|
|
29108
|
+
!*** ../core/build/src/abap/5_syntax/expressions/_check_database_fields.js ***!
|
|
29109
|
+
\*****************************************************************************/
|
|
29110
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
29111
|
+
|
|
29112
|
+
"use strict";
|
|
29113
|
+
|
|
29114
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
29115
|
+
exports.checkDatabaseFields = checkDatabaseFields;
|
|
29116
|
+
const basic_1 = __webpack_require__(/*! ../../types/basic */ "../core/build/src/abap/types/basic/index.js");
|
|
29117
|
+
const _syntax_input_1 = __webpack_require__(/*! ../_syntax_input */ "../core/build/src/abap/5_syntax/_syntax_input.js");
|
|
29118
|
+
function checkDatabaseFields(fields, dbSources, input, token) {
|
|
29119
|
+
if (dbSources.length > 1) {
|
|
29120
|
+
return;
|
|
29121
|
+
}
|
|
29122
|
+
const first = dbSources[0];
|
|
29123
|
+
if (first === undefined) {
|
|
29124
|
+
// then its voided
|
|
29125
|
+
return;
|
|
29126
|
+
}
|
|
29127
|
+
const type = first.parseType(input.scope.getRegistry());
|
|
29128
|
+
if (type instanceof basic_1.VoidType || type instanceof basic_1.UnknownType) {
|
|
29129
|
+
return;
|
|
29130
|
+
}
|
|
29131
|
+
if (!(type instanceof basic_1.StructureType)) {
|
|
29132
|
+
const message = "checkFields, expected structure, " + type.constructor.name;
|
|
29133
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, token, message));
|
|
29134
|
+
return;
|
|
29135
|
+
}
|
|
29136
|
+
for (const field of fields) {
|
|
29137
|
+
if (field === "*") {
|
|
29138
|
+
continue;
|
|
29139
|
+
}
|
|
29140
|
+
if (/^\w+$/.test(field) && type.getComponentByName(field) === undefined) {
|
|
29141
|
+
const message = `checkFields, field ${field} not found`;
|
|
29142
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, token, message));
|
|
29143
|
+
return;
|
|
29144
|
+
}
|
|
29145
|
+
}
|
|
29146
|
+
}
|
|
29147
|
+
//# sourceMappingURL=_check_database_fields.js.map
|
|
29148
|
+
|
|
29149
|
+
/***/ },
|
|
29150
|
+
|
|
29106
29151
|
/***/ "../core/build/src/abap/5_syntax/expressions/_check_offset_length.js"
|
|
29107
29152
|
/*!***************************************************************************!*\
|
|
29108
29153
|
!*** ../core/build/src/abap/5_syntax/expressions/_check_offset_length.js ***!
|
|
@@ -33752,6 +33797,7 @@ const dynamic_1 = __webpack_require__(/*! ./dynamic */ "../core/build/src/abap/5
|
|
|
33752
33797
|
const _reference_1 = __webpack_require__(/*! ../_reference */ "../core/build/src/abap/5_syntax/_reference.js");
|
|
33753
33798
|
const _syntax_input_1 = __webpack_require__(/*! ../_syntax_input */ "../core/build/src/abap/5_syntax/_syntax_input.js");
|
|
33754
33799
|
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
33800
|
+
const _check_database_fields_1 = __webpack_require__(/*! ./_check_database_fields */ "../core/build/src/abap/5_syntax/expressions/_check_database_fields.js");
|
|
33755
33801
|
const isSimple = /^\w+$/;
|
|
33756
33802
|
class Select {
|
|
33757
33803
|
static runSyntax(node, input, skipImplicitInto = false, selectLoop = false) {
|
|
@@ -33776,7 +33822,7 @@ class Select {
|
|
|
33776
33822
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
33777
33823
|
return;
|
|
33778
33824
|
}
|
|
33779
|
-
|
|
33825
|
+
(0, _check_database_fields_1.checkDatabaseFields)(fields.map(field => field.code), dbSources, input, node.getFirstToken());
|
|
33780
33826
|
const intoExpression = this.handleInto(node, input, fields, dbSources);
|
|
33781
33827
|
const fae = node.findDirectExpression(Expressions.SQLForAllEntries);
|
|
33782
33828
|
if (fae) {
|
|
@@ -34003,35 +34049,6 @@ class Select {
|
|
|
34003
34049
|
}
|
|
34004
34050
|
return undefined;
|
|
34005
34051
|
}
|
|
34006
|
-
static checkFields(fields, dbSources, input, node) {
|
|
34007
|
-
if (dbSources.length > 1) {
|
|
34008
|
-
return;
|
|
34009
|
-
}
|
|
34010
|
-
const first = dbSources[0];
|
|
34011
|
-
if (first === undefined) {
|
|
34012
|
-
// then its voided
|
|
34013
|
-
return;
|
|
34014
|
-
}
|
|
34015
|
-
const type = first.parseType(input.scope.getRegistry());
|
|
34016
|
-
if (type instanceof basic_1.VoidType || type instanceof basic_1.UnknownType) {
|
|
34017
|
-
return;
|
|
34018
|
-
}
|
|
34019
|
-
if (!(type instanceof basic_1.StructureType)) {
|
|
34020
|
-
const message = "checkFields, expected structure, " + type.constructor.name;
|
|
34021
|
-
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
34022
|
-
return;
|
|
34023
|
-
}
|
|
34024
|
-
for (const field of fields) {
|
|
34025
|
-
if (field.code === "*") {
|
|
34026
|
-
continue;
|
|
34027
|
-
}
|
|
34028
|
-
if (isSimple.test(field.code) && type.getComponentByName(field.code) === undefined) {
|
|
34029
|
-
const message = `checkFields, field ${field.code} not found`;
|
|
34030
|
-
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
34031
|
-
return;
|
|
34032
|
-
}
|
|
34033
|
-
}
|
|
34034
|
-
}
|
|
34035
34052
|
static countResultType(scope) {
|
|
34036
34053
|
if ((0, version_1.releaseAtLeast)(scope.getRelease(), version_1.Release.v750)
|
|
34037
34054
|
|| scope.getOpenABAP()
|
|
@@ -39384,6 +39401,7 @@ const Expressions = __importStar(__webpack_require__(/*! ../../2_statements/expr
|
|
|
39384
39401
|
const source_1 = __webpack_require__(/*! ../expressions/source */ "../core/build/src/abap/5_syntax/expressions/source.js");
|
|
39385
39402
|
const dynamic_1 = __webpack_require__(/*! ../expressions/dynamic */ "../core/build/src/abap/5_syntax/expressions/dynamic.js");
|
|
39386
39403
|
const database_table_1 = __webpack_require__(/*! ../expressions/database_table */ "../core/build/src/abap/5_syntax/expressions/database_table.js");
|
|
39404
|
+
const _check_database_fields_1 = __webpack_require__(/*! ../expressions/_check_database_fields */ "../core/build/src/abap/5_syntax/expressions/_check_database_fields.js");
|
|
39387
39405
|
class DeleteDatabase {
|
|
39388
39406
|
runSyntax(node, input) {
|
|
39389
39407
|
for (const s of node.findAllExpressions(Expressions.Source)) {
|
|
@@ -39397,7 +39415,14 @@ class DeleteDatabase {
|
|
|
39397
39415
|
}
|
|
39398
39416
|
const dbtab = node.findFirstExpression(Expressions.DatabaseTable);
|
|
39399
39417
|
if (dbtab !== undefined) {
|
|
39400
|
-
database_table_1.DatabaseTable.runSyntax(dbtab, input);
|
|
39418
|
+
const dbSource = database_table_1.DatabaseTable.runSyntax(dbtab, input);
|
|
39419
|
+
const fields = node.findAllExpressions(Expressions.SQLCompare)
|
|
39420
|
+
.map(compare => { var _a; return (_a = compare.findDirectExpression(Expressions.SQLFieldName)) === null || _a === void 0 ? void 0 : _a.concatTokens().toUpperCase(); })
|
|
39421
|
+
.filter(field => field !== undefined);
|
|
39422
|
+
for (const orderBy of node.findAllExpressions(Expressions.SQLOrderBy)) {
|
|
39423
|
+
fields.push(...orderBy.findAllExpressions(Expressions.SQLFieldName).map(field => field.concatTokens().toUpperCase()));
|
|
39424
|
+
}
|
|
39425
|
+
(0, _check_database_fields_1.checkDatabaseFields)(fields, [dbSource], input, node.getFirstToken());
|
|
39401
39426
|
}
|
|
39402
39427
|
}
|
|
39403
39428
|
}
|
|
@@ -46342,11 +46367,19 @@ const _typed_identifier_1 = __webpack_require__(/*! ../../types/_typed_identifie
|
|
|
46342
46367
|
const identifier_1 = __webpack_require__(/*! ../../1_lexer/tokens/identifier */ "../core/build/src/abap/1_lexer/tokens/identifier.js");
|
|
46343
46368
|
const database_table_1 = __webpack_require__(/*! ../expressions/database_table */ "../core/build/src/abap/5_syntax/expressions/database_table.js");
|
|
46344
46369
|
const dynamic_1 = __webpack_require__(/*! ../expressions/dynamic */ "../core/build/src/abap/5_syntax/expressions/dynamic.js");
|
|
46370
|
+
const _check_database_fields_1 = __webpack_require__(/*! ../expressions/_check_database_fields */ "../core/build/src/abap/5_syntax/expressions/_check_database_fields.js");
|
|
46345
46371
|
class UpdateDatabase {
|
|
46346
46372
|
runSyntax(node, input) {
|
|
46347
46373
|
const dbtab = node.findFirstExpression(Expressions.DatabaseTable);
|
|
46348
46374
|
if (dbtab !== undefined) {
|
|
46349
|
-
database_table_1.DatabaseTable.runSyntax(dbtab, input);
|
|
46375
|
+
const dbSource = database_table_1.DatabaseTable.runSyntax(dbtab, input);
|
|
46376
|
+
const fields = node.findAllExpressions(Expressions.SQLFieldAndValue)
|
|
46377
|
+
.flatMap(fieldAndValue => fieldAndValue.findDirectExpressions(Expressions.SQLFieldName))
|
|
46378
|
+
.map(field => field.concatTokens().toUpperCase());
|
|
46379
|
+
fields.push(...node.findAllExpressions(Expressions.SQLCompare)
|
|
46380
|
+
.map(compare => { var _a; return (_a = compare.findDirectExpression(Expressions.SQLFieldName)) === null || _a === void 0 ? void 0 : _a.concatTokens().toUpperCase(); })
|
|
46381
|
+
.filter(field => field !== undefined));
|
|
46382
|
+
(0, _check_database_fields_1.checkDatabaseFields)(fields, [dbSource], input, node.getFirstToken());
|
|
46350
46383
|
}
|
|
46351
46384
|
const tableName = node.findDirectExpression(Expressions.DatabaseTable);
|
|
46352
46385
|
const tokenName = tableName === null || tableName === void 0 ? void 0 : tableName.getFirstToken();
|
|
@@ -69718,7 +69751,7 @@ class Registry {
|
|
|
69718
69751
|
}
|
|
69719
69752
|
static abaplintVersion() {
|
|
69720
69753
|
// magic, see build script "version.js"
|
|
69721
|
-
return "2.120.
|
|
69754
|
+
return "2.120.26";
|
|
69722
69755
|
}
|
|
69723
69756
|
getDDICReferences() {
|
|
69724
69757
|
return this.ddicReferences;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/cli",
|
|
3
|
-
"version": "2.120.
|
|
3
|
+
"version": "2.120.26",
|
|
4
4
|
"description": "abaplint - Command Line Interface",
|
|
5
5
|
"funding": "https://github.com/sponsors/larshp",
|
|
6
6
|
"bin": {
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
},
|
|
40
40
|
"homepage": "https://abaplint.org",
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@abaplint/core": "^2.120.
|
|
42
|
+
"@abaplint/core": "^2.120.26",
|
|
43
43
|
"@types/chai": "^4.3.20",
|
|
44
44
|
"@types/minimist": "^1.2.5",
|
|
45
45
|
"@types/mocha": "^10.0.10",
|