@abaplint/cli 2.83.3 → 2.83.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cli.js +183 -18
- package/package.json +3 -3
package/build/cli.js
CHANGED
|
@@ -9036,7 +9036,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
9036
9036
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9037
9037
|
|
|
9038
9038
|
"use strict";
|
|
9039
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.MethodParameters = void 0;\r\nconst method_def_1 = __webpack_require__(/*! ../2_statements/statements/method_def */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/statements/method_def.js\");\r\nconst Expressions = __webpack_require__(/*! ../2_statements/expressions */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js\");\r\nconst nodes_1 = __webpack_require__(/*! ../nodes */ \"./node_modules/@abaplint/core/build/src/abap/nodes/index.js\");\r\nconst _typed_identifier_1 = __webpack_require__(/*! ./_typed_identifier */ \"./node_modules/@abaplint/core/build/src/abap/types/_typed_identifier.js\");\r\nconst basic_1 = __webpack_require__(/*! ./basic */ \"./node_modules/@abaplint/core/build/src/abap/types/basic/index.js\");\r\nconst method_def_returning_1 = __webpack_require__(/*! ../5_syntax/expressions/method_def_returning */ \"./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/method_def_returning.js\");\r\nconst method_param_1 = __webpack_require__(/*! ../5_syntax/expressions/method_param */ \"./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/method_param.js\");\r\nconst _object_oriented_1 = __webpack_require__(/*! ../5_syntax/_object_oriented */ \"./node_modules/@abaplint/core/build/src/abap/5_syntax/_object_oriented.js\");\r\nconst _reference_1 = __webpack_require__(/*! ../5_syntax/_reference */ \"./node_modules/@abaplint/core/build/src/abap/5_syntax/_reference.js\");\r\n// todo:\r\n// this.exceptions = [];\r\n// also consider RAISING vs EXCEPTIONS\r\nclass MethodParameters {\r\n constructor(node, filename, scope) {\r\n if (!(node.get() instanceof method_def_1.MethodDef)) {\r\n throw new Error(\"MethodDefinition, expected MethodDef as part of input node\");\r\n }\r\n this.importing = [];\r\n this.exporting = [];\r\n this.changing = [];\r\n this.optional = [];\r\n this.defaults = {};\r\n this.returning = undefined;\r\n this.preferred = undefined;\r\n this.exceptions = [];\r\n this.filename = filename;\r\n this.parse(node, scope, filename);\r\n }\r\n getFilename() {\r\n return this.filename;\r\n }\r\n getOptional() {\r\n return this.optional;\r\n }\r\n getAll() {\r\n const ret = [];\r\n const returning = this.getReturning();\r\n if (returning) {\r\n ret.push(returning);\r\n }\r\n ret.push(...this.getImporting());\r\n ret.push(...this.getExporting());\r\n ret.push(...this.getChanging());\r\n return ret;\r\n }\r\n getDefaultImporting() {\r\n if (this.importing.length === 0) {\r\n return undefined;\r\n }\r\n else if (this.importing.length === 1) {\r\n return this.importing[0].getName().toUpperCase();\r\n }\r\n else if (this.preferred) {\r\n return this.preferred;\r\n }\r\n let candidates = this.importing.map(i => i.getName().toUpperCase());\r\n candidates = candidates.filter(c => this.optional.indexOf(c) < 0);\r\n if (candidates.length === 1) {\r\n return candidates[0];\r\n }\r\n return undefined;\r\n }\r\n getImporting() {\r\n return this.importing;\r\n }\r\n getRequiredParameters() {\r\n const ret = [];\r\n for (const i of this.getImporting()) {\r\n if (this.getOptional().some(o => o.toUpperCase() === i.getName().toUpperCase()) === true) {\r\n continue;\r\n }\r\n ret.push(i);\r\n }\r\n for (const i of this.getChanging()) {\r\n if (this.getOptional().some(o => o.toUpperCase() === i.getName().toUpperCase()) === true) {\r\n continue;\r\n }\r\n ret.push(i);\r\n }\r\n return ret;\r\n }\r\n getExporting() {\r\n return this.exporting;\r\n }\r\n getChanging() {\r\n return this.changing;\r\n }\r\n getReturning() {\r\n return this.returning;\r\n }\r\n getExceptions() {\r\n return this.exceptions;\r\n }\r\n getParameterDefault(parameter) {\r\n return this.defaults[parameter.toUpperCase()];\r\n }\r\n ///////////////////\r\n parse(node, scope, filename) {\r\n var _a, _b;\r\n const handler = node.findFirstExpression(Expressions.EventHandler);\r\n if (handler) {\r\n const nameToken = (_a = node.findFirstExpression(Expressions.ClassName)) === null || _a === void 0 ? void 0 : _a.getFirstToken();\r\n const ooName = nameToken === null || nameToken === void 0 ? void 0 : nameToken.getStr();\r\n const def = scope.findObjectDefinition(ooName);\r\n if (def) {\r\n scope.addReference(nameToken, def, _reference_1.ReferenceType.ObjectOrientedReference, filename);\r\n }\r\n const doVoid = def ? false : !scope.getDDIC().inErrorNamespace(ooName);\r\n const eventName = (_b = node.findFirstExpression(Expressions.Field)) === null || _b === void 0 ? void 0 : _b.getFirstToken().getStr();\r\n const event = new _object_oriented_1.ObjectOriented(scope).searchEvent(def, eventName);\r\n for (const p of handler.findAllExpressions(Expressions.MethodParamName)) {\r\n const token = p.getFirstToken();\r\n const search = token.getStr().toUpperCase().replace(\"!\", \"\");\r\n this.optional.push(search); // all parameters optional for event handlers\r\n if (search === \"SENDER\" && def) {\r\n this.importing.push(new _typed_identifier_1.TypedIdentifier(token, this.filename, new basic_1.ObjectReferenceType(def), [\"event_parameter\" /* EventParameter */]));\r\n continue;\r\n }\r\n const found = event === null || event === void 0 ? void 0 : event.getParameters().find(p => p.getName().toUpperCase() === search);\r\n if (found) {\r\n this.importing.push(new _typed_identifier_1.TypedIdentifier(token, this.filename, found.getType(), [\"event_parameter\" /* EventParameter */]));\r\n }\r\n else if (doVoid) {\r\n this.importing.push(new _typed_identifier_1.TypedIdentifier(token, this.filename, new basic_1.VoidType(ooName), [\"event_parameter\" /* EventParameter */]));\r\n }\r\n else {\r\n const type = new basic_1.UnknownType(`handler parameter not found \"${search}\"`);\r\n this.importing.push(new _typed_identifier_1.TypedIdentifier(token, this.filename, type, [\"event_parameter\" /* EventParameter */]));\r\n }\r\n }\r\n return;\r\n }\r\n const importing = node.findFirstExpression(Expressions.MethodDefImporting);\r\n if (importing) {\r\n this.add(this.importing, importing, scope, [\"importing\" /* MethodImporting */]);\r\n if (importing.concatTokens().toUpperCase().includes(\" PREFERRED PARAMETER\")) {\r\n this.preferred = importing.getLastToken().getStr().toUpperCase();\r\n }\r\n }\r\n const exporting = node.findFirstExpression(Expressions.MethodDefExporting);\r\n if (exporting) {\r\n this.add(this.exporting, exporting, scope, [\"exporting\" /* MethodExporting */]);\r\n }\r\n const changing = node.findFirstExpression(Expressions.MethodDefChanging);\r\n if (changing) {\r\n this.add(this.changing, changing, scope, [\"changing\" /* MethodChanging */]);\r\n }\r\n const returning = node.findFirstExpression(Expressions.MethodDefReturning);\r\n if (returning) {\r\n this.returning = new method_def_returning_1.MethodDefReturning().runSyntax(returning, scope, this.filename, [\"returning\" /* MethodReturning */]);\r\n }\r\n }\r\n add(target, source, scope, meta) {\r\n var _a;\r\n for (const opt of source.findAllExpressions(Expressions.MethodParamOptional)) {\r\n const p = opt.findDirectExpression(Expressions.MethodParam);\r\n if (p === undefined) {\r\n continue;\r\n }\r\n target.push(new method_param_1.MethodParam().runSyntax(p, scope, this.filename, meta));\r\n if (opt.getLastToken().getStr().toUpperCase() === \"OPTIONAL\") {\r\n const name = target[target.length - 1].getName().toUpperCase();\r\n this.optional.push(name);\r\n }\r\n else if (opt.findFirstExpression(Expressions.Default)) {\r\n const name = target[target.length - 1].getName().toUpperCase();\r\n this.optional.push(name);\r\n const val = (_a = opt.findFirstExpression(Expressions.Default)) === null || _a === void 0 ? void 0 : _a.getLastChild();\r\n if (val && val instanceof nodes_1.ExpressionNode) {\r\n this.defaults[name] = val;\r\n }\r\n }\r\n }\r\n if (target.length > 0) {\r\n return;\r\n }\r\n const params = source.findAllExpressions(Expressions.MethodParam);\r\n for (const param of params) {\r\n target.push(new method_param_1.MethodParam().runSyntax(param, scope, this.filename, meta));\r\n }\r\n }\r\n}\r\nexports.MethodParameters = MethodParameters;\r\n//# sourceMappingURL=method_parameters.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/abap/types/method_parameters.js?");
|
|
9039
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.MethodParameters = void 0;\r\nconst method_def_1 = __webpack_require__(/*! ../2_statements/statements/method_def */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/statements/method_def.js\");\r\nconst Expressions = __webpack_require__(/*! ../2_statements/expressions */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js\");\r\nconst nodes_1 = __webpack_require__(/*! ../nodes */ \"./node_modules/@abaplint/core/build/src/abap/nodes/index.js\");\r\nconst _typed_identifier_1 = __webpack_require__(/*! ./_typed_identifier */ \"./node_modules/@abaplint/core/build/src/abap/types/_typed_identifier.js\");\r\nconst basic_1 = __webpack_require__(/*! ./basic */ \"./node_modules/@abaplint/core/build/src/abap/types/basic/index.js\");\r\nconst method_def_returning_1 = __webpack_require__(/*! ../5_syntax/expressions/method_def_returning */ \"./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/method_def_returning.js\");\r\nconst method_param_1 = __webpack_require__(/*! ../5_syntax/expressions/method_param */ \"./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/method_param.js\");\r\nconst _object_oriented_1 = __webpack_require__(/*! ../5_syntax/_object_oriented */ \"./node_modules/@abaplint/core/build/src/abap/5_syntax/_object_oriented.js\");\r\nconst _reference_1 = __webpack_require__(/*! ../5_syntax/_reference */ \"./node_modules/@abaplint/core/build/src/abap/5_syntax/_reference.js\");\r\n// todo:\r\n// this.exceptions = [];\r\n// also consider RAISING vs EXCEPTIONS\r\nclass MethodParameters {\r\n constructor(node, filename, scope) {\r\n if (!(node.get() instanceof method_def_1.MethodDef)) {\r\n throw new Error(\"MethodDefinition, expected MethodDef as part of input node\");\r\n }\r\n this.importing = [];\r\n this.exporting = [];\r\n this.changing = [];\r\n this.optional = [];\r\n this.defaults = {};\r\n this.returning = undefined;\r\n this.preferred = undefined;\r\n this.exceptions = [];\r\n this.filename = filename;\r\n this.parse(node, scope, filename);\r\n }\r\n getFilename() {\r\n return this.filename;\r\n }\r\n getOptional() {\r\n return this.optional;\r\n }\r\n getAll() {\r\n const ret = [];\r\n const returning = this.getReturning();\r\n if (returning) {\r\n ret.push(returning);\r\n }\r\n ret.push(...this.getImporting());\r\n ret.push(...this.getExporting());\r\n ret.push(...this.getChanging());\r\n return ret;\r\n }\r\n getDefaultImporting() {\r\n if (this.importing.length === 0) {\r\n return undefined;\r\n }\r\n else if (this.importing.length === 1) {\r\n return this.importing[0].getName().toUpperCase();\r\n }\r\n else if (this.preferred) {\r\n return this.preferred;\r\n }\r\n let candidates = this.importing.map(i => i.getName().toUpperCase());\r\n candidates = candidates.filter(c => this.optional.indexOf(c) < 0);\r\n if (candidates.length === 1) {\r\n return candidates[0];\r\n }\r\n return undefined;\r\n }\r\n getImporting() {\r\n return this.importing;\r\n }\r\n getRequiredParameters() {\r\n const ret = [];\r\n for (const i of this.getImporting()) {\r\n if (this.getOptional().some(o => o.toUpperCase() === i.getName().toUpperCase()) === true) {\r\n continue;\r\n }\r\n ret.push(i);\r\n }\r\n for (const i of this.getChanging()) {\r\n if (this.getOptional().some(o => o.toUpperCase() === i.getName().toUpperCase()) === true) {\r\n continue;\r\n }\r\n ret.push(i);\r\n }\r\n return ret;\r\n }\r\n getExporting() {\r\n return this.exporting;\r\n }\r\n getChanging() {\r\n return this.changing;\r\n }\r\n getReturning() {\r\n return this.returning;\r\n }\r\n getExceptions() {\r\n return this.exceptions;\r\n }\r\n getParameterDefault(parameter) {\r\n return this.defaults[parameter.toUpperCase()];\r\n }\r\n ///////////////////\r\n parse(node, scope, filename) {\r\n var _a, _b;\r\n const handler = node.findFirstExpression(Expressions.EventHandler);\r\n if (handler) {\r\n const nameToken = (_a = node.findFirstExpression(Expressions.ClassName)) === null || _a === void 0 ? void 0 : _a.getFirstToken();\r\n const ooName = nameToken === null || nameToken === void 0 ? void 0 : nameToken.getStr();\r\n const def = scope.findObjectDefinition(ooName);\r\n const doVoid = def ? false : !scope.getDDIC().inErrorNamespace(ooName);\r\n if (def) {\r\n scope.addReference(nameToken, def, _reference_1.ReferenceType.ObjectOrientedReference, filename);\r\n }\r\n else if (doVoid && ooName) {\r\n scope.addReference(nameToken, undefined, _reference_1.ReferenceType.ObjectOrientedVoidReference, this.filename, { ooName: ooName.toUpperCase() });\r\n }\r\n const eventName = (_b = node.findFirstExpression(Expressions.Field)) === null || _b === void 0 ? void 0 : _b.getFirstToken().getStr();\r\n const event = new _object_oriented_1.ObjectOriented(scope).searchEvent(def, eventName);\r\n for (const p of handler.findAllExpressions(Expressions.MethodParamName)) {\r\n const token = p.getFirstToken();\r\n const search = token.getStr().toUpperCase().replace(\"!\", \"\");\r\n this.optional.push(search); // all parameters optional for event handlers\r\n if (search === \"SENDER\" && def) {\r\n this.importing.push(new _typed_identifier_1.TypedIdentifier(token, this.filename, new basic_1.ObjectReferenceType(def), [\"event_parameter\" /* EventParameter */]));\r\n continue;\r\n }\r\n const found = event === null || event === void 0 ? void 0 : event.getParameters().find(p => p.getName().toUpperCase() === search);\r\n if (found) {\r\n this.importing.push(new _typed_identifier_1.TypedIdentifier(token, this.filename, found.getType(), [\"event_parameter\" /* EventParameter */]));\r\n }\r\n else if (doVoid) {\r\n this.importing.push(new _typed_identifier_1.TypedIdentifier(token, this.filename, new basic_1.VoidType(ooName), [\"event_parameter\" /* EventParameter */]));\r\n }\r\n else {\r\n const type = new basic_1.UnknownType(`handler parameter not found \"${search}\"`);\r\n this.importing.push(new _typed_identifier_1.TypedIdentifier(token, this.filename, type, [\"event_parameter\" /* EventParameter */]));\r\n }\r\n }\r\n return;\r\n }\r\n const importing = node.findFirstExpression(Expressions.MethodDefImporting);\r\n if (importing) {\r\n this.add(this.importing, importing, scope, [\"importing\" /* MethodImporting */]);\r\n if (importing.concatTokens().toUpperCase().includes(\" PREFERRED PARAMETER\")) {\r\n this.preferred = importing.getLastToken().getStr().toUpperCase();\r\n }\r\n }\r\n const exporting = node.findFirstExpression(Expressions.MethodDefExporting);\r\n if (exporting) {\r\n this.add(this.exporting, exporting, scope, [\"exporting\" /* MethodExporting */]);\r\n }\r\n const changing = node.findFirstExpression(Expressions.MethodDefChanging);\r\n if (changing) {\r\n this.add(this.changing, changing, scope, [\"changing\" /* MethodChanging */]);\r\n }\r\n const returning = node.findFirstExpression(Expressions.MethodDefReturning);\r\n if (returning) {\r\n this.returning = new method_def_returning_1.MethodDefReturning().runSyntax(returning, scope, this.filename, [\"returning\" /* MethodReturning */]);\r\n }\r\n }\r\n add(target, source, scope, meta) {\r\n var _a;\r\n for (const opt of source.findAllExpressions(Expressions.MethodParamOptional)) {\r\n const p = opt.findDirectExpression(Expressions.MethodParam);\r\n if (p === undefined) {\r\n continue;\r\n }\r\n target.push(new method_param_1.MethodParam().runSyntax(p, scope, this.filename, meta));\r\n if (opt.getLastToken().getStr().toUpperCase() === \"OPTIONAL\") {\r\n const name = target[target.length - 1].getName().toUpperCase();\r\n this.optional.push(name);\r\n }\r\n else if (opt.findFirstExpression(Expressions.Default)) {\r\n const name = target[target.length - 1].getName().toUpperCase();\r\n this.optional.push(name);\r\n const val = (_a = opt.findFirstExpression(Expressions.Default)) === null || _a === void 0 ? void 0 : _a.getLastChild();\r\n if (val && val instanceof nodes_1.ExpressionNode) {\r\n this.defaults[name] = val;\r\n }\r\n }\r\n }\r\n if (target.length > 0) {\r\n return;\r\n }\r\n const params = source.findAllExpressions(Expressions.MethodParam);\r\n for (const param of params) {\r\n target.push(new method_param_1.MethodParam().runSyntax(param, scope, this.filename, meta));\r\n }\r\n }\r\n}\r\nexports.MethodParameters = MethodParameters;\r\n//# sourceMappingURL=method_parameters.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/abap/types/method_parameters.js?");
|
|
9040
9040
|
|
|
9041
9041
|
/***/ }),
|
|
9042
9042
|
|
|
@@ -9080,7 +9080,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
9080
9080
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9081
9081
|
|
|
9082
9082
|
"use strict";
|
|
9083
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSLexer = void 0;\r\nconst tokens_1 = __webpack_require__(/*! ../abap/1_lexer/tokens */ \"./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/index.js\");\r\nconst position_1 = __webpack_require__(/*! ../position */ \"./node_modules/@abaplint/core/build/src/position.js\");\r\n// todo: Keywords must be all uppercase, all lowercase, or in lowercase with an\r\n// uppercase initial letter. Other mixes of uppercase and lowercase are not allowed\r\nclass Stream {\r\n constructor(buffer) {\r\n this.buffer = buffer;\r\n }\r\n takeNext() {\r\n const next = this.buffer.substring(0, 1);\r\n this.buffer = this.buffer.substring(1);\r\n return next;\r\n }\r\n peekNext() {\r\n const next = this.buffer.substring(0, 1);\r\n return next;\r\n }\r\n length() {\r\n return this.buffer.length;\r\n }\r\n}\r\nclass Result {\r\n constructor() {\r\n this.result = [];\r\n }\r\n add(text, row, col) {\r\n if (text.length > 0) {\r\n this.result.push(new tokens_1.Identifier(new position_1.Position(row, col), text));\r\n }\r\n return \"\";\r\n }\r\n get() {\r\n return this.result;\r\n }\r\n}\r\nvar Mode;\r\n(function (Mode) {\r\n Mode[Mode[\"Default\"] = 0] = \"Default\";\r\n Mode[Mode[\"String\"] = 1] = \"String\";\r\n Mode[Mode[\"SingleLineComment\"] = 2] = \"SingleLineComment\";\r\n Mode[Mode[\"MultiLineComment\"] = 3] = \"MultiLineComment\";\r\n})(Mode || (Mode = {}));\r\nclass CDSLexer {\r\n static run(file) {\r\n const result = new Result();\r\n let mode = Mode.Default;\r\n let row = 1;\r\n let col = 1;\r\n let build = \"\";\r\n const stream = new Stream(file.getRaw());\r\n while (stream.length() > 0) {\r\n const next = stream.takeNext();\r\n const nextNext = stream.peekNext();\r\n col++;\r\n if (mode === Mode.String) {\r\n build += next;\r\n if (next === \"'\") {\r\n build = result.add(build, row, col);\r\n mode = Mode.Default;\r\n }\r\n continue;\r\n }\r\n if (mode === Mode.SingleLineComment) {\r\n if (next === \"\\n\") {\r\n mode = Mode.Default;\r\n }\r\n continue;\r\n }\r\n else if (mode === Mode.Default && next === \"/\" && nextNext === \"/\") {\r\n mode = Mode.SingleLineComment;\r\n build = result.add(build, row, col);\r\n continue;\r\n }\r\n switch (next) {\r\n case \"'\":\r\n mode = Mode.String;\r\n build += next;\r\n break;\r\n case \" \":\r\n build = result.add(build, row, col);\r\n break;\r\n case \"\\n\":\r\n build = result.add(build, row, col);\r\n row++;\r\n col = 0;\r\n break;\r\n case \";\":\r\n case \":\":\r\n case \",\":\r\n case \".\":\r\n case \"{\":\r\n case \"}\":\r\n case \"(\":\r\n case \")\":\r\n case \"[\":\r\n case \"]\":\r\n build = result.add(build, row, col);\r\n result.add(next, row, col);\r\n break;\r\n default:\r\n build += next;\r\n break;\r\n }\r\n }\r\n result.add(build, row, col);\r\n return result.get();\r\n }\r\n}\r\nexports.CDSLexer = CDSLexer;\r\n//# sourceMappingURL=cds_lexer.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/cds_lexer.js?");
|
|
9083
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSLexer = void 0;\r\nconst tokens_1 = __webpack_require__(/*! ../abap/1_lexer/tokens */ \"./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/index.js\");\r\nconst position_1 = __webpack_require__(/*! ../position */ \"./node_modules/@abaplint/core/build/src/position.js\");\r\n// todo: Keywords must be all uppercase, all lowercase, or in lowercase with an\r\n// uppercase initial letter. Other mixes of uppercase and lowercase are not allowed\r\nclass Stream {\r\n constructor(buffer) {\r\n this.buffer = buffer;\r\n }\r\n takeNext() {\r\n const next = this.buffer.substring(0, 1);\r\n this.buffer = this.buffer.substring(1);\r\n return next;\r\n }\r\n peekNext() {\r\n const next = this.buffer.substring(0, 1);\r\n return next;\r\n }\r\n length() {\r\n return this.buffer.length;\r\n }\r\n}\r\nclass Result {\r\n constructor() {\r\n this.result = [];\r\n }\r\n add(text, row, col) {\r\n if (text.length > 0) {\r\n this.result.push(new tokens_1.Identifier(new position_1.Position(row, col), text));\r\n }\r\n return \"\";\r\n }\r\n get() {\r\n return this.result;\r\n }\r\n}\r\nvar Mode;\r\n(function (Mode) {\r\n Mode[Mode[\"Default\"] = 0] = \"Default\";\r\n Mode[Mode[\"String\"] = 1] = \"String\";\r\n Mode[Mode[\"SingleLineComment\"] = 2] = \"SingleLineComment\";\r\n Mode[Mode[\"MultiLineComment\"] = 3] = \"MultiLineComment\";\r\n})(Mode || (Mode = {}));\r\nclass CDSLexer {\r\n static run(file) {\r\n const result = new Result();\r\n let mode = Mode.Default;\r\n let row = 1;\r\n let col = 1;\r\n let build = \"\";\r\n const stream = new Stream(file.getRaw().replace(/\\r/g, \"\").replace(/\\u00a0/g, \" \"));\r\n let next = \"\";\r\n while (stream.length() > 0) {\r\n const prev = next;\r\n next = stream.takeNext();\r\n const nextNext = stream.peekNext();\r\n col++;\r\n // string handling\r\n if (mode === Mode.String) {\r\n build += next;\r\n if (next === \"'\") {\r\n build = result.add(build, row, col);\r\n mode = Mode.Default;\r\n }\r\n continue;\r\n }\r\n // single line comment handling\r\n if (mode === Mode.SingleLineComment) {\r\n if (next === \"\\n\") {\r\n mode = Mode.Default;\r\n }\r\n continue;\r\n }\r\n else if (mode === Mode.Default && next === \"/\" && nextNext === \"/\") {\r\n mode = Mode.SingleLineComment;\r\n build = result.add(build, row, col);\r\n continue;\r\n }\r\n // multi line comment handling\r\n if (mode === Mode.MultiLineComment) {\r\n if (prev === \"*\" && next === \"/\") {\r\n mode = Mode.Default;\r\n }\r\n continue;\r\n }\r\n else if (mode === Mode.Default && next === \"/\" && nextNext === \"*\") {\r\n mode = Mode.MultiLineComment;\r\n build = result.add(build, row, col);\r\n continue;\r\n }\r\n switch (next) {\r\n case \"'\":\r\n mode = Mode.String;\r\n build += next;\r\n break;\r\n case \" \":\r\n build = result.add(build, row, col);\r\n break;\r\n case \"\\n\":\r\n build = result.add(build, row, col);\r\n row++;\r\n col = 0;\r\n break;\r\n case \";\":\r\n case \":\":\r\n case \",\":\r\n case \".\":\r\n case \"{\":\r\n case \"}\":\r\n case \"(\":\r\n case \")\":\r\n case \"[\":\r\n case \"]\":\r\n case \"+\":\r\n case \"-\":\r\n case \"*\":\r\n case \"/\":\r\n build = result.add(build, row, col);\r\n result.add(next, row, col);\r\n break;\r\n default:\r\n build += next;\r\n break;\r\n }\r\n }\r\n result.add(build, row, col);\r\n return result.get();\r\n }\r\n}\r\nexports.CDSLexer = CDSLexer;\r\n//# sourceMappingURL=cds_lexer.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/cds_lexer.js?");
|
|
9084
9084
|
|
|
9085
9085
|
/***/ }),
|
|
9086
9086
|
|
|
@@ -9091,7 +9091,18 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
9091
9091
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9092
9092
|
|
|
9093
9093
|
"use strict";
|
|
9094
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSParser = void 0;\r\nconst combi_1 = __webpack_require__(/*! ../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nconst nodes_1 = __webpack_require__(/*! ../abap/nodes */ \"./node_modules/@abaplint/core/build/src/abap/nodes/index.js\");\r\nconst version_1 = __webpack_require__(/*! ../version */ \"./node_modules/@abaplint/core/build/src/version.js\");\r\nconst cds_lexer_1 = __webpack_require__(/*! ./cds_lexer */ \"./node_modules/@abaplint/core/build/src/cds/cds_lexer.js\");\r\nconst Expressions = __webpack_require__(/*! ./expressions */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\n// todo: the names of the ABAP + CDS + DDL expressions might overlap, if overlapping the singleton will fail\r\nclass CDSParser {\r\n parse(file) {\r\n if (file === undefined) {\r\n return undefined;\r\n }\r\n const tokens = cds_lexer_1.CDSLexer.run(file);\r\n // console.dir(tokens);\r\n
|
|
9094
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSParser = void 0;\r\nconst combi_1 = __webpack_require__(/*! ../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nconst nodes_1 = __webpack_require__(/*! ../abap/nodes */ \"./node_modules/@abaplint/core/build/src/abap/nodes/index.js\");\r\nconst version_1 = __webpack_require__(/*! ../version */ \"./node_modules/@abaplint/core/build/src/version.js\");\r\nconst cds_lexer_1 = __webpack_require__(/*! ./cds_lexer */ \"./node_modules/@abaplint/core/build/src/cds/cds_lexer.js\");\r\nconst Expressions = __webpack_require__(/*! ./expressions */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\n// todo: the names of the ABAP + CDS + DDL expressions might overlap, if overlapping the singleton will fail\r\nclass CDSParser {\r\n parse(file) {\r\n if (file === undefined) {\r\n return undefined;\r\n }\r\n const tokens = cds_lexer_1.CDSLexer.run(file);\r\n // console.dir(tokens);\r\n let res = combi_1.Combi.run(new Expressions.CDSDefineView(), tokens, version_1.defaultVersion);\r\n if (res === undefined || !(res[0] instanceof nodes_1.ExpressionNode)) {\r\n res = combi_1.Combi.run(new Expressions.CDSDefineAbstract(), tokens, version_1.defaultVersion);\r\n }\r\n if (res === undefined || !(res[0] instanceof nodes_1.ExpressionNode)) {\r\n return undefined;\r\n }\r\n return res[0];\r\n }\r\n}\r\nexports.CDSParser = CDSParser;\r\n//# sourceMappingURL=cds_parser.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/cds_parser.js?");
|
|
9095
|
+
|
|
9096
|
+
/***/ }),
|
|
9097
|
+
|
|
9098
|
+
/***/ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_aggregate.js":
|
|
9099
|
+
/*!********************************************************************************!*\
|
|
9100
|
+
!*** ./node_modules/@abaplint/core/build/src/cds/expressions/cds_aggregate.js ***!
|
|
9101
|
+
\********************************************************************************/
|
|
9102
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9103
|
+
|
|
9104
|
+
"use strict";
|
|
9105
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSAggregate = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nclass CDSAggregate extends combi_1.Expression {\r\n getRunnable() {\r\n const value = (0, combi_1.alt)(_1.CDSName, _1.CDSCast, _1.CDSCase);\r\n return (0, combi_1.seq)((0, combi_1.alt)(\"MAX\", \"MIN\", \"SUM\", \"AVG\", \"COUNT\"), \"(\", (0, combi_1.opt)(\"DISTINCT\"), value, \")\");\r\n }\r\n}\r\nexports.CDSAggregate = CDSAggregate;\r\n//# sourceMappingURL=cds_aggregate.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_aggregate.js?");
|
|
9095
9106
|
|
|
9096
9107
|
/***/ }),
|
|
9097
9108
|
|
|
@@ -9102,7 +9113,51 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
9102
9113
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9103
9114
|
|
|
9104
9115
|
"use strict";
|
|
9105
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSAnnotation = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\
|
|
9116
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSAnnotation = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nconst cds_annotation_array_1 = __webpack_require__(/*! ./cds_annotation_array */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_annotation_array.js\");\r\nclass CDSAnnotation extends combi_1.Expression {\r\n getRunnable() {\r\n return (0, combi_1.seq)((0, combi_1.regex)(/^@\\w+$/), (0, combi_1.star)((0, combi_1.seq)(\".\", (0, combi_1.regex)(/^\\w+$/))), (0, combi_1.opt)(\":\"), (0, combi_1.opt)((0, combi_1.alt)(cds_annotation_array_1.CDSAnnotationArray, _1.CDSAnnotationObject, _1.CDSAnnotationSimple)));\r\n }\r\n}\r\nexports.CDSAnnotation = CDSAnnotation;\r\n//# sourceMappingURL=cds_annotation.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_annotation.js?");
|
|
9117
|
+
|
|
9118
|
+
/***/ }),
|
|
9119
|
+
|
|
9120
|
+
/***/ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_annotation_array.js":
|
|
9121
|
+
/*!***************************************************************************************!*\
|
|
9122
|
+
!*** ./node_modules/@abaplint/core/build/src/cds/expressions/cds_annotation_array.js ***!
|
|
9123
|
+
\***************************************************************************************/
|
|
9124
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9125
|
+
|
|
9126
|
+
"use strict";
|
|
9127
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSAnnotationArray = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nconst cds_annotation_simple_1 = __webpack_require__(/*! ./cds_annotation_simple */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_annotation_simple.js\");\r\nclass CDSAnnotationArray extends combi_1.Expression {\r\n getRunnable() {\r\n const value = (0, combi_1.alt)(cds_annotation_simple_1.CDSAnnotationSimple, _1.CDSAnnotationObject, CDSAnnotationArray);\r\n const valueList = (0, combi_1.seq)(\"[\", value, (0, combi_1.star)((0, combi_1.seq)(\",\", value)), \"]\");\r\n return valueList;\r\n }\r\n}\r\nexports.CDSAnnotationArray = CDSAnnotationArray;\r\n//# sourceMappingURL=cds_annotation_array.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_annotation_array.js?");
|
|
9128
|
+
|
|
9129
|
+
/***/ }),
|
|
9130
|
+
|
|
9131
|
+
/***/ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_annotation_object.js":
|
|
9132
|
+
/*!****************************************************************************************!*\
|
|
9133
|
+
!*** ./node_modules/@abaplint/core/build/src/cds/expressions/cds_annotation_object.js ***!
|
|
9134
|
+
\****************************************************************************************/
|
|
9135
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9136
|
+
|
|
9137
|
+
"use strict";
|
|
9138
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSAnnotationObject = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nconst cds_annotation_simple_1 = __webpack_require__(/*! ./cds_annotation_simple */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_annotation_simple.js\");\r\nclass CDSAnnotationObject extends combi_1.Expression {\r\n getRunnable() {\r\n const value = (0, combi_1.alt)(CDSAnnotationObject, _1.CDSAnnotationArray, cds_annotation_simple_1.CDSAnnotationSimple);\r\n const namedot = (0, combi_1.seq)(_1.CDSName, (0, combi_1.star)((0, combi_1.seq)(\".\", _1.CDSName)));\r\n const valueNested = (0, combi_1.seq)(\"{\", namedot, \":\", value, (0, combi_1.star)((0, combi_1.seq)(\",\", namedot, \":\", value)), \"}\");\r\n return valueNested;\r\n }\r\n}\r\nexports.CDSAnnotationObject = CDSAnnotationObject;\r\n//# sourceMappingURL=cds_annotation_object.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_annotation_object.js?");
|
|
9139
|
+
|
|
9140
|
+
/***/ }),
|
|
9141
|
+
|
|
9142
|
+
/***/ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_annotation_simple.js":
|
|
9143
|
+
/*!****************************************************************************************!*\
|
|
9144
|
+
!*** ./node_modules/@abaplint/core/build/src/cds/expressions/cds_annotation_simple.js ***!
|
|
9145
|
+
\****************************************************************************************/
|
|
9146
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9147
|
+
|
|
9148
|
+
"use strict";
|
|
9149
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSAnnotationSimple = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nclass CDSAnnotationSimple extends combi_1.Expression {\r\n getRunnable() {\r\n const value = (0, combi_1.alt)(_1.CDSString, \"true\", \"false\", (0, combi_1.regex)(/^\\d+$/), (0, combi_1.seq)((0, combi_1.regex)(/^\\d+$/), \".\", (0, combi_1.regex)(/^\\d+$/)), (0, combi_1.regex)(/^#[\\w_]+$/));\r\n return value;\r\n }\r\n}\r\nexports.CDSAnnotationSimple = CDSAnnotationSimple;\r\n//# sourceMappingURL=cds_annotation_simple.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_annotation_simple.js?");
|
|
9150
|
+
|
|
9151
|
+
/***/ }),
|
|
9152
|
+
|
|
9153
|
+
/***/ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_arithmetics.js":
|
|
9154
|
+
/*!**********************************************************************************!*\
|
|
9155
|
+
!*** ./node_modules/@abaplint/core/build/src/cds/expressions/cds_arithmetics.js ***!
|
|
9156
|
+
\**********************************************************************************/
|
|
9157
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9158
|
+
|
|
9159
|
+
"use strict";
|
|
9160
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSArithmetics = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nclass CDSArithmetics extends combi_1.Expression {\r\n getRunnable() {\r\n const name = (0, combi_1.seq)(_1.CDSName, (0, combi_1.opt)((0, combi_1.seq)(\".\", _1.CDSName)));\r\n const val = (0, combi_1.alt)((0, combi_1.regex)(/\\d+/), name, _1.CDSFunction, _1.CDSCase, _1.CDSCast, _1.CDSString);\r\n const operator = (0, combi_1.alt)(\"+\", \"-\", \"*\", \"/\");\r\n return (0, combi_1.seq)(val, operator, val);\r\n }\r\n}\r\nexports.CDSArithmetics = CDSArithmetics;\r\n//# sourceMappingURL=cds_arithmetics.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_arithmetics.js?");
|
|
9106
9161
|
|
|
9107
9162
|
/***/ }),
|
|
9108
9163
|
|
|
@@ -9124,7 +9179,29 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
9124
9179
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9125
9180
|
|
|
9126
9181
|
"use strict";
|
|
9127
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSAssociation = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\
|
|
9182
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSAssociation = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nconst cds_cardinality_1 = __webpack_require__(/*! ./cds_cardinality */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_cardinality.js\");\r\nclass CDSAssociation extends combi_1.Expression {\r\n getRunnable() {\r\n return (0, combi_1.seq)(\"ASSOCIATION\", (0, combi_1.opt)(cds_cardinality_1.CDSCardinality), \"TO\", (0, combi_1.opt)(\"PARENT\"), _1.CDSName, (0, combi_1.opt)(_1.CDSAs), \"ON\", _1.CDSCondition);\r\n }\r\n}\r\nexports.CDSAssociation = CDSAssociation;\r\n//# sourceMappingURL=cds_association.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_association.js?");
|
|
9183
|
+
|
|
9184
|
+
/***/ }),
|
|
9185
|
+
|
|
9186
|
+
/***/ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_cardinality.js":
|
|
9187
|
+
/*!**********************************************************************************!*\
|
|
9188
|
+
!*** ./node_modules/@abaplint/core/build/src/cds/expressions/cds_cardinality.js ***!
|
|
9189
|
+
\**********************************************************************************/
|
|
9190
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9191
|
+
|
|
9192
|
+
"use strict";
|
|
9193
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSCardinality = void 0;\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nclass CDSCardinality extends combi_1.Expression {\r\n getRunnable() {\r\n const cardinality = (0, combi_1.seq)(\"[\", (0, combi_1.alt)(\"0\", \"1\"), (0, combi_1.opt)((0, combi_1.seq)(\".\", \".\", (0, combi_1.alt)(\"0\", \"1\", \"*\"))), \"]\");\r\n return cardinality;\r\n }\r\n}\r\nexports.CDSCardinality = CDSCardinality;\r\n//# sourceMappingURL=cds_cardinality.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_cardinality.js?");
|
|
9194
|
+
|
|
9195
|
+
/***/ }),
|
|
9196
|
+
|
|
9197
|
+
/***/ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_case.js":
|
|
9198
|
+
/*!***************************************************************************!*\
|
|
9199
|
+
!*** ./node_modules/@abaplint/core/build/src/cds/expressions/cds_case.js ***!
|
|
9200
|
+
\***************************************************************************/
|
|
9201
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9202
|
+
|
|
9203
|
+
"use strict";
|
|
9204
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSCase = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nclass CDSCase extends combi_1.Expression {\r\n getRunnable() {\r\n const name = (0, combi_1.seq)(_1.CDSName, (0, combi_1.opt)((0, combi_1.seq)(\".\", _1.CDSName)));\r\n const value = (0, combi_1.alt)(name, _1.CDSString, _1.CDSFunction, CDSCase, _1.CDSCast, _1.CDSArithmetics);\r\n const simple = (0, combi_1.seq)(\"CASE\", name, (0, combi_1.plus)((0, combi_1.seq)(\"WHEN\", value, \"THEN\", value)), \"ELSE\", value, \"END\");\r\n const complex = (0, combi_1.seq)(\"CASE\", (0, combi_1.plus)((0, combi_1.seq)(\"WHEN\", _1.CDSCondition, \"THEN\", value)), (0, combi_1.opt)((0, combi_1.seq)(\"ELSE\", value)), \"END\");\r\n return (0, combi_1.alt)(simple, complex);\r\n }\r\n}\r\nexports.CDSCase = CDSCase;\r\n//# sourceMappingURL=cds_case.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_case.js?");
|
|
9128
9205
|
|
|
9129
9206
|
/***/ }),
|
|
9130
9207
|
|
|
@@ -9135,7 +9212,40 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
9135
9212
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9136
9213
|
|
|
9137
9214
|
"use strict";
|
|
9138
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSCast = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nclass CDSCast extends combi_1.Expression {\r\n getRunnable() {\r\n const name = (0, combi_1.seq)(_1.CDSName, (0, combi_1.opt)((0, combi_1.seq)(\".\", _1.CDSName)));\r\n return (0, combi_1.seq)(\"CAST\", \"(\", (0, combi_1.alt)(name, _1.CDSFunction), \"AS\", _1.
|
|
9215
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSCast = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nclass CDSCast extends combi_1.Expression {\r\n getRunnable() {\r\n const name = (0, combi_1.seq)(_1.CDSName, (0, combi_1.opt)((0, combi_1.seq)(\".\", _1.CDSName)));\r\n return (0, combi_1.seq)(\"CAST\", \"(\", (0, combi_1.alt)(name, _1.CDSFunction, _1.CDSCase, CDSCast, _1.CDSString, _1.CDSArithmetics), \"AS\", _1.CDSType, (0, combi_1.opt)((0, combi_1.seq)(\"PRESERVING\", \"TYPE\")), \")\");\r\n }\r\n}\r\nexports.CDSCast = CDSCast;\r\n//# sourceMappingURL=cds_cast.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_cast.js?");
|
|
9216
|
+
|
|
9217
|
+
/***/ }),
|
|
9218
|
+
|
|
9219
|
+
/***/ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_composition.js":
|
|
9220
|
+
/*!**********************************************************************************!*\
|
|
9221
|
+
!*** ./node_modules/@abaplint/core/build/src/cds/expressions/cds_composition.js ***!
|
|
9222
|
+
\**********************************************************************************/
|
|
9223
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9224
|
+
|
|
9225
|
+
"use strict";
|
|
9226
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSComposition = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nconst cds_cardinality_1 = __webpack_require__(/*! ./cds_cardinality */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_cardinality.js\");\r\nclass CDSComposition extends combi_1.Expression {\r\n getRunnable() {\r\n return (0, combi_1.seq)(\"COMPOSITION\", (0, combi_1.opt)(cds_cardinality_1.CDSCardinality), \"OF\", _1.CDSName, (0, combi_1.opt)(_1.CDSAs));\r\n }\r\n}\r\nexports.CDSComposition = CDSComposition;\r\n//# sourceMappingURL=cds_composition.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_composition.js?");
|
|
9227
|
+
|
|
9228
|
+
/***/ }),
|
|
9229
|
+
|
|
9230
|
+
/***/ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_condition.js":
|
|
9231
|
+
/*!********************************************************************************!*\
|
|
9232
|
+
!*** ./node_modules/@abaplint/core/build/src/cds/expressions/cds_condition.js ***!
|
|
9233
|
+
\********************************************************************************/
|
|
9234
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9235
|
+
|
|
9236
|
+
"use strict";
|
|
9237
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSCondition = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nclass CDSCondition extends combi_1.Expression {\r\n getRunnable() {\r\n const name = (0, combi_1.seq)(_1.CDSName, (0, combi_1.opt)((0, combi_1.seq)(\".\", (0, combi_1.alt)(_1.CDSName, _1.CDSString))));\r\n const eq = (0, combi_1.seq)(name, (0, combi_1.alt)(\"=\", \"<>\", \"<\", \">\", \">=\", \"<=\", \"LIKE\"), (0, combi_1.alt)(name, _1.CDSFunction, _1.CDSString));\r\n const isInitial = (0, combi_1.seq)(name, \"IS INITIAL\");\r\n const isNotInitial = (0, combi_1.seq)(name, \"IS NOT INITIAL\");\r\n const isNull = (0, combi_1.seq)(name, \"IS NULL\");\r\n const isNotNull = (0, combi_1.seq)(name, \"IS NOT NULL\");\r\n const condition = (0, combi_1.alt)(eq, isNull, isNotNull, isInitial, isNotInitial);\r\n const paren = (0, combi_1.seq)(\"(\", CDSCondition, \")\");\r\n return (0, combi_1.seq)((0, combi_1.alt)(condition, paren), (0, combi_1.star)((0, combi_1.seq)((0, combi_1.alt)(\"AND\", \"OR\"), (0, combi_1.alt)(condition, paren))));\r\n }\r\n}\r\nexports.CDSCondition = CDSCondition;\r\n//# sourceMappingURL=cds_condition.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_condition.js?");
|
|
9238
|
+
|
|
9239
|
+
/***/ }),
|
|
9240
|
+
|
|
9241
|
+
/***/ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_define_abstract.js":
|
|
9242
|
+
/*!**************************************************************************************!*\
|
|
9243
|
+
!*** ./node_modules/@abaplint/core/build/src/cds/expressions/cds_define_abstract.js ***!
|
|
9244
|
+
\**************************************************************************************/
|
|
9245
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9246
|
+
|
|
9247
|
+
"use strict";
|
|
9248
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSDefineAbstract = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nconst cds_name_1 = __webpack_require__(/*! ./cds_name */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_name.js\");\r\nclass CDSDefineAbstract extends combi_1.Expression {\r\n getRunnable() {\r\n const field = (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), (0, combi_1.str)(\"KEY\"), cds_name_1.CDSName, \":\", cds_name_1.CDSName, \";\");\r\n return (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), (0, combi_1.str)(\"DEFINE ABSTRACT ENTITY\"), cds_name_1.CDSName, (0, combi_1.str)(\"{\"), (0, combi_1.plus)(field), (0, combi_1.str)(\"}\"), (0, combi_1.opt)(\";\"));\r\n }\r\n}\r\nexports.CDSDefineAbstract = CDSDefineAbstract;\r\n//# sourceMappingURL=cds_define_abstract.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_define_abstract.js?");
|
|
9139
9249
|
|
|
9140
9250
|
/***/ }),
|
|
9141
9251
|
|
|
@@ -9146,7 +9256,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
9146
9256
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9147
9257
|
|
|
9148
9258
|
"use strict";
|
|
9149
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSDefineView = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nconst cds_name_1 = __webpack_require__(/*! ./cds_name */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_name.js\");\r\nconst cds_select_1 = __webpack_require__(/*! ./cds_select */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_select.js\");\r\nclass CDSDefineView extends combi_1.Expression {\r\n getRunnable() {\r\n return (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), (0, combi_1.
|
|
9259
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSDefineView = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst __1 = __webpack_require__(/*! ../.. */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nconst cds_name_1 = __webpack_require__(/*! ./cds_name */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_name.js\");\r\nconst cds_select_1 = __webpack_require__(/*! ./cds_select */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_select.js\");\r\nconst cds_with_parameters_1 = __webpack_require__(/*! ./cds_with_parameters */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_with_parameters.js\");\r\nclass CDSDefineView extends combi_1.Expression {\r\n getRunnable() {\r\n return (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), \"DEFINE\", (0, combi_1.opt)(\"ROOT\"), \"VIEW\", (0, combi_1.ver)(__1.Version.v755, (0, combi_1.opt)(\"ENTITY\")), cds_name_1.CDSName, (0, combi_1.opt)(cds_with_parameters_1.CDSWithParameters), \"AS\", cds_select_1.CDSSelect, (0, combi_1.opt)(\";\"));\r\n }\r\n}\r\nexports.CDSDefineView = CDSDefineView;\r\n//# sourceMappingURL=cds_define_view.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_define_view.js?");
|
|
9150
9260
|
|
|
9151
9261
|
/***/ }),
|
|
9152
9262
|
|
|
@@ -9157,7 +9267,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
9157
9267
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9158
9268
|
|
|
9159
9269
|
"use strict";
|
|
9160
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSElement = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nconst cds_as_1 = __webpack_require__(/*! ./cds_as */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_as.js\");\r\nconst cds_cast_1 = __webpack_require__(/*! ./cds_cast */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_cast.js\");\r\nclass CDSElement extends combi_1.Expression {\r\n getRunnable() {\r\n return (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), (0, combi_1.optPrio)(\"KEY\"), (0, combi_1.alt)(_1.CDSName, cds_cast_1.CDSCast), (0, combi_1.
|
|
9270
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSElement = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nconst cds_as_1 = __webpack_require__(/*! ./cds_as */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_as.js\");\r\nconst cds_cast_1 = __webpack_require__(/*! ./cds_cast */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_cast.js\");\r\nclass CDSElement extends combi_1.Expression {\r\n getRunnable() {\r\n return (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), (0, combi_1.optPrio)(\"KEY\"), (0, combi_1.alt)((0, combi_1.seq)(_1.CDSName, (0, combi_1.opt)(_1.CDSParameters), (0, combi_1.star)((0, combi_1.seq)(\".\", _1.CDSName, (0, combi_1.opt)(_1.CDSParameters)))), cds_cast_1.CDSCast, _1.CDSAggregate, _1.CDSString, _1.CDSFunction, (0, combi_1.regex)(/^\\d+$/), _1.CDSArithmetics, _1.CDSCase), (0, combi_1.opt)(cds_as_1.CDSAs));\r\n }\r\n}\r\nexports.CDSElement = CDSElement;\r\n//# sourceMappingURL=cds_element.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_element.js?");
|
|
9161
9271
|
|
|
9162
9272
|
/***/ }),
|
|
9163
9273
|
|
|
@@ -9168,7 +9278,18 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
9168
9278
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9169
9279
|
|
|
9170
9280
|
"use strict";
|
|
9171
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSFunction = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nclass CDSFunction extends combi_1.Expression {\r\n getRunnable() {\r\n const
|
|
9281
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSFunction = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nclass CDSFunction extends combi_1.Expression {\r\n getRunnable() {\r\n const qualified = (0, combi_1.seq)(_1.CDSName, (0, combi_1.opt)(_1.CDSParameters), (0, combi_1.star)((0, combi_1.seq)(\".\", _1.CDSName, (0, combi_1.opt)(_1.CDSParameters))));\r\n const input = (0, combi_1.alt)(qualified, (0, combi_1.regex)(/^\\d+$/), _1.CDSCast, CDSFunction, _1.CDSArithmetics, _1.CDSCase, _1.CDSString);\r\n const coalesce = (0, combi_1.seq)(\"COALESCE\", \"(\", input, \",\", input, \")\");\r\n const concat = (0, combi_1.seq)(\"CONCAT\", \"(\", input, \",\", input, \")\");\r\n const concat_with_space = (0, combi_1.seq)(\"CONCAT_WITH_SPACE\", \"(\", input, \",\", input, \",\", input, \")\");\r\n const dats_add_days = (0, combi_1.seq)(\"DATS_ADD_DAYS\", \"(\", input, \",\", input, \",\", input, \")\");\r\n const dats_add_months = (0, combi_1.seq)(\"DATS_ADD_MONTHS\", \"(\", input, \",\", input, \",\", input, \")\");\r\n const dats_days_between = (0, combi_1.seq)(\"DATS_DAYS_BETWEEN\", \"(\", input, \",\", input, \")\");\r\n const dats_is_valid = (0, combi_1.seq)(\"DATS_IS_VALID\", \"(\", input, \")\");\r\n const substring = (0, combi_1.seq)(\"SUBSTRING\", \"(\", input, \",\", input, \",\", input, \")\");\r\n const bintohex = (0, combi_1.seq)(\"BINTOHEX\", \"(\", input, \")\");\r\n const hextobin = (0, combi_1.seq)(\"HEXTOBIN\", \"(\", input, \")\");\r\n const tstmp_to_dats = (0, combi_1.seq)(\"TSTMP_TO_DATS\", \"(\", input, \",\", input, \",\", input, \",\", input, \")\");\r\n const tstmp_to_tims = (0, combi_1.seq)(\"TSTMP_TO_TIMS\", \"(\", input, \",\", input, \",\", input, \",\", input, \")\");\r\n const tstmp_to_dst = (0, combi_1.seq)(\"TSTMP_TO_DST\", \"(\", input, \",\", input, \",\", input, \",\", input, \")\");\r\n const dats_tims_to_tstmp = (0, combi_1.seq)(\"DATS_TIMS_TO_TSTMP\", \"(\", input, \",\", input, \",\", input, \",\", input, \",\", input, \")\");\r\n const tstmp_is_valid = (0, combi_1.seq)(\"TSTMP_IS_VALID\", \"(\", input, \")\");\r\n const tstmp_current_utctimestamp = (0, combi_1.seq)(\"TSTMP_CURRENT_UTCTIMESTAMP\", \"(\", \")\");\r\n const tstmp_seconds_between = (0, combi_1.seq)(\"TSTMP_SECONDS_BETWEEN\", \"(\", input, \",\", input, \",\", input, \")\");\r\n const tstmp_add_seconds = (0, combi_1.seq)(\"TSTMP_ADD_SECONDS\", \"(\", input, \",\", input, \",\", input, \")\");\r\n const abap_system_timezone = (0, combi_1.seq)(\"ABAP_SYSTEM_TIMEZONE\", \"(\", input, \",\", input, \")\");\r\n const abap_user_timezone = (0, combi_1.seq)(\"ABAP_USER_TIMEZONE\", \"(\", input, \",\", input, \",\", input, \")\");\r\n return (0, combi_1.alt)(substring, coalesce, tstmp_to_dats, concat, tstmp_to_tims, concat_with_space, dats_is_valid, dats_days_between, tstmp_add_seconds, tstmp_seconds_between, tstmp_current_utctimestamp, tstmp_is_valid, abap_system_timezone, abap_user_timezone, bintohex, hextobin, dats_add_days, dats_add_months, tstmp_to_dst, dats_tims_to_tstmp);\r\n }\r\n}\r\nexports.CDSFunction = CDSFunction;\r\n//# sourceMappingURL=cds_function.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_function.js?");
|
|
9282
|
+
|
|
9283
|
+
/***/ }),
|
|
9284
|
+
|
|
9285
|
+
/***/ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_group_by.js":
|
|
9286
|
+
/*!*******************************************************************************!*\
|
|
9287
|
+
!*** ./node_modules/@abaplint/core/build/src/cds/expressions/cds_group_by.js ***!
|
|
9288
|
+
\*******************************************************************************/
|
|
9289
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9290
|
+
|
|
9291
|
+
"use strict";
|
|
9292
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSGroupBy = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nclass CDSGroupBy extends combi_1.Expression {\r\n getRunnable() {\r\n const name = (0, combi_1.seq)(_1.CDSName, (0, combi_1.star)((0, combi_1.seq)(\".\", _1.CDSName)));\r\n return (0, combi_1.seq)(\"GROUP BY\", name, (0, combi_1.star)((0, combi_1.seq)(\",\", name)));\r\n }\r\n}\r\nexports.CDSGroupBy = CDSGroupBy;\r\n//# sourceMappingURL=cds_group_by.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_group_by.js?");
|
|
9172
9293
|
|
|
9173
9294
|
/***/ }),
|
|
9174
9295
|
|
|
@@ -9179,7 +9300,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
9179
9300
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9180
9301
|
|
|
9181
9302
|
"use strict";
|
|
9182
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSJoin = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nclass CDSJoin extends combi_1.Expression {\r\n getRunnable() {\r\n
|
|
9303
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSJoin = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nconst cds_condition_1 = __webpack_require__(/*! ./cds_condition */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_condition.js\");\r\nclass CDSJoin extends combi_1.Expression {\r\n getRunnable() {\r\n return (0, combi_1.seq)((0, combi_1.opt)((0, combi_1.alt)(\"INNER\", \"LEFT OUTER\", \"LEFT OUTER TO ONE\")), \"JOIN\", _1.CDSSource, \"ON\", cds_condition_1.CDSCondition);\r\n }\r\n}\r\nexports.CDSJoin = CDSJoin;\r\n//# sourceMappingURL=cds_join.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_join.js?");
|
|
9183
9304
|
|
|
9184
9305
|
/***/ }),
|
|
9185
9306
|
|
|
@@ -9190,7 +9311,18 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
9190
9311
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9191
9312
|
|
|
9192
9313
|
"use strict";
|
|
9193
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSName = void 0;\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nclass CDSName extends combi_1.Expression {\r\n getRunnable() {\r\n return (0, combi_1.regex)(
|
|
9314
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSName = void 0;\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nclass CDSName extends combi_1.Expression {\r\n getRunnable() {\r\n return (0, combi_1.seq)((0, combi_1.opt)(\":\"), (0, combi_1.regex)(/^\\$?#?[\\w_]+$/));\r\n }\r\n}\r\nexports.CDSName = CDSName;\r\n//# sourceMappingURL=cds_name.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_name.js?");
|
|
9315
|
+
|
|
9316
|
+
/***/ }),
|
|
9317
|
+
|
|
9318
|
+
/***/ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_parameters.js":
|
|
9319
|
+
/*!*********************************************************************************!*\
|
|
9320
|
+
!*** ./node_modules/@abaplint/core/build/src/cds/expressions/cds_parameters.js ***!
|
|
9321
|
+
\*********************************************************************************/
|
|
9322
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9323
|
+
|
|
9324
|
+
"use strict";
|
|
9325
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSParameters = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nclass CDSParameters extends combi_1.Expression {\r\n getRunnable() {\r\n const name = (0, combi_1.seq)(_1.CDSName, (0, combi_1.opt)((0, combi_1.seq)(\".\", _1.CDSName)));\r\n const value = (0, combi_1.alt)(name, _1.CDSString);\r\n return (0, combi_1.seq)(\"[\", (0, combi_1.regex)(/\\d+/), \":\", name, \"=\", value, (0, combi_1.star)((0, combi_1.seq)(\"AND\", name, \"=\", value)), \"]\");\r\n }\r\n}\r\nexports.CDSParameters = CDSParameters;\r\n//# sourceMappingURL=cds_parameters.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_parameters.js?");
|
|
9194
9326
|
|
|
9195
9327
|
/***/ }),
|
|
9196
9328
|
|
|
@@ -9201,7 +9333,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
9201
9333
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9202
9334
|
|
|
9203
9335
|
"use strict";
|
|
9204
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSSelect = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nconst cds_association_1 = __webpack_require__(/*! ./cds_association */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_association.js\");\r\nconst cds_element_1 = __webpack_require__(/*! ./cds_element */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_element.js\");\r\nconst cds_join_1 = __webpack_require__(/*! ./cds_join */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_join.js\");\r\nclass CDSSelect extends combi_1.Expression {\r\n getRunnable() {\r\n return (0, combi_1.seq)((0, combi_1.
|
|
9336
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSSelect = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nconst cds_association_1 = __webpack_require__(/*! ./cds_association */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_association.js\");\r\nconst cds_element_1 = __webpack_require__(/*! ./cds_element */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_element.js\");\r\nconst cds_join_1 = __webpack_require__(/*! ./cds_join */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_join.js\");\r\nclass CDSSelect extends combi_1.Expression {\r\n getRunnable() {\r\n return (0, combi_1.seq)(\"SELECT\", (0, combi_1.opt)(\"DISTINCT\"), \"FROM\", _1.CDSSource, (0, combi_1.star)(cds_join_1.CDSJoin), (0, combi_1.star)(_1.CDSComposition), (0, combi_1.star)(cds_association_1.CDSAssociation), (0, combi_1.star)(_1.CDSComposition), (0, combi_1.str)(\"{\"), (0, combi_1.plus)(cds_element_1.CDSElement), (0, combi_1.star)((0, combi_1.seq)(\",\", cds_element_1.CDSElement)), (0, combi_1.str)(\"}\"), (0, combi_1.opt)(_1.CDSGroupBy), (0, combi_1.opt)(_1.CDSWhere), (0, combi_1.opt)((0, combi_1.seq)(\"UNION\", (0, combi_1.opt)(\"ALL\"), CDSSelect)));\r\n }\r\n}\r\nexports.CDSSelect = CDSSelect;\r\n//# sourceMappingURL=cds_select.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_select.js?");
|
|
9205
9337
|
|
|
9206
9338
|
/***/ }),
|
|
9207
9339
|
|
|
@@ -9216,6 +9348,28 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
9216
9348
|
|
|
9217
9349
|
/***/ }),
|
|
9218
9350
|
|
|
9351
|
+
/***/ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_string.js":
|
|
9352
|
+
/*!*****************************************************************************!*\
|
|
9353
|
+
!*** ./node_modules/@abaplint/core/build/src/cds/expressions/cds_string.js ***!
|
|
9354
|
+
\*****************************************************************************/
|
|
9355
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9356
|
+
|
|
9357
|
+
"use strict";
|
|
9358
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSString = void 0;\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nclass CDSString extends combi_1.Expression {\r\n getRunnable() {\r\n return (0, combi_1.regex)(/^'[\\w: -_]*'$/);\r\n }\r\n}\r\nexports.CDSString = CDSString;\r\n//# sourceMappingURL=cds_string.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_string.js?");
|
|
9359
|
+
|
|
9360
|
+
/***/ }),
|
|
9361
|
+
|
|
9362
|
+
/***/ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_type.js":
|
|
9363
|
+
/*!***************************************************************************!*\
|
|
9364
|
+
!*** ./node_modules/@abaplint/core/build/src/cds/expressions/cds_type.js ***!
|
|
9365
|
+
\***************************************************************************/
|
|
9366
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9367
|
+
|
|
9368
|
+
"use strict";
|
|
9369
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSType = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nclass CDSType extends combi_1.Expression {\r\n getRunnable() {\r\n return (0, combi_1.seq)(_1.CDSName, (0, combi_1.opt)((0, combi_1.seq)(\".\", _1.CDSName)), (0, combi_1.opt)((0, combi_1.seq)(\"(\", (0, combi_1.regex)(/\\d+/), \")\")));\r\n }\r\n}\r\nexports.CDSType = CDSType;\r\n//# sourceMappingURL=cds_type.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_type.js?");
|
|
9370
|
+
|
|
9371
|
+
/***/ }),
|
|
9372
|
+
|
|
9219
9373
|
/***/ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_where.js":
|
|
9220
9374
|
/*!****************************************************************************!*\
|
|
9221
9375
|
!*** ./node_modules/@abaplint/core/build/src/cds/expressions/cds_where.js ***!
|
|
@@ -9223,7 +9377,18 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
9223
9377
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9224
9378
|
|
|
9225
9379
|
"use strict";
|
|
9226
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSWhere = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nclass CDSWhere extends combi_1.Expression {\r\n getRunnable() {\r\n
|
|
9380
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSWhere = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nclass CDSWhere extends combi_1.Expression {\r\n getRunnable() {\r\n return (0, combi_1.seq)(\"WHERE\", _1.CDSCondition);\r\n }\r\n}\r\nexports.CDSWhere = CDSWhere;\r\n//# sourceMappingURL=cds_where.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_where.js?");
|
|
9381
|
+
|
|
9382
|
+
/***/ }),
|
|
9383
|
+
|
|
9384
|
+
/***/ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_with_parameters.js":
|
|
9385
|
+
/*!**************************************************************************************!*\
|
|
9386
|
+
!*** ./node_modules/@abaplint/core/build/src/cds/expressions/cds_with_parameters.js ***!
|
|
9387
|
+
\**************************************************************************************/
|
|
9388
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9389
|
+
|
|
9390
|
+
"use strict";
|
|
9391
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSWithParameters = void 0;\r\nconst _1 = __webpack_require__(/*! . */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ \"./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js\");\r\nclass CDSWithParameters extends combi_1.Expression {\r\n getRunnable() {\r\n const param = (0, combi_1.seq)(_1.CDSName, \":\", _1.CDSType);\r\n return (0, combi_1.seq)(\"wITH PARAMETERS\", param, (0, combi_1.star)((0, combi_1.seq)(\",\", param)));\r\n }\r\n}\r\nexports.CDSWithParameters = CDSWithParameters;\r\n//# sourceMappingURL=cds_with_parameters.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_with_parameters.js?");
|
|
9227
9392
|
|
|
9228
9393
|
/***/ }),
|
|
9229
9394
|
|
|
@@ -9234,7 +9399,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
9234
9399
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
9235
9400
|
|
|
9236
9401
|
"use strict";
|
|
9237
|
-
eval("\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n__exportStar(__webpack_require__(/*! ./cds_annotation */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_annotation.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_as */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_as.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_association */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_association.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_cast */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_cast.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_define_view */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_define_view.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_element */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_element.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_function */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_function.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_join */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_join.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_name */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_name.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_select */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_select.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_source */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_source.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_where */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_where.js\"), exports);\r\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/index.js?");
|
|
9402
|
+
eval("\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n__exportStar(__webpack_require__(/*! ./cds_aggregate */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_aggregate.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_aggregate */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_aggregate.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_annotation_array */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_annotation_array.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_annotation_object */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_annotation_object.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_annotation_simple */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_annotation_simple.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_annotation */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_annotation.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_arithmetics */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_arithmetics.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_as */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_as.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_association */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_association.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_cardinality */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_cardinality.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_case */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_case.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_cast */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_cast.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_composition */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_composition.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_condition */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_condition.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_define_abstract */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_define_abstract.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_define_view */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_define_view.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_element */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_element.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_function */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_function.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_group_by */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_group_by.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_join */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_join.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_name */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_name.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_parameters */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_parameters.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_select */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_select.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_source */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_source.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_string */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_string.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_type */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_type.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_where */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_where.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./cds_with_parameters */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_with_parameters.js\"), exports);\r\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/index.js?");
|
|
9238
9403
|
|
|
9239
9404
|
/***/ }),
|
|
9240
9405
|
|
|
@@ -9278,7 +9443,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
9278
9443
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9279
9444
|
|
|
9280
9445
|
"use strict";
|
|
9281
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.DDLLexer = void 0;\r\nconst tokens_1 = __webpack_require__(/*! ../abap/1_lexer/tokens */ \"./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/index.js\");\r\nconst position_1 = __webpack_require__(/*! ../position */ \"./node_modules/@abaplint/core/build/src/position.js\");\r\nclass DDLLexer {\r\n static run(file) {\r\n const step1 = [];\r\n const lines = file.getRaw().replace(/\\
|
|
9446
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.DDLLexer = void 0;\r\nconst tokens_1 = __webpack_require__(/*! ../abap/1_lexer/tokens */ \"./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/index.js\");\r\nconst position_1 = __webpack_require__(/*! ../position */ \"./node_modules/@abaplint/core/build/src/position.js\");\r\nclass DDLLexer {\r\n static run(file) {\r\n const step1 = [];\r\n const lines = file.getRaw().replace(/\\r/g, \"\").split(\"\\n\");\r\n for (const l of lines) {\r\n if (l.startsWith(\"@\")) {\r\n continue; // skip annotations for now\r\n }\r\n step1.push(...l.split(\" \"));\r\n }\r\n const step2 = [];\r\n for (const t of step1) {\r\n if (t === \"\") {\r\n continue;\r\n }\r\n else if (t.endsWith(\";\")) {\r\n step2.push(t.substr(0, t.length - 1));\r\n step2.push(\";\");\r\n }\r\n else {\r\n step2.push(t);\r\n }\r\n }\r\n return step2.map(t => new tokens_1.Identifier(new position_1.Position(1, 1), t));\r\n }\r\n}\r\nexports.DDLLexer = DDLLexer;\r\n//# sourceMappingURL=ddl_lexer.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/ddl/ddl_lexer.js?");
|
|
9282
9447
|
|
|
9283
9448
|
/***/ }),
|
|
9284
9449
|
|
|
@@ -9960,7 +10125,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
9960
10125
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
9961
10126
|
|
|
9962
10127
|
"use strict";
|
|
9963
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.DataDefinition = void 0;\r\nconst basic_1 = __webpack_require__(/*! ../abap/types/basic */ \"./node_modules/@abaplint/core/build/src/abap/types/basic/index.js\");\r\nconst cds_parser_1 = __webpack_require__(/*! ../cds/cds_parser */ \"./node_modules/@abaplint/core/build/src/cds/cds_parser.js\");\r\nconst expressions_1 = __webpack_require__(/*! ../cds/expressions */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst _abstract_object_1 = __webpack_require__(/*! ./_abstract_object */ \"./node_modules/@abaplint/core/build/src/objects/_abstract_object.js\");\r\nclass DataDefinition extends _abstract_object_1.AbstractObject {\r\n constructor() {\r\n super(...arguments);\r\n this.sqlViewName = undefined;\r\n this.parserError = undefined;\r\n this.fieldNames = [];\r\n this.sources = [];\r\n }\r\n getType() {\r\n return \"DDLS\";\r\n }\r\n getAllowedNaming() {\r\n return {\r\n maxLength: 40,\r\n allowNamespace: true,\r\n };\r\n }\r\n getSQLViewName() {\r\n return this.sqlViewName;\r\n }\r\n getDescription() {\r\n // todo\r\n return undefined;\r\n }\r\n parseType(_reg) {\r\n this.parse();\r\n if (this.fieldNames.length === 0) {\r\n return new basic_1.VoidType(\"DDLS:todo\");\r\n }\r\n else {\r\n const components = [];\r\n for (const f of this.fieldNames) {\r\n components.push({\r\n name: f,\r\n type: new basic_1.VoidType(\"DDLS:fieldname\"),\r\n });\r\n }\r\n return new basic_1.StructureType(components);\r\n }\r\n }\r\n listSources() {\r\n return this.sources;\r\n }\r\n setDirty() {\r\n this.sqlViewName = undefined;\r\n this.parserError = undefined;\r\n this.fieldNames = [];\r\n this.sources = [];\r\n super.setDirty();\r\n }\r\n findSourceFile() {\r\n return this.getFiles().find(f => f.getFilename().endsWith(\".asddls\"));\r\n }\r\n hasParserError() {\r\n return this.parserError;\r\n }\r\n parse() {\r\n var _a;\r\n if (this.isDirty() === false) {\r\n return { updated: false, runtime: 0 };\r\n }\r\n this.sqlViewName = undefined;\r\n const match = (_a = this.findSourceFile()) === null || _a === void 0 ? void 0 : _a.getRaw().match(/@AbapCatalog\\.sqlViewName: '(\\w+)'/);\r\n if (match) {\r\n this.sqlViewName = match[1].toUpperCase();\r\n }\r\n const tree = new cds_parser_1.CDSParser().parse(this.findSourceFile());\r\n if (tree) {\r\n this.findFieldNames(tree);\r\n this.findSources(tree);\r\n }\r\n else {\r\n this.parserError = true;\r\n }\r\n this.dirty = false;\r\n return { updated: true, runtime:
|
|
10128
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.DataDefinition = void 0;\r\nconst basic_1 = __webpack_require__(/*! ../abap/types/basic */ \"./node_modules/@abaplint/core/build/src/abap/types/basic/index.js\");\r\nconst cds_parser_1 = __webpack_require__(/*! ../cds/cds_parser */ \"./node_modules/@abaplint/core/build/src/cds/cds_parser.js\");\r\nconst expressions_1 = __webpack_require__(/*! ../cds/expressions */ \"./node_modules/@abaplint/core/build/src/cds/expressions/index.js\");\r\nconst _abstract_object_1 = __webpack_require__(/*! ./_abstract_object */ \"./node_modules/@abaplint/core/build/src/objects/_abstract_object.js\");\r\nclass DataDefinition extends _abstract_object_1.AbstractObject {\r\n constructor() {\r\n super(...arguments);\r\n this.sqlViewName = undefined;\r\n this.parserError = undefined;\r\n this.fieldNames = [];\r\n this.sources = [];\r\n }\r\n getType() {\r\n return \"DDLS\";\r\n }\r\n getAllowedNaming() {\r\n return {\r\n maxLength: 40,\r\n allowNamespace: true,\r\n };\r\n }\r\n getSQLViewName() {\r\n return this.sqlViewName;\r\n }\r\n getDescription() {\r\n // todo\r\n return undefined;\r\n }\r\n parseType(_reg) {\r\n this.parse();\r\n if (this.fieldNames.length === 0) {\r\n return new basic_1.VoidType(\"DDLS:todo\");\r\n }\r\n else {\r\n const components = [];\r\n for (const f of this.fieldNames) {\r\n components.push({\r\n name: f,\r\n type: new basic_1.VoidType(\"DDLS:fieldname\"),\r\n });\r\n }\r\n return new basic_1.StructureType(components);\r\n }\r\n }\r\n listSources() {\r\n return this.sources;\r\n }\r\n setDirty() {\r\n this.sqlViewName = undefined;\r\n this.parserError = undefined;\r\n this.fieldNames = [];\r\n this.sources = [];\r\n super.setDirty();\r\n }\r\n findSourceFile() {\r\n return this.getFiles().find(f => f.getFilename().endsWith(\".asddls\"));\r\n }\r\n hasParserError() {\r\n return this.parserError;\r\n }\r\n parse() {\r\n var _a;\r\n if (this.isDirty() === false) {\r\n return { updated: false, runtime: 0 };\r\n }\r\n const start = Date.now();\r\n this.sqlViewName = undefined;\r\n const match = (_a = this.findSourceFile()) === null || _a === void 0 ? void 0 : _a.getRaw().match(/@AbapCatalog\\.sqlViewName: '(\\w+)'/);\r\n if (match) {\r\n this.sqlViewName = match[1].toUpperCase();\r\n }\r\n const tree = new cds_parser_1.CDSParser().parse(this.findSourceFile());\r\n if (tree) {\r\n this.findFieldNames(tree);\r\n this.findSources(tree);\r\n }\r\n else {\r\n this.parserError = true;\r\n }\r\n const end = Date.now();\r\n this.dirty = false;\r\n return { updated: true, runtime: end - start };\r\n }\r\n findFieldNames(tree) {\r\n var _a;\r\n this.fieldNames = [];\r\n for (const e of tree.findAllExpressions(expressions_1.CDSElement)) {\r\n let found = (_a = e.findDirectExpression(expressions_1.CDSAs)) === null || _a === void 0 ? void 0 : _a.findDirectExpression(expressions_1.CDSName);\r\n if (found === undefined) {\r\n const list = e.findDirectExpressions(expressions_1.CDSName);\r\n found = list[list.length - 1];\r\n }\r\n if (found === undefined) {\r\n continue;\r\n }\r\n this.fieldNames.push(found === null || found === void 0 ? void 0 : found.concatTokens());\r\n }\r\n }\r\n findSources(tree) {\r\n var _a, _b;\r\n this.sources = [];\r\n for (const e of tree.findAllExpressions(expressions_1.CDSSource)) {\r\n const name = e.getFirstToken().getStr();\r\n const as = (_b = (_a = e.findDirectExpression(expressions_1.CDSAs)) === null || _a === void 0 ? void 0 : _a.findDirectExpression(expressions_1.CDSName)) === null || _b === void 0 ? void 0 : _b.getFirstToken().getStr();\r\n this.sources.push({ name, as });\r\n }\r\n }\r\n}\r\nexports.DataDefinition = DataDefinition;\r\n//# sourceMappingURL=data_definition.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/objects/data_definition.js?");
|
|
9964
10129
|
|
|
9965
10130
|
/***/ }),
|
|
9966
10131
|
|
|
@@ -10950,7 +11115,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
10950
11115
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
10951
11116
|
|
|
10952
11117
|
"use strict";
|
|
10953
|
-
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Registry = void 0;\nconst config_1 = __webpack_require__(/*! ./config */ \"./node_modules/@abaplint/core/build/src/config.js\");\nconst artifacts_objects_1 = __webpack_require__(/*! ./artifacts_objects */ \"./node_modules/@abaplint/core/build/src/artifacts_objects.js\");\nconst artifacts_rules_1 = __webpack_require__(/*! ./artifacts_rules */ \"./node_modules/@abaplint/core/build/src/artifacts_rules.js\");\nconst skip_logic_1 = __webpack_require__(/*! ./skip_logic */ \"./node_modules/@abaplint/core/build/src/skip_logic.js\");\nconst _abap_object_1 = __webpack_require__(/*! ./objects/_abap_object */ \"./node_modules/@abaplint/core/build/src/objects/_abap_object.js\");\nconst find_global_definitions_1 = __webpack_require__(/*! ./abap/5_syntax/global_definitions/find_global_definitions */ \"./node_modules/@abaplint/core/build/src/abap/5_syntax/global_definitions/find_global_definitions.js\");\nconst syntax_1 = __webpack_require__(/*! ./abap/5_syntax/syntax */ \"./node_modules/@abaplint/core/build/src/abap/5_syntax/syntax.js\");\nconst excludeHelper_1 = __webpack_require__(/*! ./utils/excludeHelper */ \"./node_modules/@abaplint/core/build/src/utils/excludeHelper.js\");\nconst ddic_references_1 = __webpack_require__(/*! ./ddic_references */ \"./node_modules/@abaplint/core/build/src/ddic_references.js\");\n// todo, this should really be an instance in case there are multiple Registry'ies\nclass ParsingPerformance {\n static clear() {\n this.results = [];\n this.lexing = 0;\n this.statements = 0;\n this.structure = 0;\n }\n static push(obj, result) {\n if (result.runtimeExtra) {\n this.lexing += result.runtimeExtra.lexing;\n this.statements += result.runtimeExtra.statements;\n this.structure += result.runtimeExtra.structure;\n }\n if (result.runtime < 100) {\n return;\n }\n if (this.results === undefined) {\n this.results = [];\n }\n let extra = \"\";\n if (result.runtimeExtra) {\n extra = `\\t(lexing: ${result.runtimeExtra.lexing}ms, statements: ${result.runtimeExtra.statements}ms, structure: ${result.runtimeExtra.structure}ms)`;\n }\n this.results.push({\n runtime: result.runtime,\n extra,\n name: obj.getType() + \" \" + obj.getName(),\n });\n }\n static output() {\n const MAX = 10;\n this.results.sort((a, b) => { return b.runtime - a.runtime; });\n for (let i = 0; i < MAX; i++) {\n const row = this.results[i];\n if (row === undefined) {\n break;\n }\n process.stderr.write(`\\t${row.runtime}ms\\t${row.name} ${row.extra}\\n`);\n }\n process.stderr.write(`\\tTotal lexing: ${this.lexing}ms\\n`);\n process.stderr.write(`\\tTotal statements: ${this.statements}ms\\n`);\n process.stderr.write(`\\tTotal structure: ${this.structure}ms\\n`);\n }\n}\n///////////////////////////////////////////////////////////////////////////////////////////////\nclass Registry {\n constructor(conf) {\n this.objects = {};\n this.objectsByType = {};\n /** object containing filenames of dependencies */\n this.dependencies = {};\n this.issues = [];\n this.conf = conf ? conf : config_1.Config.getDefault();\n this.references = new ddic_references_1.DDICReferences();\n }\n static abaplintVersion() {\n // magic, see build script \"version.sh\"\n return \"2.83.3\";\n }\n getDDICReferences() {\n return this.references;\n }\n *getObjects() {\n for (const name in this.objects) {\n for (const type in this.objects[name]) {\n yield this.objects[name][type];\n }\n }\n }\n *getObjectsByType(type) {\n for (const name in this.objectsByType[type] || []) {\n yield this.objectsByType[type][name];\n }\n }\n *getFiles() {\n for (const obj of this.getObjects()) {\n for (const file of obj.getFiles()) {\n yield file;\n }\n }\n }\n getFirstObject() {\n for (const name in this.objects) {\n for (const type in this.objects[name]) {\n return this.objects[name][type];\n }\n }\n return undefined;\n }\n getObjectCount(skipDependencies = true) {\n let res = 0;\n for (const o of this.getObjects()) {\n if (skipDependencies === true && this.isDependency(o)) {\n continue;\n }\n res = res + 1;\n }\n return res;\n }\n getFileByName(filename) {\n const upper = filename.toUpperCase();\n for (const o of this.getObjects()) {\n for (const f of o.getFiles()) {\n if (f.getFilename().toUpperCase() === upper) {\n return f;\n }\n }\n }\n return undefined;\n }\n getObject(type, name) {\n if (type === undefined || name === undefined) {\n return undefined;\n }\n const searchName = name.toUpperCase();\n if (this.objects[searchName]) {\n return this.objects[searchName][type];\n }\n return undefined;\n }\n getConfig() {\n return this.conf;\n }\n // assumption: Config is immutable, and can only be changed via this method\n setConfig(conf) {\n for (const obj of this.getObjects()) {\n obj.setDirty();\n }\n this.conf = conf;\n return this;\n }\n inErrorNamespace(name) {\n const reg = new RegExp(this.getConfig().getSyntaxSetttings().errorNamespace, \"i\");\n return reg.test(name);\n }\n addFile(file) {\n return this.addFiles([file]);\n }\n updateFile(file) {\n const obj = this.find(file.getObjectName(), file.getObjectType());\n obj.updateFile(file);\n return this;\n }\n removeFile(file) {\n const obj = this.find(file.getObjectName(), file.getObjectType());\n obj.removeFile(file);\n if (obj.getFiles().length === 0) {\n this.references.clear(obj);\n this.removeObject(obj);\n }\n return this;\n }\n addFiles(files) {\n var _a;\n const globalExclude = ((_a = this.conf.getGlobal().exclude) !== null && _a !== void 0 ? _a : [])\n .map(pattern => new RegExp(pattern, \"i\"));\n for (const f of files) {\n const filename = f.getFilename();\n const isNotAbapgitFile = filename.split(\".\").length <= 2;\n if (isNotAbapgitFile || excludeHelper_1.ExcludeHelper.isExcluded(filename, globalExclude)) {\n continue;\n }\n const found = this.findOrCreate(f.getObjectName(), f.getObjectType());\n found.addFile(f);\n }\n return this;\n }\n addDependencies(files) {\n for (const f of files) {\n this.dependencies[f.getFilename().toUpperCase()] = true;\n }\n return this.addFiles(files);\n }\n addDependency(file) {\n this.dependencies[file.getFilename().toUpperCase()] = true;\n this.addFile(file);\n return this;\n }\n isDependency(obj) {\n const filename = obj.getFiles()[0].getFilename().toUpperCase();\n return this.dependencies[filename] === true;\n }\n isFileDependency(filename) {\n return this.dependencies[filename.toUpperCase()] === true;\n }\n // assumption: the file is already in the registry\n findObjectForFile(file) {\n const filename = file.getFilename();\n for (const obj of this.getObjects()) {\n for (const ofile of obj.getFiles()) {\n if (ofile.getFilename() === filename) {\n return obj;\n }\n }\n }\n return undefined;\n }\n // todo, this will be changed to async sometime\n findIssues(input) {\n if (this.isDirty() === true) {\n this.parse();\n }\n return this.runRules(input);\n }\n // todo, this will be changed to async sometime\n findIssuesObject(iobj) {\n if (this.isDirty() === true) {\n this.parse();\n }\n return this.runRules(undefined, iobj);\n }\n // todo, this will be changed to async sometime\n parse() {\n if (this.isDirty() === false) {\n return this;\n }\n ParsingPerformance.clear();\n this.issues = [];\n for (const o of this.getObjects()) {\n this.parsePrivate(o);\n this.issues.push(...o.getParsingIssues());\n }\n new find_global_definitions_1.FindGlobalDefinitions(this).run();\n return this;\n }\n async parseAsync(input) {\n var _a, _b;\n if (this.isDirty() === false) {\n return this;\n }\n ParsingPerformance.clear();\n (_a = input === null || input === void 0 ? void 0 : input.progress) === null || _a === void 0 ? void 0 : _a.set(this.getObjectCount(false), \"Lexing and parsing\");\n this.issues = [];\n for (const o of this.getObjects()) {\n await ((_b = input === null || input === void 0 ? void 0 : input.progress) === null || _b === void 0 ? void 0 : _b.tick(\"Lexing and parsing(\" + this.conf.getVersion() + \") - \" + o.getType() + \" \" + o.getName()));\n this.parsePrivate(o);\n this.issues.push(...o.getParsingIssues());\n }\n if ((input === null || input === void 0 ? void 0 : input.outputPerformance) === true) {\n ParsingPerformance.output();\n }\n new find_global_definitions_1.FindGlobalDefinitions(this).run(input === null || input === void 0 ? void 0 : input.progress);\n return this;\n }\n //////////////////////////////////////////\n // todo, refactor, this is a mess, see where-used, a lot of the code should be in this method instead\n parsePrivate(input) {\n const config = this.getConfig();\n const result = input.parse(config.getVersion(), config.getSyntaxSetttings().globalMacros);\n ParsingPerformance.push(input, result);\n }\n isDirty() {\n for (const o of this.getObjects()) {\n const dirty = o.isDirty();\n if (dirty === true) {\n return true;\n }\n }\n return false;\n }\n runRules(input, iobj) {\n var _a, _b, _c, _d, _e, _f;\n const rulePerformance = {};\n const issues = this.issues.slice(0);\n const objects = iobj ? [iobj] : this.getObjects();\n const rules = this.conf.getEnabledRules();\n const skipLogic = new skip_logic_1.SkipLogic(this);\n (_a = input === null || input === void 0 ? void 0 : input.progress) === null || _a === void 0 ? void 0 : _a.set(iobj ? 1 : this.getObjectCount(false), \"Run Syntax\");\n const check = [];\n for (const obj of objects) {\n (_b = input === null || input === void 0 ? void 0 : input.progress) === null || _b === void 0 ? void 0 : _b.tick(\"Run Syntax - \" + obj.getName());\n if (skipLogic.skip(obj) || this.isDependency(obj)) {\n continue;\n }\n if (obj instanceof _abap_object_1.ABAPObject) {\n new syntax_1.SyntaxLogic(this, obj).run();\n }\n check.push(obj);\n }\n (_c = input === null || input === void 0 ? void 0 : input.progress) === null || _c === void 0 ? void 0 : _c.set(rules.length, \"Initialize Rules\");\n for (const rule of rules) {\n (_d = input === null || input === void 0 ? void 0 : input.progress) === null || _d === void 0 ? void 0 : _d.tick(\"Initialize Rules - \" + rule.getMetadata().key);\n if (rule.initialize === undefined) {\n throw new Error(rule.getMetadata().key + \" missing initialize method\");\n }\n rule.initialize(this);\n rulePerformance[rule.getMetadata().key] = 0;\n }\n (_e = input === null || input === void 0 ? void 0 : input.progress) === null || _e === void 0 ? void 0 : _e.set(check.length, \"Finding Issues\");\n for (const obj of check) {\n (_f = input === null || input === void 0 ? void 0 : input.progress) === null || _f === void 0 ? void 0 : _f.tick(\"Finding Issues - \" + obj.getType() + \" \" + obj.getName());\n for (const rule of rules) {\n const before = Date.now();\n issues.push(...rule.run(obj));\n const runtime = Date.now() - before;\n rulePerformance[rule.getMetadata().key] = rulePerformance[rule.getMetadata().key] + runtime;\n }\n }\n if ((input === null || input === void 0 ? void 0 : input.outputPerformance) === true) {\n const perf = [];\n for (const p in rulePerformance) {\n if (rulePerformance[p] > 100) { // ignore rules if it takes less than 100ms\n perf.push({ name: p, time: rulePerformance[p] });\n }\n }\n perf.sort((a, b) => { return b.time - a.time; });\n for (const p of perf) {\n process.stderr.write(\"\\t\" + p.time + \"ms\\t\" + p.name + \"\\n\");\n }\n }\n return this.excludeIssues(issues);\n }\n excludeIssues(issues) {\n var _a;\n const ret = issues;\n const globalNoIssues = this.conf.getGlobal().noIssues || [];\n const globalNoIssuesPatterns = globalNoIssues.map(x => new RegExp(x, \"i\"));\n if (globalNoIssuesPatterns.length > 0) {\n for (let i = ret.length - 1; i >= 0; i--) {\n const filename = ret[i].getFilename();\n if (excludeHelper_1.ExcludeHelper.isExcluded(filename, globalNoIssuesPatterns)) {\n ret.splice(i, 1);\n }\n }\n }\n // exclude issues, as now we know both the filename and issue key\n for (const rule of artifacts_rules_1.ArtifactsRules.getRules()) {\n const key = rule.getMetadata().key;\n const ruleExclude = (_a = this.conf.readByKey(key, \"exclude\")) !== null && _a !== void 0 ? _a : [];\n if (ruleExclude.length === 0) {\n continue;\n }\n const ruleExcludePatterns = ruleExclude.map(x => new RegExp(x, \"i\"));\n for (let i = ret.length - 1; i >= 0; i--) {\n if (ret[i].getKey() !== key) {\n continue;\n }\n const filename = ret[i].getFilename();\n if (excludeHelper_1.ExcludeHelper.isExcluded(filename, ruleExcludePatterns)) {\n ret.splice(i, 1);\n }\n }\n }\n return ret;\n }\n findOrCreate(name, type) {\n try {\n return this.find(name, type);\n }\n catch (_a) {\n const newName = name.toUpperCase();\n const newType = type ? type : \"UNKNOWN\";\n const add = artifacts_objects_1.ArtifactsObjects.newObject(newName, newType);\n if (this.objects[newName] === undefined) {\n this.objects[newName] = {};\n }\n this.objects[newName][newType] = add;\n if (this.objectsByType[newType] === undefined) {\n this.objectsByType[newType] = {};\n }\n this.objectsByType[newType][newName] = add;\n return add;\n }\n }\n removeObject(remove) {\n if (remove === undefined) {\n return;\n }\n if (this.objects[remove.getName()][remove.getType()] === undefined) {\n throw new Error(\"removeObject: object not found\");\n }\n if (Object.keys(this.objects[remove.getName()]).length === 1) {\n delete this.objects[remove.getName()];\n }\n else {\n delete this.objects[remove.getName()][remove.getType()];\n }\n if (Object.keys(this.objectsByType[remove.getType()]).length === 1) {\n delete this.objectsByType[remove.getType()];\n }\n else {\n delete this.objectsByType[remove.getType()][remove.getName()];\n }\n }\n find(name, type) {\n const searchType = type ? type : \"UNKNOWN\";\n const searchName = name.toUpperCase();\n if (this.objects[searchName] !== undefined\n && this.objects[searchName][searchType]) {\n return this.objects[searchName][searchType];\n }\n throw new Error(\"find: object not found, \" + type + \" \" + name);\n }\n}\nexports.Registry = Registry;\n//# sourceMappingURL=registry.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/registry.js?");
|
|
11118
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Registry = void 0;\nconst config_1 = __webpack_require__(/*! ./config */ \"./node_modules/@abaplint/core/build/src/config.js\");\nconst artifacts_objects_1 = __webpack_require__(/*! ./artifacts_objects */ \"./node_modules/@abaplint/core/build/src/artifacts_objects.js\");\nconst artifacts_rules_1 = __webpack_require__(/*! ./artifacts_rules */ \"./node_modules/@abaplint/core/build/src/artifacts_rules.js\");\nconst skip_logic_1 = __webpack_require__(/*! ./skip_logic */ \"./node_modules/@abaplint/core/build/src/skip_logic.js\");\nconst _abap_object_1 = __webpack_require__(/*! ./objects/_abap_object */ \"./node_modules/@abaplint/core/build/src/objects/_abap_object.js\");\nconst find_global_definitions_1 = __webpack_require__(/*! ./abap/5_syntax/global_definitions/find_global_definitions */ \"./node_modules/@abaplint/core/build/src/abap/5_syntax/global_definitions/find_global_definitions.js\");\nconst syntax_1 = __webpack_require__(/*! ./abap/5_syntax/syntax */ \"./node_modules/@abaplint/core/build/src/abap/5_syntax/syntax.js\");\nconst excludeHelper_1 = __webpack_require__(/*! ./utils/excludeHelper */ \"./node_modules/@abaplint/core/build/src/utils/excludeHelper.js\");\nconst ddic_references_1 = __webpack_require__(/*! ./ddic_references */ \"./node_modules/@abaplint/core/build/src/ddic_references.js\");\n// todo, this should really be an instance in case there are multiple Registry'ies\nclass ParsingPerformance {\n static clear() {\n this.results = [];\n this.lexing = 0;\n this.statements = 0;\n this.structure = 0;\n }\n static push(obj, result) {\n if (result.runtimeExtra) {\n this.lexing += result.runtimeExtra.lexing;\n this.statements += result.runtimeExtra.statements;\n this.structure += result.runtimeExtra.structure;\n }\n if (result.runtime < 100) {\n return;\n }\n if (this.results === undefined) {\n this.results = [];\n }\n let extra = \"\";\n if (result.runtimeExtra) {\n extra = `\\t(lexing: ${result.runtimeExtra.lexing}ms, statements: ${result.runtimeExtra.statements}ms, structure: ${result.runtimeExtra.structure}ms)`;\n }\n this.results.push({\n runtime: result.runtime,\n extra,\n name: obj.getType() + \" \" + obj.getName(),\n });\n }\n static output() {\n const MAX = 10;\n this.results.sort((a, b) => { return b.runtime - a.runtime; });\n for (let i = 0; i < MAX; i++) {\n const row = this.results[i];\n if (row === undefined) {\n break;\n }\n process.stderr.write(`\\t${row.runtime}ms\\t${row.name} ${row.extra}\\n`);\n }\n process.stderr.write(`\\tTotal lexing: ${this.lexing}ms\\n`);\n process.stderr.write(`\\tTotal statements: ${this.statements}ms\\n`);\n process.stderr.write(`\\tTotal structure: ${this.structure}ms\\n`);\n }\n}\n///////////////////////////////////////////////////////////////////////////////////////////////\nclass Registry {\n constructor(conf) {\n this.objects = {};\n this.objectsByType = {};\n /** object containing filenames of dependencies */\n this.dependencies = {};\n this.issues = [];\n this.conf = conf ? conf : config_1.Config.getDefault();\n this.references = new ddic_references_1.DDICReferences();\n }\n static abaplintVersion() {\n // magic, see build script \"version.sh\"\n return \"2.83.7\";\n }\n getDDICReferences() {\n return this.references;\n }\n *getObjects() {\n for (const name in this.objects) {\n for (const type in this.objects[name]) {\n yield this.objects[name][type];\n }\n }\n }\n *getObjectsByType(type) {\n for (const name in this.objectsByType[type] || []) {\n yield this.objectsByType[type][name];\n }\n }\n *getFiles() {\n for (const obj of this.getObjects()) {\n for (const file of obj.getFiles()) {\n yield file;\n }\n }\n }\n getFirstObject() {\n for (const name in this.objects) {\n for (const type in this.objects[name]) {\n return this.objects[name][type];\n }\n }\n return undefined;\n }\n getObjectCount(skipDependencies = true) {\n let res = 0;\n for (const o of this.getObjects()) {\n if (skipDependencies === true && this.isDependency(o)) {\n continue;\n }\n res = res + 1;\n }\n return res;\n }\n getFileByName(filename) {\n const upper = filename.toUpperCase();\n for (const o of this.getObjects()) {\n for (const f of o.getFiles()) {\n if (f.getFilename().toUpperCase() === upper) {\n return f;\n }\n }\n }\n return undefined;\n }\n getObject(type, name) {\n if (type === undefined || name === undefined) {\n return undefined;\n }\n const searchName = name.toUpperCase();\n if (this.objects[searchName]) {\n return this.objects[searchName][type];\n }\n return undefined;\n }\n getConfig() {\n return this.conf;\n }\n // assumption: Config is immutable, and can only be changed via this method\n setConfig(conf) {\n for (const obj of this.getObjects()) {\n obj.setDirty();\n }\n this.conf = conf;\n return this;\n }\n inErrorNamespace(name) {\n const reg = new RegExp(this.getConfig().getSyntaxSetttings().errorNamespace, \"i\");\n return reg.test(name);\n }\n addFile(file) {\n return this.addFiles([file]);\n }\n updateFile(file) {\n const obj = this.find(file.getObjectName(), file.getObjectType());\n obj.updateFile(file);\n return this;\n }\n removeFile(file) {\n const obj = this.find(file.getObjectName(), file.getObjectType());\n obj.removeFile(file);\n if (obj.getFiles().length === 0) {\n this.references.clear(obj);\n this.removeObject(obj);\n }\n return this;\n }\n addFiles(files) {\n var _a;\n const globalExclude = ((_a = this.conf.getGlobal().exclude) !== null && _a !== void 0 ? _a : [])\n .map(pattern => new RegExp(pattern, \"i\"));\n for (const f of files) {\n const filename = f.getFilename();\n const isNotAbapgitFile = filename.split(\".\").length <= 2;\n if (isNotAbapgitFile || excludeHelper_1.ExcludeHelper.isExcluded(filename, globalExclude)) {\n continue;\n }\n const found = this.findOrCreate(f.getObjectName(), f.getObjectType());\n found.addFile(f);\n }\n return this;\n }\n addDependencies(files) {\n for (const f of files) {\n this.dependencies[f.getFilename().toUpperCase()] = true;\n }\n return this.addFiles(files);\n }\n addDependency(file) {\n this.dependencies[file.getFilename().toUpperCase()] = true;\n this.addFile(file);\n return this;\n }\n isDependency(obj) {\n const filename = obj.getFiles()[0].getFilename().toUpperCase();\n return this.dependencies[filename] === true;\n }\n isFileDependency(filename) {\n return this.dependencies[filename.toUpperCase()] === true;\n }\n // assumption: the file is already in the registry\n findObjectForFile(file) {\n const filename = file.getFilename();\n for (const obj of this.getObjects()) {\n for (const ofile of obj.getFiles()) {\n if (ofile.getFilename() === filename) {\n return obj;\n }\n }\n }\n return undefined;\n }\n // todo, this will be changed to async sometime\n findIssues(input) {\n if (this.isDirty() === true) {\n this.parse();\n }\n return this.runRules(input);\n }\n // todo, this will be changed to async sometime\n findIssuesObject(iobj) {\n if (this.isDirty() === true) {\n this.parse();\n }\n return this.runRules(undefined, iobj);\n }\n // todo, this will be changed to async sometime\n parse() {\n if (this.isDirty() === false) {\n return this;\n }\n ParsingPerformance.clear();\n this.issues = [];\n for (const o of this.getObjects()) {\n this.parsePrivate(o);\n this.issues.push(...o.getParsingIssues());\n }\n new find_global_definitions_1.FindGlobalDefinitions(this).run();\n return this;\n }\n async parseAsync(input) {\n var _a, _b;\n if (this.isDirty() === false) {\n return this;\n }\n ParsingPerformance.clear();\n (_a = input === null || input === void 0 ? void 0 : input.progress) === null || _a === void 0 ? void 0 : _a.set(this.getObjectCount(false), \"Lexing and parsing\");\n this.issues = [];\n for (const o of this.getObjects()) {\n await ((_b = input === null || input === void 0 ? void 0 : input.progress) === null || _b === void 0 ? void 0 : _b.tick(\"Lexing and parsing(\" + this.conf.getVersion() + \") - \" + o.getType() + \" \" + o.getName()));\n this.parsePrivate(o);\n this.issues.push(...o.getParsingIssues());\n }\n if ((input === null || input === void 0 ? void 0 : input.outputPerformance) === true) {\n ParsingPerformance.output();\n }\n new find_global_definitions_1.FindGlobalDefinitions(this).run(input === null || input === void 0 ? void 0 : input.progress);\n return this;\n }\n //////////////////////////////////////////\n // todo, refactor, this is a mess, see where-used, a lot of the code should be in this method instead\n parsePrivate(input) {\n const config = this.getConfig();\n const result = input.parse(config.getVersion(), config.getSyntaxSetttings().globalMacros);\n ParsingPerformance.push(input, result);\n }\n isDirty() {\n for (const o of this.getObjects()) {\n const dirty = o.isDirty();\n if (dirty === true) {\n return true;\n }\n }\n return false;\n }\n runRules(input, iobj) {\n var _a, _b, _c, _d, _e, _f;\n const rulePerformance = {};\n const issues = this.issues.slice(0);\n const objects = iobj ? [iobj] : this.getObjects();\n const rules = this.conf.getEnabledRules();\n const skipLogic = new skip_logic_1.SkipLogic(this);\n (_a = input === null || input === void 0 ? void 0 : input.progress) === null || _a === void 0 ? void 0 : _a.set(iobj ? 1 : this.getObjectCount(false), \"Run Syntax\");\n const check = [];\n for (const obj of objects) {\n (_b = input === null || input === void 0 ? void 0 : input.progress) === null || _b === void 0 ? void 0 : _b.tick(\"Run Syntax - \" + obj.getName());\n if (skipLogic.skip(obj) || this.isDependency(obj)) {\n continue;\n }\n if (obj instanceof _abap_object_1.ABAPObject) {\n new syntax_1.SyntaxLogic(this, obj).run();\n }\n check.push(obj);\n }\n (_c = input === null || input === void 0 ? void 0 : input.progress) === null || _c === void 0 ? void 0 : _c.set(rules.length, \"Initialize Rules\");\n for (const rule of rules) {\n (_d = input === null || input === void 0 ? void 0 : input.progress) === null || _d === void 0 ? void 0 : _d.tick(\"Initialize Rules - \" + rule.getMetadata().key);\n if (rule.initialize === undefined) {\n throw new Error(rule.getMetadata().key + \" missing initialize method\");\n }\n rule.initialize(this);\n rulePerformance[rule.getMetadata().key] = 0;\n }\n (_e = input === null || input === void 0 ? void 0 : input.progress) === null || _e === void 0 ? void 0 : _e.set(check.length, \"Finding Issues\");\n for (const obj of check) {\n (_f = input === null || input === void 0 ? void 0 : input.progress) === null || _f === void 0 ? void 0 : _f.tick(\"Finding Issues - \" + obj.getType() + \" \" + obj.getName());\n for (const rule of rules) {\n const before = Date.now();\n issues.push(...rule.run(obj));\n const runtime = Date.now() - before;\n rulePerformance[rule.getMetadata().key] = rulePerformance[rule.getMetadata().key] + runtime;\n }\n }\n if ((input === null || input === void 0 ? void 0 : input.outputPerformance) === true) {\n const perf = [];\n for (const p in rulePerformance) {\n if (rulePerformance[p] > 100) { // ignore rules if it takes less than 100ms\n perf.push({ name: p, time: rulePerformance[p] });\n }\n }\n perf.sort((a, b) => { return b.time - a.time; });\n for (const p of perf) {\n process.stderr.write(\"\\t\" + p.time + \"ms\\t\" + p.name + \"\\n\");\n }\n }\n return this.excludeIssues(issues);\n }\n excludeIssues(issues) {\n var _a;\n const ret = issues;\n const globalNoIssues = this.conf.getGlobal().noIssues || [];\n const globalNoIssuesPatterns = globalNoIssues.map(x => new RegExp(x, \"i\"));\n if (globalNoIssuesPatterns.length > 0) {\n for (let i = ret.length - 1; i >= 0; i--) {\n const filename = ret[i].getFilename();\n if (excludeHelper_1.ExcludeHelper.isExcluded(filename, globalNoIssuesPatterns)) {\n ret.splice(i, 1);\n }\n }\n }\n // exclude issues, as now we know both the filename and issue key\n for (const rule of artifacts_rules_1.ArtifactsRules.getRules()) {\n const key = rule.getMetadata().key;\n const ruleExclude = (_a = this.conf.readByKey(key, \"exclude\")) !== null && _a !== void 0 ? _a : [];\n if (ruleExclude.length === 0) {\n continue;\n }\n const ruleExcludePatterns = ruleExclude.map(x => new RegExp(x, \"i\"));\n for (let i = ret.length - 1; i >= 0; i--) {\n if (ret[i].getKey() !== key) {\n continue;\n }\n const filename = ret[i].getFilename();\n if (excludeHelper_1.ExcludeHelper.isExcluded(filename, ruleExcludePatterns)) {\n ret.splice(i, 1);\n }\n }\n }\n return ret;\n }\n findOrCreate(name, type) {\n try {\n return this.find(name, type);\n }\n catch (_a) {\n const newName = name.toUpperCase();\n const newType = type ? type : \"UNKNOWN\";\n const add = artifacts_objects_1.ArtifactsObjects.newObject(newName, newType);\n if (this.objects[newName] === undefined) {\n this.objects[newName] = {};\n }\n this.objects[newName][newType] = add;\n if (this.objectsByType[newType] === undefined) {\n this.objectsByType[newType] = {};\n }\n this.objectsByType[newType][newName] = add;\n return add;\n }\n }\n removeObject(remove) {\n if (remove === undefined) {\n return;\n }\n if (this.objects[remove.getName()][remove.getType()] === undefined) {\n throw new Error(\"removeObject: object not found\");\n }\n if (Object.keys(this.objects[remove.getName()]).length === 1) {\n delete this.objects[remove.getName()];\n }\n else {\n delete this.objects[remove.getName()][remove.getType()];\n }\n if (Object.keys(this.objectsByType[remove.getType()]).length === 1) {\n delete this.objectsByType[remove.getType()];\n }\n else {\n delete this.objectsByType[remove.getType()][remove.getName()];\n }\n }\n find(name, type) {\n const searchType = type ? type : \"UNKNOWN\";\n const searchName = name.toUpperCase();\n if (this.objects[searchName] !== undefined\n && this.objects[searchName][searchType]) {\n return this.objects[searchName][searchType];\n }\n throw new Error(\"find: object not found, \" + type + \" \" + name);\n }\n}\nexports.Registry = Registry;\n//# sourceMappingURL=registry.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/registry.js?");
|
|
10954
11119
|
|
|
10955
11120
|
/***/ }),
|
|
10956
11121
|
|
|
@@ -10961,7 +11126,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
|
|
|
10961
11126
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
10962
11127
|
|
|
10963
11128
|
"use strict";
|
|
10964
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.SevenBitAscii = exports.SevenBitAsciiConf = void 0;\r\nconst issue_1 = __webpack_require__(/*! ../issue */ \"./node_modules/@abaplint/core/build/src/issue.js\");\r\nconst position_1 = __webpack_require__(/*! ../position */ \"./node_modules/@abaplint/core/build/src/position.js\");\r\nconst _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ \"./node_modules/@abaplint/core/build/src/rules/_basic_rule_config.js\");\r\nconst _irule_1 = __webpack_require__(/*! ./_irule */ \"./node_modules/@abaplint/core/build/src/rules/_irule.js\");\r\nclass SevenBitAsciiConf extends _basic_rule_config_1.BasicRuleConfig {\r\n}\r\nexports.SevenBitAsciiConf = SevenBitAsciiConf;\r\nclass SevenBitAscii {\r\n constructor() {\r\n this.conf = new SevenBitAsciiConf();\r\n }\r\n getMetadata() {\r\n return {\r\n key: \"7bit_ascii\",\r\n title: \"Check for 7bit ascii\",\r\n shortDescription: `Only allow characters from the 7bit ASCII set.`,\r\n extendedInformation: `https://docs.abapopenchecks.org/checks/05
|
|
11129
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.SevenBitAscii = exports.SevenBitAsciiConf = void 0;\r\nconst issue_1 = __webpack_require__(/*! ../issue */ \"./node_modules/@abaplint/core/build/src/issue.js\");\r\nconst position_1 = __webpack_require__(/*! ../position */ \"./node_modules/@abaplint/core/build/src/position.js\");\r\nconst _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ \"./node_modules/@abaplint/core/build/src/rules/_basic_rule_config.js\");\r\nconst _irule_1 = __webpack_require__(/*! ./_irule */ \"./node_modules/@abaplint/core/build/src/rules/_irule.js\");\r\nclass SevenBitAsciiConf extends _basic_rule_config_1.BasicRuleConfig {\r\n}\r\nexports.SevenBitAsciiConf = SevenBitAsciiConf;\r\nclass SevenBitAscii {\r\n constructor() {\r\n this.conf = new SevenBitAsciiConf();\r\n }\r\n getMetadata() {\r\n return {\r\n key: \"7bit_ascii\",\r\n title: \"Check for 7bit ascii\",\r\n shortDescription: `Only allow characters from the 7bit ASCII set.`,\r\n extendedInformation: `https://docs.abapopenchecks.org/checks/05/\n\nCheckes files with extension \".abap\" and \".asddls\"`,\r\n tags: [_irule_1.RuleTag.SingleFile],\r\n };\r\n }\r\n initialize(_reg) {\r\n return this;\r\n }\r\n getConfig() {\r\n return this.conf;\r\n }\r\n setConfig(conf) {\r\n this.conf = conf;\r\n }\r\n run(obj) {\r\n const output = [];\r\n for (const file of obj.getFiles()) {\r\n const filename = file.getFilename();\r\n if (filename.endsWith(\".abap\") || filename.endsWith(\".asddls\")) {\r\n const rows = file.getRawRows();\r\n for (let i = 0; i < rows.length; i++) {\r\n const found = /[\\u007f-\\uffff]/.exec(rows[i]);\r\n if (found !== null) {\r\n const column = found.index + 1;\r\n const start = new position_1.Position(i + 1, column);\r\n const end = new position_1.Position(i + 1, column + 1);\r\n const message = \"Contains non 7 bit ascii character\";\r\n const issue = issue_1.Issue.atRange(file, start, end, message, this.getMetadata().key, this.conf.severity);\r\n output.push(issue);\r\n }\r\n // method getRawRows() splits by newline, so the carraige return\r\n // should always be last character if present\r\n const carriage = /\\r.+$/.exec(rows[i]);\r\n if (carriage !== null) {\r\n const column = carriage.index + 1;\r\n const start = new position_1.Position(i + 1, column);\r\n const end = new position_1.Position(i + 1, column + 1);\r\n const message = \"Dangling carriage return\";\r\n const issue = issue_1.Issue.atRange(file, start, end, message, this.getMetadata().key, this.conf.severity);\r\n output.push(issue);\r\n }\r\n }\r\n }\r\n }\r\n return output;\r\n }\r\n}\r\nexports.SevenBitAscii = SevenBitAscii;\r\n//# sourceMappingURL=7bit_ascii.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/rules/7bit_ascii.js?");
|
|
10965
11130
|
|
|
10966
11131
|
/***/ }),
|
|
10967
11132
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/cli",
|
|
3
|
-
"version": "2.83.
|
|
3
|
+
"version": "2.83.7",
|
|
4
4
|
"description": "abaplint - Command Line Interface",
|
|
5
5
|
"bin": {
|
|
6
6
|
"abaplint": "./abaplint"
|
|
@@ -39,12 +39,12 @@
|
|
|
39
39
|
},
|
|
40
40
|
"homepage": "https://abaplint.org",
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@abaplint/core": "^2.83.
|
|
42
|
+
"@abaplint/core": "^2.83.7",
|
|
43
43
|
"@types/chai": "^4.3.0",
|
|
44
44
|
"@types/glob": "^7.2.0",
|
|
45
45
|
"@types/minimist": "^1.2.2",
|
|
46
46
|
"@types/mocha": "^9.0.0",
|
|
47
|
-
"@types/node": "^17.0.
|
|
47
|
+
"@types/node": "^17.0.5",
|
|
48
48
|
"@types/progress": "^2.0.5",
|
|
49
49
|
"chai": "^4.3.4",
|
|
50
50
|
"chalk": "=4.1.2",
|