@abaplint/core 2.119.43 → 2.119.44
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/abaplint.d.ts +152 -8
- package/build/src/abap/2_statements/combi.js +100 -39
- package/build/src/abap/2_statements/expand_macros.js +6 -4
- package/build/src/abap/2_statements/expressions/_dynamic_access.js +2 -2
- package/build/src/abap/2_statements/expressions/_select_core.js +5 -5
- package/build/src/abap/2_statements/expressions/assign_source.js +1 -1
- package/build/src/abap/2_statements/expressions/cast.js +1 -1
- package/build/src/abap/2_statements/expressions/compare.js +2 -2
- package/build/src/abap/2_statements/expressions/component_compare.js +1 -1
- package/build/src/abap/2_statements/expressions/component_compare_simple.js +1 -1
- package/build/src/abap/2_statements/expressions/cond.js +1 -1
- package/build/src/abap/2_statements/expressions/corresponding_body.js +1 -1
- package/build/src/abap/2_statements/expressions/data_definition.js +1 -1
- package/build/src/abap/2_statements/expressions/find_type.js +1 -1
- package/build/src/abap/2_statements/expressions/for.js +2 -2
- package/build/src/abap/2_statements/expressions/function_exporting_parameter.js +1 -1
- package/build/src/abap/2_statements/expressions/index.js +9 -0
- package/build/src/abap/2_statements/expressions/inlinedata.js +1 -1
- package/build/src/abap/2_statements/expressions/inlinefs.js +1 -1
- package/build/src/abap/2_statements/expressions/loop_source.js +1 -1
- package/build/src/abap/2_statements/expressions/message_source_source.js +1 -1
- package/build/src/abap/2_statements/expressions/new_object.js +1 -1
- package/build/src/abap/2_statements/expressions/reduce_next.js +1 -1
- package/build/src/abap/2_statements/expressions/select.js +1 -1
- package/build/src/abap/2_statements/expressions/select_cte.js +5 -5
- package/build/src/abap/2_statements/expressions/source.js +11 -11
- package/build/src/abap/2_statements/expressions/sql_aggregation.js +9 -9
- package/build/src/abap/2_statements/expressions/sql_association_entry.js +1 -1
- package/build/src/abap/2_statements/expressions/sql_associations_list.js +1 -1
- package/build/src/abap/2_statements/expressions/sql_case.js +1 -1
- package/build/src/abap/2_statements/expressions/sql_client.js +2 -2
- package/build/src/abap/2_statements/expressions/sql_compare.js +7 -6
- package/build/src/abap/2_statements/expressions/sql_cte_associations.js +1 -1
- package/build/src/abap/2_statements/expressions/sql_cte_hierarchy.js +1 -1
- package/build/src/abap/2_statements/expressions/sql_field.js +4 -4
- package/build/src/abap/2_statements/expressions/sql_field_list.js +1 -1
- package/build/src/abap/2_statements/expressions/sql_field_list_loop.js +2 -2
- package/build/src/abap/2_statements/expressions/sql_field_list_loop_greedy.js +2 -2
- package/build/src/abap/2_statements/expressions/sql_from_source.js +2 -2
- package/build/src/abap/2_statements/expressions/sql_function.js +363 -31
- package/build/src/abap/2_statements/expressions/sql_function_input.js +1 -1
- package/build/src/abap/2_statements/expressions/sql_group_by.js +2 -2
- package/build/src/abap/2_statements/expressions/sql_hierarchy_accessor.js +1 -1
- package/build/src/abap/2_statements/expressions/sql_hierarchy_aggregate.js +1 -1
- package/build/src/abap/2_statements/expressions/sql_hierarchy_source.js +1 -1
- package/build/src/abap/2_statements/expressions/sql_in.js +2 -2
- package/build/src/abap/2_statements/expressions/sql_into_list.js +1 -1
- package/build/src/abap/2_statements/expressions/sql_join.js +1 -1
- package/build/src/abap/2_statements/expressions/sql_like_regexpr.js +19 -0
- package/build/src/abap/2_statements/expressions/sql_locate_regexpr.js +18 -0
- package/build/src/abap/2_statements/expressions/sql_occurrences_regexpr.js +15 -0
- package/build/src/abap/2_statements/expressions/sql_options.js +2 -2
- package/build/src/abap/2_statements/expressions/sql_over.js +2 -2
- package/build/src/abap/2_statements/expressions/sql_path_for_column.js +1 -1
- package/build/src/abap/2_statements/expressions/sql_path_for_entity.js +1 -1
- package/build/src/abap/2_statements/expressions/sql_path_segment.js +3 -3
- package/build/src/abap/2_statements/expressions/sql_privileged_access.js +1 -1
- package/build/src/abap/2_statements/expressions/sql_regexpr_from.js +17 -0
- package/build/src/abap/2_statements/expressions/sql_regexpr_group.js +17 -0
- package/build/src/abap/2_statements/expressions/sql_regexpr_occurrence.js +17 -0
- package/build/src/abap/2_statements/expressions/sql_regexpr_pattern.js +18 -0
- package/build/src/abap/2_statements/expressions/sql_replace_regexpr.js +22 -0
- package/build/src/abap/2_statements/expressions/sql_set_op.js +1 -1
- package/build/src/abap/2_statements/expressions/sql_set_op_group.js +2 -2
- package/build/src/abap/2_statements/expressions/sql_source.js +1 -1
- package/build/src/abap/2_statements/expressions/sql_source_no_space.js +1 -1
- package/build/src/abap/2_statements/expressions/sql_source_simple.js +1 -1
- package/build/src/abap/2_statements/expressions/sql_substring_regexpr.js +18 -0
- package/build/src/abap/2_statements/expressions/sql_target.js +2 -2
- package/build/src/abap/2_statements/expressions/string_template.js +1 -1
- package/build/src/abap/2_statements/expressions/string_template_formatting.js +2 -2
- package/build/src/abap/2_statements/expressions/table_expression.js +1 -1
- package/build/src/abap/2_statements/expressions/type.js +1 -1
- package/build/src/abap/2_statements/expressions/type_table.js +1 -1
- package/build/src/abap/2_statements/expressions/type_table_key.js +1 -1
- package/build/src/abap/2_statements/expressions/value_body.js +1 -1
- package/build/src/abap/2_statements/result.js +6 -0
- package/build/src/abap/2_statements/statement_parser.js +8 -5
- package/build/src/abap/2_statements/statements/add_corresponding.js +1 -1
- package/build/src/abap/2_statements/statements/append.js +1 -1
- package/build/src/abap/2_statements/statements/assign.js +1 -1
- package/build/src/abap/2_statements/statements/assign_local_copy.js +1 -1
- package/build/src/abap/2_statements/statements/at_line_selection.js +1 -1
- package/build/src/abap/2_statements/statements/at_pf.js +1 -1
- package/build/src/abap/2_statements/statements/at_selection_screen.js +1 -1
- package/build/src/abap/2_statements/statements/at_user_command.js +1 -1
- package/build/src/abap/2_statements/statements/back.js +1 -1
- package/build/src/abap/2_statements/statements/break.js +1 -1
- package/build/src/abap/2_statements/statements/break_id.js +1 -1
- package/build/src/abap/2_statements/statements/call_badi.js +1 -1
- package/build/src/abap/2_statements/statements/call_database.js +1 -1
- package/build/src/abap/2_statements/statements/call_dialog.js +1 -1
- package/build/src/abap/2_statements/statements/call_function.js +4 -4
- package/build/src/abap/2_statements/statements/call_kernel.js +1 -1
- package/build/src/abap/2_statements/statements/call_ole.js +1 -1
- package/build/src/abap/2_statements/statements/call_screen.js +1 -1
- package/build/src/abap/2_statements/statements/call_selection_screen.js +1 -1
- package/build/src/abap/2_statements/statements/call_subscreen.js +1 -1
- package/build/src/abap/2_statements/statements/call_transaction.js +1 -1
- package/build/src/abap/2_statements/statements/case_type.js +1 -1
- package/build/src/abap/2_statements/statements/catch_system_exceptions.js +1 -1
- package/build/src/abap/2_statements/statements/chain.js +1 -1
- package/build/src/abap/2_statements/statements/check_select_options.js +1 -1
- package/build/src/abap/2_statements/statements/class_definition.js +1 -1
- package/build/src/abap/2_statements/statements/close_cursor.js +1 -1
- package/build/src/abap/2_statements/statements/close_dataset.js +1 -1
- package/build/src/abap/2_statements/statements/commit_entities.js +1 -1
- package/build/src/abap/2_statements/statements/communication.js +1 -1
- package/build/src/abap/2_statements/statements/compute.js +1 -1
- package/build/src/abap/2_statements/statements/contexts.js +1 -1
- package/build/src/abap/2_statements/statements/controls.js +1 -1
- package/build/src/abap/2_statements/statements/convert.js +2 -2
- package/build/src/abap/2_statements/statements/create_data.js +1 -1
- package/build/src/abap/2_statements/statements/create_object.js +1 -1
- package/build/src/abap/2_statements/statements/create_ole.js +1 -1
- package/build/src/abap/2_statements/statements/define.js +1 -1
- package/build/src/abap/2_statements/statements/delete_cluster.js +1 -1
- package/build/src/abap/2_statements/statements/delete_dataset.js +1 -1
- package/build/src/abap/2_statements/statements/delete_dynpro.js +1 -1
- package/build/src/abap/2_statements/statements/delete_memory.js +1 -1
- package/build/src/abap/2_statements/statements/delete_report.js +1 -1
- package/build/src/abap/2_statements/statements/delete_textpool.js +1 -1
- package/build/src/abap/2_statements/statements/demand.js +1 -1
- package/build/src/abap/2_statements/statements/describe.js +1 -1
- package/build/src/abap/2_statements/statements/detail.js +1 -1
- package/build/src/abap/2_statements/statements/editor_call.js +1 -1
- package/build/src/abap/2_statements/statements/end_chain.js +1 -1
- package/build/src/abap/2_statements/statements/end_enhancement.js +1 -1
- package/build/src/abap/2_statements/statements/end_enhancement_section.js +1 -1
- package/build/src/abap/2_statements/statements/end_of_page.js +1 -1
- package/build/src/abap/2_statements/statements/end_of_selection.js +1 -1
- package/build/src/abap/2_statements/statements/end_test_seam.js +1 -1
- package/build/src/abap/2_statements/statements/endcatch.js +1 -1
- package/build/src/abap/2_statements/statements/enddefine.js +1 -1
- package/build/src/abap/2_statements/statements/endexec.js +1 -1
- package/build/src/abap/2_statements/statements/endmodule.js +1 -1
- package/build/src/abap/2_statements/statements/endon.js +1 -1
- package/build/src/abap/2_statements/statements/endprovide.js +1 -1
- package/build/src/abap/2_statements/statements/endwith.js +1 -1
- package/build/src/abap/2_statements/statements/enhancement.js +1 -1
- package/build/src/abap/2_statements/statements/enhancement_point.js +1 -1
- package/build/src/abap/2_statements/statements/enhancement_section.js +1 -1
- package/build/src/abap/2_statements/statements/exec_sql.js +1 -1
- package/build/src/abap/2_statements/statements/export_dynpro.js +1 -1
- package/build/src/abap/2_statements/statements/extract.js +1 -1
- package/build/src/abap/2_statements/statements/fetch_next_cursor.js +1 -1
- package/build/src/abap/2_statements/statements/field.js +1 -1
- package/build/src/abap/2_statements/statements/field_group.js +1 -1
- package/build/src/abap/2_statements/statements/fields.js +1 -1
- package/build/src/abap/2_statements/statements/format.js +1 -1
- package/build/src/abap/2_statements/statements/free_memory.js +1 -1
- package/build/src/abap/2_statements/statements/free_object.js +1 -1
- package/build/src/abap/2_statements/statements/generate_dynpro.js +1 -1
- package/build/src/abap/2_statements/statements/generate_report.js +1 -1
- package/build/src/abap/2_statements/statements/generate_subroutine.js +1 -1
- package/build/src/abap/2_statements/statements/get.js +1 -1
- package/build/src/abap/2_statements/statements/get_badi.js +1 -1
- package/build/src/abap/2_statements/statements/get_cursor.js +1 -1
- package/build/src/abap/2_statements/statements/get_dataset.js +1 -1
- package/build/src/abap/2_statements/statements/get_locale.js +1 -1
- package/build/src/abap/2_statements/statements/get_parameter.js +1 -1
- package/build/src/abap/2_statements/statements/get_permissions.js +1 -1
- package/build/src/abap/2_statements/statements/get_pf_status.js +1 -1
- package/build/src/abap/2_statements/statements/get_property.js +1 -1
- package/build/src/abap/2_statements/statements/get_run_time.js +1 -1
- package/build/src/abap/2_statements/statements/hide.js +1 -1
- package/build/src/abap/2_statements/statements/import_dynpro.js +1 -1
- package/build/src/abap/2_statements/statements/import_nametab.js +1 -1
- package/build/src/abap/2_statements/statements/infotypes.js +1 -1
- package/build/src/abap/2_statements/statements/initialization.js +1 -1
- package/build/src/abap/2_statements/statements/input.js +1 -1
- package/build/src/abap/2_statements/statements/insert_field_group.js +1 -1
- package/build/src/abap/2_statements/statements/insert_internal.js +1 -1
- package/build/src/abap/2_statements/statements/insert_report.js +2 -2
- package/build/src/abap/2_statements/statements/insert_textpool.js +1 -1
- package/build/src/abap/2_statements/statements/interface_def.js +1 -1
- package/build/src/abap/2_statements/statements/leave.js +1 -1
- package/build/src/abap/2_statements/statements/load_of_program.js +1 -1
- package/build/src/abap/2_statements/statements/load_report.js +1 -1
- package/build/src/abap/2_statements/statements/local.js +1 -1
- package/build/src/abap/2_statements/statements/log_point.js +1 -1
- package/build/src/abap/2_statements/statements/loop.js +3 -3
- package/build/src/abap/2_statements/statements/loop_at_screen.js +1 -1
- package/build/src/abap/2_statements/statements/message.js +1 -1
- package/build/src/abap/2_statements/statements/method_def.js +1 -1
- package/build/src/abap/2_statements/statements/modify_entities.js +1 -1
- package/build/src/abap/2_statements/statements/modify_line.js +1 -1
- package/build/src/abap/2_statements/statements/modify_screen.js +1 -1
- package/build/src/abap/2_statements/statements/module.js +1 -1
- package/build/src/abap/2_statements/statements/move.js +2 -2
- package/build/src/abap/2_statements/statements/move_corresponding.js +2 -2
- package/build/src/abap/2_statements/statements/new_line.js +1 -1
- package/build/src/abap/2_statements/statements/new_page.js +1 -1
- package/build/src/abap/2_statements/statements/nodes.js +1 -1
- package/build/src/abap/2_statements/statements/on_change.js +1 -1
- package/build/src/abap/2_statements/statements/open_cursor.js +2 -2
- package/build/src/abap/2_statements/statements/open_dataset.js +1 -1
- package/build/src/abap/2_statements/statements/pack.js +1 -1
- package/build/src/abap/2_statements/statements/parameter.js +1 -1
- package/build/src/abap/2_statements/statements/perform.js +2 -2
- package/build/src/abap/2_statements/statements/position.js +1 -1
- package/build/src/abap/2_statements/statements/print_control.js +1 -1
- package/build/src/abap/2_statements/statements/process_after_input.js +1 -1
- package/build/src/abap/2_statements/statements/process_before_output.js +1 -1
- package/build/src/abap/2_statements/statements/process_on_help_request.js +1 -1
- package/build/src/abap/2_statements/statements/process_on_value_request.js +1 -1
- package/build/src/abap/2_statements/statements/program.js +1 -1
- package/build/src/abap/2_statements/statements/provide.js +1 -1
- package/build/src/abap/2_statements/statements/put.js +1 -1
- package/build/src/abap/2_statements/statements/raise.js +2 -2
- package/build/src/abap/2_statements/statements/ranges.js +1 -1
- package/build/src/abap/2_statements/statements/read_dataset.js +1 -1
- package/build/src/abap/2_statements/statements/read_entities.js +1 -1
- package/build/src/abap/2_statements/statements/read_line.js +1 -1
- package/build/src/abap/2_statements/statements/read_report.js +1 -1
- package/build/src/abap/2_statements/statements/read_table.js +1 -1
- package/build/src/abap/2_statements/statements/read_textpool.js +1 -1
- package/build/src/abap/2_statements/statements/receive.js +1 -1
- package/build/src/abap/2_statements/statements/refresh.js +1 -1
- package/build/src/abap/2_statements/statements/refresh_control.js +1 -1
- package/build/src/abap/2_statements/statements/reject.js +1 -1
- package/build/src/abap/2_statements/statements/report.js +1 -1
- package/build/src/abap/2_statements/statements/reserve.js +1 -1
- package/build/src/abap/2_statements/statements/retry.js +1 -1
- package/build/src/abap/2_statements/statements/return.js +1 -1
- package/build/src/abap/2_statements/statements/rollback_entities.js +1 -1
- package/build/src/abap/2_statements/statements/scan.js +1 -1
- package/build/src/abap/2_statements/statements/scroll_list.js +1 -1
- package/build/src/abap/2_statements/statements/search.js +1 -1
- package/build/src/abap/2_statements/statements/selectionscreen.js +1 -1
- package/build/src/abap/2_statements/statements/selectoption.js +1 -1
- package/build/src/abap/2_statements/statements/set_blank.js +1 -1
- package/build/src/abap/2_statements/statements/set_country.js +1 -1
- package/build/src/abap/2_statements/statements/set_cursor.js +1 -1
- package/build/src/abap/2_statements/statements/set_dataset.js +1 -1
- package/build/src/abap/2_statements/statements/set_extended_check.js +1 -1
- package/build/src/abap/2_statements/statements/set_language.js +1 -1
- package/build/src/abap/2_statements/statements/set_left.js +1 -1
- package/build/src/abap/2_statements/statements/set_locale.js +1 -1
- package/build/src/abap/2_statements/statements/set_locks.js +1 -1
- package/build/src/abap/2_statements/statements/set_margin.js +1 -1
- package/build/src/abap/2_statements/statements/set_parameter.js +1 -1
- package/build/src/abap/2_statements/statements/set_pf_status.js +1 -1
- package/build/src/abap/2_statements/statements/set_property.js +1 -1
- package/build/src/abap/2_statements/statements/set_run_time.js +1 -1
- package/build/src/abap/2_statements/statements/set_screen.js +1 -1
- package/build/src/abap/2_statements/statements/set_titlebar.js +1 -1
- package/build/src/abap/2_statements/statements/set_update_task.js +1 -1
- package/build/src/abap/2_statements/statements/set_user_command.js +1 -1
- package/build/src/abap/2_statements/statements/skip.js +1 -1
- package/build/src/abap/2_statements/statements/sort_dataset.js +1 -1
- package/build/src/abap/2_statements/statements/start_of_selection.js +1 -1
- package/build/src/abap/2_statements/statements/stop.js +1 -1
- package/build/src/abap/2_statements/statements/submit.js +1 -1
- package/build/src/abap/2_statements/statements/subtract_corresponding.js +1 -1
- package/build/src/abap/2_statements/statements/sum.js +1 -1
- package/build/src/abap/2_statements/statements/summary.js +1 -1
- package/build/src/abap/2_statements/statements/supply.js +1 -1
- package/build/src/abap/2_statements/statements/suppress_dialog.js +1 -1
- package/build/src/abap/2_statements/statements/syntax_check.js +1 -1
- package/build/src/abap/2_statements/statements/system_call.js +1 -1
- package/build/src/abap/2_statements/statements/tables.js +1 -1
- package/build/src/abap/2_statements/statements/test_seam.js +1 -1
- package/build/src/abap/2_statements/statements/top_of_page.js +1 -1
- package/build/src/abap/2_statements/statements/transfer.js +1 -1
- package/build/src/abap/2_statements/statements/truncate_dataset.js +1 -1
- package/build/src/abap/2_statements/statements/type.js +1 -1
- package/build/src/abap/2_statements/statements/type_begin.js +1 -1
- package/build/src/abap/2_statements/statements/type_enum.js +1 -1
- package/build/src/abap/2_statements/statements/type_enum_begin.js +1 -1
- package/build/src/abap/2_statements/statements/type_enum_end.js +1 -1
- package/build/src/abap/2_statements/statements/type_mesh.js +1 -1
- package/build/src/abap/2_statements/statements/type_mesh_begin.js +1 -1
- package/build/src/abap/2_statements/statements/type_mesh_end.js +1 -1
- package/build/src/abap/2_statements/statements/type_pool.js +1 -1
- package/build/src/abap/2_statements/statements/type_pools.js +1 -1
- package/build/src/abap/2_statements/statements/uline.js +1 -1
- package/build/src/abap/2_statements/statements/unpack.js +1 -1
- package/build/src/abap/2_statements/statements/update_database.js +1 -1
- package/build/src/abap/2_statements/statements/verification_message.js +1 -1
- package/build/src/abap/2_statements/statements/wait.js +1 -1
- package/build/src/abap/2_statements/statements/when_type.js +1 -1
- package/build/src/abap/2_statements/statements/window.js +1 -1
- package/build/src/abap/2_statements/statements/with.js +1 -1
- package/build/src/abap/2_statements/statements/write.js +1 -1
- package/build/src/abap/5_syntax/_builtin.js +50 -50
- package/build/src/abap/5_syntax/_current_scope.js +10 -0
- package/build/src/abap/5_syntax/expressions/field_chain.js +3 -3
- package/build/src/abap/5_syntax/expressions/method_source.js +1 -1
- package/build/src/abap/5_syntax/expressions/select.js +13 -3
- package/build/src/abap/5_syntax/statements/call_function.js +1 -1
- package/build/src/abap/5_syntax/statements/loop.js +1 -1
- package/build/src/abap/5_syntax/statements/move_corresponding.js +3 -3
- package/build/src/abap/abap_parser.js +21 -5
- package/build/src/abap/nodes/expression_node.js +3 -0
- package/build/src/cds/expressions/cds_define_projection.js +1 -1
- package/build/src/cds/expressions/cds_define_view.js +1 -1
- package/build/src/config.js +22 -1
- package/build/src/index.js +6 -2
- package/build/src/objects/_abap_object.js +3 -2
- package/build/src/objects/_abstract_object.js +1 -1
- package/build/src/objects/proxy_object.js +1 -1
- package/build/src/objects/table.js +1 -1
- package/build/src/registry.js +3 -3
- package/build/src/rules/ambiguous_statement.js +1 -1
- package/build/src/rules/avoid_use.js +2 -2
- package/build/src/rules/call_transaction_authority_check.js +3 -3
- package/build/src/rules/cds_legacy_view.js +2 -2
- package/build/src/rules/cloud_types.js +1 -1
- package/build/src/rules/downport.js +11 -11
- package/build/src/rules/function_module_recommendations.js +23 -2
- package/build/src/rules/inline_data_old_versions.js +3 -3
- package/build/src/rules/local_testclass_consistency.js +1 -1
- package/build/src/rules/main_file_contents.js +1 -1
- package/build/src/rules/no_inline_in_optional_branches.js +4 -4
- package/build/src/rules/obsolete_statement.js +6 -6
- package/build/src/rules/parser_702_chaining.js +2 -2
- package/build/src/rules/parser_error.js +2 -2
- package/build/src/rules/prefer_corresponding.js +1 -1
- package/build/src/rules/prefer_inline.js +2 -1
- package/build/src/rules/prefer_raise_exception_new.js +1 -1
- package/build/src/rules/prefer_xsdbool.js +2 -1
- package/build/src/rules/sql_escape_host_variables.js +3 -3
- package/build/src/rules/strict_sql.js +2 -2
- package/build/src/rules/superfluous_value.js +2 -2
- package/build/src/rules/use_bool_expression.js +6 -5
- package/build/src/rules/use_line_exists.js +4 -3
- package/build/src/rules/use_new.js +2 -1
- package/build/src/version.js +210 -2
- package/package.json +1 -1
- package/build/src/abap/2_statements/expressions/association_name.js +0 -11
- package/build/src/abap/2_statements/expressions/sql_path.js +0 -17
|
@@ -67,7 +67,7 @@ class PreferCorresponding extends _abap_rule_1.ABAPRule {
|
|
|
67
67
|
}
|
|
68
68
|
runParsed(file) {
|
|
69
69
|
const issues = [];
|
|
70
|
-
if (this.reg.getConfig().
|
|
70
|
+
if (!(0, version_1.releaseAtLeast)(this.reg.getConfig().getRelease(), version_1.Release.v740sp05)) {
|
|
71
71
|
return issues;
|
|
72
72
|
}
|
|
73
73
|
const message = "Use CORRESPONDING type( ... ) instead of MOVE-CORRESPONDING";
|
|
@@ -93,7 +93,8 @@ DATA(percentage) = CONV decfloat34( comment_number / abs_statement_number ) * 10
|
|
|
93
93
|
if (obj.getType() === "INTF") {
|
|
94
94
|
return [];
|
|
95
95
|
}
|
|
96
|
-
if (
|
|
96
|
+
if (!(0, version_1.releaseAtLeast)(this.reg.getConfig().getRelease(), version_1.Release.v740sp02)
|
|
97
|
+
&& this.reg.getConfig().getLanguageVersion() !== version_1.LanguageVersion.Cloud) {
|
|
97
98
|
return [];
|
|
98
99
|
}
|
|
99
100
|
else if (!(obj instanceof _abap_object_1.ABAPObject)) {
|
|
@@ -72,7 +72,7 @@ From 752 and up`,
|
|
|
72
72
|
this.conf = conf;
|
|
73
73
|
}
|
|
74
74
|
runParsed(file) {
|
|
75
|
-
if (this.reg.getConfig().
|
|
75
|
+
if (!(0, version_1.releaseAtLeast)(this.reg.getConfig().getRelease(), version_1.Release.v752)) {
|
|
76
76
|
return [];
|
|
77
77
|
}
|
|
78
78
|
const issues = [];
|
|
@@ -71,7 +71,8 @@ https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md#use-xsdbool
|
|
|
71
71
|
runParsed(file) {
|
|
72
72
|
var _a;
|
|
73
73
|
const issues = [];
|
|
74
|
-
if (
|
|
74
|
+
if (!(0, version_1.releaseAtLeast)(this.reg.getConfig().getRelease(), version_1.Release.v740sp08)
|
|
75
|
+
&& this.reg.getConfig().getLanguageVersion() !== version_1.LanguageVersion.Cloud) {
|
|
75
76
|
return [];
|
|
76
77
|
}
|
|
77
78
|
for (const s of ((_a = file.getStructure()) === null || _a === void 0 ? void 0 : _a.findAllExpressions(Expressions.Source)) || []) {
|
|
@@ -73,9 +73,9 @@ class SQLEscapeHostVariables extends _abap_rule_1.ABAPRule {
|
|
|
73
73
|
if (type === "INTF" || type === "TYPE") {
|
|
74
74
|
return [];
|
|
75
75
|
}
|
|
76
|
-
if (this.reg.getConfig().
|
|
77
|
-
&& this.reg.getConfig().
|
|
78
|
-
&& this.reg.getConfig().
|
|
76
|
+
if (!(0, version_1.releaseAtLeast)(this.reg.getConfig().getRelease(), version_1.Release.v740sp02)
|
|
77
|
+
&& this.reg.getConfig().getLanguageVersion() !== version_1.LanguageVersion.Cloud
|
|
78
|
+
&& !this.reg.getConfig().getOpenABAP()) {
|
|
79
79
|
return [];
|
|
80
80
|
}
|
|
81
81
|
for (const s of file.getStatements()) {
|
|
@@ -79,8 +79,8 @@ Activates from v750 and up`,
|
|
|
79
79
|
if (type === "INTF" || type === "TYPE") {
|
|
80
80
|
return [];
|
|
81
81
|
}
|
|
82
|
-
if (this.reg.getConfig().
|
|
83
|
-
&& this.reg.getConfig().
|
|
82
|
+
if (!(0, version_1.releaseAtLeast)(this.reg.getConfig().getRelease(), version_1.Release.v750)
|
|
83
|
+
&& this.reg.getConfig().getLanguageVersion() !== version_1.LanguageVersion.Cloud) {
|
|
84
84
|
return [];
|
|
85
85
|
}
|
|
86
86
|
for (const s of file.getStatements()) {
|
|
@@ -69,8 +69,8 @@ class SuperfluousValue extends _abap_rule_1.ABAPRule {
|
|
|
69
69
|
runParsed(file) {
|
|
70
70
|
var _a, _b;
|
|
71
71
|
const output = [];
|
|
72
|
-
if (this.reg.getConfig().
|
|
73
|
-
&& this.reg.getConfig().
|
|
72
|
+
if (!(0, version_1.releaseAtLeast)(this.reg.getConfig().getRelease(), version_1.Release.v740sp02)
|
|
73
|
+
&& this.reg.getConfig().getLanguageVersion() !== version_1.LanguageVersion.Cloud) {
|
|
74
74
|
return [];
|
|
75
75
|
}
|
|
76
76
|
const struc = file.getStructure();
|
|
@@ -82,8 +82,9 @@ DATA(fsdf) = xsdbool( foo <> bar ).`,
|
|
|
82
82
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
83
83
|
const issues = [];
|
|
84
84
|
const stru = file.getStructure();
|
|
85
|
-
const
|
|
86
|
-
|
|
85
|
+
const release = this.reg.getConfig().getRelease();
|
|
86
|
+
const langVersion = this.reg.getConfig().getLanguageVersion();
|
|
87
|
+
if (stru === undefined || (!(0, version_1.releaseAtLeast)(release, version_1.Release.v702) && langVersion !== version_1.LanguageVersion.Cloud)) {
|
|
87
88
|
return [];
|
|
88
89
|
}
|
|
89
90
|
for (const i of stru.findAllStructures(Structures.If)) {
|
|
@@ -120,8 +121,8 @@ DATA(fsdf) = xsdbool( foo <> bar ).`,
|
|
|
120
121
|
const elseSource = (_g = elseStatement.findFirstExpression(Expressions.Source)) === null || _g === void 0 ? void 0 : _g.concatTokens().toUpperCase();
|
|
121
122
|
if ((bodySource === "ABAP_TRUE" && elseSource === "ABAP_FALSE")
|
|
122
123
|
|| (bodySource === "ABAP_FALSE" && elseSource === "ABAP_TRUE")) {
|
|
123
|
-
const func = (this.reg.getConfig().
|
|
124
|
-
|| this.reg.getConfig().
|
|
124
|
+
const func = ((0, version_1.releaseAtLeast)(this.reg.getConfig().getRelease(), version_1.Release.v740sp08)
|
|
125
|
+
|| this.reg.getConfig().getLanguageVersion() === version_1.LanguageVersion.Cloud) ? "xsdbool" : "boolc";
|
|
125
126
|
const negate = bodySource === "ABAP_FALSE";
|
|
126
127
|
const message = `Use ${func} instead of IF` + (negate ? ", negate expression" : "");
|
|
127
128
|
const start = i.getFirstToken().getStart();
|
|
@@ -135,7 +136,7 @@ DATA(fsdf) = xsdbool( foo <> bar ).`,
|
|
|
135
136
|
issues.push(issue_1.Issue.atRange(file, start, end, message, this.getMetadata().key, this.conf.severity, fix));
|
|
136
137
|
}
|
|
137
138
|
}
|
|
138
|
-
if (
|
|
139
|
+
if ((0, version_1.releaseAtLeast)(release, version_1.Release.v740sp08) || langVersion === version_1.LanguageVersion.Cloud) {
|
|
139
140
|
for (const b of stru.findAllExpressions(Expressions.CondBody)) {
|
|
140
141
|
const concat = b.concatTokens().toUpperCase();
|
|
141
142
|
if (concat.endsWith(" THEN ABAP_TRUE ELSE ABAP_FALSE")
|
|
@@ -78,11 +78,12 @@ ENDIF.`,
|
|
|
78
78
|
if (obj.getType() === "INTF") {
|
|
79
79
|
return [];
|
|
80
80
|
}
|
|
81
|
-
const
|
|
82
|
-
|
|
81
|
+
const release = this.reg.getConfig().getRelease();
|
|
82
|
+
const langVers = this.reg.getConfig().getLanguageVersion();
|
|
83
|
+
if (this.reg.getConfig().getOpenABAP()) {
|
|
83
84
|
return [];
|
|
84
85
|
}
|
|
85
|
-
else if (
|
|
86
|
+
else if (!(0, version_1.releaseAtLeast)(release, version_1.Release.v740sp02) && langVers !== version_1.LanguageVersion.Cloud) {
|
|
86
87
|
return [];
|
|
87
88
|
}
|
|
88
89
|
const statements = file.getStatements();
|
|
@@ -81,7 +81,8 @@ Applicable from v740sp02 and up`,
|
|
|
81
81
|
if (obj.getType() === "INTF") {
|
|
82
82
|
return [];
|
|
83
83
|
}
|
|
84
|
-
if (
|
|
84
|
+
if (!(0, version_1.releaseAtLeast)(this.reg.getConfig().getRelease(), version_1.Release.v740sp02)
|
|
85
|
+
&& this.reg.getConfig().getLanguageVersion() !== version_1.LanguageVersion.Cloud) {
|
|
85
86
|
return [];
|
|
86
87
|
}
|
|
87
88
|
for (const statement of file.getStatements()) {
|
package/build/src/version.js
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.defaultVersion = exports.Version = void 0;
|
|
3
|
+
exports.defaultRelease = exports.defaultVersion = exports.Release = exports.ReleaseList = exports.LanguageVersion = exports.Version = void 0;
|
|
4
|
+
exports.releaseAtLeast = releaseAtLeast;
|
|
5
|
+
exports.fromABAP = fromABAP;
|
|
6
|
+
exports.fromKernel = fromKernel;
|
|
7
|
+
exports.fromCloud = fromCloud;
|
|
8
|
+
exports.fromOP = fromOP;
|
|
9
|
+
exports.versionToABAPRelease = versionToABAPRelease;
|
|
4
10
|
exports.getPreviousVersion = getPreviousVersion;
|
|
11
|
+
/** @deprecated Use ABAPRelease and Release instead */
|
|
5
12
|
var Version;
|
|
6
13
|
(function (Version) {
|
|
7
14
|
Version["OpenABAP"] = "open-abap";
|
|
@@ -19,9 +26,210 @@ var Version;
|
|
|
19
26
|
Version["v756"] = "v756";
|
|
20
27
|
Version["v757"] = "v757";
|
|
21
28
|
Version["v758"] = "v758";
|
|
29
|
+
Version["v816"] = "v816";
|
|
30
|
+
/**
|
|
31
|
+
* Steampunk / SAP BTP ABAP Environment. This was never a release identity —
|
|
32
|
+
* it always meant "latest available release, parsed under cloud-language
|
|
33
|
+
* restrictions". It expands into the explicit
|
|
34
|
+
* Release.Newest + {@link LanguageVersion.Cloud} pair.
|
|
35
|
+
*/
|
|
22
36
|
Version["Cloud"] = "Cloud";
|
|
37
|
+
Version["Newest"] = "Newest";
|
|
23
38
|
})(Version || (exports.Version = Version = {}));
|
|
39
|
+
/**
|
|
40
|
+
* Dialect / flavor axis, orthogonal to the on-prem/cloud release track.
|
|
41
|
+
*
|
|
42
|
+
* `Normal` = full ABAP, no restrictions.
|
|
43
|
+
* `Cloud` = restricted ABAP for Cloud, syntactic and semantic restrictions apply.
|
|
44
|
+
* `KeyUser` = stricter still (KeyUser Extensibility), strict subset of Cloud.
|
|
45
|
+
*
|
|
46
|
+
* Ordering: KeyUser(0) < Cloud(1) < Normal(2) — lower = more restrictive.
|
|
47
|
+
*/
|
|
48
|
+
var LanguageVersion;
|
|
49
|
+
(function (LanguageVersion) {
|
|
50
|
+
LanguageVersion["Normal"] = "Normal";
|
|
51
|
+
LanguageVersion["KeyUser"] = "KeyUser";
|
|
52
|
+
LanguageVersion["Cloud"] = "Cloud";
|
|
53
|
+
})(LanguageVersion || (exports.LanguageVersion = LanguageVersion = {}));
|
|
54
|
+
const releaseDefsRaw = [
|
|
55
|
+
// Pre-cloud on-prem releases. kernel == op for these.
|
|
56
|
+
["v700", { abap: "700", kernel: 700, op: 700, cloud: null, ce: null }],
|
|
57
|
+
["v701", { abap: "701", kernel: 701, op: 701, cloud: null, ce: null }],
|
|
58
|
+
["v702", { abap: "702", kernel: 702, op: 702, cloud: null, ce: null }],
|
|
59
|
+
["v710", { abap: "710", kernel: 710, op: 710, cloud: null, ce: null }],
|
|
60
|
+
["v711", { abap: "711", kernel: 711, op: 711, cloud: null, ce: null }],
|
|
61
|
+
["v720", { abap: "720", kernel: 720, op: 720, cloud: null, ce: null }],
|
|
62
|
+
["v722", { abap: "722", kernel: 722, op: 722, cloud: null, ce: null }],
|
|
63
|
+
["v730", { abap: "730", kernel: 730, op: 730, cloud: null, ce: null }],
|
|
64
|
+
["v731", { abap: "731", kernel: 731, op: 731, cloud: null, ce: null }],
|
|
65
|
+
["v740sp02", { abap: "740SP02", kernel: 740, op: 740, cloud: null, ce: null }],
|
|
66
|
+
["v740sp05", { abap: "740SP05", kernel: 741, op: 740, cloud: null, ce: null }],
|
|
67
|
+
["v740sp08", { abap: "740SP08", kernel: 742, op: 740, cloud: null, ce: null }],
|
|
68
|
+
// Cloud-numbered releases. The *last* row at a given op value is that on-prem release.
|
|
69
|
+
// On-prem chain (op-band → anchor cloud row, encoded in op: below):
|
|
70
|
+
// op 750 : v760 .. v762 (anchor v762 == on-prem 750)
|
|
71
|
+
// op 751 : v763 .. v765 (anchor v765 == on-prem 751)
|
|
72
|
+
// op 752 : v766 .. v769 (anchor v769 == on-prem 752)
|
|
73
|
+
// op 753 : v770 .. v773 (anchor v773 == on-prem 753)
|
|
74
|
+
// op 754 : v774 .. v777 (anchor v777 == on-prem 754)
|
|
75
|
+
// op 755 : v778 .. v781 (anchor v781 == on-prem 755)
|
|
76
|
+
// op 756 : v782 .. v785 (anchor v785 == on-prem 756)
|
|
77
|
+
// op 757 : v786 .. v789 (anchor v789 == on-prem 757)
|
|
78
|
+
// op 758 : v790 .. v793 (anchor v793 == on-prem 758)
|
|
79
|
+
// op 816 : v794 .. v916 (anchor v916 == on-prem 816)
|
|
80
|
+
// op nul : v917 .. v918 (cloud-only, no on-prem counterpart yet)
|
|
81
|
+
//
|
|
82
|
+
// kernel 743–753 served v760–v770; from v771 kernel == cloud.
|
|
83
|
+
// ce: null means the release was never shipped to customers on any cloud platform.
|
|
84
|
+
["v760", { abap: "7.60", kernel: 743, op: 750, cloud: 760, ce: null }],
|
|
85
|
+
["v761", { abap: "7.61", kernel: 744, op: 750, cloud: 761, ce: null }],
|
|
86
|
+
["v762", { abap: "7.62", kernel: 745, op: 750, cloud: 762, ce: null }], // == on-prem 750
|
|
87
|
+
["v763", { abap: "7.63", kernel: 746, op: 751, cloud: 763, ce: null }],
|
|
88
|
+
["v764", { abap: "7.64", kernel: 747, op: 751, cloud: 764, ce: null }],
|
|
89
|
+
["v765", { abap: "7.65", kernel: 748, op: 751, cloud: 765, ce: null }], // == on-prem 751
|
|
90
|
+
["v766", { abap: "7.66", kernel: 749, op: 752, cloud: 766, ce: null }],
|
|
91
|
+
["v767", { abap: "7.67", kernel: 750, op: 752, cloud: 767, ce: 1702 }], // S/4 only
|
|
92
|
+
["v768", { abap: "7.68", kernel: 751, op: 752, cloud: 768, ce: 1705 }], // S/4 only
|
|
93
|
+
["v769", { abap: "7.69", kernel: 752, op: 752, cloud: 769, ce: 1708 }], // S/4 only == on-prem 752
|
|
94
|
+
["v770", { abap: "7.70", kernel: 753, op: 753, cloud: 770, ce: 1711 }], // S/4 only
|
|
95
|
+
["v771", { abap: "7.71", kernel: 771, op: 753, cloud: 771, ce: 1802 }], // S/4 only
|
|
96
|
+
["v772", { abap: "7.72", kernel: 772, op: 753, cloud: 772, ce: 1805 }], // S/4 only
|
|
97
|
+
["v773", { abap: "7.73", kernel: 773, op: 753, cloud: 773, ce: 1808 }], // S/4 only == on-prem 753
|
|
98
|
+
["v774", { abap: "7.74", kernel: 774, op: 754, cloud: 774, ce: 1811 }],
|
|
99
|
+
["v775", { abap: "7.75", kernel: 775, op: 754, cloud: 775, ce: 1902 }],
|
|
100
|
+
["v776", { abap: "7.76", kernel: 776, op: 754, cloud: 776, ce: 1905 }],
|
|
101
|
+
["v777", { abap: "7.77", kernel: 777, op: 754, cloud: 777, ce: 1908 }], // == on-prem 754
|
|
102
|
+
["v778", { abap: "7.78", kernel: 778, op: 755, cloud: 778, ce: 1911 }],
|
|
103
|
+
["v779", { abap: "7.79", kernel: 779, op: 755, cloud: 779, ce: 2002 }],
|
|
104
|
+
["v780", { abap: "7.80", kernel: 780, op: 755, cloud: 780, ce: 2005 }],
|
|
105
|
+
["v781", { abap: "7.81", kernel: 781, op: 755, cloud: 781, ce: 2008 }], // == on-prem 755
|
|
106
|
+
["v782", { abap: "7.82", kernel: 782, op: 756, cloud: 782, ce: 2011 }],
|
|
107
|
+
["v783", { abap: "7.83", kernel: 783, op: 756, cloud: 783, ce: 2102 }],
|
|
108
|
+
["v784", { abap: "7.84", kernel: 784, op: 756, cloud: 784, ce: 2105 }],
|
|
109
|
+
["v785", { abap: "7.85", kernel: 785, op: 756, cloud: 785, ce: 2108 }], // == on-prem 756
|
|
110
|
+
["v786", { abap: "7.86", kernel: 786, op: 757, cloud: 786, ce: 2111 }],
|
|
111
|
+
["v787", { abap: "7.87", kernel: 787, op: 757, cloud: 787, ce: 2202 }],
|
|
112
|
+
["v788", { abap: "7.88", kernel: 788, op: 757, cloud: 788, ce: 2205 }],
|
|
113
|
+
["v789", { abap: "7.89", kernel: 789, op: 757, cloud: 789, ce: 2208 }], // == on-prem 757
|
|
114
|
+
["v790", { abap: "7.90", kernel: 790, op: 758, cloud: 790, ce: 2211 }],
|
|
115
|
+
["v791", { abap: "7.91", kernel: 791, op: 758, cloud: 791, ce: 2302 }],
|
|
116
|
+
["v792", { abap: "7.92", kernel: 792, op: 758, cloud: 792, ce: 2305 }], // BTP only
|
|
117
|
+
["v793", { abap: "7.93", kernel: 793, op: 758, cloud: 793, ce: 2308 }], // == on-prem 758
|
|
118
|
+
["v794", { abap: "7.94", kernel: 794, op: 816, cloud: 794, ce: 2311 }], // BTP only
|
|
119
|
+
["v795", { abap: "7.95", kernel: 795, op: 816, cloud: 795, ce: 2402 }],
|
|
120
|
+
["v796", { abap: "7.96", kernel: 796, op: 816, cloud: 796, ce: 2405 }], // BTP only
|
|
121
|
+
["v912", { abap: "9.12", kernel: 912, op: 816, cloud: 912, ce: 2408 }],
|
|
122
|
+
["v913", { abap: "9.13", kernel: 913, op: 816, cloud: 913, ce: 2411 }], // BTP only
|
|
123
|
+
["v914", { abap: "9.14", kernel: 914, op: 816, cloud: 914, ce: 2502 }],
|
|
124
|
+
["v915", { abap: "9.15", kernel: 915, op: 816, cloud: 915, ce: 2505 }], // BTP only
|
|
125
|
+
["v916", { abap: "9.16", kernel: 916, op: 816, cloud: 916, ce: 2508 }], // == on-prem 816
|
|
126
|
+
["v917", { abap: "9.17", kernel: 917, op: null, cloud: 917, ce: 2511 }], // BTP only
|
|
127
|
+
["v918", { abap: "9.18", kernel: 918, op: null, cloud: 918, ce: 2602 }],
|
|
128
|
+
// Newest: always-active sentinel, satisfies any release check
|
|
129
|
+
["Newest", { abap: null, kernel: null, op: null, cloud: null, ce: null }],
|
|
130
|
+
];
|
|
131
|
+
/** All known releases in chronological order. Declaration order IS the ordering. */
|
|
132
|
+
exports.ReleaseList = releaseDefsRaw.map(([name, r], i) => Object.freeze(Object.assign(Object.assign({}, r), { name, ordinal: i })));
|
|
133
|
+
/** Lookup table keyed by release name (e.g. `Release.v740sp05`, `Release.Newest`). */
|
|
134
|
+
exports.Release = Object.freeze(Object.assign(Object.assign({}, Object.fromEntries(releaseDefsRaw.map(([name], i) => [name, exports.ReleaseList[i]]))), {
|
|
135
|
+
// Deprecated aliases: on-prem v750–v758 map to last cloud row at that op
|
|
136
|
+
v750: exports.ReleaseList[14], v751: exports.ReleaseList[17], v752: exports.ReleaseList[21], v753: exports.ReleaseList[25], v754: exports.ReleaseList[29], v755: exports.ReleaseList[33], v756: exports.ReleaseList[37], v757: exports.ReleaseList[41], v758: exports.ReleaseList[45], v816: exports.ReleaseList[53] }));
|
|
137
|
+
/**
|
|
138
|
+
* Is `running` at least as new as `required`?
|
|
139
|
+
* Comparison is purely by ordinal (declaration order in ReleaseList).
|
|
140
|
+
* Newest (last entry) satisfies any required release.
|
|
141
|
+
*/
|
|
142
|
+
function releaseAtLeast(running, required) {
|
|
143
|
+
return running.ordinal >= required.ordinal;
|
|
144
|
+
}
|
|
145
|
+
// Lookup maps for the four constructor functions
|
|
146
|
+
const byAbap = new Map();
|
|
147
|
+
const byKernel = new Map();
|
|
148
|
+
const byOp = new Map();
|
|
149
|
+
const byCloud = new Map();
|
|
150
|
+
for (const r of exports.ReleaseList) {
|
|
151
|
+
if (r.abap !== null) {
|
|
152
|
+
byAbap.set(r.abap, r);
|
|
153
|
+
}
|
|
154
|
+
if (r.kernel !== null) {
|
|
155
|
+
byKernel.set(r.kernel, r);
|
|
156
|
+
}
|
|
157
|
+
if (r.cloud !== null) {
|
|
158
|
+
byCloud.set(r.cloud, r);
|
|
159
|
+
}
|
|
160
|
+
if (r.op !== null) {
|
|
161
|
+
// fromOP returns the *last* row at that op (the full on-prem release),
|
|
162
|
+
// so we overwrite on each iteration — later rows win.
|
|
163
|
+
byOp.set(r.op, r);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/** Look up a release by its ABAP name, e.g. "7.90", "740SP05", "9.16" */
|
|
167
|
+
function fromABAP(abap) {
|
|
168
|
+
const found = byAbap.get(abap);
|
|
169
|
+
if (found === undefined) {
|
|
170
|
+
throw new Error("Unknown ABAP release: " + abap);
|
|
171
|
+
}
|
|
172
|
+
return found;
|
|
173
|
+
}
|
|
174
|
+
/** Look up a release by its kernel release number, e.g. 753, 790, 916 */
|
|
175
|
+
function fromKernel(kernel) {
|
|
176
|
+
const found = byKernel.get(kernel);
|
|
177
|
+
if (found === undefined) {
|
|
178
|
+
throw new Error("Unknown kernel release: " + kernel);
|
|
179
|
+
}
|
|
180
|
+
return found;
|
|
181
|
+
}
|
|
182
|
+
/** Look up a release by its cloud release number, e.g. 793, 916 */
|
|
183
|
+
function fromCloud(cloud) {
|
|
184
|
+
const found = byCloud.get(cloud);
|
|
185
|
+
if (found === undefined) {
|
|
186
|
+
throw new Error("Unknown cloud release: " + cloud);
|
|
187
|
+
}
|
|
188
|
+
return found;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Look up a release by its on-prem release number, e.g. 758, 816.
|
|
192
|
+
* Returns the *last* cloud row at that op number, which is the full on-prem release.
|
|
193
|
+
*/
|
|
194
|
+
function fromOP(op) {
|
|
195
|
+
const found = byOp.get(op);
|
|
196
|
+
if (found === undefined) {
|
|
197
|
+
throw new Error("Unknown on-prem release: " + op);
|
|
198
|
+
}
|
|
199
|
+
return found;
|
|
200
|
+
}
|
|
201
|
+
// ---------------------------------------------------------------------------
|
|
202
|
+
// Deprecated compatibility layer — keeps existing callers working
|
|
203
|
+
// ---------------------------------------------------------------------------
|
|
204
|
+
const byDeprecated = Object.freeze({
|
|
205
|
+
[Version.v700]: exports.Release["v700"],
|
|
206
|
+
[Version.v702]: exports.Release["v702"],
|
|
207
|
+
[Version.v740sp02]: exports.Release["v740sp02"],
|
|
208
|
+
[Version.v740sp05]: exports.Release["v740sp05"],
|
|
209
|
+
[Version.v740sp08]: exports.Release["v740sp08"],
|
|
210
|
+
[Version.v750]: exports.Release["v750"],
|
|
211
|
+
[Version.v751]: exports.Release["v751"],
|
|
212
|
+
[Version.v752]: exports.Release["v752"],
|
|
213
|
+
[Version.v753]: exports.Release["v753"],
|
|
214
|
+
[Version.v754]: exports.Release["v754"],
|
|
215
|
+
[Version.v755]: exports.Release["v755"],
|
|
216
|
+
[Version.v756]: exports.Release["v756"],
|
|
217
|
+
[Version.v757]: exports.Release["v757"],
|
|
218
|
+
[Version.v758]: exports.Release["v758"],
|
|
219
|
+
[Version.v816]: exports.Release["v816"],
|
|
220
|
+
[Version.Newest]: exports.Release["Newest"],
|
|
221
|
+
[Version.Cloud]: exports.Release["Newest"], // Cloud → Newest sentinel
|
|
222
|
+
[Version.OpenABAP]: exports.Release["v702"], // OpenABAP shares v702 release identity
|
|
223
|
+
});
|
|
224
|
+
function versionToABAPRelease(v) {
|
|
225
|
+
const found = byDeprecated[v];
|
|
226
|
+
if (found === undefined) {
|
|
227
|
+
throw new Error("No ABAPRelease mapping for Version: " + v);
|
|
228
|
+
}
|
|
229
|
+
return found;
|
|
230
|
+
}
|
|
24
231
|
exports.defaultVersion = Version.v758;
|
|
232
|
+
exports.defaultRelease = exports.Release.v758;
|
|
25
233
|
function getPreviousVersion(v) {
|
|
26
234
|
if (v === Version.OpenABAP) {
|
|
27
235
|
return Version.v702;
|
|
@@ -31,7 +239,7 @@ function getPreviousVersion(v) {
|
|
|
31
239
|
if (found < 0) {
|
|
32
240
|
throw "Unknown version: " + v;
|
|
33
241
|
}
|
|
34
|
-
|
|
242
|
+
if (found === 0) {
|
|
35
243
|
throw "Nothing lower: " + v;
|
|
36
244
|
}
|
|
37
245
|
return all[found - 1];
|
package/package.json
CHANGED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AssociationName = void 0;
|
|
4
|
-
const combi_1 = require("../combi");
|
|
5
|
-
class AssociationName extends combi_1.Expression {
|
|
6
|
-
getRunnable() {
|
|
7
|
-
return (0, combi_1.regex)(/^(\\_[\w]+)+$/);
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
exports.AssociationName = AssociationName;
|
|
11
|
-
//# sourceMappingURL=association_name.js.map
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SQLPath = void 0;
|
|
4
|
-
const combi_1 = require("../combi");
|
|
5
|
-
const tokens_1 = require("../../1_lexer/tokens");
|
|
6
|
-
const association_name_1 = require("./association_name");
|
|
7
|
-
const sql_cond_1 = require("./sql_cond");
|
|
8
|
-
class SQLPath extends combi_1.Expression {
|
|
9
|
-
getRunnable() {
|
|
10
|
-
// todo, only from version?
|
|
11
|
-
const condition = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.BracketLeftW), "ONE TO ONE WHERE", sql_cond_1.SQLCond, (0, combi_1.tok)(tokens_1.WBracketRight));
|
|
12
|
-
const ret = (0, combi_1.seq)(association_name_1.AssociationName, (0, combi_1.optPrio)(condition), (0, combi_1.tok)(tokens_1.Dash), (0, combi_1.regex)(/\w+/));
|
|
13
|
-
return ret;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
exports.SQLPath = SQLPath;
|
|
17
|
-
//# sourceMappingURL=sql_path.js.map
|