@abaplint/cli 2.94.20 → 2.94.21

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.
Files changed (2) hide show
  1. package/build/cli.js +6 -6
  2. package/package.json +2 -2
package/build/cli.js CHANGED
@@ -9740,7 +9740,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
9740
9740
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9741
9741
 
9742
9742
  "use strict";
9743
- eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSDefineCustom = 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_type_1 = __webpack_require__(/*! ./cds_type */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_type.js\");\r\nclass CDSDefineCustom extends combi_1.Expression {\r\n getRunnable() {\r\n const field = (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), (0, combi_1.opt)((0, combi_1.str)(\"KEY\")), cds_name_1.CDSName, \":\", cds_type_1.CDSType, \";\");\r\n return (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), (0, combi_1.str)(\"DEFINE ROOT CUSTOM 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.CDSDefineCustom = CDSDefineCustom;\r\n//# sourceMappingURL=cds_define_custom.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_define_custom.js?");
9743
+ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CDSDefineCustom = 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_type_1 = __webpack_require__(/*! ./cds_type */ \"./node_modules/@abaplint/core/build/src/cds/expressions/cds_type.js\");\r\nclass CDSDefineCustom extends combi_1.Expression {\r\n getRunnable() {\r\n const field = (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), (0, combi_1.opt)((0, combi_1.str)(\"KEY\")), cds_name_1.CDSName, \":\", cds_type_1.CDSType, \";\");\r\n return (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), (0, combi_1.str)(\"DEFINE\"), (0, combi_1.opt)((0, combi_1.str)(\"ROOT\")), (0, combi_1.str)(\"CUSTOM 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.CDSDefineCustom = CDSDefineCustom;\r\n//# sourceMappingURL=cds_define_custom.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/cds/expressions/cds_define_custom.js?");
9744
9744
 
9745
9745
  /***/ }),
9746
9746
 
@@ -10400,7 +10400,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
10400
10400
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
10401
10401
 
10402
10402
  "use strict";
10403
- eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.AuthorizationCheckField = void 0;\r\nconst basic_1 = __webpack_require__(/*! ../abap/types/basic */ \"./node_modules/@abaplint/core/build/src/abap/types/basic/index.js\");\r\nconst ddic_1 = __webpack_require__(/*! ../ddic */ \"./node_modules/@abaplint/core/build/src/ddic.js\");\r\nconst _abstract_object_1 = __webpack_require__(/*! ./_abstract_object */ \"./node_modules/@abaplint/core/build/src/objects/_abstract_object.js\");\r\nclass AuthorizationCheckField extends _abstract_object_1.AbstractObject {\r\n getType() {\r\n return \"AUTH\";\r\n }\r\n getAllowedNaming() {\r\n return {\r\n maxLength: 30,\r\n allowNamespace: true,\r\n };\r\n }\r\n getDescription() {\r\n // todo\r\n return undefined;\r\n }\r\n getDataElementName() {\r\n var _a;\r\n this.parse();\r\n return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.rollname;\r\n }\r\n parseType(reg) {\r\n var _a;\r\n this.parse();\r\n const references = [];\r\n const ddic = new ddic_1.DDIC(reg);\r\n if ((_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.rollname) {\r\n const found = ddic.lookupDataElement(this.parsedXML.rollname);\r\n if (found.object) {\r\n references.push({ object: found.object });\r\n reg.getDDICReferences().setUsing(this, references);\r\n return found.type;\r\n }\r\n else if (ddic.inErrorNamespace(this.parsedXML.rollname)) {\r\n return new basic_1.UnknownType(this.parsedXML.rollname + \" not found\");\r\n }\r\n else {\r\n return new basic_1.VoidType(this.parsedXML.rollname);\r\n }\r\n }\r\n else {\r\n return new basic_1.UnknownType(\"Parsing error\");\r\n }\r\n }\r\n parse() {\r\n var _a;\r\n if (this.parsedXML) {\r\n return { updated: false, runtime: 0 };\r\n }\r\n const start = Date.now();\r\n this.parsedXML = {};\r\n const parsed = super.parseRaw2();\r\n if (parsed === undefined\r\n || parsed.abapGit === undefined\r\n || parsed.abapGit[\"asx:abap\"][\"asx:values\"] === undefined) {\r\n return { updated: false, runtime: 0 };\r\n }\r\n this.parsedXML.rollname = (_a = parsed.abapGit[\"asx:abap\"][\"asx:values\"].AUTHX) === null || _a === void 0 ? void 0 : _a.ROLLNAME;\r\n const end = Date.now();\r\n return { updated: true, runtime: end - start };\r\n }\r\n}\r\nexports.AuthorizationCheckField = AuthorizationCheckField;\r\n//# sourceMappingURL=authorization_check_field.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/objects/authorization_check_field.js?");
10403
+ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.AuthorizationCheckField = void 0;\r\nconst basic_1 = __webpack_require__(/*! ../abap/types/basic */ \"./node_modules/@abaplint/core/build/src/abap/types/basic/index.js\");\r\nconst ddic_1 = __webpack_require__(/*! ../ddic */ \"./node_modules/@abaplint/core/build/src/ddic.js\");\r\nconst _abstract_object_1 = __webpack_require__(/*! ./_abstract_object */ \"./node_modules/@abaplint/core/build/src/objects/_abstract_object.js\");\r\nclass AuthorizationCheckField extends _abstract_object_1.AbstractObject {\r\n getType() {\r\n return \"AUTH\";\r\n }\r\n getAllowedNaming() {\r\n return {\r\n maxLength: 30,\r\n allowNamespace: true,\r\n };\r\n }\r\n setDirty() {\r\n this.parsedXML = undefined;\r\n super.setDirty();\r\n }\r\n getDescription() {\r\n // todo\r\n return undefined;\r\n }\r\n getDataElementName() {\r\n var _a;\r\n this.parse();\r\n return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.rollname;\r\n }\r\n parseType(reg) {\r\n var _a;\r\n this.parse();\r\n const references = [];\r\n const ddic = new ddic_1.DDIC(reg);\r\n if ((_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.rollname) {\r\n const found = ddic.lookupDataElement(this.parsedXML.rollname);\r\n if (found.object) {\r\n references.push({ object: found.object });\r\n reg.getDDICReferences().setUsing(this, references);\r\n return found.type;\r\n }\r\n else if (ddic.inErrorNamespace(this.parsedXML.rollname)) {\r\n return new basic_1.UnknownType(this.parsedXML.rollname + \" not found\");\r\n }\r\n else {\r\n return new basic_1.VoidType(this.parsedXML.rollname);\r\n }\r\n }\r\n else {\r\n return new basic_1.UnknownType(\"Parsing error\");\r\n }\r\n }\r\n parse() {\r\n var _a;\r\n if (this.parsedXML) {\r\n return { updated: false, runtime: 0 };\r\n }\r\n const start = Date.now();\r\n this.parsedXML = {};\r\n const parsed = super.parseRaw2();\r\n if (parsed === undefined\r\n || parsed.abapGit === undefined\r\n || parsed.abapGit[\"asx:abap\"][\"asx:values\"] === undefined) {\r\n return { updated: false, runtime: 0 };\r\n }\r\n this.parsedXML.rollname = (_a = parsed.abapGit[\"asx:abap\"][\"asx:values\"].AUTHX) === null || _a === void 0 ? void 0 : _a.ROLLNAME;\r\n const end = Date.now();\r\n return { updated: true, runtime: end - start };\r\n }\r\n}\r\nexports.AuthorizationCheckField = AuthorizationCheckField;\r\n//# sourceMappingURL=authorization_check_field.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/objects/authorization_check_field.js?");
10404
10404
 
10405
10405
  /***/ }),
10406
10406
 
@@ -11148,7 +11148,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
11148
11148
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
11149
11149
 
11150
11150
  "use strict";
11151
- eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.LockObject = void 0;\r\nconst basic_1 = __webpack_require__(/*! ../abap/types/basic */ \"./node_modules/@abaplint/core/build/src/abap/types/basic/index.js\");\r\nconst ddic_1 = __webpack_require__(/*! ../ddic */ \"./node_modules/@abaplint/core/build/src/ddic.js\");\r\nconst _abstract_object_1 = __webpack_require__(/*! ./_abstract_object */ \"./node_modules/@abaplint/core/build/src/objects/_abstract_object.js\");\r\nclass LockObject extends _abstract_object_1.AbstractObject {\r\n getType() {\r\n return \"ENQU\";\r\n }\r\n getAllowedNaming() {\r\n return {\r\n maxLength: 16,\r\n allowNamespace: true,\r\n };\r\n }\r\n getPrimaryTable() {\r\n var _a;\r\n this.parse();\r\n return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.primaryTable;\r\n }\r\n parseType(reg) {\r\n var _a;\r\n this.parse();\r\n const references = [];\r\n const ddic = new ddic_1.DDIC(reg);\r\n if ((_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.primaryTable) {\r\n const found = ddic.lookupTableOrView2(this.parsedXML.primaryTable);\r\n if (found) {\r\n references.push({ object: found });\r\n reg.getDDICReferences().setUsing(this, references);\r\n return found.parseType(reg);\r\n }\r\n else if (ddic.inErrorNamespace(this.parsedXML.primaryTable)) {\r\n return new basic_1.UnknownType(this.parsedXML.primaryTable + \" not found\");\r\n }\r\n else {\r\n return new basic_1.VoidType(this.parsedXML.primaryTable);\r\n }\r\n }\r\n else {\r\n return new basic_1.UnknownType(\"Parsing error\");\r\n }\r\n }\r\n parse() {\r\n var _a, _b;\r\n if (this.parsedXML) {\r\n return { updated: false, runtime: 0 };\r\n }\r\n const start = Date.now();\r\n this.parsedXML = {};\r\n const parsed = super.parseRaw2();\r\n if (parsed === undefined\r\n || parsed.abapGit === undefined\r\n || parsed.abapGit[\"asx:abap\"][\"asx:values\"] === undefined) {\r\n return { updated: false, runtime: 0 };\r\n }\r\n this.parsedXML.primaryTable = (_a = parsed.abapGit[\"asx:abap\"][\"asx:values\"].DD25V) === null || _a === void 0 ? void 0 : _a.ROOTTAB;\r\n this.parsedXML.description = (_b = parsed.abapGit[\"asx:abap\"][\"asx:values\"].DD25V) === null || _b === void 0 ? void 0 : _b.DDTEXT;\r\n const end = Date.now();\r\n return { updated: true, runtime: end - start };\r\n }\r\n getDescription() {\r\n var _a;\r\n this.parse();\r\n return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.description;\r\n }\r\n}\r\nexports.LockObject = LockObject;\r\n//# sourceMappingURL=lock_object.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/objects/lock_object.js?");
11151
+ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.LockObject = void 0;\r\nconst basic_1 = __webpack_require__(/*! ../abap/types/basic */ \"./node_modules/@abaplint/core/build/src/abap/types/basic/index.js\");\r\nconst ddic_1 = __webpack_require__(/*! ../ddic */ \"./node_modules/@abaplint/core/build/src/ddic.js\");\r\nconst _abstract_object_1 = __webpack_require__(/*! ./_abstract_object */ \"./node_modules/@abaplint/core/build/src/objects/_abstract_object.js\");\r\nclass LockObject extends _abstract_object_1.AbstractObject {\r\n getType() {\r\n return \"ENQU\";\r\n }\r\n getAllowedNaming() {\r\n return {\r\n maxLength: 16,\r\n allowNamespace: true,\r\n };\r\n }\r\n setDirty() {\r\n this.parsedXML = undefined;\r\n super.setDirty();\r\n }\r\n getPrimaryTable() {\r\n var _a;\r\n this.parse();\r\n return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.primaryTable;\r\n }\r\n parseType(reg) {\r\n var _a;\r\n this.parse();\r\n const references = [];\r\n const ddic = new ddic_1.DDIC(reg);\r\n if ((_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.primaryTable) {\r\n const found = ddic.lookupTableOrView2(this.parsedXML.primaryTable);\r\n if (found) {\r\n references.push({ object: found });\r\n reg.getDDICReferences().setUsing(this, references);\r\n return found.parseType(reg);\r\n }\r\n else if (ddic.inErrorNamespace(this.parsedXML.primaryTable)) {\r\n return new basic_1.UnknownType(this.parsedXML.primaryTable + \" not found\");\r\n }\r\n else {\r\n return new basic_1.VoidType(this.parsedXML.primaryTable);\r\n }\r\n }\r\n else {\r\n return new basic_1.UnknownType(\"Parsing error\");\r\n }\r\n }\r\n parse() {\r\n var _a, _b;\r\n if (this.parsedXML) {\r\n return { updated: false, runtime: 0 };\r\n }\r\n const start = Date.now();\r\n this.parsedXML = {};\r\n const parsed = super.parseRaw2();\r\n if (parsed === undefined\r\n || parsed.abapGit === undefined\r\n || parsed.abapGit[\"asx:abap\"][\"asx:values\"] === undefined) {\r\n return { updated: false, runtime: 0 };\r\n }\r\n this.parsedXML.primaryTable = (_a = parsed.abapGit[\"asx:abap\"][\"asx:values\"].DD25V) === null || _a === void 0 ? void 0 : _a.ROOTTAB;\r\n this.parsedXML.description = (_b = parsed.abapGit[\"asx:abap\"][\"asx:values\"].DD25V) === null || _b === void 0 ? void 0 : _b.DDTEXT;\r\n const end = Date.now();\r\n return { updated: true, runtime: end - start };\r\n }\r\n getDescription() {\r\n var _a;\r\n this.parse();\r\n return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.description;\r\n }\r\n}\r\nexports.LockObject = LockObject;\r\n//# sourceMappingURL=lock_object.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/objects/lock_object.js?");
11152
11152
 
11153
11153
  /***/ }),
11154
11154
 
@@ -11159,7 +11159,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
11159
11159
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
11160
11160
 
11161
11161
  "use strict";
11162
- eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.MaintenanceAndTransportObject = void 0;\r\nconst _abstract_object_1 = __webpack_require__(/*! ./_abstract_object */ \"./node_modules/@abaplint/core/build/src/objects/_abstract_object.js\");\r\nclass MaintenanceAndTransportObject extends _abstract_object_1.AbstractObject {\r\n constructor() {\r\n super(...arguments);\r\n this.area = undefined;\r\n }\r\n setDirty() {\r\n super.setDirty();\r\n this.area = undefined;\r\n }\r\n getType() {\r\n return \"TOBJ\";\r\n }\r\n getDescription() {\r\n // todo\r\n return undefined;\r\n }\r\n getAllowedNaming() {\r\n return {\r\n maxLength: 31,\r\n allowNamespace: true,\r\n };\r\n }\r\n getArea() {\r\n if (this.area === undefined) {\r\n this.parseXML();\r\n }\r\n return this.area;\r\n }\r\n ////////////\r\n parseXML() {\r\n if (this.getFiles().length === 0) {\r\n return;\r\n }\r\n const xml = this.getFiles()[0].getRaw();\r\n const result = xml.match(/<AREA>([\\w/]+)<\\/AREA>/);\r\n if (result) {\r\n this.area = result[1];\r\n }\r\n }\r\n}\r\nexports.MaintenanceAndTransportObject = MaintenanceAndTransportObject;\r\n//# sourceMappingURL=maintenance_and_transport_object.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/objects/maintenance_and_transport_object.js?");
11162
+ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.MaintenanceAndTransportObject = void 0;\r\nconst basic_1 = __webpack_require__(/*! ../abap/types/basic */ \"./node_modules/@abaplint/core/build/src/abap/types/basic/index.js\");\r\nconst ddic_1 = __webpack_require__(/*! ../ddic */ \"./node_modules/@abaplint/core/build/src/ddic.js\");\r\nconst _abstract_object_1 = __webpack_require__(/*! ./_abstract_object */ \"./node_modules/@abaplint/core/build/src/objects/_abstract_object.js\");\r\nclass MaintenanceAndTransportObject extends _abstract_object_1.AbstractObject {\r\n setDirty() {\r\n super.setDirty();\r\n this.parsedXML = undefined;\r\n }\r\n getType() {\r\n return \"TOBJ\";\r\n }\r\n getDescription() {\r\n // todo\r\n return undefined;\r\n }\r\n getAllowedNaming() {\r\n return {\r\n maxLength: 31,\r\n allowNamespace: true,\r\n };\r\n }\r\n getArea() {\r\n var _a;\r\n this.parse();\r\n return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.area;\r\n }\r\n getObjectName() {\r\n var _a;\r\n this.parse();\r\n return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.objectName;\r\n }\r\n getObjectType() {\r\n var _a;\r\n this.parse();\r\n return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.objectType;\r\n }\r\n parseType(reg) {\r\n var _a, _b, _c;\r\n this.parse();\r\n const references = [];\r\n const ddic = new ddic_1.DDIC(reg);\r\n if (((_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.objectName) && this.parsedXML.objectType === \"S\") {\r\n const found = ddic.lookupTableOrView2(this.parsedXML.objectName);\r\n if (found) {\r\n references.push({ object: found });\r\n reg.getDDICReferences().setUsing(this, references);\r\n return found.parseType(reg);\r\n }\r\n else if (ddic.inErrorNamespace(this.parsedXML.objectName)) {\r\n return new basic_1.UnknownType(this.parsedXML.objectName + \" not found\");\r\n }\r\n else {\r\n return new basic_1.VoidType(this.parsedXML.objectName);\r\n }\r\n }\r\n else if (((_b = this.parsedXML) === null || _b === void 0 ? void 0 : _b.objectType) !== \"S\" && ((_c = this.parsedXML) === null || _c === void 0 ? void 0 : _c.objectName)) {\r\n return new basic_1.VoidType(this.parsedXML.objectName);\r\n }\r\n else {\r\n return new basic_1.UnknownType(\"Parsing error\");\r\n }\r\n }\r\n parse() {\r\n var _a, _b, _c, _d;\r\n if (this.parsedXML) {\r\n return { updated: false, runtime: 0 };\r\n }\r\n const start = Date.now();\r\n this.parsedXML = {};\r\n const parsed = super.parseRaw2();\r\n if (parsed === undefined\r\n || parsed.abapGit === undefined\r\n || parsed.abapGit[\"asx:abap\"][\"asx:values\"] === undefined) {\r\n return { updated: false, runtime: 0 };\r\n }\r\n this.parsedXML.area = (_b = (_a = parsed.abapGit[\"asx:abap\"][\"asx:values\"].TOBJ) === null || _a === void 0 ? void 0 : _a.TVDIR) === null || _b === void 0 ? void 0 : _b.AREA;\r\n this.parsedXML.objectName = (_c = parsed.abapGit[\"asx:abap\"][\"asx:values\"].OBJH) === null || _c === void 0 ? void 0 : _c.OBJECTNAME;\r\n this.parsedXML.objectType = (_d = parsed.abapGit[\"asx:abap\"][\"asx:values\"].OBJH) === null || _d === void 0 ? void 0 : _d.OBJECTTYPE;\r\n const end = Date.now();\r\n return { updated: true, runtime: end - start };\r\n }\r\n}\r\nexports.MaintenanceAndTransportObject = MaintenanceAndTransportObject;\r\n//# sourceMappingURL=maintenance_and_transport_object.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/objects/maintenance_and_transport_object.js?");
11163
11163
 
11164
11164
  /***/ }),
11165
11165
 
@@ -11775,7 +11775,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
11775
11775
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
11776
11776
 
11777
11777
  "use strict";
11778
- 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 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 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\");\nconst rules_runner_1 = __webpack_require__(/*! ./rules_runner */ \"./node_modules/@abaplint/core/build/src/rules_runner.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 this.dependencies = {};\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.94.20\";\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 // todo: performance? cache regexp?\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, dependency) {\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 let found = this.findOrCreate(f.getObjectName(), f.getObjectType());\n if (dependency === false && found && this.isDependency(found)) {\n this.removeDependency(found);\n found = this.findOrCreate(f.getObjectName(), f.getObjectType());\n }\n found.addFile(f);\n }\n return this;\n }\n addFiles(files) {\n this._addFiles(files, false);\n return this;\n }\n addDependencies(files) {\n for (const f of files) {\n this.addDependency(f);\n }\n return this;\n }\n addDependency(file) {\n var _a;\n const type = (_a = file.getObjectType()) === null || _a === void 0 ? void 0 : _a.toUpperCase();\n if (type === undefined) {\n return this;\n }\n const name = file.getObjectName().toUpperCase();\n if (this.dependencies[type] === undefined) {\n this.dependencies[type] = {};\n }\n this.dependencies[type][name] = true;\n this._addFiles([file], true);\n return this;\n }\n removeDependency(obj) {\n var _a;\n (_a = this.dependencies[obj.getType()]) === null || _a === void 0 ? true : delete _a[obj.getName()];\n this.removeObject(obj);\n }\n isDependency(obj) {\n var _a;\n return ((_a = this.dependencies[obj.getType()]) === null || _a === void 0 ? void 0 : _a[obj.getName()]) === true;\n }\n isFileDependency(filename) {\n var _a, _b;\n const f = this.getFileByName(filename);\n if (f === undefined) {\n return false;\n }\n const type = (_a = f.getObjectType()) === null || _a === void 0 ? void 0 : _a.toUpperCase();\n if (type === undefined) {\n return false;\n }\n const name = f.getObjectName().toUpperCase();\n return ((_b = this.dependencies[type]) === null || _b === void 0 ? void 0 : _b[name]) === 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 new rules_runner_1.RulesRunner(this).runRules(this.getObjects(), 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 new rules_runner_1.RulesRunner(this).runRules([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 for (const o of this.getObjects()) {\n this.parsePrivate(o);\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 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 }\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, this);\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 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?");
11778
+ 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 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 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\");\nconst rules_runner_1 = __webpack_require__(/*! ./rules_runner */ \"./node_modules/@abaplint/core/build/src/rules_runner.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 this.dependencies = {};\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.94.21\";\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 // todo: performance? cache regexp?\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, dependency) {\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 let found = this.findOrCreate(f.getObjectName(), f.getObjectType());\n if (dependency === false && found && this.isDependency(found)) {\n this.removeDependency(found);\n found = this.findOrCreate(f.getObjectName(), f.getObjectType());\n }\n found.addFile(f);\n }\n return this;\n }\n addFiles(files) {\n this._addFiles(files, false);\n return this;\n }\n addDependencies(files) {\n for (const f of files) {\n this.addDependency(f);\n }\n return this;\n }\n addDependency(file) {\n var _a;\n const type = (_a = file.getObjectType()) === null || _a === void 0 ? void 0 : _a.toUpperCase();\n if (type === undefined) {\n return this;\n }\n const name = file.getObjectName().toUpperCase();\n if (this.dependencies[type] === undefined) {\n this.dependencies[type] = {};\n }\n this.dependencies[type][name] = true;\n this._addFiles([file], true);\n return this;\n }\n removeDependency(obj) {\n var _a;\n (_a = this.dependencies[obj.getType()]) === null || _a === void 0 ? true : delete _a[obj.getName()];\n this.removeObject(obj);\n }\n isDependency(obj) {\n var _a;\n return ((_a = this.dependencies[obj.getType()]) === null || _a === void 0 ? void 0 : _a[obj.getName()]) === true;\n }\n isFileDependency(filename) {\n var _a, _b;\n const f = this.getFileByName(filename);\n if (f === undefined) {\n return false;\n }\n const type = (_a = f.getObjectType()) === null || _a === void 0 ? void 0 : _a.toUpperCase();\n if (type === undefined) {\n return false;\n }\n const name = f.getObjectName().toUpperCase();\n return ((_b = this.dependencies[type]) === null || _b === void 0 ? void 0 : _b[name]) === 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 new rules_runner_1.RulesRunner(this).runRules(this.getObjects(), 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 new rules_runner_1.RulesRunner(this).runRules([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 for (const o of this.getObjects()) {\n this.parsePrivate(o);\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 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 }\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, this);\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 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?");
11779
11779
 
11780
11780
  /***/ }),
11781
11781
 
@@ -12017,7 +12017,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
12017
12017
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
12018
12018
 
12019
12019
  "use strict";
12020
- eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CheckDDIC = exports.CheckDDICConf = void 0;\r\nconst _irule_1 = __webpack_require__(/*! ./_irule */ \"./node_modules/@abaplint/core/build/src/rules/_irule.js\");\r\nconst issue_1 = __webpack_require__(/*! ../issue */ \"./node_modules/@abaplint/core/build/src/issue.js\");\r\nconst Objects = __webpack_require__(/*! ../objects */ \"./node_modules/@abaplint/core/build/src/objects/index.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 position_1 = __webpack_require__(/*! ../position */ \"./node_modules/@abaplint/core/build/src/position.js\");\r\nconst basic_1 = __webpack_require__(/*! ../abap/types/basic */ \"./node_modules/@abaplint/core/build/src/abap/types/basic/index.js\");\r\nconst _typed_identifier_1 = __webpack_require__(/*! ../abap/types/_typed_identifier */ \"./node_modules/@abaplint/core/build/src/abap/types/_typed_identifier.js\");\r\nclass CheckDDICConf extends _basic_rule_config_1.BasicRuleConfig {\r\n}\r\nexports.CheckDDICConf = CheckDDICConf;\r\nclass CheckDDIC {\r\n constructor() {\r\n this.conf = new CheckDDICConf();\r\n }\r\n getMetadata() {\r\n return {\r\n key: \"check_ddic\",\r\n title: \"Check DDIC\",\r\n // eslint-disable-next-line max-len\r\n shortDescription: `Checks the types of DDIC objects can be resolved, the namespace of the development/errors can be configured in \"errorNamespace\" `,\r\n tags: [_irule_1.RuleTag.Syntax],\r\n };\r\n }\r\n initialize(reg) {\r\n this.reg = 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 let found = undefined;\r\n if (obj instanceof Objects.DataElement\r\n || obj instanceof Objects.Domain\r\n || obj instanceof Objects.Table\r\n || obj instanceof Objects.View\r\n || obj instanceof Objects.AuthorizationCheckField\r\n || obj instanceof Objects.LockObject\r\n || obj instanceof Objects.TableType) {\r\n found = obj.parseType(this.reg);\r\n }\r\n else {\r\n return [];\r\n }\r\n return this.check(found, obj);\r\n }\r\n check(found, obj) {\r\n const ret = [];\r\n if (found instanceof basic_1.UnknownType) {\r\n const position = new position_1.Position(1, 1);\r\n const message = \"Unknown/un-resolveable type in \" + obj.getName() + \": \" + found.getError();\r\n ret.push(issue_1.Issue.atPosition(obj.getFiles()[0], position, message, this.getMetadata().key, this.conf.severity));\r\n }\r\n else if (found instanceof basic_1.StructureType) {\r\n // assumption: no circular types\r\n for (const c of found.getComponents()) {\r\n ret.push(...this.check(c.type instanceof _typed_identifier_1.TypedIdentifier ? c.type.getType() : c.type, obj));\r\n }\r\n }\r\n else if (found instanceof basic_1.TableType) {\r\n ret.push(...this.check(found.getRowType(), obj));\r\n }\r\n // todo, reference types?\r\n return ret;\r\n }\r\n}\r\nexports.CheckDDIC = CheckDDIC;\r\n//# sourceMappingURL=check_ddic.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/rules/check_ddic.js?");
12020
+ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.CheckDDIC = exports.CheckDDICConf = void 0;\r\nconst _irule_1 = __webpack_require__(/*! ./_irule */ \"./node_modules/@abaplint/core/build/src/rules/_irule.js\");\r\nconst issue_1 = __webpack_require__(/*! ../issue */ \"./node_modules/@abaplint/core/build/src/issue.js\");\r\nconst Objects = __webpack_require__(/*! ../objects */ \"./node_modules/@abaplint/core/build/src/objects/index.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 position_1 = __webpack_require__(/*! ../position */ \"./node_modules/@abaplint/core/build/src/position.js\");\r\nconst basic_1 = __webpack_require__(/*! ../abap/types/basic */ \"./node_modules/@abaplint/core/build/src/abap/types/basic/index.js\");\r\nconst _typed_identifier_1 = __webpack_require__(/*! ../abap/types/_typed_identifier */ \"./node_modules/@abaplint/core/build/src/abap/types/_typed_identifier.js\");\r\nclass CheckDDICConf extends _basic_rule_config_1.BasicRuleConfig {\r\n}\r\nexports.CheckDDICConf = CheckDDICConf;\r\nclass CheckDDIC {\r\n constructor() {\r\n this.conf = new CheckDDICConf();\r\n }\r\n getMetadata() {\r\n return {\r\n key: \"check_ddic\",\r\n title: \"Check DDIC\",\r\n // eslint-disable-next-line max-len\r\n shortDescription: `Checks the types of DDIC objects can be resolved, the namespace of the development/errors can be configured in \"errorNamespace\" `,\r\n tags: [_irule_1.RuleTag.Syntax],\r\n };\r\n }\r\n initialize(reg) {\r\n this.reg = 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 let found = undefined;\r\n if (obj instanceof Objects.DataElement\r\n || obj instanceof Objects.Domain\r\n || obj instanceof Objects.Table\r\n || obj instanceof Objects.View\r\n || obj instanceof Objects.AuthorizationCheckField\r\n || obj instanceof Objects.LockObject\r\n || obj instanceof Objects.MaintenanceAndTransportObject\r\n || obj instanceof Objects.TableType) {\r\n found = obj.parseType(this.reg);\r\n }\r\n else {\r\n return [];\r\n }\r\n return this.check(found, obj);\r\n }\r\n check(found, obj) {\r\n const ret = [];\r\n if (found instanceof basic_1.UnknownType) {\r\n const position = new position_1.Position(1, 1);\r\n const message = \"Unknown/un-resolveable type in \" + obj.getName() + \": \" + found.getError();\r\n ret.push(issue_1.Issue.atPosition(obj.getFiles()[0], position, message, this.getMetadata().key, this.conf.severity));\r\n }\r\n else if (found instanceof basic_1.StructureType) {\r\n // assumption: no circular types\r\n for (const c of found.getComponents()) {\r\n ret.push(...this.check(c.type instanceof _typed_identifier_1.TypedIdentifier ? c.type.getType() : c.type, obj));\r\n }\r\n }\r\n else if (found instanceof basic_1.TableType) {\r\n ret.push(...this.check(found.getRowType(), obj));\r\n }\r\n // todo, reference types?\r\n return ret;\r\n }\r\n}\r\nexports.CheckDDIC = CheckDDIC;\r\n//# sourceMappingURL=check_ddic.js.map\n\n//# sourceURL=webpack://@abaplint/cli/./node_modules/@abaplint/core/build/src/rules/check_ddic.js?");
12021
12021
 
12022
12022
  /***/ }),
12023
12023
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/cli",
3
- "version": "2.94.20",
3
+ "version": "2.94.21",
4
4
  "description": "abaplint - Command Line Interface",
5
5
  "bin": {
6
6
  "abaplint": "./abaplint"
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "homepage": "https://abaplint.org",
39
39
  "devDependencies": {
40
- "@abaplint/core": "^2.94.20",
40
+ "@abaplint/core": "^2.94.21",
41
41
  "@types/chai": "^4.3.4",
42
42
  "@types/glob": "^7.2.0",
43
43
  "@types/minimist": "^1.2.2",