@abaplint/transpiler-cli 2.13.59 → 2.13.60
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/bundle.js +654 -63
- package/package.json +3 -3
- package/schema.json +8 -0
- package/tsconfig.tsbuildinfo +0 -1
package/build/bundle.js
CHANGED
|
@@ -9527,7 +9527,7 @@ const sql_field_1 = __webpack_require__(/*! ./sql_field */ "./node_modules/@abap
|
|
|
9527
9527
|
const sql_grouping_sets_1 = __webpack_require__(/*! ./sql_grouping_sets */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_grouping_sets.js");
|
|
9528
9528
|
class SQLGroupBy extends combi_1.Expression {
|
|
9529
9529
|
getRunnable() {
|
|
9530
|
-
const fieldName = (0, combi_1.alt)(sql_field_name_1.SQLFieldName, dynamic_1.Dynamic);
|
|
9530
|
+
const fieldName = (0, combi_1.seq)((0, combi_1.stopBefore)("ORDER", "BY"), (0, combi_1.alt)(sql_field_name_1.SQLFieldName, dynamic_1.Dynamic));
|
|
9531
9531
|
const expr = (0, combi_1.ver)(version_1.Release.v740sp02, sql_field_1.SQLField, { also: combi_1.AlsoIn.OpenABAP });
|
|
9532
9532
|
const newGroup = (0, combi_1.ver)(version_1.Release.v740sp02, (0, combi_1.seq)("GROUP BY", expr, (0, combi_1.altPrio)((0, combi_1.plus)((0, combi_1.seq)(",", expr)), (0, combi_1.optPrio)((0, combi_1.plus)(fieldName)))), { also: combi_1.AlsoIn.OpenABAP });
|
|
9533
9533
|
const old = (0, combi_1.seq)((0, combi_1.plus)((0, combi_1.seq)(fieldName, ",")), fieldName);
|
|
@@ -13129,7 +13129,7 @@ class ClassDefinition {
|
|
|
13129
13129
|
const risk = (0, combi_1.seq)("RISK LEVEL", level);
|
|
13130
13130
|
const time = (0, combi_1.altPrio)("LONG", "MEDIUM", "SHORT");
|
|
13131
13131
|
const duration = (0, combi_1.seq)("DURATION", time);
|
|
13132
|
-
const blah = (0, combi_1.per)(expressions_1.ClassGlobal, expressions_1.ClassFinal, "ABSTRACT", (0, combi_1.seq)("INHERITING FROM", expressions_1.SuperClassName), create, "FOR TESTING", risk, "SHARED MEMORY ENABLED", duration, (0, combi_1.ver)(version_1.Release.v754, (0, combi_1.seq)("FOR BEHAVIOR OF", expressions_1.BehaviorDefinitionName), { also: combi_1.AlsoIn.OpenABAP }), expressions_1.ClassFriends);
|
|
13132
|
+
const blah = (0, combi_1.per)(expressions_1.ClassGlobal, expressions_1.ClassFinal, "ABSTRACT", (0, combi_1.seq)("INHERITING FROM", expressions_1.SuperClassName), create, "FOR TESTING", risk, "SHARED MEMORY ENABLED", duration, (0, combi_1.ver)(version_1.Release.v754, (0, combi_1.seq)("FOR BEHAVIOR OF", expressions_1.BehaviorDefinitionName), { also: combi_1.AlsoIn.OpenABAP }), (0, combi_1.ver)(version_1.Release.v758, (0, combi_1.seq)("FOR EVENTS OF", expressions_1.BehaviorDefinitionName)), expressions_1.ClassFriends);
|
|
13133
13133
|
const def = (0, combi_1.seq)("DEFINITION", (0, combi_1.optPrio)(blah));
|
|
13134
13134
|
return (0, combi_1.seq)("CLASS", expressions_1.ClassName, def);
|
|
13135
13135
|
}
|
|
@@ -17098,6 +17098,7 @@ exports.MethodDef = void 0;
|
|
|
17098
17098
|
const version_1 = __webpack_require__(/*! ../../../version */ "./node_modules/@abaplint/core/build/src/version.js");
|
|
17099
17099
|
const combi_1 = __webpack_require__(/*! ../combi */ "./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js");
|
|
17100
17100
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
|
|
17101
|
+
const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/index.js");
|
|
17101
17102
|
class MethodDef {
|
|
17102
17103
|
getMatcher() {
|
|
17103
17104
|
const def = (0, combi_1.ver)(version_1.Release.v740sp08, (0, combi_1.seq)("DEFAULT", (0, combi_1.altPrio)("FAIL", "IGNORE")), { also: combi_1.AlsoIn.OpenABAP });
|
|
@@ -17111,6 +17112,9 @@ class MethodDef {
|
|
|
17111
17112
|
const modify = (0, combi_1.alt)((0, combi_1.seq)("FOR ACTION", expressions_1.TypeName, (0, combi_1.optPrio)(result)), (0, combi_1.seq)("FOR CREATE", (0, combi_1.alt)(expressions_1.TypeName, expressions_1.EntityAssociation)), (0, combi_1.seq)("FOR DELETE", expressions_1.TypeName), (0, combi_1.seq)("FOR UPDATE", expressions_1.TypeName));
|
|
17112
17113
|
const forRead = (0, combi_1.seq)("FOR READ", (0, combi_1.alt)(expressions_1.TypeName, expressions_1.EntityAssociation), (0, combi_1.optPrio)(full), result, (0, combi_1.optPrio)(link));
|
|
17113
17114
|
const forfunction = (0, combi_1.seq)("FOR FUNCTION", expressions_1.TypeName, result);
|
|
17115
|
+
const entityEventReference = (0, combi_1.seq)("REFERENCE", (0, combi_1.tok)(tokens_1.ParenLeft), expressions_1.MethodParamName, (0, combi_1.tok)(tokens_1.ParenRightW));
|
|
17116
|
+
const entityEventParameter = (0, combi_1.seq)((0, combi_1.altPrio)(entityEventReference, expressions_1.MethodParamName), "FOR", expressions_1.TypeName);
|
|
17117
|
+
const entityEvent = (0, combi_1.seq)((0, combi_1.optPrio)("FINAL"), "FOR ENTITY EVENT", (0, combi_1.optPrio)("IMPORTING"), (0, combi_1.plus)(entityEventParameter));
|
|
17114
17118
|
const behavior = (0, combi_1.altPrio)("DDL OBJECT OPTIONS CDS SESSION CLIENT REQUIRED", // todo, this is only from version something
|
|
17115
17119
|
(0, combi_1.seq)("TABLE FUNCTION", expressions_1.NamespaceSimpleName), // todo, this is only from version something
|
|
17116
17120
|
(0, combi_1.seq)("VALIDATE ON SAVE IMPORTING", expressions_1.MethodParamName, "FOR", expressions_1.TypeName), (0, combi_1.seq)("MODIFY", (0, combi_1.opt)("IMPORTING"), (0, combi_1.plus)((0, combi_1.seq)(expressions_1.MethodParamName, modify))), (0, combi_1.seq)("PRECHECK IMPORTING", expressions_1.MethodParamName, modify), (0, combi_1.seq)("DETERMINATION", expressions_1.TypeName, "IMPORTING", expressions_1.MethodParamName, "FOR", expressions_1.TypeName), (0, combi_1.seq)("VALIDATION", expressions_1.TypeName, "IMPORTING", expressions_1.MethodParamName, "FOR", expressions_1.TypeName), (0, combi_1.seq)("NUMBERING IMPORTING", expressions_1.MethodParamName, modify), (0, combi_1.seq)("READ IMPORTING", expressions_1.MethodParamName, (0, combi_1.altPrio)(forRead, forfunction)), (0, combi_1.seq)("FEATURES IMPORTING", expressions_1.MethodParamName, "REQUEST", expressions_1.NamespaceSimpleName, "FOR", expressions_1.NamespaceSimpleName, result), (0, combi_1.seq)("BEHAVIOR IMPORTING", expressions_1.MethodParamName, "FOR CREATE", expressions_1.TypeName, expressions_1.MethodParamName, "FOR UPDATE", expressions_1.TypeName, expressions_1.MethodParamName, "FOR DELETE", expressions_1.TypeName), (0, combi_1.seq)("BEHAVIOR IMPORTING", expressions_1.MethodParamName, "FOR READ", expressions_1.TypeName, result), (0, combi_1.seq)("BEHAVIOR IMPORTING", expressions_1.MethodParamName, "FOR UPDATE", expressions_1.TypeName), (0, combi_1.seq)((0, combi_1.alt)("BEHAVIOR", "LOCK"), "IMPORTING", expressions_1.MethodParamName, "FOR LOCK", expressions_1.TypeName), (0, combi_1.seq)("DETERMINE", (0, combi_1.alt)("ON MODIFY", "ON SAVE"), "IMPORTING", expressions_1.MethodParamName, "FOR", expressions_1.TypeName), (0, combi_1.seq)("GLOBAL AUTHORIZATION IMPORTING REQUEST", expressions_1.MethodParamName, "FOR", expressions_1.TypeName, result), (0, combi_1.seq)("GLOBAL FEATURES IMPORTING REQUEST", expressions_1.MethodParamName, "FOR", expressions_1.TypeName, result), (0, combi_1.seq)((0, combi_1.seq)((0, combi_1.opt)("INSTANCE"), "AUTHORIZATION IMPORTING"), expressions_1.MethodParamName, "REQUEST", expressions_1.MethodParamName, "FOR", expressions_1.TypeName, result), (0, combi_1.seq)("INSTANCE FEATURES IMPORTING", expressions_1.MethodParamName, "REQUEST", expressions_1.MethodParamName, "FOR", expressions_1.TypeName, result));
|
|
@@ -17118,7 +17122,9 @@ class MethodDef {
|
|
|
17118
17122
|
// AMDP OPTIONS clause blocked in KeyUser
|
|
17119
17123
|
const amdp = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("AMDP OPTIONS", (0, combi_1.optPrio)("READ-ONLY"), "CDS SESSION CLIENT", (0, combi_1.alt)("CURRENT", "DEPENDENT"), (0, combi_1.optPrio)(expressions_1.MethodDefImporting), (0, combi_1.optPrio)(expressions_1.MethodDefExporting), (0, combi_1.optPrio)(expressions_1.MethodDefRaising)));
|
|
17120
17124
|
// FOR DDL OBJECT / FOR TABLE FUNCTION / FOR SCALAR FUNCTION blocked in KeyUser
|
|
17121
|
-
const
|
|
17125
|
+
const regular = (0, combi_1.seq)((0, combi_1.altPrio)("CLASS-METHODS", "METHODS"), expressions_1.MethodName, (0, combi_1.alt)((0, combi_1.seq)((0, combi_1.optPrio)(expressions_1.Abstract), (0, combi_1.optPrio)(def), expressions_1.EventHandler), parameters, testing, (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("FOR", behavior)), amdp, "NOT AT END OF MODE", (0, combi_1.optPrio)(expressions_1.Redefinition)));
|
|
17126
|
+
// RAP event handlers are instance methods; CLASS-METHODS is not allowed.
|
|
17127
|
+
const ret = (0, combi_1.alt)((0, combi_1.seq)("METHODS", expressions_1.MethodName, (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, entityEvent)), regular);
|
|
17122
17128
|
return ret;
|
|
17123
17129
|
}
|
|
17124
17130
|
}
|
|
@@ -28021,6 +28027,12 @@ class TypeUtils {
|
|
|
28021
28027
|
if (source2 instanceof basic_1.HexType && this.isCalculated(node2) && source1 instanceof basic_1.IntegerType) {
|
|
28022
28028
|
return false;
|
|
28023
28029
|
}
|
|
28030
|
+
if (source1 instanceof basic_1.DateType && this.isCalculated(node2) && source2 instanceof basic_1.IntegerType) {
|
|
28031
|
+
return false;
|
|
28032
|
+
}
|
|
28033
|
+
if (source2 instanceof basic_1.DateType && this.isCalculated(node1) && source1 instanceof basic_1.IntegerType) {
|
|
28034
|
+
return false;
|
|
28035
|
+
}
|
|
28024
28036
|
return true;
|
|
28025
28037
|
}
|
|
28026
28038
|
structureContainsString(structure) {
|
|
@@ -29539,6 +29551,51 @@ exports.BasicTypes = BasicTypes;
|
|
|
29539
29551
|
|
|
29540
29552
|
/***/ },
|
|
29541
29553
|
|
|
29554
|
+
/***/ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/_check_database_fields.js"
|
|
29555
|
+
/*!***************************************************************************************************!*\
|
|
29556
|
+
!*** ./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/_check_database_fields.js ***!
|
|
29557
|
+
\***************************************************************************************************/
|
|
29558
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
29559
|
+
|
|
29560
|
+
"use strict";
|
|
29561
|
+
|
|
29562
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
29563
|
+
exports.checkDatabaseFields = checkDatabaseFields;
|
|
29564
|
+
const basic_1 = __webpack_require__(/*! ../../types/basic */ "./node_modules/@abaplint/core/build/src/abap/types/basic/index.js");
|
|
29565
|
+
const _syntax_input_1 = __webpack_require__(/*! ../_syntax_input */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_syntax_input.js");
|
|
29566
|
+
function checkDatabaseFields(fields, dbSources, input, token) {
|
|
29567
|
+
if (dbSources.length > 1) {
|
|
29568
|
+
return;
|
|
29569
|
+
}
|
|
29570
|
+
const first = dbSources[0];
|
|
29571
|
+
if (first === undefined) {
|
|
29572
|
+
// then its voided
|
|
29573
|
+
return;
|
|
29574
|
+
}
|
|
29575
|
+
const type = first.parseType(input.scope.getRegistry());
|
|
29576
|
+
if (type instanceof basic_1.VoidType || type instanceof basic_1.UnknownType) {
|
|
29577
|
+
return;
|
|
29578
|
+
}
|
|
29579
|
+
if (!(type instanceof basic_1.StructureType)) {
|
|
29580
|
+
const message = "checkFields, expected structure, " + type.constructor.name;
|
|
29581
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, token, message));
|
|
29582
|
+
return;
|
|
29583
|
+
}
|
|
29584
|
+
for (const field of fields) {
|
|
29585
|
+
if (field === "*") {
|
|
29586
|
+
continue;
|
|
29587
|
+
}
|
|
29588
|
+
if (/^[A-Z_]\w*$/i.test(field) && type.getComponentByName(field) === undefined) {
|
|
29589
|
+
const message = `checkFields, field ${field} not found`;
|
|
29590
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, token, message));
|
|
29591
|
+
return;
|
|
29592
|
+
}
|
|
29593
|
+
}
|
|
29594
|
+
}
|
|
29595
|
+
//# sourceMappingURL=_check_database_fields.js.map
|
|
29596
|
+
|
|
29597
|
+
/***/ },
|
|
29598
|
+
|
|
29542
29599
|
/***/ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/_check_offset_length.js"
|
|
29543
29600
|
/*!*************************************************************************************************!*\
|
|
29544
29601
|
!*** ./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/_check_offset_length.js ***!
|
|
@@ -30018,6 +30075,7 @@ const source_1 = __webpack_require__(/*! ./source */ "./node_modules/@abaplint/c
|
|
|
30018
30075
|
const method_call_chain_1 = __webpack_require__(/*! ./method_call_chain */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/method_call_chain.js");
|
|
30019
30076
|
const source_field_symbol_1 = __webpack_require__(/*! ./source_field_symbol */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/source_field_symbol.js");
|
|
30020
30077
|
const _syntax_input_1 = __webpack_require__(/*! ../_syntax_input */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_syntax_input.js");
|
|
30078
|
+
const basic_1 = __webpack_require__(/*! ../../types/basic */ "./node_modules/@abaplint/core/build/src/abap/types/basic/index.js");
|
|
30021
30079
|
const _type_utils_1 = __webpack_require__(/*! ../_type_utils */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_type_utils.js");
|
|
30022
30080
|
class Compare {
|
|
30023
30081
|
static runSyntax(node, input) {
|
|
@@ -30035,7 +30093,15 @@ class Compare {
|
|
|
30035
30093
|
if (node.findDirectExpression(Expressions.CompareOperator)
|
|
30036
30094
|
&& new _type_utils_1.TypeUtils(input.scope).isCompareable(sourceTypes[0], sourceTypes[1], sources[0], sources[1]) === false
|
|
30037
30095
|
&& sourceTypes.length === 2) {
|
|
30038
|
-
|
|
30096
|
+
let message = "Incompatible types for comparison";
|
|
30097
|
+
if ((sourceTypes[0] instanceof basic_1.DateType
|
|
30098
|
+
&& sourceTypes[1] instanceof basic_1.IntegerType
|
|
30099
|
+
&& sources[1].findFirstExpression(Expressions.ArithOperator))
|
|
30100
|
+
|| (sourceTypes[1] instanceof basic_1.DateType
|
|
30101
|
+
&& sourceTypes[0] instanceof basic_1.IntegerType
|
|
30102
|
+
&& sources[0].findFirstExpression(Expressions.ArithOperator))) {
|
|
30103
|
+
message = "Date cannot be compared with arithmetic result of type Integer";
|
|
30104
|
+
}
|
|
30039
30105
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
30040
30106
|
}
|
|
30041
30107
|
}
|
|
@@ -34179,6 +34245,7 @@ const dynamic_1 = __webpack_require__(/*! ./dynamic */ "./node_modules/@abaplint
|
|
|
34179
34245
|
const _reference_1 = __webpack_require__(/*! ../_reference */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_reference.js");
|
|
34180
34246
|
const _syntax_input_1 = __webpack_require__(/*! ../_syntax_input */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_syntax_input.js");
|
|
34181
34247
|
const version_1 = __webpack_require__(/*! ../../../version */ "./node_modules/@abaplint/core/build/src/version.js");
|
|
34248
|
+
const _check_database_fields_1 = __webpack_require__(/*! ./_check_database_fields */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/_check_database_fields.js");
|
|
34182
34249
|
const isSimple = /^\w+$/;
|
|
34183
34250
|
class Select {
|
|
34184
34251
|
static runSyntax(node, input, skipImplicitInto = false, selectLoop = false) {
|
|
@@ -34203,8 +34270,8 @@ class Select {
|
|
|
34203
34270
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
34204
34271
|
return;
|
|
34205
34272
|
}
|
|
34206
|
-
|
|
34207
|
-
const intoExpression = this.handleInto(node, input, fields, dbSources);
|
|
34273
|
+
(0, _check_database_fields_1.checkDatabaseFields)(fields.map(field => field.code), dbSources, input, node.getFirstToken());
|
|
34274
|
+
const intoExpression = this.handleInto(node, input, fields, dbSources, from);
|
|
34208
34275
|
const fae = node.findDirectExpression(Expressions.SQLForAllEntries);
|
|
34209
34276
|
if (fae) {
|
|
34210
34277
|
input.scope.push(_scope_type_1.ScopeType.OpenSQL, "SELECT", token.getStart(), input.filename);
|
|
@@ -34365,12 +34432,12 @@ class Select {
|
|
|
34365
34432
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
34366
34433
|
}
|
|
34367
34434
|
}
|
|
34368
|
-
static handleInto(node, input, fields, dbSources) {
|
|
34435
|
+
static handleInto(node, input, fields, dbSources, from) {
|
|
34369
34436
|
const intoTable = node.findDirectExpression(Expressions.SQLIntoTable);
|
|
34370
34437
|
if (intoTable) {
|
|
34371
34438
|
const inline = intoTable.findFirstExpression(Expressions.InlineData);
|
|
34372
34439
|
if (inline) {
|
|
34373
|
-
inline_data_1.InlineData.runSyntax(inline, input, this.buildTableType(fields, dbSources, input.scope));
|
|
34440
|
+
inline_data_1.InlineData.runSyntax(inline, input, this.buildTableType(fields, dbSources, input.scope, from));
|
|
34374
34441
|
}
|
|
34375
34442
|
return intoTable;
|
|
34376
34443
|
}
|
|
@@ -34430,35 +34497,6 @@ class Select {
|
|
|
34430
34497
|
}
|
|
34431
34498
|
return undefined;
|
|
34432
34499
|
}
|
|
34433
|
-
static checkFields(fields, dbSources, input, node) {
|
|
34434
|
-
if (dbSources.length > 1) {
|
|
34435
|
-
return;
|
|
34436
|
-
}
|
|
34437
|
-
const first = dbSources[0];
|
|
34438
|
-
if (first === undefined) {
|
|
34439
|
-
// then its voided
|
|
34440
|
-
return;
|
|
34441
|
-
}
|
|
34442
|
-
const type = first.parseType(input.scope.getRegistry());
|
|
34443
|
-
if (type instanceof basic_1.VoidType || type instanceof basic_1.UnknownType) {
|
|
34444
|
-
return;
|
|
34445
|
-
}
|
|
34446
|
-
if (!(type instanceof basic_1.StructureType)) {
|
|
34447
|
-
const message = "checkFields, expected structure, " + type.constructor.name;
|
|
34448
|
-
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
34449
|
-
return;
|
|
34450
|
-
}
|
|
34451
|
-
for (const field of fields) {
|
|
34452
|
-
if (field.code === "*") {
|
|
34453
|
-
continue;
|
|
34454
|
-
}
|
|
34455
|
-
if (isSimple.test(field.code) && type.getComponentByName(field.code) === undefined) {
|
|
34456
|
-
const message = `checkFields, field ${field.code} not found`;
|
|
34457
|
-
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
34458
|
-
return;
|
|
34459
|
-
}
|
|
34460
|
-
}
|
|
34461
|
-
}
|
|
34462
34500
|
static countResultType(scope) {
|
|
34463
34501
|
if ((0, version_1.releaseAtLeast)(scope.getRelease(), version_1.Release.v750)
|
|
34464
34502
|
|| scope.getOpenABAP()
|
|
@@ -34547,11 +34585,36 @@ class Select {
|
|
|
34547
34585
|
return basic_1.VoidType.get("SELECT_todo13");
|
|
34548
34586
|
}
|
|
34549
34587
|
}
|
|
34550
|
-
static buildTableType(fields, dbSources, scope) {
|
|
34551
|
-
|
|
34588
|
+
static buildTableType(fields, dbSources, scope, from) {
|
|
34589
|
+
var _a;
|
|
34590
|
+
const tableOptions = { withHeader: false, keyType: basic_1.TableKeyType.empty };
|
|
34591
|
+
if (dbSources.length > 1) {
|
|
34592
|
+
const sourceInfos = this.buildDatabaseSourceInfos(from, dbSources);
|
|
34593
|
+
if (fields.length === 1 && fields[0].code === "*") {
|
|
34594
|
+
const components = [];
|
|
34595
|
+
for (const info of sourceInfos) {
|
|
34596
|
+
const type = (_a = info.source) === null || _a === void 0 ? void 0 : _a.parseType(scope.getRegistry());
|
|
34597
|
+
if (!(type instanceof basic_1.StructureType)) {
|
|
34598
|
+
return basic_1.VoidType.get("SELECT_todo3");
|
|
34599
|
+
}
|
|
34600
|
+
components.push({ name: info.alias || info.name, type });
|
|
34601
|
+
}
|
|
34602
|
+
return new basic_1.TableType(new basic_1.StructureType(components), tableOptions, undefined);
|
|
34603
|
+
}
|
|
34604
|
+
const components = [];
|
|
34605
|
+
for (const field of fields) {
|
|
34606
|
+
const type = this.findFieldType(field.code, sourceInfos, scope);
|
|
34607
|
+
if (type === undefined) {
|
|
34608
|
+
return basic_1.VoidType.get("SELECT_todo3");
|
|
34609
|
+
}
|
|
34610
|
+
const name = field.as || field.code.split("~").pop();
|
|
34611
|
+
components.push({ name, type });
|
|
34612
|
+
}
|
|
34613
|
+
return new basic_1.TableType(new basic_1.StructureType(components), tableOptions, undefined);
|
|
34614
|
+
}
|
|
34615
|
+
else if (dbSources.length !== 1) {
|
|
34552
34616
|
return basic_1.VoidType.get("SELECT_todo3");
|
|
34553
34617
|
}
|
|
34554
|
-
const tableOptions = { withHeader: false, keyType: basic_1.TableKeyType.empty };
|
|
34555
34618
|
if (dbSources[0] === undefined) {
|
|
34556
34619
|
// then its a voided table
|
|
34557
34620
|
return new basic_1.TableType(basic_1.VoidType.get("SELECT_todo4"), tableOptions, undefined);
|
|
@@ -34577,6 +34640,39 @@ class Select {
|
|
|
34577
34640
|
}
|
|
34578
34641
|
return basic_1.VoidType.get("SELECT_todo7");
|
|
34579
34642
|
}
|
|
34643
|
+
static buildDatabaseSourceInfos(from, dbSources) {
|
|
34644
|
+
const fromSources = from.findAllExpressions(Expressions.SQLFromSource);
|
|
34645
|
+
return dbSources.map((source, index) => {
|
|
34646
|
+
var _a, _b;
|
|
34647
|
+
const fromSource = fromSources[index];
|
|
34648
|
+
const name = ((_a = fromSource === null || fromSource === void 0 ? void 0 : fromSource.findFirstExpression(Expressions.DatabaseTable)) === null || _a === void 0 ? void 0 : _a.getFirstToken().getStr().replace(/^\*/, "").toUpperCase()) || "";
|
|
34649
|
+
const alias = ((_b = fromSource === null || fromSource === void 0 ? void 0 : fromSource.findDirectExpression(Expressions.SQLAsName)) === null || _b === void 0 ? void 0 : _b.concatTokens().toUpperCase()) || "";
|
|
34650
|
+
return { source, name, alias };
|
|
34651
|
+
});
|
|
34652
|
+
}
|
|
34653
|
+
static findFieldType(code, sourceInfos, scope) {
|
|
34654
|
+
var _a;
|
|
34655
|
+
const separator = code.indexOf("~");
|
|
34656
|
+
const qualifier = separator >= 0 ? code.substring(0, separator) : undefined;
|
|
34657
|
+
const fieldName = separator >= 0 ? code.substring(separator + 1) : code;
|
|
34658
|
+
const candidates = qualifier === undefined
|
|
34659
|
+
? sourceInfos
|
|
34660
|
+
: sourceInfos.filter(info => info.alias === qualifier || info.name === qualifier);
|
|
34661
|
+
for (const candidate of candidates) {
|
|
34662
|
+
let type = (_a = candidate.source) === null || _a === void 0 ? void 0 : _a.parseType(scope.getRegistry());
|
|
34663
|
+
for (const component of fieldName.split("-")) {
|
|
34664
|
+
if (!(type instanceof basic_1.StructureType)) {
|
|
34665
|
+
type = undefined;
|
|
34666
|
+
break;
|
|
34667
|
+
}
|
|
34668
|
+
type = type.getComponentByName(component);
|
|
34669
|
+
}
|
|
34670
|
+
if (type) {
|
|
34671
|
+
return type;
|
|
34672
|
+
}
|
|
34673
|
+
}
|
|
34674
|
+
return undefined;
|
|
34675
|
+
}
|
|
34580
34676
|
static findFields(node, input) {
|
|
34581
34677
|
var _a, _b;
|
|
34582
34678
|
let expr = undefined;
|
|
@@ -34590,7 +34686,7 @@ class Select {
|
|
|
34590
34686
|
let code = field.concatTokens().toUpperCase();
|
|
34591
34687
|
const as = ((_b = field.findDirectExpression(Expressions.SQLAsName)) === null || _b === void 0 ? void 0 : _b.concatTokens()) || "";
|
|
34592
34688
|
if (as !== "") {
|
|
34593
|
-
code = code.replace(" AS " + as, "");
|
|
34689
|
+
code = code.replace(" AS " + as.toUpperCase(), "");
|
|
34594
34690
|
}
|
|
34595
34691
|
ret.push({ code, as, expression: field });
|
|
34596
34692
|
}
|
|
@@ -36346,6 +36442,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
36346
36442
|
})();
|
|
36347
36443
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
36348
36444
|
exports.ValueBody = void 0;
|
|
36445
|
+
const nodes_1 = __webpack_require__(/*! ../../nodes */ "./node_modules/@abaplint/core/build/src/abap/nodes/index.js");
|
|
36349
36446
|
const Expressions = __importStar(__webpack_require__(/*! ../../2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js"));
|
|
36350
36447
|
const for_1 = __webpack_require__(/*! ./for */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/for.js");
|
|
36351
36448
|
const source_1 = __webpack_require__(/*! ./source */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/source.js");
|
|
@@ -36355,7 +36452,7 @@ const basic_1 = __webpack_require__(/*! ../../types/basic */ "./node_modules/@ab
|
|
|
36355
36452
|
const _syntax_input_1 = __webpack_require__(/*! ../_syntax_input */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_syntax_input.js");
|
|
36356
36453
|
class ValueBody {
|
|
36357
36454
|
static runSyntax(node, input, targetType) {
|
|
36358
|
-
var _a, _b;
|
|
36455
|
+
var _a, _b, _c;
|
|
36359
36456
|
if (node === undefined) {
|
|
36360
36457
|
return targetType;
|
|
36361
36458
|
}
|
|
@@ -36372,26 +36469,45 @@ class ValueBody {
|
|
|
36372
36469
|
}
|
|
36373
36470
|
}
|
|
36374
36471
|
const fields = new Set();
|
|
36375
|
-
|
|
36376
|
-
|
|
36377
|
-
if (
|
|
36378
|
-
|
|
36379
|
-
|
|
36472
|
+
const hasTableLines = node.findDirectExpression(Expressions.ValueBodyLine) !== undefined;
|
|
36473
|
+
for (const child of node.getChildren()) {
|
|
36474
|
+
if (!(child instanceof nodes_1.ExpressionNode)) {
|
|
36475
|
+
continue;
|
|
36476
|
+
}
|
|
36477
|
+
else if (child.get() instanceof Expressions.FieldAssignment) {
|
|
36478
|
+
const fieldname = (_a = child.findDirectExpression(Expressions.FieldSub)) === null || _a === void 0 ? void 0 : _a.concatTokens().toUpperCase();
|
|
36479
|
+
if (fieldname && hasTableLines === false && fields.has(fieldname)) {
|
|
36480
|
+
const message = "Duplicate field assignment";
|
|
36481
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, child.getFirstToken(), message));
|
|
36482
|
+
return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
36483
|
+
}
|
|
36380
36484
|
if (fieldname) {
|
|
36381
|
-
|
|
36485
|
+
fields.add(fieldname);
|
|
36486
|
+
}
|
|
36487
|
+
}
|
|
36488
|
+
else if (child.get() instanceof Expressions.ValueBodyLine) {
|
|
36489
|
+
const rowFields = new Set(fields);
|
|
36490
|
+
for (const assignment of child.findDirectExpressions(Expressions.FieldAssignment)) {
|
|
36491
|
+
const fieldname = (_b = assignment.findDirectExpression(Expressions.FieldSub)) === null || _b === void 0 ? void 0 : _b.concatTokens().toUpperCase();
|
|
36492
|
+
if (fieldname && rowFields.has(fieldname)) {
|
|
36382
36493
|
const message = "Duplicate field assignment";
|
|
36383
|
-
input.issues.push((0, _syntax_input_1.syntaxIssue)(input,
|
|
36494
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, assignment.getFirstToken(), message));
|
|
36384
36495
|
return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
36385
36496
|
}
|
|
36386
|
-
|
|
36497
|
+
if (fieldname) {
|
|
36498
|
+
rowFields.add(fieldname);
|
|
36499
|
+
}
|
|
36387
36500
|
}
|
|
36388
36501
|
}
|
|
36389
36502
|
}
|
|
36503
|
+
for (const s of node.findDirectExpressions(Expressions.FieldAssignment)) {
|
|
36504
|
+
field_assignment_1.FieldAssignment.runSyntax(s, input, targetType);
|
|
36505
|
+
}
|
|
36390
36506
|
let type = undefined; // todo, this is only correct if there is a single source in the body
|
|
36391
36507
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
36392
36508
|
type = source_1.Source.runSyntax(s, input, type);
|
|
36393
36509
|
}
|
|
36394
|
-
for (const s of ((
|
|
36510
|
+
for (const s of ((_c = node.findDirectExpression(Expressions.ValueBase)) === null || _c === void 0 ? void 0 : _c.findDirectExpressions(Expressions.Source)) || []) {
|
|
36395
36511
|
type = source_1.Source.runSyntax(s, input, type);
|
|
36396
36512
|
}
|
|
36397
36513
|
for (const foo of node.findDirectExpressions(Expressions.ValueBodyLine)) {
|
|
@@ -38067,7 +38183,12 @@ const _syntax_input_1 = __webpack_require__(/*! ../_syntax_input */ "./node_modu
|
|
|
38067
38183
|
const _type_utils_1 = __webpack_require__(/*! ../_type_utils */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_type_utils.js");
|
|
38068
38184
|
class Catch {
|
|
38069
38185
|
runSyntax(node, input) {
|
|
38070
|
-
var _a;
|
|
38186
|
+
var _a, _b, _c;
|
|
38187
|
+
const target = node.findDirectExpression(Expressions.Target);
|
|
38188
|
+
const inlineTarget = (_b = (_a = target === null || target === void 0 ? void 0 : target.findDirectExpression(Expressions.InlineData)) === null || _a === void 0 ? void 0 : _a.findFirstExpression(Expressions.TargetField)) === null || _b === void 0 ? void 0 : _b.getFirstToken();
|
|
38189
|
+
if (inlineTarget && inlineTarget.getStr().length > 30) {
|
|
38190
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, inlineTarget, "Inline exception name longer than 30 characters"));
|
|
38191
|
+
}
|
|
38071
38192
|
const names = new Set();
|
|
38072
38193
|
for (const c of node.findDirectExpressions(Expressions.ClassName)) {
|
|
38073
38194
|
const token = c.getFirstToken();
|
|
@@ -38091,9 +38212,8 @@ class Catch {
|
|
|
38091
38212
|
}
|
|
38092
38213
|
names.add(className);
|
|
38093
38214
|
}
|
|
38094
|
-
const target = node.findDirectExpression(Expressions.Target);
|
|
38095
38215
|
if (target === null || target === void 0 ? void 0 : target.findDirectExpression(Expressions.InlineData)) {
|
|
38096
|
-
const token = (
|
|
38216
|
+
const token = (_c = target.findFirstExpression(Expressions.TargetField)) === null || _c === void 0 ? void 0 : _c.getFirstToken();
|
|
38097
38217
|
if (token) {
|
|
38098
38218
|
const classNames = Array.from(names);
|
|
38099
38219
|
const unknownClass = classNames.find(name => input.scope.findClassDefinition(name) === undefined);
|
|
@@ -39807,6 +39927,7 @@ const Expressions = __importStar(__webpack_require__(/*! ../../2_statements/expr
|
|
|
39807
39927
|
const source_1 = __webpack_require__(/*! ../expressions/source */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/source.js");
|
|
39808
39928
|
const dynamic_1 = __webpack_require__(/*! ../expressions/dynamic */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/dynamic.js");
|
|
39809
39929
|
const database_table_1 = __webpack_require__(/*! ../expressions/database_table */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/database_table.js");
|
|
39930
|
+
const _check_database_fields_1 = __webpack_require__(/*! ../expressions/_check_database_fields */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/_check_database_fields.js");
|
|
39810
39931
|
class DeleteDatabase {
|
|
39811
39932
|
runSyntax(node, input) {
|
|
39812
39933
|
for (const s of node.findAllExpressions(Expressions.Source)) {
|
|
@@ -39820,7 +39941,14 @@ class DeleteDatabase {
|
|
|
39820
39941
|
}
|
|
39821
39942
|
const dbtab = node.findFirstExpression(Expressions.DatabaseTable);
|
|
39822
39943
|
if (dbtab !== undefined) {
|
|
39823
|
-
database_table_1.DatabaseTable.runSyntax(dbtab, input);
|
|
39944
|
+
const dbSource = database_table_1.DatabaseTable.runSyntax(dbtab, input);
|
|
39945
|
+
const fields = node.findAllExpressions(Expressions.SQLCompare)
|
|
39946
|
+
.map(compare => { var _a; return (_a = compare.findDirectExpression(Expressions.SQLFieldName)) === null || _a === void 0 ? void 0 : _a.concatTokens().toUpperCase(); })
|
|
39947
|
+
.filter(field => field !== undefined);
|
|
39948
|
+
for (const orderBy of node.findAllExpressions(Expressions.SQLOrderBy)) {
|
|
39949
|
+
fields.push(...orderBy.findAllExpressions(Expressions.SQLFieldName).map(field => field.concatTokens().toUpperCase()));
|
|
39950
|
+
}
|
|
39951
|
+
(0, _check_database_fields_1.checkDatabaseFields)(fields, [dbSource], input, node.getFirstToken());
|
|
39824
39952
|
}
|
|
39825
39953
|
}
|
|
39826
39954
|
}
|
|
@@ -46765,11 +46893,19 @@ const _typed_identifier_1 = __webpack_require__(/*! ../../types/_typed_identifie
|
|
|
46765
46893
|
const identifier_1 = __webpack_require__(/*! ../../1_lexer/tokens/identifier */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/identifier.js");
|
|
46766
46894
|
const database_table_1 = __webpack_require__(/*! ../expressions/database_table */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/database_table.js");
|
|
46767
46895
|
const dynamic_1 = __webpack_require__(/*! ../expressions/dynamic */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/dynamic.js");
|
|
46896
|
+
const _check_database_fields_1 = __webpack_require__(/*! ../expressions/_check_database_fields */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/_check_database_fields.js");
|
|
46768
46897
|
class UpdateDatabase {
|
|
46769
46898
|
runSyntax(node, input) {
|
|
46770
46899
|
const dbtab = node.findFirstExpression(Expressions.DatabaseTable);
|
|
46771
46900
|
if (dbtab !== undefined) {
|
|
46772
|
-
database_table_1.DatabaseTable.runSyntax(dbtab, input);
|
|
46901
|
+
const dbSource = database_table_1.DatabaseTable.runSyntax(dbtab, input);
|
|
46902
|
+
const fields = node.findAllExpressions(Expressions.SQLFieldAndValue)
|
|
46903
|
+
.flatMap(fieldAndValue => fieldAndValue.findDirectExpressions(Expressions.SQLFieldName))
|
|
46904
|
+
.map(field => field.concatTokens().toUpperCase());
|
|
46905
|
+
fields.push(...node.findAllExpressions(Expressions.SQLCompare)
|
|
46906
|
+
.map(compare => { var _a; return (_a = compare.findDirectExpression(Expressions.SQLFieldName)) === null || _a === void 0 ? void 0 : _a.concatTokens().toUpperCase(); })
|
|
46907
|
+
.filter(field => field !== undefined));
|
|
46908
|
+
(0, _check_database_fields_1.checkDatabaseFields)(fields, [dbSource], input, node.getFirstToken());
|
|
46773
46909
|
}
|
|
46774
46910
|
const tableName = node.findDirectExpression(Expressions.DatabaseTable);
|
|
46775
46911
|
const tokenName = tableName === null || tableName === void 0 ? void 0 : tableName.getFirstToken();
|
|
@@ -48043,6 +48179,7 @@ const include_type_1 = __webpack_require__(/*! ../statements/include_type */ "./
|
|
|
48043
48179
|
const type_1 = __webpack_require__(/*! ../statements/type */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/statements/type.js");
|
|
48044
48180
|
const Basic = __importStar(__webpack_require__(/*! ../../types/basic */ "./node_modules/@abaplint/core/build/src/abap/types/basic/index.js"));
|
|
48045
48181
|
const _scope_type_1 = __webpack_require__(/*! ../_scope_type */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_scope_type.js");
|
|
48182
|
+
const _syntax_input_1 = __webpack_require__(/*! ../_syntax_input */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_syntax_input.js");
|
|
48046
48183
|
class Types {
|
|
48047
48184
|
runSyntax(node, input, qualifiedNamePrefix) {
|
|
48048
48185
|
const name = node.findFirstExpression(Expressions.NamespaceSimpleName).getFirstToken();
|
|
@@ -48057,6 +48194,9 @@ class Types {
|
|
|
48057
48194
|
if (ctyp instanceof Statements.Type) {
|
|
48058
48195
|
const found = new type_1.Type().runSyntax(c, input, qualifiedNamePrefix + name.getStr() + "-");
|
|
48059
48196
|
if (found) {
|
|
48197
|
+
if (found.getName().length > 30) {
|
|
48198
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, found.getToken(), "Structure field name longer than 30 characters"));
|
|
48199
|
+
}
|
|
48060
48200
|
components.push({ name: found.getName(), type: found.getType() });
|
|
48061
48201
|
}
|
|
48062
48202
|
}
|
|
@@ -48073,6 +48213,9 @@ class Types {
|
|
|
48073
48213
|
else if (c instanceof nodes_1.StructureNode && ctyp instanceof Structures.Types) {
|
|
48074
48214
|
const found = new Types().runSyntax(c, input, qualifiedNamePrefix + name.getStr() + "-");
|
|
48075
48215
|
if (found) {
|
|
48216
|
+
if (found.getName().length > 30) {
|
|
48217
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, found.getToken(), "Structure field name longer than 30 characters"));
|
|
48218
|
+
}
|
|
48076
48219
|
components.push({ name: found.getName(), type: found.getType() });
|
|
48077
48220
|
}
|
|
48078
48221
|
}
|
|
@@ -52173,7 +52316,7 @@ class ClassDefinition extends _identifier_1.Identifier {
|
|
|
52173
52316
|
this.checkEventNameConflicts(input);
|
|
52174
52317
|
this.checkClassNameLength(input);
|
|
52175
52318
|
this.checkMethodNameLength(input);
|
|
52176
|
-
this.
|
|
52319
|
+
this.checkClassConstructor(input);
|
|
52177
52320
|
}
|
|
52178
52321
|
getFriends() {
|
|
52179
52322
|
return this.friends;
|
|
@@ -52243,11 +52386,17 @@ class ClassDefinition extends _identifier_1.Identifier {
|
|
|
52243
52386
|
}
|
|
52244
52387
|
}
|
|
52245
52388
|
}
|
|
52246
|
-
|
|
52389
|
+
checkClassConstructor(input) {
|
|
52247
52390
|
for (const m of this.methodDefs.getAll()) {
|
|
52248
|
-
if (m.getName().toUpperCase()
|
|
52391
|
+
if (m.getName().toUpperCase() !== "CLASS_CONSTRUCTOR") {
|
|
52392
|
+
continue;
|
|
52393
|
+
}
|
|
52394
|
+
if (m.isStatic() === false) {
|
|
52249
52395
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, m.getToken(), "CLASS_CONSTRUCTOR must be static"));
|
|
52250
52396
|
}
|
|
52397
|
+
else if (m.getVisibility() !== visibility_1.Visibility.Public) {
|
|
52398
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, m.getToken(), "CLASS_CONSTRUCTOR must be declared in the public section"));
|
|
52399
|
+
}
|
|
52251
52400
|
}
|
|
52252
52401
|
}
|
|
52253
52402
|
checkInterfaceVisibility(input, node) {
|
|
@@ -53412,6 +53561,7 @@ const _object_oriented_1 = __webpack_require__(/*! ../5_syntax/_object_oriented
|
|
|
53412
53561
|
const _reference_1 = __webpack_require__(/*! ../5_syntax/_reference */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_reference.js");
|
|
53413
53562
|
const identifier_1 = __webpack_require__(/*! ../1_lexer/tokens/identifier */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/identifier.js");
|
|
53414
53563
|
const _scope_type_1 = __webpack_require__(/*! ../5_syntax/_scope_type */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_scope_type.js");
|
|
53564
|
+
const _syntax_input_1 = __webpack_require__(/*! ../5_syntax/_syntax_input */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_syntax_input.js");
|
|
53415
53565
|
// todo:
|
|
53416
53566
|
// this.exceptions = [];
|
|
53417
53567
|
// also consider RAISING vs EXCEPTIONS
|
|
@@ -53434,6 +53584,7 @@ class MethodParameters {
|
|
|
53434
53584
|
input.scope.push(_scope_type_1.ScopeType.MethodDefinition, "method definition", node.getStart(), input.filename);
|
|
53435
53585
|
try {
|
|
53436
53586
|
this.parse(node, input, parentName, abstractMethod);
|
|
53587
|
+
this.checkNameLengths(input);
|
|
53437
53588
|
this.checkDuplicateNames();
|
|
53438
53589
|
}
|
|
53439
53590
|
finally {
|
|
@@ -53585,6 +53736,13 @@ class MethodParameters {
|
|
|
53585
53736
|
names.add(name);
|
|
53586
53737
|
}
|
|
53587
53738
|
}
|
|
53739
|
+
checkNameLengths(input) {
|
|
53740
|
+
for (const parameter of this.getAll()) {
|
|
53741
|
+
if (parameter.getName().length > 30) {
|
|
53742
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, parameter.getToken(), "Method parameter name longer than 30 characters"));
|
|
53743
|
+
}
|
|
53744
|
+
}
|
|
53745
|
+
}
|
|
53588
53746
|
workaroundRAP(node, input, parentName) {
|
|
53589
53747
|
const resultName = node.findExpressionAfterToken("RESULT");
|
|
53590
53748
|
const concat = node.concatTokens().toUpperCase();
|
|
@@ -62875,6 +63033,7 @@ const _abstract_object_1 = __webpack_require__(/*! ./_abstract_object */ "./node
|
|
|
62875
63033
|
const ddic_1 = __webpack_require__(/*! ../ddic */ "./node_modules/@abaplint/core/build/src/ddic.js");
|
|
62876
63034
|
const Types = __importStar(__webpack_require__(/*! ../abap/types/basic */ "./node_modules/@abaplint/core/build/src/abap/types/basic/index.js"));
|
|
62877
63035
|
const xml_utils_1 = __webpack_require__(/*! ../xml_utils */ "./node_modules/@abaplint/core/build/src/xml_utils.js");
|
|
63036
|
+
const domain_1 = __webpack_require__(/*! ./domain */ "./node_modules/@abaplint/core/build/src/objects/domain.js");
|
|
62878
63037
|
class DataElement extends _abstract_object_1.AbstractObject {
|
|
62879
63038
|
constructor() {
|
|
62880
63039
|
super(...arguments);
|
|
@@ -62905,6 +63064,22 @@ class DataElement extends _abstract_object_1.AbstractObject {
|
|
|
62905
63064
|
this.parse();
|
|
62906
63065
|
return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.domname;
|
|
62907
63066
|
}
|
|
63067
|
+
/** parseType() cannot distinguish DEC, CURR, and QUAN because they all become PackedType.
|
|
63068
|
+
* Return the original DDIC datatype instead, resolving domain-backed data elements when possible. */
|
|
63069
|
+
getDataType(reg) {
|
|
63070
|
+
var _a, _b;
|
|
63071
|
+
this.parse();
|
|
63072
|
+
if ((_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.datatype) {
|
|
63073
|
+
return this.parsedXML.datatype;
|
|
63074
|
+
}
|
|
63075
|
+
if (reg && ((_b = this.parsedXML) === null || _b === void 0 ? void 0 : _b.refkind) === "D" && this.parsedXML.domname) {
|
|
63076
|
+
const domain = reg.getObject("DOMA", this.parsedXML.domname);
|
|
63077
|
+
if (domain instanceof domain_1.Domain) {
|
|
63078
|
+
return domain.getDataType();
|
|
63079
|
+
}
|
|
63080
|
+
}
|
|
63081
|
+
return undefined;
|
|
63082
|
+
}
|
|
62908
63083
|
getTexts() {
|
|
62909
63084
|
var _a;
|
|
62910
63085
|
this.parse();
|
|
@@ -63188,6 +63363,11 @@ class Domain extends _abstract_object_1.AbstractObject {
|
|
|
63188
63363
|
var _a;
|
|
63189
63364
|
return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.conversionExit;
|
|
63190
63365
|
}
|
|
63366
|
+
getDataType() {
|
|
63367
|
+
var _a;
|
|
63368
|
+
this.parse();
|
|
63369
|
+
return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.datatype;
|
|
63370
|
+
}
|
|
63191
63371
|
getAllowedNaming() {
|
|
63192
63372
|
return {
|
|
63193
63373
|
maxLength: 30,
|
|
@@ -70119,7 +70299,7 @@ class Registry {
|
|
|
70119
70299
|
}
|
|
70120
70300
|
static abaplintVersion() {
|
|
70121
70301
|
// magic, see build script "version.js"
|
|
70122
|
-
return "2.120.
|
|
70302
|
+
return "2.120.28";
|
|
70123
70303
|
}
|
|
70124
70304
|
getDDICReferences() {
|
|
70125
70305
|
return this.ddicReferences;
|
|
@@ -72783,6 +72963,315 @@ exports.CDSAssociationName = CDSAssociationName;
|
|
|
72783
72963
|
|
|
72784
72964
|
/***/ },
|
|
72785
72965
|
|
|
72966
|
+
/***/ "./node_modules/@abaplint/core/build/src/rules/cds_check_syntax.js"
|
|
72967
|
+
/*!*************************************************************************!*\
|
|
72968
|
+
!*** ./node_modules/@abaplint/core/build/src/rules/cds_check_syntax.js ***!
|
|
72969
|
+
\*************************************************************************/
|
|
72970
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
72971
|
+
|
|
72972
|
+
"use strict";
|
|
72973
|
+
|
|
72974
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
72975
|
+
exports.CDSCheckSyntax = exports.CDSCheckSyntaxConf = void 0;
|
|
72976
|
+
const nodes_1 = __webpack_require__(/*! ../abap/nodes */ "./node_modules/@abaplint/core/build/src/abap/nodes/index.js");
|
|
72977
|
+
const basic_1 = __webpack_require__(/*! ../abap/types/basic */ "./node_modules/@abaplint/core/build/src/abap/types/basic/index.js");
|
|
72978
|
+
const expressions_1 = __webpack_require__(/*! ../cds/expressions */ "./node_modules/@abaplint/core/build/src/cds/expressions/index.js");
|
|
72979
|
+
const ddic_1 = __webpack_require__(/*! ../ddic */ "./node_modules/@abaplint/core/build/src/ddic.js");
|
|
72980
|
+
const issue_1 = __webpack_require__(/*! ../issue */ "./node_modules/@abaplint/core/build/src/issue.js");
|
|
72981
|
+
const objects_1 = __webpack_require__(/*! ../objects */ "./node_modules/@abaplint/core/build/src/objects/index.js");
|
|
72982
|
+
const _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ "./node_modules/@abaplint/core/build/src/rules/_basic_rule_config.js");
|
|
72983
|
+
const _irule_1 = __webpack_require__(/*! ./_irule */ "./node_modules/@abaplint/core/build/src/rules/_irule.js");
|
|
72984
|
+
class CDSCheckSyntaxConf extends _basic_rule_config_1.BasicRuleConfig {
|
|
72985
|
+
}
|
|
72986
|
+
exports.CDSCheckSyntaxConf = CDSCheckSyntaxConf;
|
|
72987
|
+
const KNOWN_QUAN_DATA_ELEMENTS = ["MENGE_D"];
|
|
72988
|
+
const KNOWN_CURR_DATA_ELEMENTS = ["BWERT", "DZWERT"];
|
|
72989
|
+
class CDSCheckSyntax {
|
|
72990
|
+
constructor() {
|
|
72991
|
+
this.conf = new CDSCheckSyntaxConf();
|
|
72992
|
+
}
|
|
72993
|
+
getMetadata() {
|
|
72994
|
+
return {
|
|
72995
|
+
key: "cds_check_syntax",
|
|
72996
|
+
title: "CDS Check Syntax",
|
|
72997
|
+
shortDescription: "Checks CDS source, field, type, and semantic annotation references",
|
|
72998
|
+
extendedInformation: `Performs semantic checks which require other DDIC objects to be available.
|
|
72999
|
+
|
|
73000
|
+
Missing objects are only reported when their names match the configured errorNamespace.`,
|
|
73001
|
+
tags: [_irule_1.RuleTag.Syntax],
|
|
73002
|
+
};
|
|
73003
|
+
}
|
|
73004
|
+
getConfig() {
|
|
73005
|
+
return this.conf;
|
|
73006
|
+
}
|
|
73007
|
+
setConfig(conf) {
|
|
73008
|
+
this.conf = conf;
|
|
73009
|
+
}
|
|
73010
|
+
initialize(reg) {
|
|
73011
|
+
this.reg = reg;
|
|
73012
|
+
return this;
|
|
73013
|
+
}
|
|
73014
|
+
run(object) {
|
|
73015
|
+
if (!(object instanceof objects_1.DataDefinition)) {
|
|
73016
|
+
return [];
|
|
73017
|
+
}
|
|
73018
|
+
const tree = object.getTree();
|
|
73019
|
+
const file = object.findSourceFile();
|
|
73020
|
+
if (tree === undefined || file === undefined) {
|
|
73021
|
+
return [];
|
|
73022
|
+
}
|
|
73023
|
+
const issues = [];
|
|
73024
|
+
const ddic = new ddic_1.DDIC(this.reg);
|
|
73025
|
+
const sources = this.findSources(tree, ddic, issues, file);
|
|
73026
|
+
this.checkRelations(tree, ddic, issues, file);
|
|
73027
|
+
this.checkTypes(tree, ddic, issues, file);
|
|
73028
|
+
this.checkRootProjection(tree, ddic, issues, file);
|
|
73029
|
+
this.checkFieldAnnotations(tree, ddic, issues, file);
|
|
73030
|
+
this.checkFields(tree, sources, object, issues, file);
|
|
73031
|
+
return issues;
|
|
73032
|
+
}
|
|
73033
|
+
findSources(tree, ddic, issues, file) {
|
|
73034
|
+
var _a;
|
|
73035
|
+
const sources = [];
|
|
73036
|
+
for (const node of tree.findAllExpressionsRecursive(expressions_1.CDSSource)) {
|
|
73037
|
+
const prefixed = node.findDirectExpression(expressions_1.CDSPrefixedName);
|
|
73038
|
+
const entityNode = prefixed === null || prefixed === void 0 ? void 0 : prefixed.findDirectExpression(expressions_1.CDSName);
|
|
73039
|
+
if (entityNode === undefined) {
|
|
73040
|
+
continue;
|
|
73041
|
+
}
|
|
73042
|
+
const entity = this.name(entityNode);
|
|
73043
|
+
const asName = (_a = node.findDirectExpression(expressions_1.CDSAs)) === null || _a === void 0 ? void 0 : _a.findDirectExpression(expressions_1.CDSName);
|
|
73044
|
+
const bareAlias = node.findDirectExpression(expressions_1.CDSName);
|
|
73045
|
+
const alias = asName === undefined ? bareAlias : asName;
|
|
73046
|
+
const lookup = ddic.lookupTableOrView(entity);
|
|
73047
|
+
if (lookup.type instanceof basic_1.UnknownType && lookup.object === undefined && this.reg.inErrorNamespace(entity)) {
|
|
73048
|
+
issues.push(issue_1.Issue.atToken(file, entityNode.getFirstToken(), `CDS source "${entity}" not found`, this.getMetadata().key, this.conf.severity));
|
|
73049
|
+
}
|
|
73050
|
+
if (lookup.type instanceof basic_1.StructureType || lookup.type instanceof basic_1.UnknownType || lookup.type instanceof basic_1.VoidType) {
|
|
73051
|
+
const names = [entity.toUpperCase()];
|
|
73052
|
+
if (alias) {
|
|
73053
|
+
names.push(this.name(alias).toUpperCase());
|
|
73054
|
+
}
|
|
73055
|
+
sources.push({ entity, names, type: lookup.type });
|
|
73056
|
+
}
|
|
73057
|
+
}
|
|
73058
|
+
return sources;
|
|
73059
|
+
}
|
|
73060
|
+
checkRelations(tree, ddic, issues, file) {
|
|
73061
|
+
for (const relation of tree.findAllExpressionsRecursive(expressions_1.CDSRelation)) {
|
|
73062
|
+
const directTokens = relation.getDirectTokens();
|
|
73063
|
+
if (directTokens.length === 0) {
|
|
73064
|
+
continue;
|
|
73065
|
+
}
|
|
73066
|
+
const entity = directTokens.map(t => t.getStr()).join("");
|
|
73067
|
+
const lookup = ddic.lookupTableOrView(entity);
|
|
73068
|
+
if (lookup.type instanceof basic_1.UnknownType && lookup.object === undefined && this.reg.inErrorNamespace(entity)) {
|
|
73069
|
+
issues.push(issue_1.Issue.atToken(file, directTokens[0], `CDS source "${entity}" not found`, this.getMetadata().key, this.conf.severity));
|
|
73070
|
+
}
|
|
73071
|
+
}
|
|
73072
|
+
}
|
|
73073
|
+
checkTypes(tree, ddic, issues, file) {
|
|
73074
|
+
for (const typeNode of tree.findAllExpressionsRecursive(expressions_1.CDSType)) {
|
|
73075
|
+
const typeName = typeNode.findDirectExpressions(expressions_1.CDSName).map(n => this.name(n)).join(".");
|
|
73076
|
+
if (typeName === "" || typeName.toUpperCase().startsWith("ABAP.")) {
|
|
73077
|
+
continue;
|
|
73078
|
+
}
|
|
73079
|
+
const lookup = ddic.lookup(typeName);
|
|
73080
|
+
if (lookup.type instanceof basic_1.UnknownType && lookup.object === undefined && this.reg.inErrorNamespace(typeName)) {
|
|
73081
|
+
issues.push(issue_1.Issue.atToken(file, typeNode.getFirstToken(), `CDS type "${typeName}" not found`, this.getMetadata().key, this.conf.severity));
|
|
73082
|
+
}
|
|
73083
|
+
}
|
|
73084
|
+
}
|
|
73085
|
+
checkRootProjection(tree, ddic, issues, file) {
|
|
73086
|
+
var _a;
|
|
73087
|
+
const projection = tree.findFirstExpression(expressions_1.CDSDefineProjection);
|
|
73088
|
+
const rootToken = projection === null || projection === void 0 ? void 0 : projection.findDirectTokenByText("ROOT");
|
|
73089
|
+
if (projection === undefined || rootToken === undefined) {
|
|
73090
|
+
return;
|
|
73091
|
+
}
|
|
73092
|
+
const names = projection.findDirectExpressions(expressions_1.CDSName);
|
|
73093
|
+
const projectedEntityNode = names[1];
|
|
73094
|
+
if (projectedEntityNode === undefined) {
|
|
73095
|
+
return;
|
|
73096
|
+
}
|
|
73097
|
+
const projectedEntityName = this.name(projectedEntityNode);
|
|
73098
|
+
const projectedEntity = ddic.lookupTableOrView(projectedEntityName).object;
|
|
73099
|
+
if (projectedEntity instanceof objects_1.DataDefinition
|
|
73100
|
+
&& ((_a = projectedEntity.getTree()) === null || _a === void 0 ? void 0 : _a.findDirectTokenByText("ROOT")) === undefined) {
|
|
73101
|
+
const message = `ROOT keyword not valid since ${projectedEntityName} is not a root property`;
|
|
73102
|
+
issues.push(issue_1.Issue.atToken(file, rootToken, message, this.getMetadata().key, this.conf.severity));
|
|
73103
|
+
}
|
|
73104
|
+
}
|
|
73105
|
+
checkFieldAnnotations(tree, ddic, issues, file) {
|
|
73106
|
+
const definition = tree.findFirstExpression(expressions_1.CDSDefineAbstract);
|
|
73107
|
+
if (definition === undefined) {
|
|
73108
|
+
return;
|
|
73109
|
+
}
|
|
73110
|
+
let definitionNameSeen = false;
|
|
73111
|
+
let fieldName;
|
|
73112
|
+
let annotations = [];
|
|
73113
|
+
const fields = [];
|
|
73114
|
+
for (const child of definition.getChildren()) {
|
|
73115
|
+
if (child instanceof nodes_1.TokenNode) {
|
|
73116
|
+
if (child.get().getStr() === ";") {
|
|
73117
|
+
fieldName = undefined;
|
|
73118
|
+
annotations = [];
|
|
73119
|
+
}
|
|
73120
|
+
continue;
|
|
73121
|
+
}
|
|
73122
|
+
else if (child.get() instanceof expressions_1.CDSAnnotation) {
|
|
73123
|
+
annotations.push(child);
|
|
73124
|
+
}
|
|
73125
|
+
else if (child.get() instanceof expressions_1.CDSName) {
|
|
73126
|
+
if (definitionNameSeen === false) {
|
|
73127
|
+
definitionNameSeen = true;
|
|
73128
|
+
annotations = [];
|
|
73129
|
+
}
|
|
73130
|
+
else {
|
|
73131
|
+
fieldName = child;
|
|
73132
|
+
}
|
|
73133
|
+
}
|
|
73134
|
+
else if (child.get() instanceof expressions_1.CDSType && fieldName !== undefined) {
|
|
73135
|
+
const semanticType = this.determineSemanticType(child, ddic);
|
|
73136
|
+
const normalizedAnnotations = annotations.map(a => a.concatTokens().replace(/\s/g, ""));
|
|
73137
|
+
fields.push({ name: this.name(fieldName), node: fieldName, annotations: normalizedAnnotations, semanticType });
|
|
73138
|
+
fieldName = undefined;
|
|
73139
|
+
annotations = [];
|
|
73140
|
+
}
|
|
73141
|
+
}
|
|
73142
|
+
const reportedCompanionFields = new Set();
|
|
73143
|
+
for (const field of fields) {
|
|
73144
|
+
if (field.semanticType === undefined) {
|
|
73145
|
+
continue;
|
|
73146
|
+
}
|
|
73147
|
+
const quantity = field.semanticType === "QUAN";
|
|
73148
|
+
const referenceAnnotation = quantity ? "@Semantics.quantity.unitOfMeasure" : "@Semantics.amount.currencyCode";
|
|
73149
|
+
const companionAnnotation = quantity ? "@Semantics.unitOfMeasure: true" : "@Semantics.currencyCode: true";
|
|
73150
|
+
const reference = this.findSemanticReference(field.annotations, field.semanticType);
|
|
73151
|
+
if (reference === undefined) {
|
|
73152
|
+
const kind = quantity ? "quantity" : "amount";
|
|
73153
|
+
const message = `CDS ${kind} field "${field.name}" requires ${referenceAnnotation}`;
|
|
73154
|
+
issues.push(issue_1.Issue.atToken(file, field.node.getFirstToken(), message, this.getMetadata().key, this.conf.severity));
|
|
73155
|
+
continue;
|
|
73156
|
+
}
|
|
73157
|
+
const companion = fields.find(f => f.name.toUpperCase() === reference.toUpperCase());
|
|
73158
|
+
if (companion === undefined) {
|
|
73159
|
+
const kind = quantity ? "unit" : "currency";
|
|
73160
|
+
const message = `CDS field "${field.name}" references missing ${kind} field "${reference}"`;
|
|
73161
|
+
issues.push(issue_1.Issue.atToken(file, field.node.getFirstToken(), message, this.getMetadata().key, this.conf.severity));
|
|
73162
|
+
continue;
|
|
73163
|
+
}
|
|
73164
|
+
const companionKey = field.semanticType + ":" + companion.name.toUpperCase();
|
|
73165
|
+
if (reportedCompanionFields.has(companionKey) === false
|
|
73166
|
+
&& this.hasCompanionAnnotation(companion.annotations, field.semanticType) === false) {
|
|
73167
|
+
const message = `CDS field "${companion.name}" requires ${companionAnnotation}`;
|
|
73168
|
+
issues.push(issue_1.Issue.atToken(file, companion.node.getFirstToken(), message, this.getMetadata().key, this.conf.severity));
|
|
73169
|
+
reportedCompanionFields.add(companionKey);
|
|
73170
|
+
}
|
|
73171
|
+
}
|
|
73172
|
+
}
|
|
73173
|
+
determineSemanticType(typeNode, ddic) {
|
|
73174
|
+
var _a;
|
|
73175
|
+
const typeName = typeNode.findDirectExpressions(expressions_1.CDSName).map(n => this.name(n)).join(".");
|
|
73176
|
+
const upper = typeName.toUpperCase();
|
|
73177
|
+
if (upper === "ABAP.QUAN" || KNOWN_QUAN_DATA_ELEMENTS.includes(upper)) {
|
|
73178
|
+
return "QUAN";
|
|
73179
|
+
}
|
|
73180
|
+
else if (upper === "ABAP.CURR" || KNOWN_CURR_DATA_ELEMENTS.includes(upper)) {
|
|
73181
|
+
return "CURR";
|
|
73182
|
+
}
|
|
73183
|
+
const object = ddic.lookup(typeName).object;
|
|
73184
|
+
if (object instanceof objects_1.DataElement) {
|
|
73185
|
+
const dataType = (_a = object.getDataType(this.reg)) === null || _a === void 0 ? void 0 : _a.toUpperCase();
|
|
73186
|
+
if (dataType === "QUAN" || dataType === "CURR") {
|
|
73187
|
+
return dataType;
|
|
73188
|
+
}
|
|
73189
|
+
}
|
|
73190
|
+
return undefined;
|
|
73191
|
+
}
|
|
73192
|
+
findSemanticReference(annotations, type) {
|
|
73193
|
+
const expression = type === "QUAN"
|
|
73194
|
+
? /(?:SEMANTICS\.QUANTITY|SEMANTICS:\{QUANTITY:\{)\.?UNITOFMEASURE:'([^']+)'/i
|
|
73195
|
+
: /(?:SEMANTICS\.AMOUNT|SEMANTICS:\{AMOUNT:\{)\.?CURRENCYCODE:'([^']+)'/i;
|
|
73196
|
+
for (const annotation of annotations) {
|
|
73197
|
+
const match = annotation.match(expression);
|
|
73198
|
+
if (match) {
|
|
73199
|
+
return match[1];
|
|
73200
|
+
}
|
|
73201
|
+
}
|
|
73202
|
+
return undefined;
|
|
73203
|
+
}
|
|
73204
|
+
hasCompanionAnnotation(annotations, type) {
|
|
73205
|
+
if (type === "QUAN") {
|
|
73206
|
+
return annotations.some(a => a.toUpperCase().includes("@SEMANTICS.UNITOFMEASURE:TRUE")
|
|
73207
|
+
|| a.toUpperCase().includes("@SEMANTICS:{UNITOFMEASURE:TRUE"));
|
|
73208
|
+
}
|
|
73209
|
+
else {
|
|
73210
|
+
return annotations.some(a => a.toUpperCase().includes("@SEMANTICS.CURRENCYCODE:TRUE")
|
|
73211
|
+
|| a.toUpperCase().includes("@SEMANTICS:{CURRENCYCODE:TRUE"));
|
|
73212
|
+
}
|
|
73213
|
+
}
|
|
73214
|
+
checkFields(tree, sources, object, issues, file) {
|
|
73215
|
+
var _a;
|
|
73216
|
+
const associationNames = new Set();
|
|
73217
|
+
for (const association of ((_a = object.getParsedData()) === null || _a === void 0 ? void 0 : _a.associations) || []) {
|
|
73218
|
+
associationNames.add(association.name.toUpperCase());
|
|
73219
|
+
if (association.as) {
|
|
73220
|
+
associationNames.add(association.as.toUpperCase());
|
|
73221
|
+
}
|
|
73222
|
+
}
|
|
73223
|
+
for (const element of tree.findAllExpressionsRecursive(expressions_1.CDSElement)) {
|
|
73224
|
+
const prefixed = element.findDirectExpression(expressions_1.CDSPrefixedName);
|
|
73225
|
+
if (prefixed === undefined) {
|
|
73226
|
+
continue;
|
|
73227
|
+
}
|
|
73228
|
+
const names = prefixed.findDirectExpressions(expressions_1.CDSName);
|
|
73229
|
+
if (names.length === 0) {
|
|
73230
|
+
continue;
|
|
73231
|
+
}
|
|
73232
|
+
const first = this.name(names[0]);
|
|
73233
|
+
if (first === "*" || first.startsWith("$") || first.startsWith("#") || associationNames.has(first.toUpperCase())) {
|
|
73234
|
+
continue;
|
|
73235
|
+
}
|
|
73236
|
+
if (names.length > 1) {
|
|
73237
|
+
const matchingSources = sources.filter(s => s.names.includes(first.toUpperCase()));
|
|
73238
|
+
if (matchingSources.length !== 1) {
|
|
73239
|
+
continue;
|
|
73240
|
+
}
|
|
73241
|
+
const source = matchingSources[0];
|
|
73242
|
+
const sourceType = source.type;
|
|
73243
|
+
if (!(sourceType instanceof basic_1.StructureType)) {
|
|
73244
|
+
continue;
|
|
73245
|
+
}
|
|
73246
|
+
const field = this.name(names[1]);
|
|
73247
|
+
if (field !== "*" && sourceType.getComponentByName(field) === undefined) {
|
|
73248
|
+
issues.push(issue_1.Issue.atToken(file, names[1].getFirstToken(), `CDS field "${field}" not found in "${source.entity}"`, this.getMetadata().key, this.conf.severity));
|
|
73249
|
+
}
|
|
73250
|
+
continue;
|
|
73251
|
+
}
|
|
73252
|
+
// Do not guess across joins or when a dependency is absent.
|
|
73253
|
+
if (sources.length !== 1) {
|
|
73254
|
+
continue;
|
|
73255
|
+
}
|
|
73256
|
+
const source = sources[0];
|
|
73257
|
+
const sourceType = source.type;
|
|
73258
|
+
if (!(sourceType instanceof basic_1.StructureType)) {
|
|
73259
|
+
continue;
|
|
73260
|
+
}
|
|
73261
|
+
if (sourceType.getComponentByName(first) === undefined) {
|
|
73262
|
+
issues.push(issue_1.Issue.atToken(file, names[0].getFirstToken(), `CDS field "${first}" not found in "${source.entity}"`, this.getMetadata().key, this.conf.severity));
|
|
73263
|
+
}
|
|
73264
|
+
}
|
|
73265
|
+
}
|
|
73266
|
+
name(node) {
|
|
73267
|
+
return node.concatTokens().replace(/ /g, "");
|
|
73268
|
+
}
|
|
73269
|
+
}
|
|
73270
|
+
exports.CDSCheckSyntax = CDSCheckSyntax;
|
|
73271
|
+
//# sourceMappingURL=cds_check_syntax.js.map
|
|
73272
|
+
|
|
73273
|
+
/***/ },
|
|
73274
|
+
|
|
72786
73275
|
/***/ "./node_modules/@abaplint/core/build/src/rules/cds_comment_style.js"
|
|
72787
73276
|
/*!**************************************************************************!*\
|
|
72788
73277
|
!*** ./node_modules/@abaplint/core/build/src/rules/cds_comment_style.js ***!
|
|
@@ -83877,6 +84366,7 @@ __exportStar(__webpack_require__(/*! ./begin_single_include */ "./node_modules/@
|
|
|
83877
84366
|
__exportStar(__webpack_require__(/*! ./call_transaction_authority_check */ "./node_modules/@abaplint/core/build/src/rules/call_transaction_authority_check.js"), exports);
|
|
83878
84367
|
__exportStar(__webpack_require__(/*! ./catch_and_raise */ "./node_modules/@abaplint/core/build/src/rules/catch_and_raise.js"), exports);
|
|
83879
84368
|
__exportStar(__webpack_require__(/*! ./cds_association_name */ "./node_modules/@abaplint/core/build/src/rules/cds_association_name.js"), exports);
|
|
84369
|
+
__exportStar(__webpack_require__(/*! ./cds_check_syntax */ "./node_modules/@abaplint/core/build/src/rules/cds_check_syntax.js"), exports);
|
|
83880
84370
|
__exportStar(__webpack_require__(/*! ./cds_comment_style */ "./node_modules/@abaplint/core/build/src/rules/cds_comment_style.js"), exports);
|
|
83881
84371
|
__exportStar(__webpack_require__(/*! ./cds_field_order */ "./node_modules/@abaplint/core/build/src/rules/cds_field_order.js"), exports);
|
|
83882
84372
|
__exportStar(__webpack_require__(/*! ./cds_legacy_view */ "./node_modules/@abaplint/core/build/src/rules/cds_legacy_view.js"), exports);
|
|
@@ -105776,8 +106266,13 @@ class SQLCondTranspiler {
|
|
|
105776
106266
|
sqlSource(source, traversal, filename, table) {
|
|
105777
106267
|
let ret = "";
|
|
105778
106268
|
const simple = source.findDirectExpression(abaplint.Expressions.SimpleSource3);
|
|
106269
|
+
const hostExpression = source.findDirectExpression(abaplint.Expressions.Source);
|
|
105779
106270
|
const alias = source.findDirectExpression(abaplint.Expressions.SQLAliasField);
|
|
105780
|
-
if (
|
|
106271
|
+
if (source.getFirstToken().getStr() === "@" && hostExpression) {
|
|
106272
|
+
const code = new source_1.SourceTranspiler(true).transpile(hostExpression, traversal).getCode();
|
|
106273
|
+
ret += "'\" + " + code + " + \"'";
|
|
106274
|
+
}
|
|
106275
|
+
else if (simple && simple.findDirectExpression(abaplint.Expressions.Constant) === undefined) {
|
|
105781
106276
|
ret += "'\" + " + new simple_source3_1.SimpleSource3Transpiler(true).transpile(simple, traversal).getCode() + " + \"'";
|
|
105782
106277
|
}
|
|
105783
106278
|
else if (alias) {
|
|
@@ -109873,7 +110368,35 @@ class AuthorityCheckTranspiler {
|
|
|
109873
110368
|
transpile(node, traversal) {
|
|
109874
110369
|
const lookup = traversal.lookupClassOrInterface("KERNEL_AUTHORITY_CHECK", node.getFirstToken());
|
|
109875
110370
|
const options = [];
|
|
109876
|
-
|
|
110371
|
+
const object = node.findExpressionAfterToken("OBJECT");
|
|
110372
|
+
if (object) {
|
|
110373
|
+
options.push("object: " + traversal.traverse(object).getCode());
|
|
110374
|
+
}
|
|
110375
|
+
const user = node.findExpressionAfterToken("USER");
|
|
110376
|
+
if (user) {
|
|
110377
|
+
options.push("user: " + traversal.traverse(user).getCode());
|
|
110378
|
+
}
|
|
110379
|
+
const fields = [];
|
|
110380
|
+
const children = node.getChildren();
|
|
110381
|
+
for (let i = 0; i < children.length; i++) {
|
|
110382
|
+
if (children[i].concatTokens().toUpperCase() !== "ID") {
|
|
110383
|
+
continue;
|
|
110384
|
+
}
|
|
110385
|
+
const id = children[i + 1];
|
|
110386
|
+
const addition = children[i + 2]?.concatTokens().toUpperCase();
|
|
110387
|
+
if (id === undefined) {
|
|
110388
|
+
continue;
|
|
110389
|
+
}
|
|
110390
|
+
const field = ["id: " + traversal.traverse(id).getCode()];
|
|
110391
|
+
if (addition === "FIELD" && children[i + 3] !== undefined) {
|
|
110392
|
+
field.push("field: " + traversal.traverse(children[i + 3]).getCode());
|
|
110393
|
+
}
|
|
110394
|
+
else if (addition === "DUMMY") {
|
|
110395
|
+
field.push("dummy: true");
|
|
110396
|
+
}
|
|
110397
|
+
fields.push("{" + field.join(", ") + "}");
|
|
110398
|
+
}
|
|
110399
|
+
options.push("fields: [" + fields.join(", ") + "]");
|
|
109877
110400
|
const call = `await ${lookup}.call({${options.join(",")}});`;
|
|
109878
110401
|
return new chunk_1.Chunk().append(`if (${lookup} === undefined) throw new Error("AuthorityCheck, kernel class missing");\n${call}`, node, traversal);
|
|
109879
110402
|
}
|
|
@@ -113787,6 +114310,7 @@ __exportStar(__webpack_require__(/*! ./generate_subroutine */ "./node_modules/@a
|
|
|
113787
114310
|
__exportStar(__webpack_require__(/*! ./set_screen */ "./node_modules/@abaplint/transpiler/build/src/statements/set_screen.js"), exports);
|
|
113788
114311
|
__exportStar(__webpack_require__(/*! ./set_titlebar */ "./node_modules/@abaplint/transpiler/build/src/statements/set_titlebar.js"), exports);
|
|
113789
114312
|
__exportStar(__webpack_require__(/*! ./shift */ "./node_modules/@abaplint/transpiler/build/src/statements/shift.js"), exports);
|
|
114313
|
+
__exportStar(__webpack_require__(/*! ./skip */ "./node_modules/@abaplint/transpiler/build/src/statements/skip.js"), exports);
|
|
113790
114314
|
__exportStar(__webpack_require__(/*! ./sort_dataset */ "./node_modules/@abaplint/transpiler/build/src/statements/sort_dataset.js"), exports);
|
|
113791
114315
|
__exportStar(__webpack_require__(/*! ./sort */ "./node_modules/@abaplint/transpiler/build/src/statements/sort.js"), exports);
|
|
113792
114316
|
__exportStar(__webpack_require__(/*! ./split */ "./node_modules/@abaplint/transpiler/build/src/statements/split.js"), exports);
|
|
@@ -116548,7 +117072,10 @@ class SelectTranspiler {
|
|
|
116548
117072
|
else if (node.findFirstExpression(abaplint.Expressions.SQLIntoStructure)) {
|
|
116549
117073
|
target = traversal.traverse(node.findFirstExpression(abaplint.Expressions.SQLIntoStructure)).getCode();
|
|
116550
117074
|
}
|
|
116551
|
-
|
|
117075
|
+
const tokens = node.getTokens();
|
|
117076
|
+
const isDistinct = tokens[0]?.getStr().toUpperCase() === "SELECT"
|
|
117077
|
+
&& tokens[1]?.getStr().toUpperCase() === "DISTINCT";
|
|
117078
|
+
let select = isDistinct ? "SELECT DISTINCT " : "SELECT ";
|
|
116552
117079
|
const fieldList = node.findFirstExpression(abaplint.Expressions.SQLFieldList)
|
|
116553
117080
|
|| node.findFirstExpression(abaplint.Expressions.SQLFieldListLoop);
|
|
116554
117081
|
if (fieldList === undefined) {
|
|
@@ -117207,6 +117734,68 @@ exports.ShiftTranspiler = ShiftTranspiler;
|
|
|
117207
117734
|
|
|
117208
117735
|
/***/ },
|
|
117209
117736
|
|
|
117737
|
+
/***/ "./node_modules/@abaplint/transpiler/build/src/statements/skip.js"
|
|
117738
|
+
/*!************************************************************************!*\
|
|
117739
|
+
!*** ./node_modules/@abaplint/transpiler/build/src/statements/skip.js ***!
|
|
117740
|
+
\************************************************************************/
|
|
117741
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
117742
|
+
|
|
117743
|
+
"use strict";
|
|
117744
|
+
|
|
117745
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
117746
|
+
if (k2 === undefined) k2 = k;
|
|
117747
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
117748
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
117749
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
117750
|
+
}
|
|
117751
|
+
Object.defineProperty(o, k2, desc);
|
|
117752
|
+
}) : (function(o, m, k, k2) {
|
|
117753
|
+
if (k2 === undefined) k2 = k;
|
|
117754
|
+
o[k2] = m[k];
|
|
117755
|
+
}));
|
|
117756
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
117757
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
117758
|
+
}) : function(o, v) {
|
|
117759
|
+
o["default"] = v;
|
|
117760
|
+
});
|
|
117761
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
117762
|
+
var ownKeys = function(o) {
|
|
117763
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
117764
|
+
var ar = [];
|
|
117765
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
117766
|
+
return ar;
|
|
117767
|
+
};
|
|
117768
|
+
return ownKeys(o);
|
|
117769
|
+
};
|
|
117770
|
+
return function (mod) {
|
|
117771
|
+
if (mod && mod.__esModule) return mod;
|
|
117772
|
+
var result = {};
|
|
117773
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
117774
|
+
__setModuleDefault(result, mod);
|
|
117775
|
+
return result;
|
|
117776
|
+
};
|
|
117777
|
+
})();
|
|
117778
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
117779
|
+
exports.SkipTranspiler = void 0;
|
|
117780
|
+
const abaplint = __importStar(__webpack_require__(/*! @abaplint/core */ "./node_modules/@abaplint/core/build/src/index.js"));
|
|
117781
|
+
const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
|
|
117782
|
+
class SkipTranspiler {
|
|
117783
|
+
transpile(node, traversal) {
|
|
117784
|
+
const source = node.findDirectExpression(abaplint.Expressions.Source);
|
|
117785
|
+
if (source === undefined) {
|
|
117786
|
+
return new chunk_1.Chunk().append("abap.statements.skip();", node, traversal);
|
|
117787
|
+
}
|
|
117788
|
+
const option = node.concatTokens().toUpperCase().includes("TO LINE") ? "toLine" : "lines";
|
|
117789
|
+
return new chunk_1.Chunk().append("abap.statements.skip({" + option + ": ", node, traversal)
|
|
117790
|
+
.appendChunk(traversal.traverse(source))
|
|
117791
|
+
.append("});", node.getLastToken(), traversal);
|
|
117792
|
+
}
|
|
117793
|
+
}
|
|
117794
|
+
exports.SkipTranspiler = SkipTranspiler;
|
|
117795
|
+
//# sourceMappingURL=skip.js.map
|
|
117796
|
+
|
|
117797
|
+
/***/ },
|
|
117798
|
+
|
|
117210
117799
|
/***/ "./node_modules/@abaplint/transpiler/build/src/statements/sort.js"
|
|
117211
117800
|
/*!************************************************************************!*\
|
|
117212
117801
|
!*** ./node_modules/@abaplint/transpiler/build/src/statements/sort.js ***!
|
|
@@ -119460,6 +120049,7 @@ const traversal_1 = __webpack_require__(/*! ../traversal */ "./node_modules/@aba
|
|
|
119460
120049
|
const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
|
|
119461
120050
|
const transpile_types_1 = __webpack_require__(/*! ../transpile_types */ "./node_modules/@abaplint/transpiler/build/src/transpile_types.js");
|
|
119462
120051
|
const unique_identifier_1 = __webpack_require__(/*! ../unique_identifier */ "./node_modules/@abaplint/transpiler/build/src/unique_identifier.js");
|
|
120052
|
+
const inline_1 = __webpack_require__(/*! ../inline */ "./node_modules/@abaplint/transpiler/build/src/inline.js");
|
|
119463
120053
|
class FunctionModuleTranspiler {
|
|
119464
120054
|
transpile(node, traversal) {
|
|
119465
120055
|
const chunk = new chunk_1.Chunk();
|
|
@@ -119472,6 +120062,7 @@ class FunctionModuleTranspiler {
|
|
|
119472
120062
|
}
|
|
119473
120063
|
chunk.append(`async function ${traversal_1.Traversal.escapeNamespace(name)}(INPUT) {\n`, c, traversal);
|
|
119474
120064
|
chunk.appendString(this.findSignature(traversal, name, c));
|
|
120065
|
+
chunk.appendString(inline_1.InlineDeclarations.buildDeclarations(node, traversal));
|
|
119475
120066
|
}
|
|
119476
120067
|
else if (c.get() instanceof abaplint.Statements.EndFunction) {
|
|
119477
120068
|
chunk.append("}\n", c, traversal);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/transpiler-cli",
|
|
3
|
-
"version": "2.13.
|
|
3
|
+
"version": "2.13.60",
|
|
4
4
|
"description": "Transpiler - Command Line Interface",
|
|
5
5
|
"funding": "https://github.com/sponsors/larshp",
|
|
6
6
|
"bin": {
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"author": "abaplint",
|
|
28
28
|
"license": "MIT",
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"@abaplint/core": "^2.120.
|
|
31
|
-
"@abaplint/transpiler": "^2.13.
|
|
30
|
+
"@abaplint/core": "^2.120.28",
|
|
31
|
+
"@abaplint/transpiler": "^2.13.60",
|
|
32
32
|
"@types/glob": "^8.1.0",
|
|
33
33
|
"@types/node": "^24.13.3",
|
|
34
34
|
"@types/progress": "^2.0.7",
|
package/schema.json
CHANGED
|
@@ -76,6 +76,14 @@
|
|
|
76
76
|
"output_folder": {
|
|
77
77
|
"type": "string"
|
|
78
78
|
},
|
|
79
|
+
"plugins": {
|
|
80
|
+
"description": "list of npm module names or paths, resolved from the current working directory, each module exports \"plugins\", an array of ITranspilerPlugin instances",
|
|
81
|
+
"items": {
|
|
82
|
+
"type": "string"
|
|
83
|
+
},
|
|
84
|
+
"type": "array",
|
|
85
|
+
"uniqueItems": true
|
|
86
|
+
},
|
|
79
87
|
"write_source_map": {
|
|
80
88
|
"type": "boolean"
|
|
81
89
|
},
|
package/tsconfig.tsbuildinfo
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.dom.asynciterable.d.ts","./node_modules/typescript/lib/lib.webworker.importscripts.d.ts","./node_modules/typescript/lib/lib.scripthost.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2025.float16.d.ts","./node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/typescript/lib/lib.es2022.full.d.ts","./node_modules/vscode-languageserver-types/lib/umd/main.d.ts","./node_modules/@abaplint/core/build/abaplint.d.ts","./node_modules/source-map/source-map.d.ts","./node_modules/@abaplint/transpiler/build/src/chunk.d.ts","./node_modules/@abaplint/transpiler/build/src/unit_test.d.ts","./node_modules/@abaplint/transpiler/build/src/db/database_setup_result.d.ts","./node_modules/@abaplint/transpiler/build/src/types.d.ts","./node_modules/@abaplint/transpiler/build/src/validation.d.ts","./node_modules/@abaplint/transpiler/build/src/index.d.ts","./src/types.ts","./src/config.ts","./node_modules/@types/node/compatibility/iterators.d.ts","./node_modules/@types/node/globals.typedarray.d.ts","./node_modules/@types/node/buffer.buffer.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/web-globals/abortcontroller.d.ts","./node_modules/@types/node/web-globals/crypto.d.ts","./node_modules/@types/node/web-globals/domexception.d.ts","./node_modules/@types/node/web-globals/events.d.ts","./node_modules/undici-types/utility.d.ts","./node_modules/undici-types/header.d.ts","./node_modules/undici-types/readable.d.ts","./node_modules/undici-types/fetch.d.ts","./node_modules/undici-types/formdata.d.ts","./node_modules/undici-types/connector.d.ts","./node_modules/undici-types/client-stats.d.ts","./node_modules/undici-types/client.d.ts","./node_modules/undici-types/errors.d.ts","./node_modules/undici-types/dispatcher.d.ts","./node_modules/undici-types/global-dispatcher.d.ts","./node_modules/undici-types/global-origin.d.ts","./node_modules/undici-types/pool-stats.d.ts","./node_modules/undici-types/pool.d.ts","./node_modules/undici-types/handlers.d.ts","./node_modules/undici-types/balanced-pool.d.ts","./node_modules/undici-types/h2c-client.d.ts","./node_modules/undici-types/agent.d.ts","./node_modules/undici-types/mock-interceptor.d.ts","./node_modules/undici-types/mock-call-history.d.ts","./node_modules/undici-types/mock-agent.d.ts","./node_modules/undici-types/mock-client.d.ts","./node_modules/undici-types/mock-pool.d.ts","./node_modules/undici-types/snapshot-agent.d.ts","./node_modules/undici-types/mock-errors.d.ts","./node_modules/undici-types/proxy-agent.d.ts","./node_modules/undici-types/env-http-proxy-agent.d.ts","./node_modules/undici-types/retry-handler.d.ts","./node_modules/undici-types/retry-agent.d.ts","./node_modules/undici-types/api.d.ts","./node_modules/undici-types/cache-interceptor.d.ts","./node_modules/undici-types/interceptors.d.ts","./node_modules/undici-types/util.d.ts","./node_modules/undici-types/cookies.d.ts","./node_modules/undici-types/patch.d.ts","./node_modules/undici-types/websocket.d.ts","./node_modules/undici-types/eventsource.d.ts","./node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/undici-types/content-type.d.ts","./node_modules/undici-types/cache.d.ts","./node_modules/undici-types/index.d.ts","./node_modules/@types/node/web-globals/fetch.d.ts","./node_modules/@types/node/web-globals/navigator.d.ts","./node_modules/@types/node/web-globals/storage.d.ts","./node_modules/@types/node/web-globals/streams.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/inspector.generated.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/sea.d.ts","./node_modules/@types/node/sqlite.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/@types/minimatch/index.d.ts","./node_modules/@types/glob/index.d.ts","./node_modules/p-limit/index.d.ts","./src/file_operations.ts","./node_modules/@types/progress/index.d.ts","./src/index.ts","../../node_modules/@types/mocha/index.d.ts"],"fileIdsList":[[79,133,150,151],[66,79,133,150,151],[67,68,79,133,150,151],[67,72,73,79,133,150,151],[67,69,70,71,79,133,150,151],[67,79,133,150,151],[67,72,79,133,150,151],[79,133,144,145,150,151,183,184],[79,130,131,133,150,151],[79,132,133,150,151],[133,150,151],[79,133,138,150,151,168],[79,133,134,139,144,150,151,153,165,176],[79,133,134,135,144,150,151,153],[79,133,136,150,151,177],[79,133,137,138,145,150,151,154],[79,133,138,150,151,165,173],[79,133,139,141,144,150,151,153],[79,132,133,140,150,151],[79,133,141,142,150,151],[79,133,143,144,150,151],[79,132,133,144,150,151],[79,133,144,145,146,150,151,165,176],[79,133,144,145,146,150,151,160,165,168],[79,125,133,141,144,147,150,151,153,165,176],[79,133,144,145,147,148,150,151,153,165,173,176],[79,133,147,149,150,151,165,173,176],[77,78,79,80,81,82,83,84,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182],[79,133,144,150,151],[79,133,150,151,152,176],[79,133,141,144,150,151,153,165],[79,133,150,151,154],[79,133,150,151,155],[79,132,133,150,151,156],[79,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182],[79,133,150,151,158],[79,133,150,151,159],[79,133,144,150,151,160,161],[79,133,150,151,160,162,177,179],[79,133,145,150,151],[79,133,144,150,151,165,166,168],[79,133,150,151,167,168],[79,133,150,151,165,166],[79,133,150,151,168],[79,133,150,151,169],[79,130,133,150,151,165,170,176],[79,133,144,150,151,171,172],[79,133,150,151,171,172],[79,133,138,150,151,153,165,173],[79,133,150,151,174],[79,133,150,151,153,175],[79,133,147,150,151,159,176],[79,133,138,150,151,177],[79,133,150,151,165,178],[79,133,150,151,152,179],[79,133,150,151,180],[79,133,138,150,151],[79,125,133,150,151],[79,133,150,151,181],[79,125,133,144,146,150,151,156,165,168,176,178,179,181],[79,133,150,151,165,182],[79,133,150,151,183],[79,91,94,97,98,133,150,151,176],[79,94,133,150,151,165,176],[79,94,98,133,150,151,176],[79,133,150,151,165],[79,88,133,150,151],[79,92,133,150,151],[79,90,91,94,133,150,151,176],[79,133,150,151,153,173],[79,88,133,150,151,183],[79,90,94,133,150,151,153,176],[79,85,86,87,89,93,133,144,150,151,165,176],[79,94,102,110,133,150,151],[79,86,92,133,150,151],[79,94,119,120,133,150,151],[79,86,89,94,133,150,151,168,176,183],[79,94,133,150,151],[79,90,94,133,150,151,176],[79,85,133,150,151],[79,88,89,90,92,93,94,95,96,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,120,121,122,123,124,133,150,151],[79,94,112,115,133,141,150,151],[79,94,102,103,104,133,150,151],[79,92,94,103,105,133,150,151],[79,93,133,150,151],[79,86,88,94,133,150,151],[79,94,98,103,105,133,150,151],[79,98,133,150,151],[79,92,94,97,133,150,151,176],[79,86,90,94,102,133,150,151],[79,94,112,133,150,151],[79,105,133,150,151],[79,88,94,119,133,150,151,168,181,183],[74,75,79,133,145,150,151,155],[74,75,79,133,145,146,150,151,154,155,185,186],[67,74,75,76,79,133,134,145,150,151,154,155,185,187,188],[74,79,133,150,151]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"2a2de5b9459b3fc44decd9ce6100b72f1b002ef523126c1d3d8b2a4a63d74d78","affectsGlobalScope":true,"impliedFormat":1},{"version":"f13f4b465c99041e912db5c44129a94588e1aafee35a50eab51044833f50b4ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"01a30f9e8582b369075c0808df71121e6855cb06fd8d3d39511d9ebb66405205","impliedFormat":1},{"version":"af4f042e8a99eb6f9a48411042e9633486f1eb058d9e1c769c9836cd05464489","impliedFormat":1},{"version":"b4d0053584c73bf5833bbcd9ec96d25600137c3af90bf0e69aff09afb70a741e","impliedFormat":1},{"version":"89dcbbf69b16cd94043e16c7fbcfa04256577ec98bb8ae894833d2a922394db4","impliedFormat":1},{"version":"7c0590bae81bbe21e3878be296210b76afd6c05a098bc287dbe242f38a8a852b","impliedFormat":1},{"version":"83bff103f33fa5b2bb32986e890533f95677057a836b7cf78a8202ad90a45608","impliedFormat":1},{"version":"72003eb7651e998adc17d10707d2ed12e5270c4b23edb513d0614491db91aa10","impliedFormat":1},{"version":"a9eac7528f5d68e0073a0db760c177c0e2e46c322c5a56819cc7fe82713fd156","impliedFormat":1},{"version":"314857f821f9455b2ac936919fd37752b5472ca21bb9433cc640662c81caaa4b","impliedFormat":1},{"version":"d596b83809535dbe4ce7b1c7a668e7ab4e4b8c249d5ddf7d0b1db16f5c1d7a81","impliedFormat":1},{"version":"f20028696c1a38226e42010da3031ddea24b3a418ad56a0bddbbf1a82fe8c609","signature":"3db2a08b4341f2125ba4bb3f793debb7b30932295c36871bcb138dc65115f23a"},{"version":"740d510020f3536ce50c4e341917ad27a3bb4ffeee6509f770efb5675b5896bd","signature":"e08bb6219752efcaf6119c06958e6e83b878bbb3369e1bb4aeac454836735f54"},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"378281aa35786c27d5811af7e6bcaa492eebd0c7013d48137c35bbc69a2b9751","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"1b2dd1cbeb0cc6ae20795958ba5950395ebb2849b7c8326853dd15530c77ab0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"387a023d363f755eb63450a66c28b14cdd7bc30a104565e2dbf0a8988bb4a56c","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"3a80bc85f38526ca3b08007ee80712e7bb0601df178b23fbf0bf87036fce40ce","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"2931540c47ee0ff8a62860e61782eb17b155615db61e36986e54645ec67f67c2","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"f6faf5f74e4c4cc309a6c6a6c4da02dbb840be5d3e92905a23dcd7b2b0bd1986","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"33e981bf6376e939f99bd7f89abec757c64897d33c005036b9a10d9587d80187","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"3bacf516d686d08682751a3bd2519ea3b8041a164bfb4f1d35728993e70a2426","impliedFormat":1},{"version":"7fb266686238369442bd1719bc0d7edd0199da4fb8540354e1ff7f16669b4323","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"c183b931b68ad184bc8e8372bf663f3d33304772fb482f29fb91b3c391031f3e","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"48cc3ec153b50985fb95153258a710782b25975b10dd4ac8a4f3920632d10790","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"e1528ca65ac90f6fa0e4a247eb656b4263c470bb22d9033e466463e13395e599","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"866078923a56d026e39243b4392e282c1c63159723996fa89243140e1388a98d","impliedFormat":1},{"version":"f724236417941ea77ec8d38c6b7021f5fb7f8521c7f8c1538e87661f2c6a0774","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d97fb21da858fb18b8ae72c314e9743fd52f73ebe2764e12af1db32fc03f853f","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ea15fd99b2e34cb25fe8346c955000bb70c8b423ae4377a972ef46bfb37f595","impliedFormat":1},{"version":"7cf69dd5502c41644c9e5106210b5da7144800670cbe861f66726fa209e231c4","impliedFormat":1},{"version":"72c1f5e0a28e473026074817561d1bc9647909cf253c8d56c41d1df8d95b85f7","impliedFormat":1},{"version":"f9b4137a0d285bd77dba2e6e895530112264310ae47e07bf311feae428fb8b61","affectsGlobalScope":true,"impliedFormat":1},{"version":"c06b2652ffeb89afd0f1c52c165ced77032f9cd09bc481153fbd6b5504c69494","impliedFormat":1},{"version":"51aecd2df90a3cffea1eb4696b33b2d78594ea2aa2138e6b9471ec4841c6c2ee","impliedFormat":1},{"version":"9d8f9e63e29a3396285620908e7f14d874d066caea747dc4b2c378f0599166b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"612422d5ba6b4a5c4537f423e9199645468ad80a689801da63ab7edb43f7b835","impliedFormat":1},{"version":"db9ada976f9e52e13f7ae8b9a320f4b67b87685938c5879187d8864b2fbe97f3","impliedFormat":1},{"version":"9f39e70a354d0fba29ac3cdf6eca00b7f9e96f64b2b2780c432e8ea27f133743","impliedFormat":1},{"version":"0dace96cc0f7bc6d0ee2044921bdf19fe42d16284dbcc8ae200800d1c9579335","impliedFormat":1},{"version":"a2e2bbde231b65c53c764c12313897ffdfb6c49183dd31823ee2405f2f7b5378","impliedFormat":1},{"version":"ad1cc0ed328f3f708771272021be61ab146b32ecf2b78f3224959ff1e2cd2a5c","impliedFormat":1},{"version":"c64e1888baaa3253ca4405b455e4bf44f76357868a1bd0a52998ade9a092ad78","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc8c6f5322961b56d9906601b20798725df60baeab45ec014fba9f795d5596fd","impliedFormat":1},{"version":"0904660ae854e6d41f6ff25356db1d654436c6305b0f0aa89d1532df0253486e","impliedFormat":1},{"version":"060d305fe4494d8cb2b99d620928d369d1ee55c1645f5e729a2aca07d0f108cb","impliedFormat":1},{"version":"230bdc111d7578276e4a3bb9d075d85c78c6b68f428c3a9935e2eaa10f4ae1f5","impliedFormat":1},{"version":"0c50296ee73dae94efc3f0da4936b1146ca6ce2217acfabb44c19c9a33fa30e5","impliedFormat":1},{"version":"bbf42f98a5819f4f06e18c8b669a994afe9a17fe520ae3454a195e6eabf7700d","impliedFormat":1},{"version":"0e5974dfff7a97181c7c376545f126b20acf2f1341db7d3fccea4977bf3ce19c","impliedFormat":1},{"version":"c7f977ea78a1b060a30554c1c4ec0e2269c6e305a349ca2ada14931ac27ecc0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"3806cdd6b48ba01a9198134e62a384ec217a98f316d4baef74dd46d62c947a63","impliedFormat":1},{"version":"ff65b8a8bd380c6d129becc35de02f7c29ad7ce03300331ca91311fb4044d1a9","impliedFormat":1},{"version":"04bf1aa481d1adfb16d93d76e44ce71c51c8ef68039d849926551199489637f6","impliedFormat":1},{"version":"2c9adcc85574b002c9a6311ff2141055769e0071856ec979d92ff989042b1f1b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b8bf3fe89ec8baa335f6370b9fa36308e1bc7a72e2eb2dad1e94f31e27fa28b5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a58a15da4c5ba3df60c910a043281256fa52d36a0fcdef9b9100c646282e88dd","impliedFormat":1},{"version":"b36beffbf8acdc3ebc58c8bb4b75574b31a2169869c70fc03f82895b93950a12","impliedFormat":1},{"version":"de263f0089aefbfd73c89562fb7254a7468b1f33b61839aafc3f035d60766cb4","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"8c81fd4a110490c43d7c578e8c6f69b3af01717189196899a6a44f93daa57a3a","impliedFormat":1},{"version":"5fb39858b2459864b139950a09adae4f38dad87c25bf572ce414f10e4bd7baab","impliedFormat":1},{"version":"35390d6fa94bdb432c5d0bcb6547bdd11406c2692a6b90b9e47be2105ea19bd6","impliedFormat":1},{"version":"3910dab597c40e173bf0e0d419d3ce9682c54ebf6ae84849f9b829b1451a17ec","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"486c074a5c0f2254345c0d1c9540380f5463999e42d7e1a159305ea823d3c4b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"c119835edf36415081dfd9ed15fc0cd37aaa28d232be029ad073f15f3d88c323","impliedFormat":1},{"version":"8e7c3bed5f19ade8f911677ddc83052e2283e25b0a8654cd89db9079d4b323c7","impliedFormat":1},{"version":"9705cd157ffbb91c5cab48bdd2de5a437a372e63f870f8a8472e72ff634d47c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ae86f30d5d10e4f75ce8dcb6e1bd3a12ecec3d071a21e8f462c5c85c678efb41","impliedFormat":1},{"version":"ccf3afaeebbeee4ca9092101e99fd6abd681116b6e5ec23e381bbb1e1f32262c","impliedFormat":1},{"version":"e03460fe72b259f6d25ad029f085e4bedc3f90477da4401d8fbc1efa9793230e","impliedFormat":1},{"version":"4286a3a6619514fca656089aee160bb6f2e77f4dd53dc5a96b26a0b4fc778055","impliedFormat":1},{"version":"ab7818a9d57a9297b90e456fc68b77f84d74395a9210a3cfa9d87db33aff8b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb08062718a5470cd864c1fae0eb5b3a3adc5bcd05dcf87608d6f60b65eca3f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"3a815b7d1aebc0646b91548eab2fc19dada09ff255d04c71ced00bbd3058c8eb","impliedFormat":1},{"version":"255d948f87f24ffd57bcb2fdf95792fd418a2e1f712a98cf2cce88744d75085c","impliedFormat":1},{"version":"0d5b085f36e6dc55bc6332ecb9c733be3a534958c238fb8d8d18d4a2b6f2a15a","impliedFormat":1},{"version":"836b36913830645ac3b28fe33731aac3fdb3524ee8adbb4cdab9a5c189f41943","affectsGlobalScope":true,"impliedFormat":1},{"version":"bfd3b3c21a56104693183942e221c1896ee23bcb8f8d91ab0b941f7b32985411","impliedFormat":1},{"version":"d7e9ab1b0996639047c61c1e62f85c620e4382206b3abb430d9a21fb7bc23c77","impliedFormat":1},{"version":"963d59066dd6742da1918a6213a209bcc205b8ee53b1876ee2b4e6d80f97c85e","impliedFormat":1},{"version":"9c5c92b7fb8c38ff1b46df69701f2d1ea8e2d6468e3cd8f73d8af5e6f7864576","impliedFormat":1},{"version":"9f91eee81fda27d38d60963fe1de2f050a5cfb241af56b7e7ee6d9aa8522a058","impliedFormat":1},{"version":"1baaf9e01ea72170d3c74aca2d0d7acbef3eb83f776ba6e0ef0c944b454bd295","signature":"7657ae67f69f3df2efb4fc6bbebd5702f35bdb5662211626856df64bc0be41e5"},{"version":"399fc76aafc3c3e506515b7796f8a9b0ae63a40733f0b452fe949d986f1c01b7","impliedFormat":1},{"version":"4aee29034bd907cfbf0cddc8be9ebd421082a3703b509809170d97f20677a876","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"29f72ec1289ae3aeda78bf14b38086d3d803262ac13904b400422941a26a3636","affectsGlobalScope":true,"impliedFormat":1}],"root":[75,76,187,189],"options":{"alwaysStrict":true,"declaration":true,"esModuleInterop":true,"module":1,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./build","rootDir":"./src","sourceMap":true,"strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":false,"target":9,"useUnknownInCatchVariables":false},"referencedMap":[[190,1],[67,2],[69,3],[71,1],[74,4],[72,5],[70,6],[73,7],[185,8],[184,1],[130,9],[131,9],[132,10],[79,11],[133,12],[134,13],[135,14],[77,1],[136,15],[137,16],[138,17],[139,18],[140,19],[141,20],[142,20],[143,21],[144,22],[145,23],[146,24],[80,1],[78,1],[147,25],[148,26],[149,27],[183,28],[150,29],[151,1],[152,30],[153,31],[154,32],[155,33],[156,34],[157,35],[158,36],[159,37],[160,38],[161,38],[162,39],[163,1],[164,40],[165,41],[167,42],[166,43],[168,44],[169,45],[170,46],[171,47],[172,48],[173,49],[174,50],[175,51],[176,52],[177,53],[178,54],[179,55],[180,56],[81,1],[82,57],[83,1],[84,1],[126,58],[127,59],[128,1],[129,44],[181,60],[182,61],[188,62],[186,1],[68,1],[63,1],[64,1],[12,1],[10,1],[11,1],[16,1],[15,1],[2,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[24,1],[3,1],[25,1],[26,1],[4,1],[27,1],[31,1],[28,1],[29,1],[30,1],[32,1],[33,1],[34,1],[5,1],[35,1],[36,1],[37,1],[38,1],[6,1],[42,1],[39,1],[40,1],[41,1],[43,1],[7,1],[44,1],[49,1],[50,1],[45,1],[46,1],[47,1],[48,1],[8,1],[54,1],[51,1],[52,1],[53,1],[55,1],[9,1],[56,1],[65,1],[57,1],[58,1],[60,1],[59,1],[61,1],[1,1],[62,1],[14,1],[13,1],[102,63],[114,64],[100,65],[115,66],[124,67],[91,68],[92,69],[90,70],[123,62],[118,71],[122,72],[94,73],[111,74],[93,75],[121,76],[88,77],[89,71],[95,78],[96,1],[101,79],[99,78],[86,80],[125,81],[116,82],[105,83],[104,78],[106,84],[109,85],[103,86],[107,87],[119,62],[97,88],[98,89],[110,90],[87,66],[113,91],[112,78],[108,92],[117,1],[85,1],[120,93],[66,1],[76,94],[187,95],[189,96],[75,97]],"version":"6.0.3"}
|