couchbase 4.4.3 → 4.4.5
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/BUILDING.md +182 -0
- package/CMakeLists.txt +15 -5
- package/CONTRIBUTING.md +1 -1
- package/README.md +4 -2
- package/deps/couchbase-cxx-cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/BUILDING.md +206 -0
- package/deps/couchbase-cxx-cache/cpm/{CPM_0.38.6.cmake → CPM_0.40.5.cmake} +152 -22
- package/deps/couchbase-cxx-cache/mozilla-ca-bundle.crt +32 -87
- package/deps/couchbase-cxx-cache/mozilla-ca-bundle.sha256 +1 -1
- package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/CMakeLists.txt +30 -6
- package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/README.md +10 -3
- package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/utils.cmake +13 -2
- package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/async_logger-inl.h +5 -7
- package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/mpmc_blocking_q.h +3 -3
- package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/os-inl.h +3 -3
- package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/thread_pool-inl.h +3 -8
- package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/thread_pool.h +3 -14
- package/deps/couchbase-cxx-cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/base.h +47 -31
- package/deps/couchbase-cxx-cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/format-inl.h +32 -8
- package/deps/couchbase-cxx-cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/format.h +22 -14
- package/deps/couchbase-cxx-cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/ranges.h +1 -1
- package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/mdc.h +4 -0
- package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/pattern_formatter-inl.h +16 -2
- package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/ansicolor_sink.h +1 -1
- package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/base_sink.h +4 -4
- package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/callback_sink.h +1 -1
- package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/daily_file_sink.h +3 -0
- package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/hourly_file_sink.h +2 -0
- package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/msvc_sink.h +1 -1
- package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/rotating_file_sink-inl.h +1 -1
- package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/syslog_sink.h +3 -2
- package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/wincolor_sink-inl.h +9 -0
- package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/version.h +2 -2
- package/deps/couchbase-cxx-cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/src/format.cc → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/src/bundled_fmtlib_format.cpp} +10 -5
- package/deps/couchbase-cxx-client/CMakeLists.txt +3 -2
- package/deps/couchbase-cxx-client/README.md +2 -2
- package/deps/couchbase-cxx-client/cmake/APKBUILD.in +54 -0
- package/deps/couchbase-cxx-client/cmake/Backtrace.cmake +3 -1
- package/deps/couchbase-cxx-client/cmake/CPM.cmake +1 -1
- package/deps/couchbase-cxx-client/cmake/CompilerWarnings.cmake +0 -5
- package/deps/couchbase-cxx-client/cmake/Packaging.cmake +174 -11
- package/deps/couchbase-cxx-client/cmake/RPath.cmake +10 -0
- package/deps/couchbase-cxx-client/cmake/Testing.cmake +0 -4
- package/deps/couchbase-cxx-client/cmake/ThirdPartyDependencies.cmake +7 -26
- package/deps/couchbase-cxx-client/cmake/VersionInfo.cmake +4 -0
- package/deps/couchbase-cxx-client/cmake/build_version.hxx.in +1 -0
- package/deps/couchbase-cxx-client/cmake/couchbase-cxx-client.spec.in +2 -2
- package/deps/couchbase-cxx-client/cmake/couchbase_cxx_client.pc.in +2 -2
- package/deps/couchbase-cxx-client/cmake/debian/changelog.in +5 -0
- package/deps/couchbase-cxx-client/cmake/debian/compat +1 -0
- package/deps/couchbase-cxx-client/cmake/debian/control +40 -0
- package/deps/couchbase-cxx-client/cmake/debian/rules +41 -0
- package/deps/couchbase-cxx-client/cmake/debian/source/format +1 -0
- package/deps/couchbase-cxx-client/core/agent_config.cxx +1 -1
- package/deps/couchbase-cxx-client/core/agent_group_config.cxx +1 -1
- package/deps/couchbase-cxx-client/core/bucket.cxx +9 -9
- package/deps/couchbase-cxx-client/core/cluster.cxx +0 -2
- package/deps/couchbase-cxx-client/core/cluster_agent_config.cxx +1 -1
- package/deps/couchbase-cxx-client/core/collections_component.cxx +1 -1
- package/deps/couchbase-cxx-client/core/columnar/agent_config.cxx +2 -2
- package/deps/couchbase-cxx-client/core/columnar/error.hxx +0 -1
- package/deps/couchbase-cxx-client/core/columnar/query_component.cxx +2 -2
- package/deps/couchbase-cxx-client/core/config_profiles.cxx +1 -1
- package/deps/couchbase-cxx-client/core/core_sdk_shim.cxx +1 -1
- package/deps/couchbase-cxx-client/core/crud_component.cxx +1 -1
- package/deps/couchbase-cxx-client/core/design_document_namespace_fmt.hxx +1 -1
- package/deps/couchbase-cxx-client/core/diagnostics_fmt.hxx +1 -1
- package/deps/couchbase-cxx-client/core/document_id.cxx +1 -1
- package/deps/couchbase-cxx-client/core/document_id_fmt.hxx +1 -1
- package/deps/couchbase-cxx-client/core/error_context/analytics_json.hxx +3 -1
- package/deps/couchbase-cxx-client/core/error_context/key_value_json.hxx +1 -1
- package/deps/couchbase-cxx-client/core/error_context/query_public_json.hxx +1 -1
- package/deps/couchbase-cxx-client/core/error_context/subdocument_json.hxx +1 -1
- package/deps/couchbase-cxx-client/core/fmt/key_value_error_map_attribute.hxx +1 -1
- package/deps/couchbase-cxx-client/core/fmt/key_value_extended_error_info.hxx +1 -1
- package/deps/couchbase-cxx-client/core/fmt/key_value_status_code.hxx +1 -1
- package/deps/couchbase-cxx-client/core/http_component.cxx +3 -3
- package/deps/couchbase-cxx-client/core/impl/analytics.cxx +1 -0
- package/deps/couchbase-cxx-client/core/impl/best_effort_retry_strategy.cxx +1 -1
- package/deps/couchbase-cxx-client/core/impl/collection.cxx +28 -4
- package/deps/couchbase-cxx-client/core/impl/date_range.cxx +2 -2
- package/deps/couchbase-cxx-client/core/impl/date_range_query.cxx +2 -2
- package/deps/couchbase-cxx-client/core/impl/dns_srv_tracker.cxx +1 -1
- package/deps/couchbase-cxx-client/core/impl/error.cxx +27 -4
- package/deps/couchbase-cxx-client/core/impl/expiry.cxx +2 -2
- package/deps/couchbase-cxx-client/core/impl/fail_fast_retry_strategy.cxx +1 -2
- package/deps/couchbase-cxx-client/core/impl/get_replica.hxx +2 -0
- package/deps/couchbase-cxx-client/core/impl/key_value_error_context.cxx +6 -4
- package/deps/couchbase-cxx-client/core/impl/lookup_in_replica.hxx +2 -0
- package/deps/couchbase-cxx-client/core/impl/numeric_range.cxx +1 -1
- package/deps/couchbase-cxx-client/core/impl/observe_seqno.hxx +2 -0
- package/deps/couchbase-cxx-client/core/impl/query.cxx +1 -0
- package/deps/couchbase-cxx-client/core/impl/query_error_context.cxx +3 -2
- package/deps/couchbase-cxx-client/core/impl/scope.cxx +5 -6
- package/deps/couchbase-cxx-client/core/impl/search.cxx +3 -1
- package/deps/couchbase-cxx-client/core/io/config_tracker.cxx +1 -1
- package/deps/couchbase-cxx-client/core/io/dns_client.cxx +23 -8
- package/deps/couchbase-cxx-client/core/io/http_command.hxx +2 -2
- package/deps/couchbase-cxx-client/core/io/http_parser.cxx +1 -1
- package/deps/couchbase-cxx-client/core/io/http_session.cxx +4 -0
- package/deps/couchbase-cxx-client/core/io/http_session.hxx +4 -2
- package/deps/couchbase-cxx-client/core/io/mcbp_command.hxx +2 -2
- package/deps/couchbase-cxx-client/core/key_value_config.cxx +2 -2
- package/deps/couchbase-cxx-client/core/logger/logger.hxx +1 -1
- package/deps/couchbase-cxx-client/core/management/rbac_fmt.hxx +1 -1
- package/deps/couchbase-cxx-client/core/mcbp/operation_queue.cxx +1 -1
- package/deps/couchbase-cxx-client/core/mcbp/packet.cxx +1 -1
- package/deps/couchbase-cxx-client/core/meta/features.hxx +11 -0
- package/deps/couchbase-cxx-client/core/meta/version.cxx +48 -7
- package/deps/couchbase-cxx-client/core/operations/document_analytics.cxx +23 -17
- package/deps/couchbase-cxx-client/core/operations/document_analytics.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/document_append.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_decrement.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_exists.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_get.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_get_all_replicas.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_get_and_lock.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_get_and_touch.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_get_any_replica.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_get_projected.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_increment.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_insert.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_lookup_in.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_lookup_in_all_replicas.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_lookup_in_any_replica.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_mutate_in.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_prepend.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_query.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/document_remove.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_replace.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_search.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/document_touch.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_unlock.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_upsert.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_view.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/http_noop.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/CMakeLists.txt +0 -1
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_create.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_create.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_drop.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_get_all.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_create.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_create.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_drop.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_get_pending_mutations.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/analytics_get_pending_mutations.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_index_create.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_index_drop.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/analytics_index_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_index_get_all.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_connect.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_connect.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_create.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_disconnect.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_disconnect.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_drop.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_get_all.cxx +24 -16
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_get_all.hxx +4 -3
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_replace.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_utils.hxx +4 -3
- package/deps/couchbase-cxx-client/core/operations/management/bucket_create.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_get.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/bucket_get.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_get_all.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_update.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/change_password.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/change_password.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/cluster_describe.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/cluster_developer_preview_enable.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/collection_create.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/collection_create.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/collection_drop.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/collection_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/collection_update.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/collection_update.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/collections_manifest_get.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/eventing_deploy_function.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/eventing_deploy_function.hxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/eventing_drop_function.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/eventing_drop_function.hxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/eventing_get_all_functions.hxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/eventing_get_function.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/eventing_get_function.hxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/eventing_get_status.hxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/eventing_pause_function.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/eventing_pause_function.hxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/eventing_resume_function.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/eventing_resume_function.hxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/eventing_undeploy_function.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/eventing_undeploy_function.hxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/eventing_upsert_function.cxx +1 -2
- package/deps/couchbase-cxx-client/core/operations/management/eventing_upsert_function.hxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/freeform.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/group_drop.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/group_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/group_get.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/group_get.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/group_get_all.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/group_upsert.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/query_index_build.hxx +7 -5
- package/deps/couchbase-cxx-client/core/operations/management/query_index_build_deferred.hxx +3 -0
- package/deps/couchbase-cxx-client/core/operations/management/query_index_create.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/query_index_create.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/query_index_drop.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/query_index_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all_deferred.hxx +3 -0
- package/deps/couchbase-cxx-client/core/operations/management/role_get_all.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/scope_create.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/scope_create.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/scope_drop.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/scope_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_stats.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_stats.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/user_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/user_get.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/user_get_all.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/user_upsert.cxx +3 -3
- package/deps/couchbase-cxx-client/core/operations/management/user_upsert.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/view_index_get.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/view_index_get.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.cxx +1 -1
- package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.hxx +1 -0
- package/deps/couchbase-cxx-client/core/origin.cxx +3 -2
- package/deps/couchbase-cxx-client/core/platform/base64.h +8 -8
- package/deps/couchbase-cxx-client/core/protocol/client_opcode_fmt.hxx +1 -1
- package/deps/couchbase-cxx-client/core/protocol/client_response.hxx +1 -1
- package/deps/couchbase-cxx-client/core/protocol/frame_info_id_fmt.hxx +1 -1
- package/deps/couchbase-cxx-client/core/protocol/hello_feature_fmt.hxx +1 -1
- package/deps/couchbase-cxx-client/core/protocol/magic_fmt.hxx +1 -1
- package/deps/couchbase-cxx-client/core/protocol/server_opcode_fmt.hxx +1 -1
- package/deps/couchbase-cxx-client/core/query_context.hxx +7 -6
- package/deps/couchbase-cxx-client/core/retry_orchestrator.cxx +1 -1
- package/deps/couchbase-cxx-client/core/sasl/CMakeLists.txt +0 -1
- package/deps/couchbase-cxx-client/core/sasl/error_fmt.h +1 -1
- package/deps/couchbase-cxx-client/core/seed_config.cxx +2 -2
- package/deps/couchbase-cxx-client/core/service_type_fmt.hxx +1 -1
- package/deps/couchbase-cxx-client/core/topology/capabilities_fmt.hxx +1 -1
- package/deps/couchbase-cxx-client/core/topology/collections_manifest_fmt.hxx +2 -1
- package/deps/couchbase-cxx-client/core/topology/configuration_fmt.hxx +1 -1
- package/deps/couchbase-cxx-client/core/transactions/async_attempt_context.cxx +1 -1
- package/deps/couchbase-cxx-client/core/transactions/async_attempt_context.hxx +9 -22
- package/deps/couchbase-cxx-client/core/transactions/attempt_context.cxx +1 -1
- package/deps/couchbase-cxx-client/core/transactions/attempt_context.hxx +6 -33
- package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.cxx +41 -41
- package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.hxx +15 -16
- package/deps/couchbase-cxx-client/core/transactions/exceptions_fmt.hxx +1 -1
- package/deps/couchbase-cxx-client/core/transactions/internal/atr_cleanup_entry.hxx +1 -1
- package/deps/couchbase-cxx-client/core/transactions/internal/client_record.hxx +4 -3
- package/deps/couchbase-cxx-client/core/transactions/internal/doc_record_fmt.hxx +1 -1
- package/deps/couchbase-cxx-client/core/transactions/internal/exceptions_internal.hxx +0 -2
- package/deps/couchbase-cxx-client/core/transactions/internal/exceptions_internal_fmt.hxx +1 -1
- package/deps/couchbase-cxx-client/core/transactions/internal/logging.hxx +2 -0
- package/deps/couchbase-cxx-client/core/transactions/internal/transaction_context.hxx +3 -0
- package/deps/couchbase-cxx-client/core/transactions/result_fmt.hxx +1 -1
- package/deps/couchbase-cxx-client/core/transactions/transaction_context.cxx +12 -2
- package/deps/couchbase-cxx-client/core/transactions/transaction_get_result.hxx +0 -20
- package/deps/couchbase-cxx-client/core/transactions/transaction_links.hxx +1 -1
- package/deps/couchbase-cxx-client/core/utils/join_strings.hxx +2 -2
- package/deps/couchbase-cxx-client/core/utils/keyspace.hxx +2 -1
- package/deps/couchbase-cxx-client/core/utils/url_codec.cxx +1 -1
- package/deps/couchbase-cxx-client/couchbase/common_options.hxx +16 -1
- package/deps/couchbase-cxx-client/couchbase/fmt/analytics_scan_consistency.hxx +0 -2
- package/deps/couchbase-cxx-client/couchbase/fmt/analytics_status.hxx +0 -2
- package/deps/couchbase-cxx-client/couchbase/fmt/cas.hxx +0 -2
- package/deps/couchbase-cxx-client/couchbase/fmt/durability_level.hxx +0 -2
- package/deps/couchbase-cxx-client/couchbase/fmt/error.hxx +0 -2
- package/deps/couchbase-cxx-client/couchbase/fmt/error_context.hxx +0 -2
- package/deps/couchbase-cxx-client/couchbase/fmt/mutation_token.hxx +0 -2
- package/deps/couchbase-cxx-client/couchbase/fmt/query_profile.hxx +0 -2
- package/deps/couchbase-cxx-client/couchbase/fmt/query_scan_consistency.hxx +0 -2
- package/deps/couchbase-cxx-client/couchbase/fmt/query_status.hxx +0 -2
- package/deps/couchbase-cxx-client/couchbase/fmt/retry_reason.hxx +5 -1
- package/deps/couchbase-cxx-client/couchbase/fmt/search_scan_consistency.hxx +0 -2
- package/deps/couchbase-cxx-client/couchbase/fmt/tls_verify_mode.hxx +0 -2
- package/deps/couchbase-cxx-client/couchbase/fmt/transaction_keyspace.hxx +0 -2
- package/deps/couchbase-cxx-client/couchbase/metrics/otel_meter.hxx +16 -20
- package/deps/couchbase-cxx-client/couchbase-sdk-cxx-black-duck-manifest.yaml +1 -4
- package/dist/analyticsindexmanager.d.ts +98 -14
- package/dist/analyticsindexmanager.js +452 -411
- package/dist/authenticators.d.ts +1 -1
- package/dist/binding.d.ts +53 -4
- package/dist/bindingutilities.d.ts +26 -1
- package/dist/bindingutilities.js +108 -1
- package/dist/cluster.d.ts +10 -0
- package/dist/cluster.js +17 -0
- package/dist/collection.d.ts +2 -2
- package/dist/collection.js +1 -1
- package/dist/couchbase.d.ts +3 -1
- package/dist/couchbase.js +2 -0
- package/dist/rangeScan.d.ts +1 -1
- package/dist/rangeScan.js +1 -1
- package/dist/sdspecs.js +1 -1
- package/dist/transactions.d.ts +34 -3
- package/dist/transactions.js +25 -18
- package/dist/transcoders.d.ts +68 -0
- package/dist/transcoders.js +194 -1
- package/dist/usermanager.d.ts +14 -14
- package/dist/usermanager.js +178 -228
- package/dist/utilities.js +2 -6
- package/dist/utilities_internal.js +1 -2
- package/package.json +9 -15
- package/src/connection.cpp +22 -0
- package/src/connection.hpp +12 -0
- package/src/connection_autogen.cpp +100 -0
- package/src/jstocbpp_autogen.hpp +315 -8
- package/src/jstocbpp_transactions.hpp +1 -2
- package/tools/gen-bindings-js.js +38 -3
- package/tools/gen-bindings-json.py +575 -328
- package/deps/couchbase-cxx-cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/CMakeLists.txt +0 -520
- package/deps/couchbase-cxx-cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/CONTRIBUTING.md +0 -20
- package/deps/couchbase-cxx-cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/ChangeLog.md +0 -2598
- package/deps/couchbase-cxx-cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/LICENSE +0 -27
- package/deps/couchbase-cxx-cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/README.md +0 -484
- package/deps/couchbase-cxx-cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/src/fmt.cc +0 -135
- package/deps/couchbase-cxx-cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/src/os.cc +0 -403
- package/deps/couchbase-cxx-cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/FindSetEnv.cmake +0 -7
- package/deps/couchbase-cxx-cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/JoinPaths.cmake +0 -26
- package/deps/couchbase-cxx-cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/fmt-config.cmake.in +0 -7
- package/deps/couchbase-cxx-cache/fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/support/cmake/fmt.pc.in +0 -11
- package/deps/couchbase-cxx-cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/args.h +0 -235
- package/deps/couchbase-cxx-cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/chrono.h +0 -2240
- package/deps/couchbase-cxx-cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/color.h +0 -643
- package/deps/couchbase-cxx-cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/compile.h +0 -535
- package/deps/couchbase-cxx-cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/core.h +0 -2969
- package/deps/couchbase-cxx-cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/format-inl.h +0 -1678
- package/deps/couchbase-cxx-cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/format.h +0 -4535
- package/deps/couchbase-cxx-cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/os.h +0 -455
- package/deps/couchbase-cxx-cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/ostream.h +0 -245
- package/deps/couchbase-cxx-cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/printf.h +0 -675
- package/deps/couchbase-cxx-cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/ranges.h +0 -738
- package/deps/couchbase-cxx-cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/std.h +0 -537
- package/deps/couchbase-cxx-cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/include/spdlog/fmt/bundled/xchar.h +0 -259
- package/deps/couchbase-cxx-cache/spdlog/19df5d3d8e5526c255d27414e09568671ef87483/spdlog/src/bundled_fmtlib_format.cpp +0 -46
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/LICENSE +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/ide.cmake +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/pch.h.in +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/spdlog.pc.in +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/spdlogCPack.cmake +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/spdlogConfig.cmake.in +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/cmake/version.rc.in +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/async.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/async_logger.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/argv.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/env.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/helpers-inl.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/cfg/helpers.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/common-inl.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/common.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/backtracer-inl.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/backtracer.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/circular_q.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/console_globals.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/file_helper-inl.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/file_helper.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/fmt_helper.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg-inl.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg_buffer-inl.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/log_msg_buffer.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/null_mutex.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/os.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/periodic_worker-inl.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/periodic_worker.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/registry-inl.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/registry.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/synchronous_factory.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/tcp_client-windows.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/tcp_client.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/udp_client-windows.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/udp_client.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/details/windows_include.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/bin_to_hex.h +0 -0
- /package/deps/couchbase-cxx-cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/args.h +0 -0
- /package/deps/couchbase-cxx-cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/chrono.h +0 -0
- /package/deps/couchbase-cxx-cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/color.h +0 -0
- /package/deps/couchbase-cxx-cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/compile.h +0 -0
- /package/deps/couchbase-cxx-cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/core.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/bundled/fmt.license.rst +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/bundled/locale.h +0 -0
- /package/deps/couchbase-cxx-cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/os.h +0 -0
- /package/deps/couchbase-cxx-cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/ostream.h +0 -0
- /package/deps/couchbase-cxx-cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/printf.h +0 -0
- /package/deps/couchbase-cxx-cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/std.h +0 -0
- /package/deps/couchbase-cxx-cache/{fmt/141a17a028e6c29914e109691389f6cf87f9cfe3/fmt/include/fmt → spdlog/7251ead404dccd824789f8f3a13df2a6fb56440c/spdlog/include/spdlog/fmt/bundled}/xchar.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/chrono.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/compile.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/fmt.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/ostr.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/ranges.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/std.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fmt/xchar.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/formatter.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/fwd.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/logger-inl.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/logger.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/pattern_formatter.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/android_sink.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/ansicolor_sink-inl.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/base_sink-inl.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/basic_file_sink-inl.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/basic_file_sink.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/dist_sink.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/dup_filter_sink.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/kafka_sink.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/mongo_sink.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/null_sink.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/ostream_sink.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/qt_sinks.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/ringbuffer_sink.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/rotating_file_sink.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/sink-inl.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/sink.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_color_sinks-inl.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_color_sinks.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_sinks-inl.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/stdout_sinks.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/systemd_sink.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/tcp_sink.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/udp_sink.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/win_eventlog_sink.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/sinks/wincolor_sink.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/spdlog-inl.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/spdlog.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/stopwatch.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/include/spdlog/tweakme.h +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/async.cpp +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/cfg.cpp +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/color_sinks.cpp +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/file_sinks.cpp +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/spdlog.cpp +0 -0
- /package/deps/couchbase-cxx-cache/spdlog/{19df5d3d8e5526c255d27414e09568671ef87483 → 7251ead404dccd824789f8f3a13df2a6fb56440c}/spdlog/src/stdout_sinks.cpp +0 -0
|
@@ -1,21 +1,36 @@
|
|
|
1
|
-
|
|
1
|
+
# Copyright 2016-2024. Couchbase, Inc.
|
|
2
|
+
# All Rights Reserved.
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
|
|
2
16
|
import json
|
|
17
|
+
import os
|
|
18
|
+
import pathlib
|
|
3
19
|
import re
|
|
4
|
-
import
|
|
20
|
+
import subprocess
|
|
21
|
+
import sys
|
|
5
22
|
|
|
6
23
|
from functools import reduce
|
|
24
|
+
from typing import (Dict, List, Optional, Tuple)
|
|
25
|
+
|
|
26
|
+
import clang.cindex
|
|
7
27
|
|
|
8
|
-
#
|
|
28
|
+
# START CONFIGURATION
|
|
9
29
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
# x64: /usr/local/opt/llvm/lib
|
|
13
|
-
# arm64: /opt/homebrew/opt/llvm/lib
|
|
14
|
-
llvmLibPath = "/usr/local/Cellar/llvm/13.0.1_1/lib/"
|
|
30
|
+
CXX_CLIENT_ROOT = os.path.join(pathlib.Path(__file__).parent.parent, 'deps', 'couchbase-cxx-client')
|
|
31
|
+
CXX_CLIENT_CACHE = os.path.join(pathlib.Path(__file__).parent.parent, 'deps', 'couchbase-cxx-cache')
|
|
15
32
|
|
|
16
|
-
|
|
17
|
-
cxx_client_cache = "../deps/couchbase-cxx-cache"
|
|
18
|
-
cxx_deps_include_paths = {
|
|
33
|
+
CXX_DEPS_INCLUDE_PATHS = {
|
|
19
34
|
'asio': ['-I{0}/asio/{1}/asio/asio/include'],
|
|
20
35
|
'fmt': ['-I{0}/fmt/{1}/fmt/include'],
|
|
21
36
|
'gsl': ['-I{0}/gsl/{1}/gsl/include'],
|
|
@@ -25,7 +40,7 @@ cxx_deps_include_paths = {
|
|
|
25
40
|
'spdlog': ['-I{0}/spdlog/{1}/spdlog/include'],
|
|
26
41
|
}
|
|
27
42
|
|
|
28
|
-
|
|
43
|
+
FILE_LIST = [
|
|
29
44
|
"core/management/analytics_dataset.hxx",
|
|
30
45
|
"core/management/analytics_index.hxx",
|
|
31
46
|
"core/management/analytics_link_azure_blob_external.hxx",
|
|
@@ -76,7 +91,7 @@ fileList = [
|
|
|
76
91
|
"core/vector_query_combination.hxx",
|
|
77
92
|
]
|
|
78
93
|
|
|
79
|
-
|
|
94
|
+
TYPE_LIST = [
|
|
80
95
|
"couchbase::core::management::analytics::dataset",
|
|
81
96
|
"couchbase::core::management::analytics::index",
|
|
82
97
|
"couchbase::core::management::analytics::azure_blob_external_link",
|
|
@@ -171,331 +186,563 @@ typeList = [
|
|
|
171
186
|
"couchbase::read_preference"
|
|
172
187
|
]
|
|
173
188
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
cpm_path = os.path.join(cxx_client_cache, dep)
|
|
180
|
-
dir_pattern = r'[0-9a-z]{40}'
|
|
181
|
-
cpm_hash_dir = next((d for d in os.listdir(cpm_path)
|
|
182
|
-
if os.path.isdir(os.path.join(cpm_path, d)) and re.match(dir_pattern, d)),
|
|
183
|
-
None)
|
|
184
|
-
if not cpm_hash_dir:
|
|
185
|
-
raise Exception(f'Unable to find CPM hash directory for path: {cpm_path}.')
|
|
186
|
-
return list(map(lambda p: p.format(cxx_client_cache, cpm_hash_dir), includes))
|
|
187
|
-
|
|
188
|
-
def list_headers_in_dir(path):
|
|
189
|
-
# enumerates a folder but keeps the full pathing for the files returned
|
|
190
|
-
# and removes certain files we don't want (like non-hxx, _json.hxx or _fmt.hxx)
|
|
191
|
-
|
|
192
|
-
# list all the files in the folder
|
|
193
|
-
files = os.listdir(path)
|
|
194
|
-
# only include .hxx files
|
|
195
|
-
files = list(filter(lambda x: x.endswith('.hxx'), files))
|
|
196
|
-
# add the folder path back on
|
|
197
|
-
files = list(map(lambda x: path + x, files))
|
|
198
|
-
return files
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
# parse through the list of files specified and expand wildcards
|
|
202
|
-
fullFileList = []
|
|
203
|
-
for filePath in fileList:
|
|
204
|
-
if "*" in filePath:
|
|
205
|
-
# wildcard path
|
|
206
|
-
basePath = filePath[:-1]
|
|
207
|
-
if "*" in basePath:
|
|
208
|
-
# if there is still a wildcard, we have an issue...
|
|
209
|
-
raise NotImplementedError(
|
|
210
|
-
"wildcard only supported at end of file path")
|
|
211
|
-
files = list_headers_in_dir(os.path.join(cxx_client_root, basePath))
|
|
212
|
-
fullFileList = fullFileList + files
|
|
213
|
-
else:
|
|
214
|
-
# normal path
|
|
215
|
-
fullFileList.append(os.path.join(cxx_client_root, filePath))
|
|
216
|
-
|
|
217
|
-
# exclude _json.hxx files
|
|
218
|
-
fullFileList = list(
|
|
219
|
-
filter(lambda x: not x.endswith('_json.hxx'), fullFileList))
|
|
220
|
-
# exclude _fmt.hxx files
|
|
221
|
-
fullFileList = list(
|
|
222
|
-
filter(lambda x: not x.endswith('_fmt.hxx'), fullFileList))
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
# generate a list of regexps from the type list (for handling wildcards)
|
|
226
|
-
typeListRe = list(map(lambda x: x.replace("*", "(.*)") + "(.*)", typeList))
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
def is_included_type(name, with_durability=False):
|
|
230
|
-
|
|
231
|
-
# TODO(brett19): This should be generalized somehow...
|
|
232
|
-
if "is_compound_operation" in name:
|
|
233
|
-
return False
|
|
234
|
-
|
|
235
|
-
if "replica_context" in name:
|
|
236
|
-
return False
|
|
237
|
-
|
|
238
|
-
if with_durability is True and '_with_legacy_durability' not in name:
|
|
239
|
-
return False
|
|
240
|
-
|
|
241
|
-
for x in typeListRe:
|
|
242
|
-
if re.fullmatch(x, name):
|
|
243
|
-
return True
|
|
244
|
-
return False
|
|
245
|
-
|
|
189
|
+
STD_COMPARATOR_TEMPLATES = ["std::less<{0}>", "std::greater<{0}>", "std::less_equal<{0}>", "std::greater_equal<{0}>"]
|
|
190
|
+
# flatten the list of lists
|
|
191
|
+
STD_COMPARATORS = list(reduce(lambda a, b: a + b,
|
|
192
|
+
list(map(lambda c: [c.format(s) for s in ['', 'void']], STD_COMPARATOR_TEMPLATES)),
|
|
193
|
+
[]))
|
|
246
194
|
|
|
247
|
-
|
|
248
|
-
|
|
195
|
+
INTERNAL_STRUCTS = []
|
|
196
|
+
UNNAMED_STRUCT_DELIM = '::(unnamed struct'
|
|
249
197
|
|
|
198
|
+
# IMPORTANT: the templates must exist in the TYPE_LIST
|
|
199
|
+
TEMPLATED_REQUESTS = {
|
|
200
|
+
'analytics_link_create_request': {
|
|
201
|
+
'template_name': 'analytics_link_type',
|
|
202
|
+
'templates': ['couchbase::core::management::analytics::azure_blob_external_link',
|
|
203
|
+
'couchbase::core::management::analytics::couchbase_remote_link',
|
|
204
|
+
'couchbase::core::management::analytics::s3_external_link']
|
|
205
|
+
},
|
|
206
|
+
'analytics_link_replace_request': {
|
|
207
|
+
'template_name': 'analytics_link_type',
|
|
208
|
+
'templates': ['couchbase::core::management::analytics::azure_blob_external_link',
|
|
209
|
+
'couchbase::core::management::analytics::couchbase_remote_link',
|
|
210
|
+
'couchbase::core::management::analytics::s3_external_link']
|
|
211
|
+
},
|
|
212
|
+
}
|
|
250
213
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
214
|
+
# END - CONFIGURATION
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
class BindingsGenerator:
|
|
218
|
+
|
|
219
|
+
def __init__(self,
|
|
220
|
+
llvm_clang_version: Optional[str] = None,
|
|
221
|
+
llvm_libdir: Optional[str] = None,
|
|
222
|
+
llvm_includedir: Optional[str] = None,
|
|
223
|
+
system_headers: Optional[str] = None,
|
|
224
|
+
verbose: Optional[bool] = False) -> None:
|
|
225
|
+
self._op_types = []
|
|
226
|
+
self._op_enums = []
|
|
227
|
+
self._full_file_list = []
|
|
228
|
+
# generate a list of regexps from the type list (for handling wildcards)
|
|
229
|
+
self._type_list_re = list(map(lambda x: x.replace("*", "(.*)") + "(.*)", TYPE_LIST))
|
|
230
|
+
self._verbose = verbose
|
|
231
|
+
self.configure_generator(llvm_clang_version, llvm_libdir, llvm_includedir, system_headers)
|
|
232
|
+
|
|
233
|
+
def configure_generator(self,
|
|
234
|
+
version: Optional[str] = None,
|
|
235
|
+
libdir: Optional[str] = None,
|
|
236
|
+
includedir: Optional[str] = None,
|
|
237
|
+
system_headers: Optional[str] = None) -> None:
|
|
238
|
+
if version is None:
|
|
239
|
+
version = os.environ.get('CN_LLVM_VERSION')
|
|
240
|
+
if version is None:
|
|
241
|
+
BindingsGenerator.find_llvm()
|
|
242
|
+
version = BindingsGenerator.get_llvm_version()
|
|
243
|
+
if version is None:
|
|
244
|
+
raise ValueError('Missing LLVM version.')
|
|
245
|
+
|
|
246
|
+
if includedir is None:
|
|
247
|
+
includedir = os.environ.get('CN_LLVM_INCLUDE')
|
|
248
|
+
if includedir is None:
|
|
249
|
+
includedir = BindingsGenerator.get_llvm_includedir()
|
|
250
|
+
if includedir is None:
|
|
251
|
+
raise ValueError('Missing LLVM include directory.')
|
|
252
|
+
|
|
253
|
+
if libdir is None:
|
|
254
|
+
libdir = os.environ.get('CN_LLVM_LIB')
|
|
255
|
+
if libdir is None:
|
|
256
|
+
libdir = BindingsGenerator.get_llvm_libdir()
|
|
257
|
+
if libdir is None:
|
|
258
|
+
raise ValueError('Missing LLVM lib directory.')
|
|
259
|
+
|
|
260
|
+
if system_headers is None:
|
|
261
|
+
system_headers = os.environ.get('CN_SYS_HEADERS')
|
|
262
|
+
if system_headers is None:
|
|
263
|
+
system_headers = BindingsGenerator.get_system_headers()
|
|
264
|
+
if system_headers is None:
|
|
265
|
+
raise ValueError('Missing system headers path.')
|
|
266
|
+
|
|
267
|
+
if self._verbose:
|
|
268
|
+
print(f'Using libdir={libdir}')
|
|
269
|
+
clang.cindex.Config.set_library_path(libdir)
|
|
270
|
+
|
|
271
|
+
self._include_paths = [
|
|
272
|
+
'-I/opt/homebrew/opt/llvm/include/c++/v1',
|
|
273
|
+
f'-I{CXX_CLIENT_ROOT}/',
|
|
274
|
+
f'-I/opt/homebrew/Cellar/llvm/{version}/lib/clang/{version[:2]}/include',
|
|
275
|
+
f'-I{system_headers}/usr/include'
|
|
276
|
+
]
|
|
277
|
+
|
|
278
|
+
for dep, inc in CXX_DEPS_INCLUDE_PATHS.items():
|
|
279
|
+
self._include_paths.extend(BindingsGenerator.set_cxx_deps_include_paths(dep, inc))
|
|
280
|
+
|
|
281
|
+
if self._verbose:
|
|
282
|
+
print(f'Include paths={self._include_paths}')
|
|
283
|
+
|
|
284
|
+
self.set_file_list()
|
|
285
|
+
|
|
286
|
+
def gen_bindings(self) -> None:
|
|
287
|
+
|
|
288
|
+
for headerPath in self._full_file_list:
|
|
289
|
+
print("processing " + headerPath)
|
|
290
|
+
index = clang.cindex.Index.create()
|
|
291
|
+
if self._verbose is True:
|
|
292
|
+
args = ['-std=c++17', '-v', f'-isysroot{os.getcwd()}'] + self._include_paths
|
|
293
|
+
else:
|
|
294
|
+
args = ['-std=c++17', f'-isysroot{os.getcwd()}'] + self._include_paths
|
|
295
|
+
translation_unit = index.parse(headerPath, args=args)
|
|
296
|
+
|
|
297
|
+
# output clang compiler diagnostics information (for debugging)
|
|
298
|
+
if 1:
|
|
299
|
+
for diagnostic in translation_unit.diagnostics:
|
|
300
|
+
diagnosticMsg = diagnostic.format()
|
|
301
|
+
print(diagnostic)
|
|
302
|
+
|
|
303
|
+
self.traverse(translation_unit.cursor, [], headerPath)
|
|
304
|
+
|
|
305
|
+
jsonData = json.dumps({
|
|
306
|
+
'op_structs': self._op_types,
|
|
307
|
+
'op_enums': self._op_enums
|
|
308
|
+
})
|
|
309
|
+
|
|
310
|
+
f = open("bindings.json", "w")
|
|
311
|
+
f.write(jsonData)
|
|
312
|
+
f.close()
|
|
313
|
+
|
|
314
|
+
def set_file_list(self) -> None:
|
|
315
|
+
for file_path in FILE_LIST:
|
|
316
|
+
if "*" in file_path:
|
|
317
|
+
# wildcard path
|
|
318
|
+
basePath = file_path[:-1]
|
|
319
|
+
if "*" in basePath:
|
|
320
|
+
# if there is still a wildcard, we have an issue...
|
|
321
|
+
raise NotImplementedError(
|
|
322
|
+
"wildcard only supported at end of file path")
|
|
323
|
+
if basePath[-1] != os.path.sep:
|
|
324
|
+
tokens = basePath.split(os.path.sep)
|
|
325
|
+
# filter = tokens[-1]
|
|
326
|
+
files = BindingsGenerator.list_headers_in_dir(os.path.join(CXX_CLIENT_ROOT, *tokens[:-1]),
|
|
327
|
+
tokens[-1])
|
|
328
|
+
else:
|
|
329
|
+
files = BindingsGenerator.list_headers_in_dir(os.path.join(CXX_CLIENT_ROOT, basePath))
|
|
330
|
+
self._full_file_list = self._full_file_list + files
|
|
331
|
+
else:
|
|
332
|
+
# normal path
|
|
333
|
+
self._full_file_list.append(os.path.join(CXX_CLIENT_ROOT, file_path))
|
|
334
|
+
|
|
335
|
+
# exclude _json.hxx files
|
|
336
|
+
self._full_file_list = list(filter(lambda x: not x.endswith('_json.hxx'), self._full_file_list))
|
|
337
|
+
# exclude _fmt.hxx files
|
|
338
|
+
self._full_file_list = list(filter(lambda x: not x.endswith('_fmt.hxx'), self._full_file_list))
|
|
339
|
+
|
|
340
|
+
def traverse(self, node, namespace, main_file) -> None:
|
|
341
|
+
# only scan the elements of the file we parsed
|
|
342
|
+
if node.location.file is not None and node.location.file.name != main_file:
|
|
343
|
+
return
|
|
344
|
+
|
|
345
|
+
if node.kind == clang.cindex.CursorKind.STRUCT_DECL or node.kind == clang.cindex.CursorKind.CLASS_DECL:
|
|
346
|
+
full_struct_name = "::".join([*namespace, node.displayname])
|
|
347
|
+
if full_struct_name.endswith('::') or UNNAMED_STRUCT_DELIM in full_struct_name:
|
|
348
|
+
if full_struct_name.endswith('::'):
|
|
349
|
+
struct_name = full_struct_name
|
|
350
|
+
else:
|
|
351
|
+
struct_name = full_struct_name.split(UNNAMED_STRUCT_DELIM)[0]
|
|
352
|
+
match = next((s for s in INTERNAL_STRUCTS if struct_name in s), None)
|
|
353
|
+
if match:
|
|
354
|
+
full_struct_name = match
|
|
355
|
+
|
|
356
|
+
if (BindingsGenerator.is_included_type(full_struct_name, self._type_list_re)
|
|
357
|
+
or full_struct_name in INTERNAL_STRUCTS):
|
|
358
|
+
struct_fields = []
|
|
359
|
+
parents = []
|
|
360
|
+
for child in node.get_children():
|
|
361
|
+
if child.kind == clang.cindex.CursorKind.FIELD_DECL:
|
|
362
|
+
struct_type = BindingsGenerator.parse_type(child.type)
|
|
363
|
+
type_str = child.type.get_canonical().spelling
|
|
364
|
+
if 'unnamed' in type_str:
|
|
365
|
+
name_tokens = type_str.split('::')
|
|
366
|
+
name_override = '::'.join(name_tokens[:-1] + [child.displayname])
|
|
367
|
+
struct_type['name'] = name_override
|
|
368
|
+
INTERNAL_STRUCTS.append(name_override)
|
|
369
|
+
|
|
370
|
+
struct_fields.append({
|
|
371
|
+
"name": child.displayname,
|
|
372
|
+
"type": struct_type,
|
|
373
|
+
})
|
|
374
|
+
elif child.kind == clang.cindex.CursorKind.CXX_BASE_SPECIFIER:
|
|
375
|
+
parents.append("::".join([*namespace, child.displayname]))
|
|
376
|
+
|
|
377
|
+
if len(parents) > 0:
|
|
378
|
+
part_op_types = [ot for ot in self._op_types if ot['name'] in parents]
|
|
379
|
+
print(f'{part_op_types=}')
|
|
380
|
+
for sot in part_op_types:
|
|
381
|
+
struct_fields.extend(sot['fields'])
|
|
382
|
+
|
|
383
|
+
# replica read changes introduced duplicate get requests
|
|
384
|
+
if any(map(lambda op: op['name'] == full_struct_name, self._op_types)):
|
|
385
|
+
return
|
|
386
|
+
|
|
387
|
+
self._op_types.append({
|
|
388
|
+
"name": full_struct_name,
|
|
389
|
+
"fields": struct_fields,
|
|
390
|
+
})
|
|
391
|
+
if node.kind == clang.cindex.CursorKind.TYPE_ALIAS_DECL:
|
|
392
|
+
full_struct_name = "::".join([*namespace, node.displayname])
|
|
393
|
+
if BindingsGenerator.is_included_type(full_struct_name, self._type_list_re, with_durability=True):
|
|
394
|
+
type_ref = next((c for c in node.get_children() if c.kind == clang.cindex.CursorKind.TYPE_REF), None)
|
|
395
|
+
if type_ref:
|
|
396
|
+
base_request_name = type_ref.displayname.replace('struct', '').strip()
|
|
397
|
+
base_request = next((op for op in self._op_types if op['name'] == base_request_name), None)
|
|
398
|
+
if base_request:
|
|
399
|
+
new_fields = [f for f in base_request['fields'] if f['name'] != 'durability_level']
|
|
400
|
+
new_fields.extend([
|
|
401
|
+
{"name": "persist_to", "type": {"name": "couchbase::persist_to"}},
|
|
402
|
+
{"name": "replicate_to", "type": {"name": "couchbase::replicate_to"}}
|
|
403
|
+
])
|
|
254
404
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
405
|
+
self._op_types.append({
|
|
406
|
+
"name": full_struct_name,
|
|
407
|
+
"fields": new_fields
|
|
408
|
+
})
|
|
409
|
+
if node.kind == clang.cindex.CursorKind.ENUM_DECL:
|
|
410
|
+
full_enum_name = "::".join([*namespace, node.displayname])
|
|
411
|
+
if BindingsGenerator.is_included_type(full_enum_name, self._type_list_re):
|
|
412
|
+
enumValues = []
|
|
413
|
+
|
|
414
|
+
for child in node.get_children():
|
|
415
|
+
if child.kind == clang.cindex.CursorKind.ENUM_CONSTANT_DECL:
|
|
416
|
+
enumValues.append({
|
|
417
|
+
"name": child.displayname,
|
|
418
|
+
"value": child.enum_value,
|
|
419
|
+
})
|
|
420
|
+
self._op_enums.append({
|
|
421
|
+
"name": full_enum_name,
|
|
422
|
+
"type": BindingsGenerator.parse_type(node.enum_type),
|
|
423
|
+
"values": enumValues,
|
|
424
|
+
})
|
|
425
|
+
|
|
426
|
+
if node.kind == clang.cindex.CursorKind.NAMESPACE:
|
|
427
|
+
namespace = [*namespace, node.displayname]
|
|
428
|
+
if node.kind == clang.cindex.CursorKind.CLASS_DECL:
|
|
429
|
+
namespace = [*namespace, node.displayname]
|
|
430
|
+
if node.kind == clang.cindex.CursorKind.STRUCT_DECL:
|
|
431
|
+
namespace = [*namespace, node.displayname]
|
|
432
|
+
if node.kind == clang.cindex.CursorKind.CLASS_TEMPLATE:
|
|
433
|
+
name_tokens = node.displayname.split('<')
|
|
434
|
+
if len(name_tokens) == 2 and name_tokens[0] in TEMPLATED_REQUESTS:
|
|
435
|
+
req = TEMPLATED_REQUESTS.get(name_tokens[0])
|
|
436
|
+
full_struct_name = "::".join([*namespace, node.displayname])
|
|
437
|
+
for template in req['templates']:
|
|
438
|
+
struct_fields = []
|
|
439
|
+
for child in node.get_children():
|
|
440
|
+
if child.kind == clang.cindex.CursorKind.FIELD_DECL:
|
|
441
|
+
type_str = child.type.get_canonical().spelling
|
|
442
|
+
if 'type-parameter' in type_str:
|
|
443
|
+
struct_type = {
|
|
444
|
+
'name': 'template',
|
|
445
|
+
'of': {'name': template}}
|
|
446
|
+
else:
|
|
447
|
+
struct_type = BindingsGenerator.parse_type(child.type)
|
|
448
|
+
# print(f'struct_type={child.type}; type.kind={child.type.kind}; {type_str=}, displayname={child.displayname}')
|
|
449
|
+
struct_fields.append({
|
|
450
|
+
"name": child.displayname,
|
|
451
|
+
"type": struct_type,
|
|
452
|
+
})
|
|
453
|
+
self._op_types.append({
|
|
454
|
+
"name": full_struct_name.replace(req['template_name'], template),
|
|
455
|
+
"fields": struct_fields,
|
|
456
|
+
})
|
|
457
|
+
# return
|
|
458
|
+
|
|
459
|
+
for child in node.get_children():
|
|
460
|
+
self.traverse(child, namespace, main_file)
|
|
461
|
+
|
|
462
|
+
@staticmethod
|
|
463
|
+
def set_cxx_deps_include_paths(dep, includes):
|
|
464
|
+
cpm_path = os.path.join(CXX_CLIENT_CACHE, dep)
|
|
465
|
+
dir_pattern = r'[0-9a-z]{40}'
|
|
466
|
+
cpm_hash_dir = next((d for d in os.listdir(cpm_path)
|
|
467
|
+
if os.path.isdir(os.path.join(cpm_path, d)) and re.match(dir_pattern, d)),
|
|
468
|
+
None)
|
|
469
|
+
if not cpm_hash_dir:
|
|
470
|
+
raise Exception(f'Unable to find CPM hash directory for path: {cpm_path}.')
|
|
471
|
+
return list(map(lambda p: p.format(CXX_CLIENT_CACHE, cpm_hash_dir), includes))
|
|
472
|
+
|
|
473
|
+
@staticmethod
|
|
474
|
+
def list_headers_in_dir(path: str, file_startswith: Optional[str] = None) -> List[str]:
|
|
475
|
+
# enumerates a folder but keeps the full pathing for the files returned
|
|
476
|
+
# and removes certain files we don't want (like non-hxx, _json.hxx or _fmt.hxx)
|
|
477
|
+
|
|
478
|
+
# list all the files in the folder
|
|
479
|
+
files = os.listdir(path)
|
|
480
|
+
|
|
481
|
+
if file_startswith is not None:
|
|
482
|
+
files = list(filter(lambda f: f.endswith('.hxx') and f.startswith(file_startswith), files))
|
|
483
|
+
# add the folder path back on
|
|
484
|
+
files = list(map(lambda f: os.path.join(path, f), files))
|
|
485
|
+
else:
|
|
486
|
+
# only include .hxx files
|
|
487
|
+
files = list(filter(lambda f: f.endswith('.hxx'), files))
|
|
488
|
+
# add the folder path back on
|
|
489
|
+
files = list(map(lambda f: path + f, files))
|
|
490
|
+
return files
|
|
491
|
+
|
|
492
|
+
@staticmethod
|
|
493
|
+
def is_included_type(name: str, type_list_re: List[str], with_durability: Optional[bool] = False) -> bool:
|
|
494
|
+
|
|
495
|
+
# TODO(brett19): This should be generalized somehow...
|
|
496
|
+
if "is_compound_operation" in name:
|
|
497
|
+
return False
|
|
498
|
+
|
|
499
|
+
if "replica_context" in name:
|
|
500
|
+
return False
|
|
501
|
+
|
|
502
|
+
if with_durability is True and '_with_legacy_durability' not in name:
|
|
503
|
+
return False
|
|
504
|
+
|
|
505
|
+
for x in type_list_re:
|
|
506
|
+
if re.fullmatch(x, name):
|
|
507
|
+
return True
|
|
508
|
+
return False
|
|
260
509
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
"of": parse_type_str(tplParams)
|
|
323
|
-
}
|
|
324
|
-
if tplClassName == "std::vector":
|
|
325
|
-
return {
|
|
326
|
-
"name": "std::vector",
|
|
327
|
-
"of": parse_type_str(tplParams)
|
|
328
|
-
}
|
|
329
|
-
if tplClassName == "std::set":
|
|
330
|
-
return {
|
|
331
|
-
"name": "std::set",
|
|
332
|
-
"of": parse_type_str(tplParams)
|
|
333
|
-
}
|
|
334
|
-
if tplClassName == "std::variant":
|
|
335
|
-
variantParts = tplParams.split(", ")
|
|
336
|
-
variantTypes = []
|
|
337
|
-
for variantPart in variantParts:
|
|
338
|
-
variantTypes.append(parse_type_str(variantPart))
|
|
339
|
-
return {
|
|
340
|
-
"name": "std::variant",
|
|
341
|
-
"of": variantTypes
|
|
342
|
-
}
|
|
343
|
-
if tplClassName == "std::array":
|
|
344
|
-
variantParts = tplParams.split(", ")
|
|
345
|
-
if len(variantParts) != 2:
|
|
346
|
-
print("FAILED TO PARSE ARRAY TYPES: " + typeStr)
|
|
347
|
-
return {"name": "unknown", "str": typeStr}
|
|
348
|
-
return {
|
|
349
|
-
"name": "std::array",
|
|
350
|
-
"of": parse_type_str(variantParts[0]),
|
|
351
|
-
"size": int(variantParts[1])
|
|
352
|
-
}
|
|
353
|
-
if tplClassName == "std::map":
|
|
354
|
-
variantParts = tplParams.split(", ")
|
|
355
|
-
if len(variantParts) < 2 or len(variantParts) > 3:
|
|
356
|
-
print("FAILED TO PARSE MAP TYPES: " + typeStr)
|
|
357
|
-
return {"name": "unknown", "str": typeStr}
|
|
358
|
-
|
|
359
|
-
if len(variantParts) == 2:
|
|
510
|
+
@staticmethod
|
|
511
|
+
def parse_type(type_: str) -> Dict[str, str]:
|
|
512
|
+
type_str = type_.get_canonical().spelling
|
|
513
|
+
return BindingsGenerator.parse_type_str(type_str)
|
|
514
|
+
|
|
515
|
+
@staticmethod
|
|
516
|
+
def parse_type_str(type_str: str) -> Dict[str, str]:
|
|
517
|
+
if type_str == "std::mutex":
|
|
518
|
+
return {"name": "std::mutex"}
|
|
519
|
+
if type_str == "std::string":
|
|
520
|
+
return {"name": "std::string"}
|
|
521
|
+
if type_str == "std::chrono::duration<long long>":
|
|
522
|
+
return {"name": "std::chrono::seconds"}
|
|
523
|
+
if type_str == "std::chrono::duration<long long, std::ratio<1, 1000>>":
|
|
524
|
+
return {"name": "std::chrono::milliseconds"}
|
|
525
|
+
if type_str == "std::chrono::duration<long long, std::ratio<1, 1000000>>":
|
|
526
|
+
return {"name": "std::chrono::microseconds"}
|
|
527
|
+
if type_str == "std::chrono::duration<long long, std::ratio<1, 1000000000>>":
|
|
528
|
+
return {"name": "std::chrono::nanoseconds"}
|
|
529
|
+
if type_str == "std::error_code":
|
|
530
|
+
return {"name": "std::error_code"}
|
|
531
|
+
if type_str == "std::monostate":
|
|
532
|
+
return {"name": "std::monostate"}
|
|
533
|
+
if type_str == "std::byte":
|
|
534
|
+
return {"name": "std::byte"}
|
|
535
|
+
if type_str == "unsigned long":
|
|
536
|
+
return {"name": "std::size_t"}
|
|
537
|
+
if type_str == "char":
|
|
538
|
+
return {"name": "std::int8_t"}
|
|
539
|
+
if type_str == "unsigned char":
|
|
540
|
+
return {"name": "std::uint8_t"}
|
|
541
|
+
if type_str == "short":
|
|
542
|
+
return {"name": "std::int16_t"}
|
|
543
|
+
if type_str == "unsigned short":
|
|
544
|
+
return {"name": "std::uint16_t"}
|
|
545
|
+
if type_str == "int":
|
|
546
|
+
return {"name": "std::int32_t"}
|
|
547
|
+
if type_str == "unsigned int":
|
|
548
|
+
return {"name": "std::uint32_t"}
|
|
549
|
+
if type_str == "long long":
|
|
550
|
+
return {"name": "std::int64_t"}
|
|
551
|
+
if type_str == "unsigned long long":
|
|
552
|
+
return {"name": "std::uint64_t"}
|
|
553
|
+
if type_str == "bool":
|
|
554
|
+
return {"name": "std::bool"}
|
|
555
|
+
if type_str == "float":
|
|
556
|
+
return {"name": "std::float"}
|
|
557
|
+
if type_str == "double":
|
|
558
|
+
return {"name": "std::double"}
|
|
559
|
+
if type_str == "std::nullptr_t":
|
|
560
|
+
return {"name": "std::nullptr_t"}
|
|
561
|
+
if type_str in STD_COMPARATORS:
|
|
562
|
+
if 'void' in type_str:
|
|
563
|
+
return {"name": type_str.replace("void", "")}
|
|
564
|
+
return {"name": type_str}
|
|
565
|
+
|
|
566
|
+
tplParts = type_str.split("<", 1)
|
|
567
|
+
if len(tplParts) > 1:
|
|
568
|
+
tplClassName = tplParts[0]
|
|
569
|
+
tplParams = tplParts[1][:-1]
|
|
570
|
+
if tplClassName == "std::function":
|
|
360
571
|
return {
|
|
361
|
-
"name": "std::
|
|
362
|
-
"of": parse_type_str(variantParts[0]),
|
|
363
|
-
"to": parse_type_str(variantParts[1])
|
|
572
|
+
"name": "std::function"
|
|
364
573
|
}
|
|
365
|
-
|
|
574
|
+
if tplClassName == "std::optional":
|
|
366
575
|
return {
|
|
367
|
-
"name": "std::
|
|
368
|
-
"of": parse_type_str(
|
|
369
|
-
|
|
370
|
-
|
|
576
|
+
"name": "std::optional",
|
|
577
|
+
"of": BindingsGenerator.parse_type_str(tplParams)
|
|
578
|
+
}
|
|
579
|
+
if tplClassName == "std::vector":
|
|
580
|
+
return {
|
|
581
|
+
"name": "std::vector",
|
|
582
|
+
"of": BindingsGenerator.parse_type_str(tplParams)
|
|
583
|
+
}
|
|
584
|
+
if tplClassName == "std::set":
|
|
585
|
+
return {
|
|
586
|
+
"name": "std::set",
|
|
587
|
+
"of": BindingsGenerator. parse_type_str(tplParams)
|
|
588
|
+
}
|
|
589
|
+
if tplClassName == "std::variant":
|
|
590
|
+
variantParts = tplParams.split(", ")
|
|
591
|
+
variantTypes = []
|
|
592
|
+
for variantPart in variantParts:
|
|
593
|
+
variantTypes.append(BindingsGenerator.parse_type_str(variantPart))
|
|
594
|
+
return {
|
|
595
|
+
"name": "std::variant",
|
|
596
|
+
"of": variantTypes
|
|
597
|
+
}
|
|
598
|
+
if tplClassName == "std::array":
|
|
599
|
+
variantParts = tplParams.split(", ")
|
|
600
|
+
if len(variantParts) != 2:
|
|
601
|
+
print("FAILED TO PARSE ARRAY TYPES: " + type_str)
|
|
602
|
+
return {"name": "unknown", "str": type_str}
|
|
603
|
+
return {
|
|
604
|
+
"name": "std::array",
|
|
605
|
+
"of": BindingsGenerator.parse_type_str(variantParts[0]),
|
|
606
|
+
"size": int(variantParts[1])
|
|
607
|
+
}
|
|
608
|
+
if tplClassName == "std::map":
|
|
609
|
+
variantParts = tplParams.split(", ")
|
|
610
|
+
if len(variantParts) < 2 or len(variantParts) > 3:
|
|
611
|
+
print("FAILED TO PARSE MAP TYPES: " + type_str)
|
|
612
|
+
return {"name": "unknown", "str": type_str}
|
|
613
|
+
|
|
614
|
+
if len(variantParts) == 2:
|
|
615
|
+
return {
|
|
616
|
+
"name": "std::map",
|
|
617
|
+
"of": BindingsGenerator.parse_type_str(variantParts[0]),
|
|
618
|
+
"to": BindingsGenerator.parse_type_str(variantParts[1])
|
|
619
|
+
}
|
|
620
|
+
else:
|
|
621
|
+
return {
|
|
622
|
+
"name": "std::map",
|
|
623
|
+
"of": BindingsGenerator.parse_type_str(variantParts[0]),
|
|
624
|
+
"to": BindingsGenerator.parse_type_str(variantParts[1]),
|
|
625
|
+
"comparator": BindingsGenerator.parse_type_str(variantParts[2])
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
if tplClassName == "std::shared_ptr":
|
|
629
|
+
return {
|
|
630
|
+
"name": "std::shared_ptr",
|
|
631
|
+
"of": BindingsGenerator.parse_type_str(tplParams)
|
|
371
632
|
}
|
|
372
633
|
|
|
373
|
-
if
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
"of": parse_type_str(tplParams)
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
if not typeStr.startswith("couchbase::"):
|
|
380
|
-
print("FAILED TO PARSE STRING TYPE: " + typeStr)
|
|
381
|
-
return {"name": "unknown", "str": typeStr}
|
|
382
|
-
|
|
383
|
-
if 'unnamed struct' in typeStr:
|
|
384
|
-
print("WARNING: Found unnamed struct: " + typeStr)
|
|
385
|
-
|
|
386
|
-
return {"name": typeStr}
|
|
634
|
+
if not type_str.startswith("couchbase::"):
|
|
635
|
+
print("FAILED TO PARSE STRING TYPE: " + type_str)
|
|
636
|
+
return {"name": "unknown", "str": type_str}
|
|
387
637
|
|
|
388
|
-
|
|
389
|
-
|
|
638
|
+
if 'unnamed struct' in type_str:
|
|
639
|
+
print("WARNING: Found unnamed struct: " + type_str)
|
|
390
640
|
|
|
391
|
-
|
|
392
|
-
# only scan the elements of the file we parsed
|
|
393
|
-
if node.location.file != None and node.location.file.name != main_file:
|
|
394
|
-
return
|
|
395
|
-
|
|
396
|
-
if node.kind == clang.cindex.CursorKind.STRUCT_DECL or node.kind == clang.cindex.CursorKind.CLASS_DECL:
|
|
397
|
-
fullStructName = "::".join([*namespace, node.displayname])
|
|
398
|
-
if fullStructName.endswith('::') or UNNAMED_STRUCT_DELIM in fullStructName:
|
|
399
|
-
struct_name = fullStructName if fullStructName.endswith('::') else fullStructName.split(UNNAMED_STRUCT_DELIM)[0]
|
|
400
|
-
match = next((s for s in internal_structs if struct_name in s), None)
|
|
401
|
-
if match:
|
|
402
|
-
fullStructName = match
|
|
403
|
-
|
|
404
|
-
if is_included_type(fullStructName) or fullStructName in internal_structs:
|
|
405
|
-
structFields = []
|
|
406
|
-
for child in node.get_children():
|
|
407
|
-
if child.kind == clang.cindex.CursorKind.FIELD_DECL:
|
|
408
|
-
struct_type = parse_type(child.type)
|
|
409
|
-
type_str = child.type.get_canonical().spelling
|
|
410
|
-
if 'unnamed' in type_str:
|
|
411
|
-
name_tokens = type_str.split('::')
|
|
412
|
-
name_override = '::'.join(name_tokens[:-1] + [child.displayname])
|
|
413
|
-
struct_type['name'] = name_override
|
|
414
|
-
internal_structs.append(name_override)
|
|
415
|
-
|
|
416
|
-
structFields.append({
|
|
417
|
-
"name": child.displayname,
|
|
418
|
-
"type": struct_type,
|
|
419
|
-
})
|
|
420
|
-
# replica read changes introduced duplicate get requests
|
|
421
|
-
if any(map(lambda op: op['name'] == fullStructName, opTypes)):
|
|
422
|
-
return
|
|
423
|
-
|
|
424
|
-
opTypes.append({
|
|
425
|
-
"name": fullStructName,
|
|
426
|
-
"fields": structFields,
|
|
427
|
-
})
|
|
428
|
-
if node.kind == clang.cindex.CursorKind.TYPE_ALIAS_DECL:
|
|
429
|
-
fullStructName = "::".join([*namespace, node.displayname])
|
|
430
|
-
if is_included_type(fullStructName, with_durability=True):
|
|
431
|
-
type_ref = next((c for c in node.get_children() if c.kind == clang.cindex.CursorKind.TYPE_REF), None)
|
|
432
|
-
if type_ref:
|
|
433
|
-
base_request_name = type_ref.displayname.replace('struct', '').strip()
|
|
434
|
-
base_request = next((op for op in opTypes if op['name'] == base_request_name), None)
|
|
435
|
-
if base_request:
|
|
436
|
-
new_fields = [f for f in base_request['fields'] if f['name'] != 'durability_level']
|
|
437
|
-
new_fields.extend([
|
|
438
|
-
{"name":"persist_to", "type":{"name":"couchbase::persist_to"}},
|
|
439
|
-
{"name":"replicate_to", "type":{"name":"couchbase::replicate_to"}}
|
|
440
|
-
])
|
|
641
|
+
return {"name": type_str}
|
|
441
642
|
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
643
|
+
@staticmethod
|
|
644
|
+
def sh(command: str, piped: Optional[bool] = False) -> Tuple[str, int]:
|
|
645
|
+
try:
|
|
646
|
+
if piped is True:
|
|
647
|
+
proc = subprocess.Popen(command,
|
|
648
|
+
stdin=subprocess.PIPE,
|
|
649
|
+
stdout=subprocess.PIPE,
|
|
650
|
+
stderr=subprocess.PIPE,
|
|
651
|
+
shell=True)
|
|
652
|
+
else:
|
|
653
|
+
proc = subprocess.Popen(command,
|
|
654
|
+
stdout=subprocess.PIPE,
|
|
655
|
+
stderr=subprocess.PIPE,
|
|
656
|
+
shell=True)
|
|
657
|
+
stdout, stderr = proc.communicate()
|
|
658
|
+
stderr = stderr.decode('utf-8')
|
|
659
|
+
if stderr != '':
|
|
660
|
+
return stderr, 1
|
|
661
|
+
return stdout.decode('utf-8'), 0
|
|
662
|
+
except FileNotFoundError:
|
|
663
|
+
return "Error: Command not found.", 1
|
|
664
|
+
|
|
665
|
+
@staticmethod
|
|
666
|
+
def find_llvm() -> None:
|
|
667
|
+
if sys.platform == 'darwin':
|
|
668
|
+
output, err = BindingsGenerator.sh('which clang')
|
|
669
|
+
if err:
|
|
670
|
+
raise Exception(f'Unable to determine clang binary. Error code: {err}.')
|
|
671
|
+
if 'llvm' not in output.strip():
|
|
672
|
+
# TODO: aarch64 v. x86_64
|
|
673
|
+
os_path = os.environ.get('PATH').split(':')
|
|
674
|
+
os_path = ['/opt/homebrew/opt/llvm/bin'] + os_path
|
|
675
|
+
os.environ.update(**{'PATH': ':'.join(os_path)})
|
|
676
|
+
output, err = BindingsGenerator.sh('which clang')
|
|
677
|
+
if err:
|
|
678
|
+
raise Exception(f'Unable to determine clang binary. Error code: {err}.')
|
|
679
|
+
if 'llvm' not in output.strip():
|
|
680
|
+
raise Exception('Unable to set LLVM as default.')
|
|
681
|
+
elif sys.platform == 'linux':
|
|
682
|
+
print('Under construction')
|
|
683
|
+
else:
|
|
684
|
+
raise ValueError('Unsupported platform')
|
|
685
|
+
|
|
686
|
+
@staticmethod
|
|
687
|
+
def get_llvm_version() -> str:
|
|
688
|
+
output, err = BindingsGenerator.sh('llvm-config --version')
|
|
689
|
+
if err:
|
|
690
|
+
raise Exception(f'Unable to determine LLVM version. Error code: {err}')
|
|
691
|
+
return output.strip()
|
|
692
|
+
|
|
693
|
+
@staticmethod
|
|
694
|
+
def get_llvm_includedir() -> str:
|
|
695
|
+
output, err = BindingsGenerator.sh('llvm-config --includedir')
|
|
696
|
+
if err:
|
|
697
|
+
raise Exception(f'Unable to determine LLVM includedir. Error code: {err}')
|
|
698
|
+
return output.strip()
|
|
699
|
+
|
|
700
|
+
@staticmethod
|
|
701
|
+
def get_llvm_libdir() -> str:
|
|
702
|
+
output, err = BindingsGenerator.sh('llvm-config --libdir')
|
|
703
|
+
if err:
|
|
704
|
+
raise Exception(f'Unable to determine LLVM libdir. Error code: {err}')
|
|
705
|
+
return output.strip()
|
|
706
|
+
|
|
707
|
+
@staticmethod
|
|
708
|
+
def get_system_headers() -> str:
|
|
709
|
+
if sys.platform == 'darwin':
|
|
710
|
+
output, err = BindingsGenerator.sh('xcrun --show-sdk-path')
|
|
711
|
+
if err:
|
|
712
|
+
raise Exception(f'Unable to determine system header path. Error code: {err}.')
|
|
713
|
+
return output.strip()
|
|
714
|
+
elif sys.platform == 'linux':
|
|
715
|
+
print('Under construction')
|
|
716
|
+
else:
|
|
717
|
+
raise ValueError('Unsupported platform')
|
|
718
|
+
|
|
719
|
+
|
|
720
|
+
if __name__ == '__main__':
|
|
721
|
+
from argparse import ArgumentParser
|
|
722
|
+
ap = ArgumentParser(description='Parse git version to PEP-440 version')
|
|
723
|
+
ap.add_argument('-v',
|
|
724
|
+
'--version',
|
|
725
|
+
help='Set CN_LLVM_VERSION, or use command: llvm-config --version')
|
|
726
|
+
ap.add_argument('-i',
|
|
727
|
+
'--includedir',
|
|
728
|
+
help='Set CN_LLVM_INCLUDE, or use command: llvm-config --includedir')
|
|
729
|
+
ap.add_argument('-l',
|
|
730
|
+
'--libdir',
|
|
731
|
+
help='Set CN_LLVM_LIB, or use command: llvm-config --libdir')
|
|
732
|
+
ap.add_argument('-s',
|
|
733
|
+
'--system-headers',
|
|
734
|
+
help='SET CN_SYS_HEADERS, or use command: xcrun --show-sdk-path')
|
|
735
|
+
options = ap.parse_args()
|
|
736
|
+
|
|
737
|
+
generator = BindingsGenerator(options.version,
|
|
738
|
+
options.libdir,
|
|
739
|
+
options.includedir,
|
|
740
|
+
options.system_headers)
|
|
741
|
+
generator.gen_bindings()
|
|
742
|
+
|
|
743
|
+
|
|
744
|
+
"""
|
|
745
|
+
|
|
746
|
+
https://github.com/llvm/llvm-project/issues/86009
|
|
747
|
+
|
|
748
|
+
"""
|