All files / output zcl_abapgit_utils.clas.mjs

56.98% Statements 53/93
60% Branches 6/10
14.28% Functions 2/14
56.98% Lines 53/93

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 931x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x             1x       1x     1x               1x     1x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x     3x 3x 3x 3x 3x 1x 1x 1x 1x     1x 2x 2x 2x 2x 2x 2x 3x 1x     1x                             1x 1x 1x
const {cx_root} = await import("./cx_root.clas.mjs");
// zcl_abapgit_utils.clas.abap
class zcl_abapgit_utils {
  static INTERNAL_TYPE = 'CLAS';
  static INTERNAL_NAME = 'ZCL_ABAPGIT_UTILS';
  static IMPLEMENTED_INTERFACES = [];
  static ATTRIBUTES = {};
  static METHODS = {"IS_BINARY": {"visibility": "U", "parameters": {"RV_IS_BINARY": {"type": () => {return new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"});}, "is_optional": " "}, "IV_DATA": {"type": () => {return new abap.types.XString({qualifiedName: "XSTRING"});}, "is_optional": " "}}},
  "IS_VALID_EMAIL": {"visibility": "U", "parameters": {"RV_VALID": {"type": () => {return new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"});}, "is_optional": " "}, "IV_EMAIL": {"type": () => {return new abap.types.String({qualifiedName: "STRING"});}, "is_optional": " "}}},
  "CHECK_EOL": {"visibility": "U", "parameters": {"IV_DATA": {"type": () => {return new abap.types.String({qualifiedName: "STRING"});}, "is_optional": " "}}}};
  constructor() {
    this.me = new abap.types.ABAPObject();
    this.me.set(this);
    this.INTERNAL_ID = abap.internalIdCounter++;
    this.FRIENDS_ACCESS_INSTANCE = {
    };
  }
  async constructor_(INPUT) {
    if (super.constructor_) { await super.constructor_(INPUT); }
    return this;
  }
  async check_eol(INPUT) {
    return zcl_abapgit_utils.check_eol(INPUT);
  }
  static async check_eol(INPUT) {
    let iv_data = INPUT?.iv_data;
    if (iv_data?.getQualifiedName === undefined || iv_data.getQualifiedName() !== "STRING") { iv_data = undefined; }
    if (iv_data === undefined) { iv_data = new abap.types.String({qualifiedName: "STRING"}).set(INPUT.iv_data); }
    if (abap.compare.initial(iv_data) === false && abap.compare.cs(iv_data, abap.Classes['CL_ABAP_CHAR_UTILITIES'].newline) && abap.compare.ns(iv_data, abap.Classes['CL_ABAP_CHAR_UTILITIES'].cr_lf)) {
      await abap.Classes['ZCX_ABAPGIT_EXCEPTION'].raise({iv_text: abap.CharacterFactory.get(52, 'Incorrect source format: Requires CRLF instead of LF')});
    }
  }
  async is_binary(INPUT) {
    return zcl_abapgit_utils.is_binary(INPUT);
  }
  static async is_binary(INPUT) {
    let rv_is_binary = new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"});
    let iv_data = INPUT?.iv_data;
    if (iv_data?.getQualifiedName === undefined || iv_data.getQualifiedName() !== "XSTRING") { iv_data = undefined; }
    if (iv_data === undefined) { iv_data = new abap.types.XString({qualifiedName: "XSTRING"}).set(INPUT.iv_data); }
    let lc_binary_threshold = new abap.types.Integer({qualifiedName: "I"});
    lc_binary_threshold.set(10);
    let lc_bytes_to_check = new abap.types.Integer({qualifiedName: "I"});
    lc_bytes_to_check.set(1000);
    let lv_string_data = new abap.types.String({qualifiedName: "STRING"});
    let lv_printable_chars_count = new abap.types.Integer({qualifiedName: "I"});
    let lv_percentage = new abap.types.Integer({qualifiedName: "I"});
    let lv_data = new abap.types.XString({qualifiedName: "XSTRING"});
    let lv_xlen = new abap.types.Integer({qualifiedName: "I"});
    lv_xlen.set(abap.builtin.xstrlen({val: iv_data}));
    if (abap.compare.eq(lv_xlen, abap.IntegerFactory.get(0))) {
      return rv_is_binary;
    }
    lv_xlen.set(abap.builtin.nmin({val1: lv_xlen, val2: lc_bytes_to_check}));
    lv_data.set(iv_data.getOffset({length: lv_xlen}));
    try {
      lv_string_data.set((await abap.Classes['ZCL_ABAPGIT_CONVERT'].xstring_to_string_utf8({iv_data: lv_data})));
    } catch (e) {
      if ((abap.Classes['ZCX_ABAPGIT_EXCEPTION'] && e instanceof abap.Classes['ZCX_ABAPGIT_EXCEPTION'])) {
        rv_is_binary.set(abap.builtin.abap_true);
        return rv_is_binary;
      } else {
        throw e;
      }
    }
    abap.statements.replace({target: lv_string_data, all: true, with: abap.builtin.space, of: abap.Classes['CL_ABAP_CHAR_UTILITIES'].newline});
    abap.statements.replace({target: lv_string_data, all: true, with: abap.builtin.space, of: abap.Classes['CL_ABAP_CHAR_UTILITIES'].cr_lf});
    abap.statements.find(lv_string_data, {regex: abap.CharacterFactory.get(12, '[^[:print:]]'), first: false, count: lv_printable_chars_count});
    lv_percentage.set(abap.operators.divide(abap.operators.multiply(lv_printable_chars_count,abap.IntegerFactory.get(100)),abap.builtin.strlen({val: lv_string_data})));
    rv_is_binary.set(abap.builtin.boolc(abap.compare.gt(lv_percentage, lc_binary_threshold)));
    return rv_is_binary;
  }
  async is_valid_email(INPUT) {
    return zcl_abapgit_utils.is_valid_email(INPUT);
  }
  static async is_valid_email(INPUT) {
    let rv_valid = new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"});
    let iv_email = INPUT?.iv_email;
    if (iv_email?.getQualifiedName === undefined || iv_email.getQualifiedName() !== "STRING") { iv_email = undefined; }
    if (iv_email === undefined) { iv_email = new abap.types.String({qualifiedName: "STRING"}).set(INPUT.iv_email); }
    let lc_email_regex = new abap.types.String({qualifiedName: "STRING"});
    lc_email_regex.set('[\\w!#$%&*+/=?`{|}~^-]+(?:\\.[\\w!#$%&*+/=?`{|}~^-]+)*@(?:[A-Za-z0-9-]+\\.)+[A-Za-z]{2,6}');
    if (abap.compare.initial(iv_email)) {
      rv_valid.set(abap.builtin.abap_true);
    } else {
      abap.statements.find(iv_email, {regex: lc_email_regex});
      rv_valid.set(abap.builtin.boolc(abap.compare.eq(abap.builtin.sy.get().subrc, abap.IntegerFactory.get(0))));
    }
    return rv_valid;
  }
}
abap.Classes['ZCL_ABAPGIT_UTILS'] = zcl_abapgit_utils;
export {zcl_abapgit_utils};