From 2f0281b6edaa26a94350a402ee9da461d23fdc67 Mon Sep 17 00:00:00 2001
From: Marc Bernard <59966492+mbtools@users.noreply.github.com>
Date: Thu, 13 Mar 2025 16:14:41 +0100
Subject: [PATCH 1/4] Fix unit tests for non-Unicode systems (#7151)
---
.../zcl_abapgit_convert.clas.testclasses.abap | 5 ++++
...l_abapgit_xml_output.clas.testclasses.abap | 7 ++++--
...l_abapgit_xml_pretty.clas.testclasses.abap | 23 +++++++++++++++----
3 files changed, 29 insertions(+), 6 deletions(-)
diff --git a/src/utils/zcl_abapgit_convert.clas.testclasses.abap b/src/utils/zcl_abapgit_convert.clas.testclasses.abap
index 5067fc5c4..4207a01d0 100644
--- a/src/utils/zcl_abapgit_convert.clas.testclasses.abap
+++ b/src/utils/zcl_abapgit_convert.clas.testclasses.abap
@@ -284,6 +284,11 @@ CLASS ltcl_convert IMPLEMENTATION.
DATA lv_result TYPE string.
+ " Test does not work on non-Unicode but is not important for real-world anyway
+ IF cl_abap_char_utilities=>charsize = 1.
+ RETURN.
+ ENDIF.
+
" 0xF8-0xFF are not valid in UTF-8
TRY.
lv_result = zcl_abapgit_convert=>xstring_to_string_utf8( 'F8FF00' ).
diff --git a/src/xml/zcl_abapgit_xml_output.clas.testclasses.abap b/src/xml/zcl_abapgit_xml_output.clas.testclasses.abap
index 3c6b4ec44..98174d910 100644
--- a/src/xml/zcl_abapgit_xml_output.clas.testclasses.abap
+++ b/src/xml/zcl_abapgit_xml_output.clas.testclasses.abap
@@ -85,8 +85,11 @@ CLASS ltcl_xml_output IMPLEMENTATION.
lv_xstring = lo_conv_out_string->get_buffer( ).
- lv_bom = cl_abap_char_utilities=>byte_order_mark_little. "UTF-16LE, 4103
- CONCATENATE lv_bom lv_xstring INTO lv_xstring IN BYTE MODE.
+ " Add BOM for Unicode systems
+ IF cl_abap_char_utilities=>charsize > 1.
+ lv_bom = cl_abap_char_utilities=>byte_order_mark_little. "UTF-16LE, 4103
+ CONCATENATE lv_bom lv_xstring INTO lv_xstring IN BYTE MODE.
+ ENDIF.
lo_conv_in_string = cl_abap_conv_in_ce=>create(
encoding = lv_encoding
diff --git a/src/xml/zcl_abapgit_xml_pretty.clas.testclasses.abap b/src/xml/zcl_abapgit_xml_pretty.clas.testclasses.abap
index 8bd3001c1..30677ff55 100644
--- a/src/xml/zcl_abapgit_xml_pretty.clas.testclasses.abap
+++ b/src/xml/zcl_abapgit_xml_pretty.clas.testclasses.abap
@@ -30,7 +30,11 @@ CLASS ltcl_test IMPLEMENTATION.
DATA lv_result TYPE string.
lv_result = mo_cut->print( '' ).
- lv_result = lv_result+1.
+
+ " Skip BOM for Unicode systems
+ IF cl_abap_char_utilities=>charsize > 1.
+ lv_result = lv_result+1.
+ ENDIF.
cl_abap_unit_assert=>assert_equals(
act = lv_result
@@ -43,7 +47,11 @@ CLASS ltcl_test IMPLEMENTATION.
DATA lv_result TYPE string.
lv_result = mo_cut->print( '2' ).
- lv_result = lv_result+1.
+
+ " Skip BOM for Unicode systems
+ IF cl_abap_char_utilities=>charsize > 1.
+ lv_result = lv_result+1.
+ ENDIF.
cl_abap_unit_assert=>assert_equals(
act = lv_result
@@ -56,7 +64,11 @@ CLASS ltcl_test IMPLEMENTATION.
DATA lv_result TYPE string.
lv_result = mo_cut->print( '2' ).
- lv_result = lv_result+1.
+
+ " Skip BOM for Unicode systems
+ IF cl_abap_char_utilities=>charsize > 1.
+ lv_result = lv_result+1.
+ ENDIF.
cl_abap_unit_assert=>assert_equals(
act = lv_result
@@ -97,7 +109,10 @@ CLASS ltcl_test IMPLEMENTATION.
iv_xml = |\n 2\n|
iv_unpretty = abap_true ).
- lv_result = lv_result+1.
+ " Skip BOM for Unicode systems
+ IF cl_abap_char_utilities=>charsize > 1.
+ lv_result = lv_result+1.
+ ENDIF.
cl_abap_unit_assert=>assert_equals(
act = lv_result
From d374436ae386aae9d9aae0ddc6e1c89cd2464a33 Mon Sep 17 00:00:00 2001
From: Marc Bernard <59966492+mbtools@users.noreply.github.com>
Date: Thu, 13 Mar 2025 16:19:29 +0100
Subject: [PATCH 2/4] Refactor: Decouple staging logic from factory (#7155)
Co-authored-by: Lars Hvam
---
.../zcl_abapgit_background_push_au.clas.abap | 4 +--
.../zcl_abapgit_background_push_fi.clas.abap | 4 +--
.../zcl_abapgit_transport_2_branch.clas.abap | 2 +-
.../stage/zcl_abapgit_stage_logic.clas.abap | 33 +++++++++++++++++--
.../zcl_abapgit_gui_page_stage.clas.abap | 4 +--
src/zcl_abapgit_factory.clas.abap | 17 +---------
src/zcl_abapgit_injector.clas.abap | 10 ------
7 files changed, 38 insertions(+), 36 deletions(-)
diff --git a/src/background/zcl_abapgit_background_push_au.clas.abap b/src/background/zcl_abapgit_background_push_au.clas.abap
index 97e9c65a7..377cc3f24 100644
--- a/src/background/zcl_abapgit_background_push_au.clas.abap
+++ b/src/background/zcl_abapgit_background_push_au.clas.abap
@@ -110,7 +110,7 @@ CLASS zcl_abapgit_background_push_au IMPLEMENTATION.
LIKE LINE OF ls_files-local.
- ls_files = zcl_abapgit_factory=>get_stage_logic( )->get( io_repo ).
+ ls_files = zcl_abapgit_stage_logic=>get_stage_logic( )->get( io_repo ).
LOOP AT ls_files-local ASSIGNING .
lv_changed_by = zcl_abapgit_objects=>changed_by(
@@ -237,7 +237,7 @@ CLASS zcl_abapgit_background_push_au IMPLEMENTATION.
DATA: ls_files TYPE zif_abapgit_definitions=>ty_stage_files.
mi_log = ii_log.
- ls_files = zcl_abapgit_factory=>get_stage_logic( )->get( io_repo ).
+ ls_files = zcl_abapgit_stage_logic=>get_stage_logic( )->get( io_repo ).
IF lines( ls_files-local ) = 0 AND lines( ls_files-remote ) = 0.
ii_log->add_info( 'Nothing to stage' ).
diff --git a/src/background/zcl_abapgit_background_push_fi.clas.abap b/src/background/zcl_abapgit_background_push_fi.clas.abap
index d1d49911e..1f4500fa4 100644
--- a/src/background/zcl_abapgit_background_push_fi.clas.abap
+++ b/src/background/zcl_abapgit_background_push_fi.clas.abap
@@ -73,7 +73,7 @@ CLASS zcl_abapgit_background_push_fi IMPLEMENTATION.
LIKE LINE OF ls_files-remote.
- ls_files = zcl_abapgit_factory=>get_stage_logic( )->get( io_repo ).
+ ls_files = zcl_abapgit_stage_logic=>get_stage_logic( )->get( io_repo ).
ASSERT lines( ls_files-local ) > 0
OR lines( ls_files-remote ) > 0.
@@ -142,7 +142,7 @@ CLASS zcl_abapgit_background_push_fi IMPLEMENTATION.
lv_email TYPE string.
mi_log = ii_log.
- ls_files = zcl_abapgit_factory=>get_stage_logic( )->get( io_repo ).
+ ls_files = zcl_abapgit_stage_logic=>get_stage_logic( )->get( io_repo ).
IF lines( ls_files-local ) = 0 AND lines( ls_files-remote ) = 0.
ii_log->add_info( 'Nothing to stage' ).
diff --git a/src/cts/zcl_abapgit_transport_2_branch.clas.abap b/src/cts/zcl_abapgit_transport_2_branch.clas.abap
index 133cd3f05..0521ebc1e 100644
--- a/src/cts/zcl_abapgit_transport_2_branch.clas.abap
+++ b/src/cts/zcl_abapgit_transport_2_branch.clas.abap
@@ -50,7 +50,7 @@ CLASS zcl_abapgit_transport_2_branch IMPLEMENTATION.
CREATE OBJECT lo_stage.
- ls_stage_objects = zcl_abapgit_factory=>get_stage_logic( )->get( io_repository ).
+ ls_stage_objects = zcl_abapgit_stage_logic=>get_stage_logic( )->get( io_repository ).
lt_object_statuses = zcl_abapgit_repo_status=>calculate( io_repository ).
diff --git a/src/repo/stage/zcl_abapgit_stage_logic.clas.abap b/src/repo/stage/zcl_abapgit_stage_logic.clas.abap
index 22a5871e9..efb10e6db 100644
--- a/src/repo/stage/zcl_abapgit_stage_logic.clas.abap
+++ b/src/repo/stage/zcl_abapgit_stage_logic.clas.abap
@@ -1,13 +1,24 @@
CLASS zcl_abapgit_stage_logic DEFINITION
PUBLIC
- CREATE PRIVATE
- GLOBAL FRIENDS zcl_abapgit_factory .
+ CREATE PRIVATE.
PUBLIC SECTION.
- INTERFACES zif_abapgit_stage_logic .
+ INTERFACES zif_abapgit_stage_logic.
+
+ CLASS-METHODS get_stage_logic
+ RETURNING
+ VALUE(ri_logic) TYPE REF TO zif_abapgit_stage_logic.
+
+ CLASS-METHODS set_stage_logic
+ IMPORTING
+ ii_logic TYPE REF TO zif_abapgit_stage_logic.
+
PROTECTED SECTION.
PRIVATE SECTION.
+
+ CLASS-DATA gi_stage_logic TYPE REF TO zif_abapgit_stage_logic.
+
CLASS-METHODS:
remove_ignored
IMPORTING io_repo TYPE REF TO zcl_abapgit_repo_online
@@ -22,6 +33,17 @@ ENDCLASS.
CLASS zcl_abapgit_stage_logic IMPLEMENTATION.
+ METHOD get_stage_logic.
+
+ IF gi_stage_logic IS INITIAL.
+ CREATE OBJECT gi_stage_logic TYPE zcl_abapgit_stage_logic.
+ ENDIF.
+
+ ri_logic = gi_stage_logic.
+
+ ENDMETHOD.
+
+
METHOD remove_identical.
DATA: lv_index TYPE i,
@@ -85,6 +107,11 @@ CLASS zcl_abapgit_stage_logic IMPLEMENTATION.
ENDMETHOD.
+ METHOD set_stage_logic.
+ gi_stage_logic = ii_logic.
+ ENDMETHOD.
+
+
METHOD zif_abapgit_stage_logic~get.
" Getting REMOTE before LOCAL is critical to ensure that DATA config is loaded first
diff --git a/src/ui/pages/zcl_abapgit_gui_page_stage.clas.abap b/src/ui/pages/zcl_abapgit_gui_page_stage.clas.abap
index f8afdaebb..742fd3b05 100644
--- a/src/ui/pages/zcl_abapgit_gui_page_stage.clas.abap
+++ b/src/ui/pages/zcl_abapgit_gui_page_stage.clas.abap
@@ -376,8 +376,8 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_STAGE IMPLEMENTATION.
METHOD init_files.
- ms_files = zcl_abapgit_factory=>get_stage_logic( )->get( io_repo = mo_repo
- ii_obj_filter = mi_obj_filter ).
+ ms_files = zcl_abapgit_stage_logic=>get_stage_logic( )->get( io_repo = mo_repo
+ ii_obj_filter = mi_obj_filter ).
IF lines( ms_files-local ) = 0 AND lines( ms_files-remote ) = 0.
mo_repo->refresh( ).
diff --git a/src/zcl_abapgit_factory.clas.abap b/src/zcl_abapgit_factory.clas.abap
index 6462be0f0..3ce5e27db 100644
--- a/src/zcl_abapgit_factory.clas.abap
+++ b/src/zcl_abapgit_factory.clas.abap
@@ -20,9 +20,6 @@ CLASS zcl_abapgit_factory DEFINITION
VALUE(ri_code_inspector) TYPE REF TO zif_abapgit_code_inspector
RAISING
zcx_abapgit_exception .
- CLASS-METHODS get_stage_logic
- RETURNING
- VALUE(ri_logic) TYPE REF TO zif_abapgit_stage_logic .
CLASS-METHODS get_cts_api
RETURNING
VALUE(ri_cts_api) TYPE REF TO zif_abapgit_cts_api .
@@ -75,7 +72,6 @@ CLASS zcl_abapgit_factory DEFINITION
CLASS-DATA gi_tadir TYPE REF TO zif_abapgit_tadir .
CLASS-DATA gt_sap_package TYPE ty_sap_packages .
CLASS-DATA gt_code_inspector TYPE ty_code_inspector_packs .
- CLASS-DATA gi_stage_logic TYPE REF TO zif_abapgit_stage_logic .
CLASS-DATA gi_cts_api TYPE REF TO zif_abapgit_cts_api .
CLASS-DATA gi_environment TYPE REF TO zif_abapgit_environment .
CLASS-DATA gi_longtext TYPE REF TO zif_abapgit_longtexts .
@@ -89,7 +85,7 @@ ENDCLASS.
-CLASS ZCL_ABAPGIT_FACTORY IMPLEMENTATION.
+CLASS zcl_abapgit_factory IMPLEMENTATION.
METHOD get_code_inspector.
@@ -234,17 +230,6 @@ CLASS ZCL_ABAPGIT_FACTORY IMPLEMENTATION.
ENDMETHOD.
- METHOD get_stage_logic.
-
- IF gi_stage_logic IS INITIAL.
- CREATE OBJECT gi_stage_logic TYPE zcl_abapgit_stage_logic.
- ENDIF.
-
- ri_logic = gi_stage_logic.
-
- ENDMETHOD.
-
-
METHOD get_tadir.
IF gi_tadir IS INITIAL.
diff --git a/src/zcl_abapgit_injector.clas.abap b/src/zcl_abapgit_injector.clas.abap
index f2a619b99..ca20461a8 100644
--- a/src/zcl_abapgit_injector.clas.abap
+++ b/src/zcl_abapgit_injector.clas.abap
@@ -16,9 +16,6 @@ CLASS zcl_abapgit_injector DEFINITION
IMPORTING
!iv_package TYPE devclass
!ii_code_inspector TYPE REF TO zif_abapgit_code_inspector .
- CLASS-METHODS set_stage_logic
- IMPORTING
- !ii_logic TYPE REF TO zif_abapgit_stage_logic .
CLASS-METHODS set_cts_api
IMPORTING
!ii_cts_api TYPE REF TO zif_abapgit_cts_api .
@@ -146,13 +143,6 @@ CLASS zcl_abapgit_injector IMPLEMENTATION.
ENDMETHOD.
- METHOD set_stage_logic.
-
- zcl_abapgit_factory=>gi_stage_logic = ii_logic.
-
- ENDMETHOD.
-
-
METHOD set_tadir.
zcl_abapgit_factory=>gi_tadir = ii_tadir.
ENDMETHOD.
From 4469771f01e661d85827b4f4b7773c004ac1f712 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Thu, 13 Mar 2025 16:29:54 +0100
Subject: [PATCH 3/4] ajson, Automatic Update (#7158)
Co-authored-by: larshp
Co-authored-by: Lars Hvam
---
src/json/zcl_abapgit_ajson.clas.abap | 2 ++
...pgit_ajson_filter_lib.clas.locals_imp.abap | 4 +--
...git_ajson_filter_lib.clas.testclasses.abap | 33 +++++++++++++++++++
...bapgit_ajson_mapping.clas.testclasses.abap | 28 ++++++++++++++++
src/json/zif_abapgit_ajson.intf.abap | 2 +-
5 files changed, 66 insertions(+), 3 deletions(-)
diff --git a/src/json/zcl_abapgit_ajson.clas.abap b/src/json/zcl_abapgit_ajson.clas.abap
index f94bbadf9..fb9ac9e35 100644
--- a/src/json/zcl_abapgit_ajson.clas.abap
+++ b/src/json/zcl_abapgit_ajson.clas.abap
@@ -848,6 +848,8 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
DATA lv_path_pattern TYPE string.
CREATE OBJECT lo_section.
+ lo_section->mi_custom_mapping = mi_custom_mapping.
+
lv_normalized_path = lcl_utils=>normalize_path( iv_path ).
lv_path_len = strlen( lv_normalized_path ).
ls_path_parts = lcl_utils=>split_path( lv_normalized_path ).
diff --git a/src/json/zcl_abapgit_ajson_filter_lib.clas.locals_imp.abap b/src/json/zcl_abapgit_ajson_filter_lib.clas.locals_imp.abap
index 42f12e631..c2426e9e1 100644
--- a/src/json/zcl_abapgit_ajson_filter_lib.clas.locals_imp.abap
+++ b/src/json/zcl_abapgit_ajson_filter_lib.clas.locals_imp.abap
@@ -72,7 +72,7 @@ CLASS lcl_paths_filter IMPLEMENTATION.
ENDIF.
LOOP AT it_skip_paths INTO lv_s.
- lv_s = to_lower( lv_s ).
+ lv_s = condense( lv_s ).
APPEND lv_s TO lt_tab.
ENDLOOP.
@@ -83,7 +83,7 @@ CLASS lcl_paths_filter IMPLEMENTATION.
DELETE lt_tab INDEX sy-tabix.
CONTINUE.
ENDIF.
- = condense( to_lower( ) ).
+ = condense( ).
ENDLOOP.
ENDIF.
diff --git a/src/json/zcl_abapgit_ajson_filter_lib.clas.testclasses.abap b/src/json/zcl_abapgit_ajson_filter_lib.clas.testclasses.abap
index 8c129303f..2ae049120 100644
--- a/src/json/zcl_abapgit_ajson_filter_lib.clas.testclasses.abap
+++ b/src/json/zcl_abapgit_ajson_filter_lib.clas.testclasses.abap
@@ -10,6 +10,7 @@ CLASS ltcl_filters_test DEFINITION FINAL
METHODS path_filter_w_patterns FOR TESTING RAISING zcx_abapgit_ajson_error.
METHODS path_filter_deep FOR TESTING RAISING zcx_abapgit_ajson_error.
METHODS and_filter FOR TESTING RAISING zcx_abapgit_ajson_error.
+ METHODS mixed_case_filter FOR TESTING RAISING zcx_abapgit_ajson_error.
ENDCLASS.
@@ -227,4 +228,36 @@ CLASS ltcl_filters_test IMPLEMENTATION.
ENDMETHOD.
+ METHOD mixed_case_filter.
+
+ DATA li_json TYPE REF TO zif_abapgit_ajson.
+ DATA li_json_filtered TYPE REF TO zif_abapgit_ajson.
+
+ li_json = zcl_abapgit_ajson=>create_empty( ).
+ li_json->set(
+ iv_path = '/a'
+ iv_val = '1' ).
+ li_json->set(
+ iv_path = '/bB'
+ iv_val = '2' ).
+ li_json->set(
+ iv_path = '/CC'
+ iv_val = '3' ).
+ li_json->set(
+ iv_path = '/cc'
+ iv_val = '4' ).
+ li_json->set(
+ iv_path = '/d'
+ iv_val = 5 ).
+
+ li_json_filtered = zcl_abapgit_ajson=>create_from(
+ ii_source_json = li_json
+ ii_filter = zcl_abapgit_ajson_filter_lib=>create_path_filter( iv_skip_paths = '/bB,/CC' ) ).
+
+ cl_abap_unit_assert=>assert_equals(
+ act = li_json_filtered->stringify( )
+ exp = '{"a":"1","cc":"4","d":5}' ).
+
+ ENDMETHOD.
+
ENDCLASS.
diff --git a/src/json/zcl_abapgit_ajson_mapping.clas.testclasses.abap b/src/json/zcl_abapgit_ajson_mapping.clas.testclasses.abap
index 18ee6e1cb..dc789ec32 100644
--- a/src/json/zcl_abapgit_ajson_mapping.clas.testclasses.abap
+++ b/src/json/zcl_abapgit_ajson_mapping.clas.testclasses.abap
@@ -358,6 +358,7 @@ CLASS ltcl_fields DEFINITION FINAL FOR TESTING
to_json_without_path FOR TESTING RAISING zcx_abapgit_ajson_error,
to_json_with_path FOR TESTING RAISING zcx_abapgit_ajson_error,
to_abap FOR TESTING RAISING zcx_abapgit_ajson_error,
+ to_abap_with_slice FOR TESTING RAISING zcx_abapgit_ajson_error,
to_json IMPORTING iv_path TYPE string RETURNING VALUE(rv_result) TYPE string RAISING zcx_abapgit_ajson_error.
@@ -403,6 +404,33 @@ CLASS ltcl_fields IMPLEMENTATION.
ENDMETHOD.
+ METHOD to_abap_with_slice.
+
+ DATA: BEGIN OF ls_act,
+ y TYPE i,
+ END OF ls_act.
+
+ DATA lo_cut TYPE REF TO zif_abapgit_ajson.
+ DATA lt_mapping_fields TYPE zif_abapgit_ajson_mapping=>ty_mapping_fields.
+ DATA ls_mapping_field LIKE LINE OF lt_mapping_fields.
+
+ CLEAR ls_mapping_field.
+ ls_mapping_field-abap = 'Y'.
+ ls_mapping_field-json = 'c'.
+ INSERT ls_mapping_field INTO TABLE lt_mapping_fields.
+
+ lo_cut = zcl_abapgit_ajson=>parse( iv_json = '{"a":1,"b":{"c":2},"d":{"e":3}}'
+ ii_custom_mapping = zcl_abapgit_ajson_mapping=>create_field_mapping( lt_mapping_fields )
+ )->slice( `/b` ).
+
+ lo_cut->to_abap( IMPORTING ev_container = ls_act ).
+
+ cl_abap_unit_assert=>assert_equals(
+ act = ls_act-y
+ exp = 2 ).
+
+ ENDMETHOD.
+
METHOD to_json_without_path.
diff --git a/src/json/zif_abapgit_ajson.intf.abap b/src/json/zif_abapgit_ajson.intf.abap
index 9937a244f..da6950d40 100644
--- a/src/json/zif_abapgit_ajson.intf.abap
+++ b/src/json/zif_abapgit_ajson.intf.abap
@@ -1,7 +1,7 @@
INTERFACE zif_abapgit_ajson
PUBLIC.
- CONSTANTS version TYPE string VALUE 'v1.1.10'. "#EC NOTEXT
+ CONSTANTS version TYPE string VALUE 'v1.1.11'. "#EC NOTEXT
CONSTANTS origin TYPE string VALUE 'https://github.com/sbcgua/ajson'. "#EC NOTEXT
CONSTANTS license TYPE string VALUE 'MIT'. "#EC NOTEXT
From dd9790d9bdc9a78c4bd9c2e0e107e64b28b5655f Mon Sep 17 00:00:00 2001
From: Lars Hvam
Date: Fri, 14 Mar 2025 10:02:43 +0100
Subject: [PATCH 4/4] update npm + actions dependencies (#7157)
---
.github/workflows/reuse.yml | 2 +-
package.json | 12 ++++++------
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/.github/workflows/reuse.yml b/.github/workflows/reuse.yml
index 33a24386b..a3094ed5e 100644
--- a/.github/workflows/reuse.yml
+++ b/.github/workflows/reuse.yml
@@ -8,4 +8,4 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: REUSE Compliance Check
- uses: fsfe/reuse-action@v1
+ uses: fsfe/reuse-action@v5
diff --git a/package.json b/package.json
index 2296909d3..22ba5ee5a 100644
--- a/package.json
+++ b/package.json
@@ -23,14 +23,14 @@
]
},
"devDependencies": {
- "@abaplint/cli": "^2.113.82",
- "@abaplint/database-sqlite": "^2.10.20",
- "@abaplint/runtime": "^2.10.23",
+ "@abaplint/cli": "^2.113.105",
+ "@abaplint/database-sqlite": "^2.10.24",
+ "@abaplint/runtime": "^2.10.26",
"express": "^4.21.2",
- "@abaplint/transpiler-cli": "^2.10.23",
- "globals": "^15.13.0",
+ "@abaplint/transpiler-cli": "^2.10.26",
+ "globals": "^16.0.0",
"abapmerge": "^0.16.6",
"c8": "^10.1.3",
- "eslint": "^9.17.0"
+ "eslint": "^9.22.0"
}
}